/* -*- c-basic-offset: 2 -*- */
/*
  Copyright(C) 2010-2016 Brazil

  This library is free software; you can redistribute it and/or
  modify it under the terms of the GNU Lesser General Public
  License version 2.1 as published by the Free Software Foundation.

  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
  Lesser General Public License for more details.

  You should have received a copy of the GNU Lesser General Public
  License along with this library; if not, write to the Free Software
  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
*/

/*
  Don't edit this file by hand. it generated automatically by nfkc.rb.
*/

#include "grn.h"
#include "grn_nfkc.h"
#include <groonga/nfkc.h>

#ifdef GRN_WITH_NFKC

static grn_char_type grn_nfkc50_char_type_table_[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc50_char_type_table_c2[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_DIGIT, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc50_char_type_table_c3[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_cb[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc50_char_type_table_cd[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc50_char_type_table_ce[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_cf[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_d2[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_d4[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_d5[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_d6[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc50_char_type_table_d7[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc50_char_type_table_d8[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_d9[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_db[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_dc[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_de[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_df[] = {
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_e0a4[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_e0a5[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_e0a6[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_e0a7[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc50_char_type_table_e0a8[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_e0a9[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_e0aa[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_e0ab[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc50_char_type_table_e0ac[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_e0ad[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_e0ae[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_e0af[] = {
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc50_char_type_table_e0b0[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_e0b1[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT
};

static grn_char_type grn_nfkc50_char_type_table_e0b2[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_e0b3[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc50_char_type_table_e0b4[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_e0b5[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT
};

static grn_char_type grn_nfkc50_char_type_table_e0b6[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_e0b7[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc50_char_type_table_e0b8[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc50_char_type_table_e0b9[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc50_char_type_table_e0ba[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_e0bb[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_e0bc[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS,
  GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc50_char_type_table_e0bd[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_e0be[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc50_char_type_table_e0bf[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc50_char_type_table_e180[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_e181[] = {
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_e183[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_e185[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_e186[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_e189[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_e18a[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_e18b[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_e18c[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_e18d[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT
};

static grn_char_type grn_nfkc50_char_type_table_e18e[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_e199[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_e19a[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_e19b[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT
};

static grn_char_type grn_nfkc50_char_type_table_e19c[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc50_char_type_table_e19d[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_e19f[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT
};

static grn_char_type grn_nfkc50_char_type_table_e1a0[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_e1a5[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_e1a7[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc50_char_type_table_e1a8[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc50_char_type_table_e1ad[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc50_char_type_table_e1ba[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_e1bc[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_e1bd[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_e1be[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc50_char_type_table_e1bf[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc50_char_type_table_e280[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc50_char_type_table_e281[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_DIGIT, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_e282[] = {
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc50_char_type_table_e284[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL,
  GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_e285[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT
};

static grn_char_type grn_nfkc50_char_type_table_e286[] = {
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc50_char_type_table_e291[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT
};

static grn_char_type grn_nfkc50_char_type_table_e292[] = {
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc50_char_type_table_e293[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT
};

static grn_char_type grn_nfkc50_char_type_table_e29a[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc50_char_type_table_e29c[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc50_char_type_table_e29d[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT
};

static grn_char_type grn_nfkc50_char_type_table_e29e[] = {
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc50_char_type_table_e29f[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc50_char_type_table_e2ac[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc50_char_type_table_e2b0[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_e2b1[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_e2b3[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_DIGIT, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc50_char_type_table_e2b4[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_e2b5[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_e2b6[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_e2b7[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_e2b8[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc50_char_type_table_e2bf[] = {
  GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI,
  GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI,
  GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI,
  GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc50_char_type_table_e382[] = {
  GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA,
  GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA,
  GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA,
  GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA,
  GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA,
  GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA,
  GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA,
  GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA
};

static grn_char_type grn_nfkc50_char_type_table_e387[] = {
  GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI,
  GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI,
  GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI,
  GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI,
  GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI,
  GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI,
  GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA,
  GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA
};

static grn_char_type grn_nfkc50_char_type_table_ea9c[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc50_char_type_table_eaa0[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc50_char_type_table_eaa1[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc50_char_type_table_efac[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_efad[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_efb4[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc50_char_type_table_efb6[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_efb7[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc50_char_type_table_efb8[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc50_char_type_table_efb9[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_efbc[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc50_char_type_table_efbd[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_efbf[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc50_char_type_table_f09080[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_f09081[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_f09084[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc50_char_type_table_f09085[] = {
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc50_char_type_table_f09086[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_DIGIT
};

static grn_char_type grn_nfkc50_char_type_table_f0908c[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_f0908d[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_DIGIT, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_DIGIT
};

static grn_char_type grn_nfkc50_char_type_table_f0908e[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_f0908f[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_SYMBOL, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT
};

static grn_char_type grn_nfkc50_char_type_table_f09092[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT
};

static grn_char_type grn_nfkc50_char_type_table_f090a0[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_f090a4[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc50_char_type_table_f090a8[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_f090a9[] = {
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc50_char_type_table_f09291[] = {
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc50_char_type_table_f09d84[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc50_char_type_table_f09d85[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc50_char_type_table_f09d86[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc50_char_type_table_f09d89[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc50_char_type_table_f09d8d[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT
};

static grn_char_type grn_nfkc50_char_type_table_f09d91[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_f09d92[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_f09d93[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_f09d94[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_f09d95[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_f09d9a[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_f09d9b[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_f09d9c[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_f09d9d[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_f09d9e[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc50_char_type_table_f09d9f[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT
};

grn_char_type
grn_nfkc50_char_type(const unsigned char *utf8)
{
  if (utf8[0] < 0x80) {
    if (utf8[0] >= 0x21 &&
        utf8[0] <= 0x7e) {
      return grn_nfkc50_char_type_table_[utf8[0] - 0x21];
    } else {
      return GRN_CHAR_OTHERS;
    }
  } else {
    switch (utf8[0]) {
    case 0xc2 :
      if (utf8[1] >= 0xa1 &&
          utf8[1] <= 0xbf) {
        return grn_nfkc50_char_type_table_c2[utf8[1] - 0xa1];
      }
      break;
    case 0xc3 :
      return grn_nfkc50_char_type_table_c3[utf8[1] - 0x80];
    case 0xc4 :
      return GRN_CHAR_ALPHA;
    case 0xc5 :
      return GRN_CHAR_ALPHA;
    case 0xc6 :
      return GRN_CHAR_ALPHA;
    case 0xc7 :
      return GRN_CHAR_ALPHA;
    case 0xc8 :
      return GRN_CHAR_ALPHA;
    case 0xc9 :
      return GRN_CHAR_ALPHA;
    case 0xca :
      return GRN_CHAR_ALPHA;
    case 0xcb :
      return grn_nfkc50_char_type_table_cb[utf8[1] - 0x80];
    case 0xcd :
      if (utf8[1] >= 0xb4 &&
          utf8[1] <= 0xbe) {
        return grn_nfkc50_char_type_table_cd[utf8[1] - 0xb4];
      }
      break;
    case 0xce :
      if (utf8[1] >= 0x84 &&
          utf8[1] <= 0xbf) {
        return grn_nfkc50_char_type_table_ce[utf8[1] - 0x84];
      }
      break;
    case 0xcf :
      return grn_nfkc50_char_type_table_cf[utf8[1] - 0x80];
    case 0xd0 :
      return GRN_CHAR_ALPHA;
    case 0xd1 :
      return GRN_CHAR_ALPHA;
    case 0xd2 :
      return grn_nfkc50_char_type_table_d2[utf8[1] - 0x80];
    case 0xd3 :
      return GRN_CHAR_ALPHA;
    case 0xd4 :
      return grn_nfkc50_char_type_table_d4[utf8[1] - 0x80];
    case 0xd5 :
      return grn_nfkc50_char_type_table_d5[utf8[1] - 0x80];
    case 0xd6 :
      if (utf8[1] >= 0x80 &&
          utf8[1] <= 0xbe) {
        return grn_nfkc50_char_type_table_d6[utf8[1] - 0x80];
      }
      break;
    case 0xd7 :
      if (utf8[1] >= 0x80 &&
          utf8[1] <= 0xb4) {
        return grn_nfkc50_char_type_table_d7[utf8[1] - 0x80];
      }
      break;
    case 0xd8 :
      if (utf8[1] >= 0x8b &&
          utf8[1] <= 0xba) {
        return grn_nfkc50_char_type_table_d8[utf8[1] - 0x8b];
      }
      break;
    case 0xd9 :
      return grn_nfkc50_char_type_table_d9[utf8[1] - 0x80];
    case 0xda :
      return GRN_CHAR_ALPHA;
    case 0xdb :
      return grn_nfkc50_char_type_table_db[utf8[1] - 0x80];
    case 0xdc :
      if (utf8[1] >= 0x80 &&
          utf8[1] <= 0xaf) {
        return grn_nfkc50_char_type_table_dc[utf8[1] - 0x80];
      }
      break;
    case 0xdd :
      if (utf8[1] >= 0x8d &&
          utf8[1] <= 0xad) {
        return GRN_CHAR_ALPHA;
      }
      break;
    case 0xde :
      if (utf8[1] >= 0x80 &&
          utf8[1] <= 0xb1) {
        return grn_nfkc50_char_type_table_de[utf8[1] - 0x80];
      }
      break;
    case 0xdf :
      if (utf8[1] >= 0x80 &&
          utf8[1] <= 0xba) {
        return grn_nfkc50_char_type_table_df[utf8[1] - 0x80];
      }
      break;
    case 0xe0 :
      switch (utf8[1]) {
      case 0xa4 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbd) {
          return grn_nfkc50_char_type_table_e0a4[utf8[2] - 0x84];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xbf) {
          return grn_nfkc50_char_type_table_e0a5[utf8[2] - 0x90];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x85 &&
            utf8[2] <= 0xbd) {
          return grn_nfkc50_char_type_table_e0a6[utf8[2] - 0x85];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x8e &&
            utf8[2] <= 0xba) {
          return grn_nfkc50_char_type_table_e0a7[utf8[2] - 0x8e];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x85 &&
            utf8[2] <= 0xb9) {
          return grn_nfkc50_char_type_table_e0a8[utf8[2] - 0x85];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x99 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_char_type_table_e0a9[utf8[2] - 0x99];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x85 &&
            utf8[2] <= 0xbd) {
          return grn_nfkc50_char_type_table_e0aa[utf8[2] - 0x85];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xb1) {
          return grn_nfkc50_char_type_table_e0ab[utf8[2] - 0x90];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x85 &&
            utf8[2] <= 0xbd) {
          return grn_nfkc50_char_type_table_e0ac[utf8[2] - 0x85];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x9c &&
            utf8[2] <= 0xb1) {
          return grn_nfkc50_char_type_table_e0ad[utf8[2] - 0x9c];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x83 &&
            utf8[2] <= 0xb9) {
          return grn_nfkc50_char_type_table_e0ae[utf8[2] - 0x83];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0xa6 &&
            utf8[2] <= 0xba) {
          return grn_nfkc50_char_type_table_e0af[utf8[2] - 0xa6];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x85 &&
            utf8[2] <= 0xb9) {
          return grn_nfkc50_char_type_table_e0b0[utf8[2] - 0x85];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0xa0 &&
            utf8[2] <= 0xaf) {
          return grn_nfkc50_char_type_table_e0b1[utf8[2] - 0xa0];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x85 &&
            utf8[2] <= 0xbd) {
          return grn_nfkc50_char_type_table_e0b2[utf8[2] - 0x85];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x9e &&
            utf8[2] <= 0xb2) {
          return grn_nfkc50_char_type_table_e0b3[utf8[2] - 0x9e];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x85 &&
            utf8[2] <= 0xb9) {
          return grn_nfkc50_char_type_table_e0b4[utf8[2] - 0x85];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0xa0 &&
            utf8[2] <= 0xaf) {
          return grn_nfkc50_char_type_table_e0b5[utf8[2] - 0xa0];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x85 &&
            utf8[2] <= 0xbd) {
          return grn_nfkc50_char_type_table_e0b6[utf8[2] - 0x85];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_char_type_table_e0b7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x81 &&
            utf8[2] <= 0xbf) {
          return grn_nfkc50_char_type_table_e0b8[utf8[2] - 0x81];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x9b) {
          return grn_nfkc50_char_type_table_e0b9[utf8[2] - 0x80];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x81 &&
            utf8[2] <= 0xbd) {
          return grn_nfkc50_char_type_table_e0ba[utf8[2] - 0x81];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x9d) {
          return grn_nfkc50_char_type_table_e0bb[utf8[2] - 0x80];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xbd) {
          return grn_nfkc50_char_type_table_e0bc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xaa) {
          return grn_nfkc50_char_type_table_e0bd[utf8[2] - 0x80];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x85 &&
            utf8[2] <= 0xbf) {
          return grn_nfkc50_char_type_table_e0be[utf8[2] - 0x85];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x91) {
          return grn_nfkc50_char_type_table_e0bf[utf8[2] - 0x80];
        }
        break;
      default :
        break;
      }
      break;
    case 0xe1 :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xaa) {
          return grn_nfkc50_char_type_table_e180[utf8[2] - 0x80];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x95) {
          return grn_nfkc50_char_type_table_e181[utf8[2] - 0x80];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0xa0 &&
            utf8[2] <= 0xbf) {
          return GRN_CHAR_ALPHA;
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_char_type_table_e183[utf8[2] - 0x80];
        }
        break;
      case 0x84 :
        return GRN_CHAR_ALPHA;
      case 0x85 :
        return grn_nfkc50_char_type_table_e185[utf8[2] - 0x80];
      case 0x86 :
        return grn_nfkc50_char_type_table_e186[utf8[2] - 0x80];
      case 0x87 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb9) {
          return GRN_CHAR_ALPHA;
        }
        break;
      case 0x88 :
        return GRN_CHAR_ALPHA;
      case 0x89 :
        return grn_nfkc50_char_type_table_e189[utf8[2] - 0x80];
      case 0x8a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xbe) {
          return grn_nfkc50_char_type_table_e18a[utf8[2] - 0x80];
        }
        break;
      case 0x8b :
        return grn_nfkc50_char_type_table_e18b[utf8[2] - 0x80];
      case 0x8c :
        return grn_nfkc50_char_type_table_e18c[utf8[2] - 0x80];
      case 0x8d :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_char_type_table_e18d[utf8[2] - 0x80];
        }
        break;
      case 0x8e :
        return grn_nfkc50_char_type_table_e18e[utf8[2] - 0x80];
      case 0x8f :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb4) {
          return GRN_CHAR_ALPHA;
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x81 &&
            utf8[2] <= 0xbf) {
          return GRN_CHAR_ALPHA;
        }
        break;
      case 0x91 :
        return GRN_CHAR_ALPHA;
      case 0x92 :
        return GRN_CHAR_ALPHA;
      case 0x93 :
        return GRN_CHAR_ALPHA;
      case 0x94 :
        return GRN_CHAR_ALPHA;
      case 0x95 :
        return GRN_CHAR_ALPHA;
      case 0x96 :
        return GRN_CHAR_ALPHA;
      case 0x97 :
        return GRN_CHAR_ALPHA;
      case 0x98 :
        return GRN_CHAR_ALPHA;
      case 0x99 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb6) {
          return grn_nfkc50_char_type_table_e199[utf8[2] - 0x80];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x81 &&
            utf8[2] <= 0xbf) {
          return grn_nfkc50_char_type_table_e19a[utf8[2] - 0x81];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_char_type_table_e19b[utf8[2] - 0x80];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb6) {
          return grn_nfkc50_char_type_table_e19c[utf8[2] - 0x80];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_char_type_table_e19d[utf8[2] - 0x80];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb3) {
          return GRN_CHAR_ALPHA;
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb9) {
          return grn_nfkc50_char_type_table_e19f[utf8[2] - 0x94];
        }
        break;
      case 0xa0 :
        return grn_nfkc50_char_type_table_e1a0[utf8[2] - 0x80];
      case 0xa1 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb7) {
          return GRN_CHAR_ALPHA;
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xa8) {
          return GRN_CHAR_ALPHA;
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x9c) {
          return GRN_CHAR_ALPHA;
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_char_type_table_e1a5[utf8[2] - 0x80];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xa9) {
          return GRN_CHAR_ALPHA;
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x81 &&
            utf8[2] <= 0xbf) {
          return grn_nfkc50_char_type_table_e1a7[utf8[2] - 0x81];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x9f) {
          return grn_nfkc50_char_type_table_e1a8[utf8[2] - 0x80];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x85 &&
            utf8[2] <= 0xb3) {
          return GRN_CHAR_ALPHA;
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x85 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_char_type_table_e1ad[utf8[2] - 0x85];
        }
        break;
      case 0xb4 :
        return GRN_CHAR_ALPHA;
      case 0xb5 :
        return GRN_CHAR_ALPHA;
      case 0xb6 :
        return GRN_CHAR_ALPHA;
      case 0xb8 :
        return GRN_CHAR_ALPHA;
      case 0xb9 :
        return GRN_CHAR_ALPHA;
      case 0xba :
        return grn_nfkc50_char_type_table_e1ba[utf8[2] - 0x80];
      case 0xbb :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb9) {
          return GRN_CHAR_ALPHA;
        }
        break;
      case 0xbc :
        return grn_nfkc50_char_type_table_e1bc[utf8[2] - 0x80];
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xbd) {
          return grn_nfkc50_char_type_table_e1bd[utf8[2] - 0x80];
        }
        break;
      case 0xbe :
        return grn_nfkc50_char_type_table_e1be[utf8[2] - 0x80];
      case 0xbf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xbe) {
          return grn_nfkc50_char_type_table_e1bf[utf8[2] - 0x80];
        }
        break;
      default :
        break;
      }
      break;
    case 0xe2 :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xbf) {
          return grn_nfkc50_char_type_table_e280[utf8[2] - 0x90];
        }
        break;
      case 0x81 :
        return grn_nfkc50_char_type_table_e281[utf8[2] - 0x80];
      case 0x82 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb5) {
          return grn_nfkc50_char_type_table_e282[utf8[2] - 0x80];
        }
        break;
      case 0x84 :
        return grn_nfkc50_char_type_table_e284[utf8[2] - 0x80];
      case 0x85 :
        return grn_nfkc50_char_type_table_e285[utf8[2] - 0x80];
      case 0x86 :
        return grn_nfkc50_char_type_table_e286[utf8[2] - 0x80];
      case 0x87 :
        return GRN_CHAR_SYMBOL;
      case 0x88 :
        return GRN_CHAR_SYMBOL;
      case 0x89 :
        return GRN_CHAR_SYMBOL;
      case 0x8a :
        return GRN_CHAR_SYMBOL;
      case 0x8b :
        return GRN_CHAR_SYMBOL;
      case 0x8c :
        return GRN_CHAR_SYMBOL;
      case 0x8d :
        return GRN_CHAR_SYMBOL;
      case 0x8e :
        return GRN_CHAR_SYMBOL;
      case 0x8f :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xa7) {
          return GRN_CHAR_SYMBOL;
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xa6) {
          return GRN_CHAR_SYMBOL;
        }
        break;
      case 0x91 :
        return grn_nfkc50_char_type_table_e291[utf8[2] - 0x80];
      case 0x92 :
        return grn_nfkc50_char_type_table_e292[utf8[2] - 0x80];
      case 0x93 :
        return grn_nfkc50_char_type_table_e293[utf8[2] - 0x80];
      case 0x94 :
        return GRN_CHAR_SYMBOL;
      case 0x95 :
        return GRN_CHAR_SYMBOL;
      case 0x96 :
        return GRN_CHAR_SYMBOL;
      case 0x97 :
        return GRN_CHAR_SYMBOL;
      case 0x98 :
        return GRN_CHAR_SYMBOL;
      case 0x99 :
        return GRN_CHAR_SYMBOL;
      case 0x9a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb2) {
          return grn_nfkc50_char_type_table_e29a[utf8[2] - 0x80];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x81 &&
            utf8[2] <= 0xbf) {
          return grn_nfkc50_char_type_table_e29c[utf8[2] - 0x81];
        }
        break;
      case 0x9d :
        return grn_nfkc50_char_type_table_e29d[utf8[2] - 0x80];
      case 0x9e :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xbe) {
          return grn_nfkc50_char_type_table_e29e[utf8[2] - 0x80];
        }
        break;
      case 0x9f :
        return grn_nfkc50_char_type_table_e29f[utf8[2] - 0x80];
      case 0xa0 :
        return GRN_CHAR_SYMBOL;
      case 0xa1 :
        return GRN_CHAR_SYMBOL;
      case 0xa2 :
        return GRN_CHAR_SYMBOL;
      case 0xa3 :
        return GRN_CHAR_SYMBOL;
      case 0xa4 :
        return GRN_CHAR_SYMBOL;
      case 0xa5 :
        return GRN_CHAR_SYMBOL;
      case 0xa6 :
        return GRN_CHAR_SYMBOL;
      case 0xa7 :
        return GRN_CHAR_SYMBOL;
      case 0xa8 :
        return GRN_CHAR_SYMBOL;
      case 0xa9 :
        return GRN_CHAR_SYMBOL;
      case 0xaa :
        return GRN_CHAR_SYMBOL;
      case 0xab :
        return GRN_CHAR_SYMBOL;
      case 0xac :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xa3) {
          return grn_nfkc50_char_type_table_e2ac[utf8[2] - 0x80];
        }
        break;
      case 0xb0 :
        return grn_nfkc50_char_type_table_e2b0[utf8[2] - 0x80];
      case 0xb1 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb7) {
          return grn_nfkc50_char_type_table_e2b1[utf8[2] - 0x80];
        }
        break;
      case 0xb2 :
        return GRN_CHAR_ALPHA;
      case 0xb3 :
        return grn_nfkc50_char_type_table_e2b3[utf8[2] - 0x80];
      case 0xb4 :
        return grn_nfkc50_char_type_table_e2b4[utf8[2] - 0x80];
      case 0xb5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xaf) {
          return grn_nfkc50_char_type_table_e2b5[utf8[2] - 0x80];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xbe) {
          return grn_nfkc50_char_type_table_e2b6[utf8[2] - 0x80];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x9e) {
          return grn_nfkc50_char_type_table_e2b7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x97) {
          return grn_nfkc50_char_type_table_e2b8[utf8[2] - 0x80];
        }
        break;
      case 0xba :
        return GRN_CHAR_KANJI;
      case 0xbb :
        return GRN_CHAR_KANJI;
      case 0xbc :
        return GRN_CHAR_KANJI;
      case 0xbd :
        return GRN_CHAR_KANJI;
      case 0xbe :
        return GRN_CHAR_KANJI;
      case 0xbf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xbb) {
          return grn_nfkc50_char_type_table_e2bf[utf8[2] - 0x80];
        }
        break;
      default :
        break;
      }
      break;
    case 0xe3 :
      switch (utf8[1]) {
      case 0x80 :
        return GRN_CHAR_SYMBOL;
      case 0x81 :
        return GRN_CHAR_HIRAGANA;
      case 0x82 :
        return grn_nfkc50_char_type_table_e382[utf8[2] - 0x80];
      case 0x83 :
        return GRN_CHAR_KATAKANA;
      case 0x84 :
        return GRN_CHAR_KANJI;
      case 0x85 :
        return GRN_CHAR_KANJI;
      case 0x86 :
        return GRN_CHAR_KANJI;
      case 0x87 :
        return grn_nfkc50_char_type_table_e387[utf8[2] - 0x80];
      case 0x88 :
        return GRN_CHAR_SYMBOL;
      case 0x89 :
        return GRN_CHAR_SYMBOL;
      case 0x8a :
        return GRN_CHAR_SYMBOL;
      case 0x8b :
        return GRN_CHAR_SYMBOL;
      case 0x8c :
        return GRN_CHAR_SYMBOL;
      case 0x8d :
        return GRN_CHAR_SYMBOL;
      case 0x8e :
        return GRN_CHAR_SYMBOL;
      case 0x8f :
        return GRN_CHAR_SYMBOL;
      case 0x90 :
        return GRN_CHAR_KANJI;
      case 0x91 :
        return GRN_CHAR_KANJI;
      case 0x92 :
        return GRN_CHAR_KANJI;
      case 0x93 :
        return GRN_CHAR_KANJI;
      case 0x94 :
        return GRN_CHAR_KANJI;
      case 0x95 :
        return GRN_CHAR_KANJI;
      case 0x96 :
        return GRN_CHAR_KANJI;
      case 0x97 :
        return GRN_CHAR_KANJI;
      case 0x98 :
        return GRN_CHAR_KANJI;
      case 0x99 :
        return GRN_CHAR_KANJI;
      case 0x9a :
        return GRN_CHAR_KANJI;
      case 0x9b :
        return GRN_CHAR_KANJI;
      case 0x9c :
        return GRN_CHAR_KANJI;
      case 0x9d :
        return GRN_CHAR_KANJI;
      case 0x9e :
        return GRN_CHAR_KANJI;
      case 0x9f :
        return GRN_CHAR_KANJI;
      case 0xa0 :
        return GRN_CHAR_KANJI;
      case 0xa1 :
        return GRN_CHAR_KANJI;
      case 0xa2 :
        return GRN_CHAR_KANJI;
      case 0xa3 :
        return GRN_CHAR_KANJI;
      case 0xa4 :
        return GRN_CHAR_KANJI;
      case 0xa5 :
        return GRN_CHAR_KANJI;
      case 0xa6 :
        return GRN_CHAR_KANJI;
      case 0xa7 :
        return GRN_CHAR_KANJI;
      case 0xa8 :
        return GRN_CHAR_KANJI;
      case 0xa9 :
        return GRN_CHAR_KANJI;
      case 0xaa :
        return GRN_CHAR_KANJI;
      case 0xab :
        return GRN_CHAR_KANJI;
      case 0xac :
        return GRN_CHAR_KANJI;
      case 0xad :
        return GRN_CHAR_KANJI;
      case 0xae :
        return GRN_CHAR_KANJI;
      case 0xaf :
        return GRN_CHAR_KANJI;
      case 0xb0 :
        return GRN_CHAR_KANJI;
      case 0xb1 :
        return GRN_CHAR_KANJI;
      case 0xb2 :
        return GRN_CHAR_KANJI;
      case 0xb3 :
        return GRN_CHAR_KANJI;
      case 0xb4 :
        return GRN_CHAR_KANJI;
      case 0xb5 :
        return GRN_CHAR_KANJI;
      case 0xb6 :
        return GRN_CHAR_KANJI;
      case 0xb7 :
        return GRN_CHAR_KANJI;
      case 0xb8 :
        return GRN_CHAR_KANJI;
      case 0xb9 :
        return GRN_CHAR_KANJI;
      case 0xba :
        return GRN_CHAR_KANJI;
      case 0xbb :
        return GRN_CHAR_KANJI;
      case 0xbc :
        return GRN_CHAR_KANJI;
      case 0xbd :
        return GRN_CHAR_KANJI;
      case 0xbe :
        return GRN_CHAR_KANJI;
      case 0xbf :
        return GRN_CHAR_KANJI;
      default :
        break;
      }
      break;
    case 0xe4 :
      switch (utf8[1]) {
      case 0x80 :
        return GRN_CHAR_KANJI;
      case 0x81 :
        return GRN_CHAR_KANJI;
      case 0x82 :
        return GRN_CHAR_KANJI;
      case 0x83 :
        return GRN_CHAR_KANJI;
      case 0x84 :
        return GRN_CHAR_KANJI;
      case 0x85 :
        return GRN_CHAR_KANJI;
      case 0x86 :
        return GRN_CHAR_KANJI;
      case 0x87 :
        return GRN_CHAR_KANJI;
      case 0x88 :
        return GRN_CHAR_KANJI;
      case 0x89 :
        return GRN_CHAR_KANJI;
      case 0x8a :
        return GRN_CHAR_KANJI;
      case 0x8b :
        return GRN_CHAR_KANJI;
      case 0x8c :
        return GRN_CHAR_KANJI;
      case 0x8d :
        return GRN_CHAR_KANJI;
      case 0x8e :
        return GRN_CHAR_KANJI;
      case 0x8f :
        return GRN_CHAR_KANJI;
      case 0x90 :
        return GRN_CHAR_KANJI;
      case 0x91 :
        return GRN_CHAR_KANJI;
      case 0x92 :
        return GRN_CHAR_KANJI;
      case 0x93 :
        return GRN_CHAR_KANJI;
      case 0x94 :
        return GRN_CHAR_KANJI;
      case 0x95 :
        return GRN_CHAR_KANJI;
      case 0x96 :
        return GRN_CHAR_KANJI;
      case 0x97 :
        return GRN_CHAR_KANJI;
      case 0x98 :
        return GRN_CHAR_KANJI;
      case 0x99 :
        return GRN_CHAR_KANJI;
      case 0x9a :
        return GRN_CHAR_KANJI;
      case 0x9b :
        return GRN_CHAR_KANJI;
      case 0x9c :
        return GRN_CHAR_KANJI;
      case 0x9d :
        return GRN_CHAR_KANJI;
      case 0x9e :
        return GRN_CHAR_KANJI;
      case 0x9f :
        return GRN_CHAR_KANJI;
      case 0xa0 :
        return GRN_CHAR_KANJI;
      case 0xa1 :
        return GRN_CHAR_KANJI;
      case 0xa2 :
        return GRN_CHAR_KANJI;
      case 0xa3 :
        return GRN_CHAR_KANJI;
      case 0xa4 :
        return GRN_CHAR_KANJI;
      case 0xa5 :
        return GRN_CHAR_KANJI;
      case 0xa6 :
        return GRN_CHAR_KANJI;
      case 0xa7 :
        return GRN_CHAR_KANJI;
      case 0xa8 :
        return GRN_CHAR_KANJI;
      case 0xa9 :
        return GRN_CHAR_KANJI;
      case 0xaa :
        return GRN_CHAR_KANJI;
      case 0xab :
        return GRN_CHAR_KANJI;
      case 0xac :
        return GRN_CHAR_KANJI;
      case 0xad :
        return GRN_CHAR_KANJI;
      case 0xae :
        return GRN_CHAR_KANJI;
      case 0xaf :
        return GRN_CHAR_KANJI;
      case 0xb0 :
        return GRN_CHAR_KANJI;
      case 0xb1 :
        return GRN_CHAR_KANJI;
      case 0xb2 :
        return GRN_CHAR_KANJI;
      case 0xb3 :
        return GRN_CHAR_KANJI;
      case 0xb4 :
        return GRN_CHAR_KANJI;
      case 0xb5 :
        return GRN_CHAR_KANJI;
      case 0xb6 :
        return GRN_CHAR_KANJI;
      case 0xb7 :
        return GRN_CHAR_SYMBOL;
      case 0xb8 :
        return GRN_CHAR_KANJI;
      case 0xb9 :
        return GRN_CHAR_KANJI;
      case 0xba :
        return GRN_CHAR_KANJI;
      case 0xbb :
        return GRN_CHAR_KANJI;
      case 0xbc :
        return GRN_CHAR_KANJI;
      case 0xbd :
        return GRN_CHAR_KANJI;
      case 0xbe :
        return GRN_CHAR_KANJI;
      case 0xbf :
        return GRN_CHAR_KANJI;
      default :
        break;
      }
      break;
    case 0xe5 :
      switch (utf8[1]) {
      case 0x80 :
        return GRN_CHAR_KANJI;
      case 0x81 :
        return GRN_CHAR_KANJI;
      case 0x82 :
        return GRN_CHAR_KANJI;
      case 0x83 :
        return GRN_CHAR_KANJI;
      case 0x84 :
        return GRN_CHAR_KANJI;
      case 0x85 :
        return GRN_CHAR_KANJI;
      case 0x86 :
        return GRN_CHAR_KANJI;
      case 0x87 :
        return GRN_CHAR_KANJI;
      case 0x88 :
        return GRN_CHAR_KANJI;
      case 0x89 :
        return GRN_CHAR_KANJI;
      case 0x8a :
        return GRN_CHAR_KANJI;
      case 0x8b :
        return GRN_CHAR_KANJI;
      case 0x8c :
        return GRN_CHAR_KANJI;
      case 0x8d :
        return GRN_CHAR_KANJI;
      case 0x8e :
        return GRN_CHAR_KANJI;
      case 0x8f :
        return GRN_CHAR_KANJI;
      case 0x90 :
        return GRN_CHAR_KANJI;
      case 0x91 :
        return GRN_CHAR_KANJI;
      case 0x92 :
        return GRN_CHAR_KANJI;
      case 0x93 :
        return GRN_CHAR_KANJI;
      case 0x94 :
        return GRN_CHAR_KANJI;
      case 0x95 :
        return GRN_CHAR_KANJI;
      case 0x96 :
        return GRN_CHAR_KANJI;
      case 0x97 :
        return GRN_CHAR_KANJI;
      case 0x98 :
        return GRN_CHAR_KANJI;
      case 0x99 :
        return GRN_CHAR_KANJI;
      case 0x9a :
        return GRN_CHAR_KANJI;
      case 0x9b :
        return GRN_CHAR_KANJI;
      case 0x9c :
        return GRN_CHAR_KANJI;
      case 0x9d :
        return GRN_CHAR_KANJI;
      case 0x9e :
        return GRN_CHAR_KANJI;
      case 0x9f :
        return GRN_CHAR_KANJI;
      case 0xa0 :
        return GRN_CHAR_KANJI;
      case 0xa1 :
        return GRN_CHAR_KANJI;
      case 0xa2 :
        return GRN_CHAR_KANJI;
      case 0xa3 :
        return GRN_CHAR_KANJI;
      case 0xa4 :
        return GRN_CHAR_KANJI;
      case 0xa5 :
        return GRN_CHAR_KANJI;
      case 0xa6 :
        return GRN_CHAR_KANJI;
      case 0xa7 :
        return GRN_CHAR_KANJI;
      case 0xa8 :
        return GRN_CHAR_KANJI;
      case 0xa9 :
        return GRN_CHAR_KANJI;
      case 0xaa :
        return GRN_CHAR_KANJI;
      case 0xab :
        return GRN_CHAR_KANJI;
      case 0xac :
        return GRN_CHAR_KANJI;
      case 0xad :
        return GRN_CHAR_KANJI;
      case 0xae :
        return GRN_CHAR_KANJI;
      case 0xaf :
        return GRN_CHAR_KANJI;
      case 0xb0 :
        return GRN_CHAR_KANJI;
      case 0xb1 :
        return GRN_CHAR_KANJI;
      case 0xb2 :
        return GRN_CHAR_KANJI;
      case 0xb3 :
        return GRN_CHAR_KANJI;
      case 0xb4 :
        return GRN_CHAR_KANJI;
      case 0xb5 :
        return GRN_CHAR_KANJI;
      case 0xb6 :
        return GRN_CHAR_KANJI;
      case 0xb7 :
        return GRN_CHAR_KANJI;
      case 0xb8 :
        return GRN_CHAR_KANJI;
      case 0xb9 :
        return GRN_CHAR_KANJI;
      case 0xba :
        return GRN_CHAR_KANJI;
      case 0xbb :
        return GRN_CHAR_KANJI;
      case 0xbc :
        return GRN_CHAR_KANJI;
      case 0xbd :
        return GRN_CHAR_KANJI;
      case 0xbe :
        return GRN_CHAR_KANJI;
      case 0xbf :
        return GRN_CHAR_KANJI;
      default :
        break;
      }
      break;
    case 0xe6 :
      switch (utf8[1]) {
      case 0x80 :
        return GRN_CHAR_KANJI;
      case 0x81 :
        return GRN_CHAR_KANJI;
      case 0x82 :
        return GRN_CHAR_KANJI;
      case 0x83 :
        return GRN_CHAR_KANJI;
      case 0x84 :
        return GRN_CHAR_KANJI;
      case 0x85 :
        return GRN_CHAR_KANJI;
      case 0x86 :
        return GRN_CHAR_KANJI;
      case 0x87 :
        return GRN_CHAR_KANJI;
      case 0x88 :
        return GRN_CHAR_KANJI;
      case 0x89 :
        return GRN_CHAR_KANJI;
      case 0x8a :
        return GRN_CHAR_KANJI;
      case 0x8b :
        return GRN_CHAR_KANJI;
      case 0x8c :
        return GRN_CHAR_KANJI;
      case 0x8d :
        return GRN_CHAR_KANJI;
      case 0x8e :
        return GRN_CHAR_KANJI;
      case 0x8f :
        return GRN_CHAR_KANJI;
      case 0x90 :
        return GRN_CHAR_KANJI;
      case 0x91 :
        return GRN_CHAR_KANJI;
      case 0x92 :
        return GRN_CHAR_KANJI;
      case 0x93 :
        return GRN_CHAR_KANJI;
      case 0x94 :
        return GRN_CHAR_KANJI;
      case 0x95 :
        return GRN_CHAR_KANJI;
      case 0x96 :
        return GRN_CHAR_KANJI;
      case 0x97 :
        return GRN_CHAR_KANJI;
      case 0x98 :
        return GRN_CHAR_KANJI;
      case 0x99 :
        return GRN_CHAR_KANJI;
      case 0x9a :
        return GRN_CHAR_KANJI;
      case 0x9b :
        return GRN_CHAR_KANJI;
      case 0x9c :
        return GRN_CHAR_KANJI;
      case 0x9d :
        return GRN_CHAR_KANJI;
      case 0x9e :
        return GRN_CHAR_KANJI;
      case 0x9f :
        return GRN_CHAR_KANJI;
      case 0xa0 :
        return GRN_CHAR_KANJI;
      case 0xa1 :
        return GRN_CHAR_KANJI;
      case 0xa2 :
        return GRN_CHAR_KANJI;
      case 0xa3 :
        return GRN_CHAR_KANJI;
      case 0xa4 :
        return GRN_CHAR_KANJI;
      case 0xa5 :
        return GRN_CHAR_KANJI;
      case 0xa6 :
        return GRN_CHAR_KANJI;
      case 0xa7 :
        return GRN_CHAR_KANJI;
      case 0xa8 :
        return GRN_CHAR_KANJI;
      case 0xa9 :
        return GRN_CHAR_KANJI;
      case 0xaa :
        return GRN_CHAR_KANJI;
      case 0xab :
        return GRN_CHAR_KANJI;
      case 0xac :
        return GRN_CHAR_KANJI;
      case 0xad :
        return GRN_CHAR_KANJI;
      case 0xae :
        return GRN_CHAR_KANJI;
      case 0xaf :
        return GRN_CHAR_KANJI;
      case 0xb0 :
        return GRN_CHAR_KANJI;
      case 0xb1 :
        return GRN_CHAR_KANJI;
      case 0xb2 :
        return GRN_CHAR_KANJI;
      case 0xb3 :
        return GRN_CHAR_KANJI;
      case 0xb4 :
        return GRN_CHAR_KANJI;
      case 0xb5 :
        return GRN_CHAR_KANJI;
      case 0xb6 :
        return GRN_CHAR_KANJI;
      case 0xb7 :
        return GRN_CHAR_KANJI;
      case 0xb8 :
        return GRN_CHAR_KANJI;
      case 0xb9 :
        return GRN_CHAR_KANJI;
      case 0xba :
        return GRN_CHAR_KANJI;
      case 0xbb :
        return GRN_CHAR_KANJI;
      case 0xbc :
        return GRN_CHAR_KANJI;
      case 0xbd :
        return GRN_CHAR_KANJI;
      case 0xbe :
        return GRN_CHAR_KANJI;
      case 0xbf :
        return GRN_CHAR_KANJI;
      default :
        break;
      }
      break;
    case 0xe7 :
      switch (utf8[1]) {
      case 0x80 :
        return GRN_CHAR_KANJI;
      case 0x81 :
        return GRN_CHAR_KANJI;
      case 0x82 :
        return GRN_CHAR_KANJI;
      case 0x83 :
        return GRN_CHAR_KANJI;
      case 0x84 :
        return GRN_CHAR_KANJI;
      case 0x85 :
        return GRN_CHAR_KANJI;
      case 0x86 :
        return GRN_CHAR_KANJI;
      case 0x87 :
        return GRN_CHAR_KANJI;
      case 0x88 :
        return GRN_CHAR_KANJI;
      case 0x89 :
        return GRN_CHAR_KANJI;
      case 0x8a :
        return GRN_CHAR_KANJI;
      case 0x8b :
        return GRN_CHAR_KANJI;
      case 0x8c :
        return GRN_CHAR_KANJI;
      case 0x8d :
        return GRN_CHAR_KANJI;
      case 0x8e :
        return GRN_CHAR_KANJI;
      case 0x8f :
        return GRN_CHAR_KANJI;
      case 0x90 :
        return GRN_CHAR_KANJI;
      case 0x91 :
        return GRN_CHAR_KANJI;
      case 0x92 :
        return GRN_CHAR_KANJI;
      case 0x93 :
        return GRN_CHAR_KANJI;
      case 0x94 :
        return GRN_CHAR_KANJI;
      case 0x95 :
        return GRN_CHAR_KANJI;
      case 0x96 :
        return GRN_CHAR_KANJI;
      case 0x97 :
        return GRN_CHAR_KANJI;
      case 0x98 :
        return GRN_CHAR_KANJI;
      case 0x99 :
        return GRN_CHAR_KANJI;
      case 0x9a :
        return GRN_CHAR_KANJI;
      case 0x9b :
        return GRN_CHAR_KANJI;
      case 0x9c :
        return GRN_CHAR_KANJI;
      case 0x9d :
        return GRN_CHAR_KANJI;
      case 0x9e :
        return GRN_CHAR_KANJI;
      case 0x9f :
        return GRN_CHAR_KANJI;
      case 0xa0 :
        return GRN_CHAR_KANJI;
      case 0xa1 :
        return GRN_CHAR_KANJI;
      case 0xa2 :
        return GRN_CHAR_KANJI;
      case 0xa3 :
        return GRN_CHAR_KANJI;
      case 0xa4 :
        return GRN_CHAR_KANJI;
      case 0xa5 :
        return GRN_CHAR_KANJI;
      case 0xa6 :
        return GRN_CHAR_KANJI;
      case 0xa7 :
        return GRN_CHAR_KANJI;
      case 0xa8 :
        return GRN_CHAR_KANJI;
      case 0xa9 :
        return GRN_CHAR_KANJI;
      case 0xaa :
        return GRN_CHAR_KANJI;
      case 0xab :
        return GRN_CHAR_KANJI;
      case 0xac :
        return GRN_CHAR_KANJI;
      case 0xad :
        return GRN_CHAR_KANJI;
      case 0xae :
        return GRN_CHAR_KANJI;
      case 0xaf :
        return GRN_CHAR_KANJI;
      case 0xb0 :
        return GRN_CHAR_KANJI;
      case 0xb1 :
        return GRN_CHAR_KANJI;
      case 0xb2 :
        return GRN_CHAR_KANJI;
      case 0xb3 :
        return GRN_CHAR_KANJI;
      case 0xb4 :
        return GRN_CHAR_KANJI;
      case 0xb5 :
        return GRN_CHAR_KANJI;
      case 0xb6 :
        return GRN_CHAR_KANJI;
      case 0xb7 :
        return GRN_CHAR_KANJI;
      case 0xb8 :
        return GRN_CHAR_KANJI;
      case 0xb9 :
        return GRN_CHAR_KANJI;
      case 0xba :
        return GRN_CHAR_KANJI;
      case 0xbb :
        return GRN_CHAR_KANJI;
      case 0xbc :
        return GRN_CHAR_KANJI;
      case 0xbd :
        return GRN_CHAR_KANJI;
      case 0xbe :
        return GRN_CHAR_KANJI;
      case 0xbf :
        return GRN_CHAR_KANJI;
      default :
        break;
      }
      break;
    case 0xe8 :
      switch (utf8[1]) {
      case 0x80 :
        return GRN_CHAR_KANJI;
      case 0x81 :
        return GRN_CHAR_KANJI;
      case 0x82 :
        return GRN_CHAR_KANJI;
      case 0x83 :
        return GRN_CHAR_KANJI;
      case 0x84 :
        return GRN_CHAR_KANJI;
      case 0x85 :
        return GRN_CHAR_KANJI;
      case 0x86 :
        return GRN_CHAR_KANJI;
      case 0x87 :
        return GRN_CHAR_KANJI;
      case 0x88 :
        return GRN_CHAR_KANJI;
      case 0x89 :
        return GRN_CHAR_KANJI;
      case 0x8a :
        return GRN_CHAR_KANJI;
      case 0x8b :
        return GRN_CHAR_KANJI;
      case 0x8c :
        return GRN_CHAR_KANJI;
      case 0x8d :
        return GRN_CHAR_KANJI;
      case 0x8e :
        return GRN_CHAR_KANJI;
      case 0x8f :
        return GRN_CHAR_KANJI;
      case 0x90 :
        return GRN_CHAR_KANJI;
      case 0x91 :
        return GRN_CHAR_KANJI;
      case 0x92 :
        return GRN_CHAR_KANJI;
      case 0x93 :
        return GRN_CHAR_KANJI;
      case 0x94 :
        return GRN_CHAR_KANJI;
      case 0x95 :
        return GRN_CHAR_KANJI;
      case 0x96 :
        return GRN_CHAR_KANJI;
      case 0x97 :
        return GRN_CHAR_KANJI;
      case 0x98 :
        return GRN_CHAR_KANJI;
      case 0x99 :
        return GRN_CHAR_KANJI;
      case 0x9a :
        return GRN_CHAR_KANJI;
      case 0x9b :
        return GRN_CHAR_KANJI;
      case 0x9c :
        return GRN_CHAR_KANJI;
      case 0x9d :
        return GRN_CHAR_KANJI;
      case 0x9e :
        return GRN_CHAR_KANJI;
      case 0x9f :
        return GRN_CHAR_KANJI;
      case 0xa0 :
        return GRN_CHAR_KANJI;
      case 0xa1 :
        return GRN_CHAR_KANJI;
      case 0xa2 :
        return GRN_CHAR_KANJI;
      case 0xa3 :
        return GRN_CHAR_KANJI;
      case 0xa4 :
        return GRN_CHAR_KANJI;
      case 0xa5 :
        return GRN_CHAR_KANJI;
      case 0xa6 :
        return GRN_CHAR_KANJI;
      case 0xa7 :
        return GRN_CHAR_KANJI;
      case 0xa8 :
        return GRN_CHAR_KANJI;
      case 0xa9 :
        return GRN_CHAR_KANJI;
      case 0xaa :
        return GRN_CHAR_KANJI;
      case 0xab :
        return GRN_CHAR_KANJI;
      case 0xac :
        return GRN_CHAR_KANJI;
      case 0xad :
        return GRN_CHAR_KANJI;
      case 0xae :
        return GRN_CHAR_KANJI;
      case 0xaf :
        return GRN_CHAR_KANJI;
      case 0xb0 :
        return GRN_CHAR_KANJI;
      case 0xb1 :
        return GRN_CHAR_KANJI;
      case 0xb2 :
        return GRN_CHAR_KANJI;
      case 0xb3 :
        return GRN_CHAR_KANJI;
      case 0xb4 :
        return GRN_CHAR_KANJI;
      case 0xb5 :
        return GRN_CHAR_KANJI;
      case 0xb6 :
        return GRN_CHAR_KANJI;
      case 0xb7 :
        return GRN_CHAR_KANJI;
      case 0xb8 :
        return GRN_CHAR_KANJI;
      case 0xb9 :
        return GRN_CHAR_KANJI;
      case 0xba :
        return GRN_CHAR_KANJI;
      case 0xbb :
        return GRN_CHAR_KANJI;
      case 0xbc :
        return GRN_CHAR_KANJI;
      case 0xbd :
        return GRN_CHAR_KANJI;
      case 0xbe :
        return GRN_CHAR_KANJI;
      case 0xbf :
        return GRN_CHAR_KANJI;
      default :
        break;
      }
      break;
    case 0xe9 :
      switch (utf8[1]) {
      case 0x80 :
        return GRN_CHAR_KANJI;
      case 0x81 :
        return GRN_CHAR_KANJI;
      case 0x82 :
        return GRN_CHAR_KANJI;
      case 0x83 :
        return GRN_CHAR_KANJI;
      case 0x84 :
        return GRN_CHAR_KANJI;
      case 0x85 :
        return GRN_CHAR_KANJI;
      case 0x86 :
        return GRN_CHAR_KANJI;
      case 0x87 :
        return GRN_CHAR_KANJI;
      case 0x88 :
        return GRN_CHAR_KANJI;
      case 0x89 :
        return GRN_CHAR_KANJI;
      case 0x8a :
        return GRN_CHAR_KANJI;
      case 0x8b :
        return GRN_CHAR_KANJI;
      case 0x8c :
        return GRN_CHAR_KANJI;
      case 0x8d :
        return GRN_CHAR_KANJI;
      case 0x8e :
        return GRN_CHAR_KANJI;
      case 0x8f :
        return GRN_CHAR_KANJI;
      case 0x90 :
        return GRN_CHAR_KANJI;
      case 0x91 :
        return GRN_CHAR_KANJI;
      case 0x92 :
        return GRN_CHAR_KANJI;
      case 0x93 :
        return GRN_CHAR_KANJI;
      case 0x94 :
        return GRN_CHAR_KANJI;
      case 0x95 :
        return GRN_CHAR_KANJI;
      case 0x96 :
        return GRN_CHAR_KANJI;
      case 0x97 :
        return GRN_CHAR_KANJI;
      case 0x98 :
        return GRN_CHAR_KANJI;
      case 0x99 :
        return GRN_CHAR_KANJI;
      case 0x9a :
        return GRN_CHAR_KANJI;
      case 0x9b :
        return GRN_CHAR_KANJI;
      case 0x9c :
        return GRN_CHAR_KANJI;
      case 0x9d :
        return GRN_CHAR_KANJI;
      case 0x9e :
        return GRN_CHAR_KANJI;
      case 0x9f :
        return GRN_CHAR_KANJI;
      case 0xa0 :
        return GRN_CHAR_KANJI;
      case 0xa1 :
        return GRN_CHAR_KANJI;
      case 0xa2 :
        return GRN_CHAR_KANJI;
      case 0xa3 :
        return GRN_CHAR_KANJI;
      case 0xa4 :
        return GRN_CHAR_KANJI;
      case 0xa5 :
        return GRN_CHAR_KANJI;
      case 0xa6 :
        return GRN_CHAR_KANJI;
      case 0xa7 :
        return GRN_CHAR_KANJI;
      case 0xa8 :
        return GRN_CHAR_KANJI;
      case 0xa9 :
        return GRN_CHAR_KANJI;
      case 0xaa :
        return GRN_CHAR_KANJI;
      case 0xab :
        return GRN_CHAR_KANJI;
      case 0xac :
        return GRN_CHAR_KANJI;
      case 0xad :
        return GRN_CHAR_KANJI;
      case 0xae :
        return GRN_CHAR_KANJI;
      case 0xaf :
        return GRN_CHAR_KANJI;
      case 0xb0 :
        return GRN_CHAR_KANJI;
      case 0xb1 :
        return GRN_CHAR_KANJI;
      case 0xb2 :
        return GRN_CHAR_KANJI;
      case 0xb3 :
        return GRN_CHAR_KANJI;
      case 0xb4 :
        return GRN_CHAR_KANJI;
      case 0xb5 :
        return GRN_CHAR_KANJI;
      case 0xb6 :
        return GRN_CHAR_KANJI;
      case 0xb7 :
        return GRN_CHAR_KANJI;
      case 0xb8 :
        return GRN_CHAR_KANJI;
      case 0xb9 :
        return GRN_CHAR_KANJI;
      case 0xba :
        return GRN_CHAR_KANJI;
      case 0xbb :
        return GRN_CHAR_KANJI;
      case 0xbc :
        return GRN_CHAR_KANJI;
      case 0xbd :
        return GRN_CHAR_KANJI;
      case 0xbe :
        return GRN_CHAR_KANJI;
      case 0xbf :
        return GRN_CHAR_KANJI;
      default :
        break;
      }
      break;
    case 0xea :
      switch (utf8[1]) {
      case 0x80 :
        return GRN_CHAR_KANJI;
      case 0x81 :
        return GRN_CHAR_KANJI;
      case 0x82 :
        return GRN_CHAR_KANJI;
      case 0x83 :
        return GRN_CHAR_KANJI;
      case 0x84 :
        return GRN_CHAR_KANJI;
      case 0x85 :
        return GRN_CHAR_KANJI;
      case 0x86 :
        return GRN_CHAR_KANJI;
      case 0x87 :
        return GRN_CHAR_KANJI;
      case 0x88 :
        return GRN_CHAR_KANJI;
      case 0x89 :
        return GRN_CHAR_KANJI;
      case 0x8a :
        return GRN_CHAR_KANJI;
      case 0x8b :
        return GRN_CHAR_KANJI;
      case 0x8c :
        return GRN_CHAR_KANJI;
      case 0x8d :
        return GRN_CHAR_KANJI;
      case 0x8e :
        return GRN_CHAR_KANJI;
      case 0x8f :
        return GRN_CHAR_KANJI;
      case 0x90 :
        return GRN_CHAR_KANJI;
      case 0x91 :
        return GRN_CHAR_KANJI;
      case 0x92 :
        return GRN_CHAR_KANJI;
      case 0x93 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x8f) {
          return GRN_CHAR_KANJI;
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xa1) {
          return grn_nfkc50_char_type_table_ea9c[utf8[2] - 0x80];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xab) {
          return grn_nfkc50_char_type_table_eaa0[utf8[2] - 0x80];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb7) {
          return grn_nfkc50_char_type_table_eaa1[utf8[2] - 0x80];
        }
        break;
      case 0xb0 :
        return GRN_CHAR_KANJI;
      case 0xb1 :
        return GRN_CHAR_KANJI;
      case 0xb2 :
        return GRN_CHAR_KANJI;
      case 0xb3 :
        return GRN_CHAR_KANJI;
      case 0xb4 :
        return GRN_CHAR_KANJI;
      case 0xb5 :
        return GRN_CHAR_KANJI;
      case 0xb6 :
        return GRN_CHAR_KANJI;
      case 0xb7 :
        return GRN_CHAR_KANJI;
      case 0xb8 :
        return GRN_CHAR_KANJI;
      case 0xb9 :
        return GRN_CHAR_KANJI;
      case 0xba :
        return GRN_CHAR_KANJI;
      case 0xbb :
        return GRN_CHAR_KANJI;
      case 0xbc :
        return GRN_CHAR_KANJI;
      case 0xbd :
        return GRN_CHAR_KANJI;
      case 0xbe :
        return GRN_CHAR_KANJI;
      case 0xbf :
        return GRN_CHAR_KANJI;
      default :
        break;
      }
      break;
    case 0xeb :
      switch (utf8[1]) {
      case 0x80 :
        return GRN_CHAR_KANJI;
      case 0x81 :
        return GRN_CHAR_KANJI;
      case 0x82 :
        return GRN_CHAR_KANJI;
      case 0x83 :
        return GRN_CHAR_KANJI;
      case 0x84 :
        return GRN_CHAR_KANJI;
      case 0x85 :
        return GRN_CHAR_KANJI;
      case 0x86 :
        return GRN_CHAR_KANJI;
      case 0x87 :
        return GRN_CHAR_KANJI;
      case 0x88 :
        return GRN_CHAR_KANJI;
      case 0x89 :
        return GRN_CHAR_KANJI;
      case 0x8a :
        return GRN_CHAR_KANJI;
      case 0x8b :
        return GRN_CHAR_KANJI;
      case 0x8c :
        return GRN_CHAR_KANJI;
      case 0x8d :
        return GRN_CHAR_KANJI;
      case 0x8e :
        return GRN_CHAR_KANJI;
      case 0x8f :
        return GRN_CHAR_KANJI;
      case 0x90 :
        return GRN_CHAR_KANJI;
      case 0x91 :
        return GRN_CHAR_KANJI;
      case 0x92 :
        return GRN_CHAR_KANJI;
      case 0x93 :
        return GRN_CHAR_KANJI;
      case 0x94 :
        return GRN_CHAR_KANJI;
      case 0x95 :
        return GRN_CHAR_KANJI;
      case 0x96 :
        return GRN_CHAR_KANJI;
      case 0x97 :
        return GRN_CHAR_KANJI;
      case 0x98 :
        return GRN_CHAR_KANJI;
      case 0x99 :
        return GRN_CHAR_KANJI;
      case 0x9a :
        return GRN_CHAR_KANJI;
      case 0x9b :
        return GRN_CHAR_KANJI;
      case 0x9c :
        return GRN_CHAR_KANJI;
      case 0x9d :
        return GRN_CHAR_KANJI;
      case 0x9e :
        return GRN_CHAR_KANJI;
      case 0x9f :
        return GRN_CHAR_KANJI;
      case 0xa0 :
        return GRN_CHAR_KANJI;
      case 0xa1 :
        return GRN_CHAR_KANJI;
      case 0xa2 :
        return GRN_CHAR_KANJI;
      case 0xa3 :
        return GRN_CHAR_KANJI;
      case 0xa4 :
        return GRN_CHAR_KANJI;
      case 0xa5 :
        return GRN_CHAR_KANJI;
      case 0xa6 :
        return GRN_CHAR_KANJI;
      case 0xa7 :
        return GRN_CHAR_KANJI;
      case 0xa8 :
        return GRN_CHAR_KANJI;
      case 0xa9 :
        return GRN_CHAR_KANJI;
      case 0xaa :
        return GRN_CHAR_KANJI;
      case 0xab :
        return GRN_CHAR_KANJI;
      case 0xac :
        return GRN_CHAR_KANJI;
      case 0xad :
        return GRN_CHAR_KANJI;
      case 0xae :
        return GRN_CHAR_KANJI;
      case 0xaf :
        return GRN_CHAR_KANJI;
      case 0xb0 :
        return GRN_CHAR_KANJI;
      case 0xb1 :
        return GRN_CHAR_KANJI;
      case 0xb2 :
        return GRN_CHAR_KANJI;
      case 0xb3 :
        return GRN_CHAR_KANJI;
      case 0xb4 :
        return GRN_CHAR_KANJI;
      case 0xb5 :
        return GRN_CHAR_KANJI;
      case 0xb6 :
        return GRN_CHAR_KANJI;
      case 0xb7 :
        return GRN_CHAR_KANJI;
      case 0xb8 :
        return GRN_CHAR_KANJI;
      case 0xb9 :
        return GRN_CHAR_KANJI;
      case 0xba :
        return GRN_CHAR_KANJI;
      case 0xbb :
        return GRN_CHAR_KANJI;
      case 0xbc :
        return GRN_CHAR_KANJI;
      case 0xbd :
        return GRN_CHAR_KANJI;
      case 0xbe :
        return GRN_CHAR_KANJI;
      case 0xbf :
        return GRN_CHAR_KANJI;
      default :
        break;
      }
      break;
    case 0xec :
      switch (utf8[1]) {
      case 0x80 :
        return GRN_CHAR_KANJI;
      case 0x81 :
        return GRN_CHAR_KANJI;
      case 0x82 :
        return GRN_CHAR_KANJI;
      case 0x83 :
        return GRN_CHAR_KANJI;
      case 0x84 :
        return GRN_CHAR_KANJI;
      case 0x85 :
        return GRN_CHAR_KANJI;
      case 0x86 :
        return GRN_CHAR_KANJI;
      case 0x87 :
        return GRN_CHAR_KANJI;
      case 0x88 :
        return GRN_CHAR_KANJI;
      case 0x89 :
        return GRN_CHAR_KANJI;
      case 0x8a :
        return GRN_CHAR_KANJI;
      case 0x8b :
        return GRN_CHAR_KANJI;
      case 0x8c :
        return GRN_CHAR_KANJI;
      case 0x8d :
        return GRN_CHAR_KANJI;
      case 0x8e :
        return GRN_CHAR_KANJI;
      case 0x8f :
        return GRN_CHAR_KANJI;
      case 0x90 :
        return GRN_CHAR_KANJI;
      case 0x91 :
        return GRN_CHAR_KANJI;
      case 0x92 :
        return GRN_CHAR_KANJI;
      case 0x93 :
        return GRN_CHAR_KANJI;
      case 0x94 :
        return GRN_CHAR_KANJI;
      case 0x95 :
        return GRN_CHAR_KANJI;
      case 0x96 :
        return GRN_CHAR_KANJI;
      case 0x97 :
        return GRN_CHAR_KANJI;
      case 0x98 :
        return GRN_CHAR_KANJI;
      case 0x99 :
        return GRN_CHAR_KANJI;
      case 0x9a :
        return GRN_CHAR_KANJI;
      case 0x9b :
        return GRN_CHAR_KANJI;
      case 0x9c :
        return GRN_CHAR_KANJI;
      case 0x9d :
        return GRN_CHAR_KANJI;
      case 0x9e :
        return GRN_CHAR_KANJI;
      case 0x9f :
        return GRN_CHAR_KANJI;
      case 0xa0 :
        return GRN_CHAR_KANJI;
      case 0xa1 :
        return GRN_CHAR_KANJI;
      case 0xa2 :
        return GRN_CHAR_KANJI;
      case 0xa3 :
        return GRN_CHAR_KANJI;
      case 0xa4 :
        return GRN_CHAR_KANJI;
      case 0xa5 :
        return GRN_CHAR_KANJI;
      case 0xa6 :
        return GRN_CHAR_KANJI;
      case 0xa7 :
        return GRN_CHAR_KANJI;
      case 0xa8 :
        return GRN_CHAR_KANJI;
      case 0xa9 :
        return GRN_CHAR_KANJI;
      case 0xaa :
        return GRN_CHAR_KANJI;
      case 0xab :
        return GRN_CHAR_KANJI;
      case 0xac :
        return GRN_CHAR_KANJI;
      case 0xad :
        return GRN_CHAR_KANJI;
      case 0xae :
        return GRN_CHAR_KANJI;
      case 0xaf :
        return GRN_CHAR_KANJI;
      case 0xb0 :
        return GRN_CHAR_KANJI;
      case 0xb1 :
        return GRN_CHAR_KANJI;
      case 0xb2 :
        return GRN_CHAR_KANJI;
      case 0xb3 :
        return GRN_CHAR_KANJI;
      case 0xb4 :
        return GRN_CHAR_KANJI;
      case 0xb5 :
        return GRN_CHAR_KANJI;
      case 0xb6 :
        return GRN_CHAR_KANJI;
      case 0xb7 :
        return GRN_CHAR_KANJI;
      case 0xb8 :
        return GRN_CHAR_KANJI;
      case 0xb9 :
        return GRN_CHAR_KANJI;
      case 0xba :
        return GRN_CHAR_KANJI;
      case 0xbb :
        return GRN_CHAR_KANJI;
      case 0xbc :
        return GRN_CHAR_KANJI;
      case 0xbd :
        return GRN_CHAR_KANJI;
      case 0xbe :
        return GRN_CHAR_KANJI;
      case 0xbf :
        return GRN_CHAR_KANJI;
      default :
        break;
      }
      break;
    case 0xed :
      switch (utf8[1]) {
      case 0x80 :
        return GRN_CHAR_KANJI;
      case 0x81 :
        return GRN_CHAR_KANJI;
      case 0x82 :
        return GRN_CHAR_KANJI;
      case 0x83 :
        return GRN_CHAR_KANJI;
      case 0x84 :
        return GRN_CHAR_KANJI;
      case 0x85 :
        return GRN_CHAR_KANJI;
      case 0x86 :
        return GRN_CHAR_KANJI;
      case 0x87 :
        return GRN_CHAR_KANJI;
      case 0x88 :
        return GRN_CHAR_KANJI;
      case 0x89 :
        return GRN_CHAR_KANJI;
      case 0x8a :
        return GRN_CHAR_KANJI;
      case 0x8b :
        return GRN_CHAR_KANJI;
      case 0x8c :
        return GRN_CHAR_KANJI;
      case 0x8d :
        return GRN_CHAR_KANJI;
      case 0x8e :
        return GRN_CHAR_KANJI;
      case 0x8f :
        return GRN_CHAR_KANJI;
      case 0x90 :
        return GRN_CHAR_KANJI;
      case 0x91 :
        return GRN_CHAR_KANJI;
      case 0x92 :
        return GRN_CHAR_KANJI;
      case 0x93 :
        return GRN_CHAR_KANJI;
      case 0x94 :
        return GRN_CHAR_KANJI;
      case 0x95 :
        return GRN_CHAR_KANJI;
      case 0x96 :
        return GRN_CHAR_KANJI;
      case 0x97 :
        return GRN_CHAR_KANJI;
      case 0x98 :
        return GRN_CHAR_KANJI;
      case 0x99 :
        return GRN_CHAR_KANJI;
      case 0x9a :
        return GRN_CHAR_KANJI;
      case 0x9b :
        return GRN_CHAR_KANJI;
      case 0x9c :
        return GRN_CHAR_KANJI;
      case 0x9d :
        return GRN_CHAR_KANJI;
      case 0x9e :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xaf) {
          return GRN_CHAR_KANJI;
        }
        break;
      default :
        break;
      }
      break;
    case 0xef :
      switch (utf8[1]) {
      case 0xa4 :
        return GRN_CHAR_KANJI;
      case 0xa5 :
        return GRN_CHAR_KANJI;
      case 0xa6 :
        return GRN_CHAR_KANJI;
      case 0xa7 :
        return GRN_CHAR_KANJI;
      case 0xa8 :
        return GRN_CHAR_KANJI;
      case 0xa9 :
        return GRN_CHAR_KANJI;
      case 0xaa :
        return GRN_CHAR_KANJI;
      case 0xab :
        return GRN_CHAR_KANJI;
      case 0xac :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xbe) {
          return grn_nfkc50_char_type_table_efac[utf8[2] - 0x80];
        }
        break;
      case 0xad :
        return grn_nfkc50_char_type_table_efad[utf8[2] - 0x80];
      case 0xae :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb1) {
          return GRN_CHAR_ALPHA;
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x93 &&
            utf8[2] <= 0xbf) {
          return GRN_CHAR_ALPHA;
        }
        break;
      case 0xb0 :
        return GRN_CHAR_ALPHA;
      case 0xb1 :
        return GRN_CHAR_ALPHA;
      case 0xb2 :
        return GRN_CHAR_ALPHA;
      case 0xb3 :
        return GRN_CHAR_ALPHA;
      case 0xb4 :
        return grn_nfkc50_char_type_table_efb4[utf8[2] - 0x80];
      case 0xb5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xbf) {
          return GRN_CHAR_ALPHA;
        }
        break;
      case 0xb6 :
        return grn_nfkc50_char_type_table_efb6[utf8[2] - 0x80];
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xbd) {
          return grn_nfkc50_char_type_table_efb7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xbf) {
          return grn_nfkc50_char_type_table_efb8[utf8[2] - 0x90];
        }
        break;
      case 0xb9 :
        return grn_nfkc50_char_type_table_efb9[utf8[2] - 0x80];
      case 0xba :
        return GRN_CHAR_ALPHA;
      case 0xbb :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xbc) {
          return GRN_CHAR_ALPHA;
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x81 &&
            utf8[2] <= 0xbf) {
          return grn_nfkc50_char_type_table_efbc[utf8[2] - 0x81];
        }
        break;
      case 0xbd :
        return grn_nfkc50_char_type_table_efbd[utf8[2] - 0x80];
      case 0xbe :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xbe) {
          return GRN_CHAR_ALPHA;
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x82 &&
            utf8[2] <= 0xbf) {
          return grn_nfkc50_char_type_table_efbf[utf8[2] - 0x82];
        }
        break;
      default :
        break;
      }
      break;
    case 0xf0 :
      switch (utf8[1]) {
      case 0x90 :
        switch (utf8[2]) {
        case 0x80 :
          return grn_nfkc50_char_type_table_f09080[utf8[3] - 0x80];
        case 0x81 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0x9d) {
            return grn_nfkc50_char_type_table_f09081[utf8[3] - 0x80];
          }
          break;
        case 0x82 :
          return GRN_CHAR_ALPHA;
        case 0x83 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xba) {
            return GRN_CHAR_ALPHA;
          }
          break;
        case 0x84 :
          return grn_nfkc50_char_type_table_f09084[utf8[3] - 0x80];
        case 0x85 :
          return grn_nfkc50_char_type_table_f09085[utf8[3] - 0x80];
        case 0x86 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0x8a) {
            return grn_nfkc50_char_type_table_f09086[utf8[3] - 0x80];
          }
          break;
        case 0x8c :
          return grn_nfkc50_char_type_table_f0908c[utf8[3] - 0x80];
        case 0x8d :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0x8a) {
            return grn_nfkc50_char_type_table_f0908d[utf8[3] - 0x80];
          }
          break;
        case 0x8e :
          return grn_nfkc50_char_type_table_f0908e[utf8[3] - 0x80];
        case 0x8f :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0x95) {
            return grn_nfkc50_char_type_table_f0908f[utf8[3] - 0x80];
          }
          break;
        case 0x90 :
          return GRN_CHAR_ALPHA;
        case 0x91 :
          return GRN_CHAR_ALPHA;
        case 0x92 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xa9) {
            return grn_nfkc50_char_type_table_f09092[utf8[3] - 0x80];
          }
          break;
        case 0xa0 :
          return grn_nfkc50_char_type_table_f090a0[utf8[3] - 0x80];
        case 0xa4 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0x9f) {
            return grn_nfkc50_char_type_table_f090a4[utf8[3] - 0x80];
          }
          break;
        case 0xa8 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xb3) {
            return grn_nfkc50_char_type_table_f090a8[utf8[3] - 0x80];
          }
          break;
        case 0xa9 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0x98) {
            return grn_nfkc50_char_type_table_f090a9[utf8[3] - 0x80];
          }
          break;
        default :
          break;
        }
        break;
      case 0x92 :
        switch (utf8[2]) {
        case 0x80 :
          return GRN_CHAR_ALPHA;
        case 0x81 :
          return GRN_CHAR_ALPHA;
        case 0x82 :
          return GRN_CHAR_ALPHA;
        case 0x83 :
          return GRN_CHAR_ALPHA;
        case 0x84 :
          return GRN_CHAR_ALPHA;
        case 0x85 :
          return GRN_CHAR_ALPHA;
        case 0x86 :
          return GRN_CHAR_ALPHA;
        case 0x87 :
          return GRN_CHAR_ALPHA;
        case 0x88 :
          return GRN_CHAR_ALPHA;
        case 0x89 :
          return GRN_CHAR_ALPHA;
        case 0x8a :
          return GRN_CHAR_ALPHA;
        case 0x8b :
          return GRN_CHAR_ALPHA;
        case 0x8c :
          return GRN_CHAR_ALPHA;
        case 0x8d :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xae) {
            return GRN_CHAR_ALPHA;
          }
          break;
        case 0x90 :
          return GRN_CHAR_DIGIT;
        case 0x91 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xb3) {
            return grn_nfkc50_char_type_table_f09291[utf8[3] - 0x80];
          }
          break;
        default :
          break;
        }
        break;
      case 0x9d :
        switch (utf8[2]) {
        case 0x80 :
          return GRN_CHAR_SYMBOL;
        case 0x81 :
          return GRN_CHAR_SYMBOL;
        case 0x82 :
          return GRN_CHAR_SYMBOL;
        case 0x83 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xb5) {
            return GRN_CHAR_SYMBOL;
          }
          break;
        case 0x84 :
          return grn_nfkc50_char_type_table_f09d84[utf8[3] - 0x80];
        case 0x85 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xac) {
            return grn_nfkc50_char_type_table_f09d85[utf8[3] - 0x80];
          }
          break;
        case 0x86 :
          if (utf8[3] >= 0x83 &&
              utf8[3] <= 0xbf) {
            return grn_nfkc50_char_type_table_f09d86[utf8[3] - 0x83];
          }
          break;
        case 0x87 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0x9d) {
            return GRN_CHAR_SYMBOL;
          }
          break;
        case 0x88 :
          return GRN_CHAR_SYMBOL;
        case 0x89 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0x85) {
            return grn_nfkc50_char_type_table_f09d89[utf8[3] - 0x80];
          }
          break;
        case 0x8c :
          return GRN_CHAR_SYMBOL;
        case 0x8d :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xb1) {
            return grn_nfkc50_char_type_table_f09d8d[utf8[3] - 0x80];
          }
          break;
        case 0x90 :
          return GRN_CHAR_ALPHA;
        case 0x91 :
          return grn_nfkc50_char_type_table_f09d91[utf8[3] - 0x80];
        case 0x92 :
          return grn_nfkc50_char_type_table_f09d92[utf8[3] - 0x80];
        case 0x93 :
          return grn_nfkc50_char_type_table_f09d93[utf8[3] - 0x80];
        case 0x94 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xbe) {
            return grn_nfkc50_char_type_table_f09d94[utf8[3] - 0x80];
          }
          break;
        case 0x95 :
          return grn_nfkc50_char_type_table_f09d95[utf8[3] - 0x80];
        case 0x96 :
          return GRN_CHAR_ALPHA;
        case 0x97 :
          return GRN_CHAR_ALPHA;
        case 0x98 :
          return GRN_CHAR_ALPHA;
        case 0x99 :
          return GRN_CHAR_ALPHA;
        case 0x9a :
          return grn_nfkc50_char_type_table_f09d9a[utf8[3] - 0x80];
        case 0x9b :
          return grn_nfkc50_char_type_table_f09d9b[utf8[3] - 0x80];
        case 0x9c :
          return grn_nfkc50_char_type_table_f09d9c[utf8[3] - 0x80];
        case 0x9d :
          return grn_nfkc50_char_type_table_f09d9d[utf8[3] - 0x80];
        case 0x9e :
          return grn_nfkc50_char_type_table_f09d9e[utf8[3] - 0x80];
        case 0x9f :
          return grn_nfkc50_char_type_table_f09d9f[utf8[3] - 0x80];
        default :
          break;
        }
        break;
      case 0xa0 :
        switch (utf8[2]) {
        case 0x80 :
          return GRN_CHAR_KANJI;
        case 0x81 :
          return GRN_CHAR_KANJI;
        case 0x82 :
          return GRN_CHAR_KANJI;
        case 0x83 :
          return GRN_CHAR_KANJI;
        case 0x84 :
          return GRN_CHAR_KANJI;
        case 0x85 :
          return GRN_CHAR_KANJI;
        case 0x86 :
          return GRN_CHAR_KANJI;
        case 0x87 :
          return GRN_CHAR_KANJI;
        case 0x88 :
          return GRN_CHAR_KANJI;
        case 0x89 :
          return GRN_CHAR_KANJI;
        case 0x8a :
          return GRN_CHAR_KANJI;
        case 0x8b :
          return GRN_CHAR_KANJI;
        case 0x8c :
          return GRN_CHAR_KANJI;
        case 0x8d :
          return GRN_CHAR_KANJI;
        case 0x8e :
          return GRN_CHAR_KANJI;
        case 0x8f :
          return GRN_CHAR_KANJI;
        case 0x90 :
          return GRN_CHAR_KANJI;
        case 0x91 :
          return GRN_CHAR_KANJI;
        case 0x92 :
          return GRN_CHAR_KANJI;
        case 0x93 :
          return GRN_CHAR_KANJI;
        case 0x94 :
          return GRN_CHAR_KANJI;
        case 0x95 :
          return GRN_CHAR_KANJI;
        case 0x96 :
          return GRN_CHAR_KANJI;
        case 0x97 :
          return GRN_CHAR_KANJI;
        case 0x98 :
          return GRN_CHAR_KANJI;
        case 0x99 :
          return GRN_CHAR_KANJI;
        case 0x9a :
          return GRN_CHAR_KANJI;
        case 0x9b :
          return GRN_CHAR_KANJI;
        case 0x9c :
          return GRN_CHAR_KANJI;
        case 0x9d :
          return GRN_CHAR_KANJI;
        case 0x9e :
          return GRN_CHAR_KANJI;
        case 0x9f :
          return GRN_CHAR_KANJI;
        case 0xa0 :
          return GRN_CHAR_KANJI;
        case 0xa1 :
          return GRN_CHAR_KANJI;
        case 0xa2 :
          return GRN_CHAR_KANJI;
        case 0xa3 :
          return GRN_CHAR_KANJI;
        case 0xa4 :
          return GRN_CHAR_KANJI;
        case 0xa5 :
          return GRN_CHAR_KANJI;
        case 0xa6 :
          return GRN_CHAR_KANJI;
        case 0xa7 :
          return GRN_CHAR_KANJI;
        case 0xa8 :
          return GRN_CHAR_KANJI;
        case 0xa9 :
          return GRN_CHAR_KANJI;
        case 0xaa :
          return GRN_CHAR_KANJI;
        case 0xab :
          return GRN_CHAR_KANJI;
        case 0xac :
          return GRN_CHAR_KANJI;
        case 0xad :
          return GRN_CHAR_KANJI;
        case 0xae :
          return GRN_CHAR_KANJI;
        case 0xaf :
          return GRN_CHAR_KANJI;
        case 0xb0 :
          return GRN_CHAR_KANJI;
        case 0xb1 :
          return GRN_CHAR_KANJI;
        case 0xb2 :
          return GRN_CHAR_KANJI;
        case 0xb3 :
          return GRN_CHAR_KANJI;
        case 0xb4 :
          return GRN_CHAR_KANJI;
        case 0xb5 :
          return GRN_CHAR_KANJI;
        case 0xb6 :
          return GRN_CHAR_KANJI;
        case 0xb7 :
          return GRN_CHAR_KANJI;
        case 0xb8 :
          return GRN_CHAR_KANJI;
        case 0xb9 :
          return GRN_CHAR_KANJI;
        case 0xba :
          return GRN_CHAR_KANJI;
        case 0xbb :
          return GRN_CHAR_KANJI;
        case 0xbc :
          return GRN_CHAR_KANJI;
        case 0xbd :
          return GRN_CHAR_KANJI;
        case 0xbe :
          return GRN_CHAR_KANJI;
        case 0xbf :
          return GRN_CHAR_KANJI;
        default :
          break;
        }
        break;
      case 0xa1 :
        switch (utf8[2]) {
        case 0x80 :
          return GRN_CHAR_KANJI;
        case 0x81 :
          return GRN_CHAR_KANJI;
        case 0x82 :
          return GRN_CHAR_KANJI;
        case 0x83 :
          return GRN_CHAR_KANJI;
        case 0x84 :
          return GRN_CHAR_KANJI;
        case 0x85 :
          return GRN_CHAR_KANJI;
        case 0x86 :
          return GRN_CHAR_KANJI;
        case 0x87 :
          return GRN_CHAR_KANJI;
        case 0x88 :
          return GRN_CHAR_KANJI;
        case 0x89 :
          return GRN_CHAR_KANJI;
        case 0x8a :
          return GRN_CHAR_KANJI;
        case 0x8b :
          return GRN_CHAR_KANJI;
        case 0x8c :
          return GRN_CHAR_KANJI;
        case 0x8d :
          return GRN_CHAR_KANJI;
        case 0x8e :
          return GRN_CHAR_KANJI;
        case 0x8f :
          return GRN_CHAR_KANJI;
        case 0x90 :
          return GRN_CHAR_KANJI;
        case 0x91 :
          return GRN_CHAR_KANJI;
        case 0x92 :
          return GRN_CHAR_KANJI;
        case 0x93 :
          return GRN_CHAR_KANJI;
        case 0x94 :
          return GRN_CHAR_KANJI;
        case 0x95 :
          return GRN_CHAR_KANJI;
        case 0x96 :
          return GRN_CHAR_KANJI;
        case 0x97 :
          return GRN_CHAR_KANJI;
        case 0x98 :
          return GRN_CHAR_KANJI;
        case 0x99 :
          return GRN_CHAR_KANJI;
        case 0x9a :
          return GRN_CHAR_KANJI;
        case 0x9b :
          return GRN_CHAR_KANJI;
        case 0x9c :
          return GRN_CHAR_KANJI;
        case 0x9d :
          return GRN_CHAR_KANJI;
        case 0x9e :
          return GRN_CHAR_KANJI;
        case 0x9f :
          return GRN_CHAR_KANJI;
        case 0xa0 :
          return GRN_CHAR_KANJI;
        case 0xa1 :
          return GRN_CHAR_KANJI;
        case 0xa2 :
          return GRN_CHAR_KANJI;
        case 0xa3 :
          return GRN_CHAR_KANJI;
        case 0xa4 :
          return GRN_CHAR_KANJI;
        case 0xa5 :
          return GRN_CHAR_KANJI;
        case 0xa6 :
          return GRN_CHAR_KANJI;
        case 0xa7 :
          return GRN_CHAR_KANJI;
        case 0xa8 :
          return GRN_CHAR_KANJI;
        case 0xa9 :
          return GRN_CHAR_KANJI;
        case 0xaa :
          return GRN_CHAR_KANJI;
        case 0xab :
          return GRN_CHAR_KANJI;
        case 0xac :
          return GRN_CHAR_KANJI;
        case 0xad :
          return GRN_CHAR_KANJI;
        case 0xae :
          return GRN_CHAR_KANJI;
        case 0xaf :
          return GRN_CHAR_KANJI;
        case 0xb0 :
          return GRN_CHAR_KANJI;
        case 0xb1 :
          return GRN_CHAR_KANJI;
        case 0xb2 :
          return GRN_CHAR_KANJI;
        case 0xb3 :
          return GRN_CHAR_KANJI;
        case 0xb4 :
          return GRN_CHAR_KANJI;
        case 0xb5 :
          return GRN_CHAR_KANJI;
        case 0xb6 :
          return GRN_CHAR_KANJI;
        case 0xb7 :
          return GRN_CHAR_KANJI;
        case 0xb8 :
          return GRN_CHAR_KANJI;
        case 0xb9 :
          return GRN_CHAR_KANJI;
        case 0xba :
          return GRN_CHAR_KANJI;
        case 0xbb :
          return GRN_CHAR_KANJI;
        case 0xbc :
          return GRN_CHAR_KANJI;
        case 0xbd :
          return GRN_CHAR_KANJI;
        case 0xbe :
          return GRN_CHAR_KANJI;
        case 0xbf :
          return GRN_CHAR_KANJI;
        default :
          break;
        }
        break;
      case 0xa2 :
        switch (utf8[2]) {
        case 0x80 :
          return GRN_CHAR_KANJI;
        case 0x81 :
          return GRN_CHAR_KANJI;
        case 0x82 :
          return GRN_CHAR_KANJI;
        case 0x83 :
          return GRN_CHAR_KANJI;
        case 0x84 :
          return GRN_CHAR_KANJI;
        case 0x85 :
          return GRN_CHAR_KANJI;
        case 0x86 :
          return GRN_CHAR_KANJI;
        case 0x87 :
          return GRN_CHAR_KANJI;
        case 0x88 :
          return GRN_CHAR_KANJI;
        case 0x89 :
          return GRN_CHAR_KANJI;
        case 0x8a :
          return GRN_CHAR_KANJI;
        case 0x8b :
          return GRN_CHAR_KANJI;
        case 0x8c :
          return GRN_CHAR_KANJI;
        case 0x8d :
          return GRN_CHAR_KANJI;
        case 0x8e :
          return GRN_CHAR_KANJI;
        case 0x8f :
          return GRN_CHAR_KANJI;
        case 0x90 :
          return GRN_CHAR_KANJI;
        case 0x91 :
          return GRN_CHAR_KANJI;
        case 0x92 :
          return GRN_CHAR_KANJI;
        case 0x93 :
          return GRN_CHAR_KANJI;
        case 0x94 :
          return GRN_CHAR_KANJI;
        case 0x95 :
          return GRN_CHAR_KANJI;
        case 0x96 :
          return GRN_CHAR_KANJI;
        case 0x97 :
          return GRN_CHAR_KANJI;
        case 0x98 :
          return GRN_CHAR_KANJI;
        case 0x99 :
          return GRN_CHAR_KANJI;
        case 0x9a :
          return GRN_CHAR_KANJI;
        case 0x9b :
          return GRN_CHAR_KANJI;
        case 0x9c :
          return GRN_CHAR_KANJI;
        case 0x9d :
          return GRN_CHAR_KANJI;
        case 0x9e :
          return GRN_CHAR_KANJI;
        case 0x9f :
          return GRN_CHAR_KANJI;
        case 0xa0 :
          return GRN_CHAR_KANJI;
        case 0xa1 :
          return GRN_CHAR_KANJI;
        case 0xa2 :
          return GRN_CHAR_KANJI;
        case 0xa3 :
          return GRN_CHAR_KANJI;
        case 0xa4 :
          return GRN_CHAR_KANJI;
        case 0xa5 :
          return GRN_CHAR_KANJI;
        case 0xa6 :
          return GRN_CHAR_KANJI;
        case 0xa7 :
          return GRN_CHAR_KANJI;
        case 0xa8 :
          return GRN_CHAR_KANJI;
        case 0xa9 :
          return GRN_CHAR_KANJI;
        case 0xaa :
          return GRN_CHAR_KANJI;
        case 0xab :
          return GRN_CHAR_KANJI;
        case 0xac :
          return GRN_CHAR_KANJI;
        case 0xad :
          return GRN_CHAR_KANJI;
        case 0xae :
          return GRN_CHAR_KANJI;
        case 0xaf :
          return GRN_CHAR_KANJI;
        case 0xb0 :
          return GRN_CHAR_KANJI;
        case 0xb1 :
          return GRN_CHAR_KANJI;
        case 0xb2 :
          return GRN_CHAR_KANJI;
        case 0xb3 :
          return GRN_CHAR_KANJI;
        case 0xb4 :
          return GRN_CHAR_KANJI;
        case 0xb5 :
          return GRN_CHAR_KANJI;
        case 0xb6 :
          return GRN_CHAR_KANJI;
        case 0xb7 :
          return GRN_CHAR_KANJI;
        case 0xb8 :
          return GRN_CHAR_KANJI;
        case 0xb9 :
          return GRN_CHAR_KANJI;
        case 0xba :
          return GRN_CHAR_KANJI;
        case 0xbb :
          return GRN_CHAR_KANJI;
        case 0xbc :
          return GRN_CHAR_KANJI;
        case 0xbd :
          return GRN_CHAR_KANJI;
        case 0xbe :
          return GRN_CHAR_KANJI;
        case 0xbf :
          return GRN_CHAR_KANJI;
        default :
          break;
        }
        break;
      case 0xa3 :
        switch (utf8[2]) {
        case 0x80 :
          return GRN_CHAR_KANJI;
        case 0x81 :
          return GRN_CHAR_KANJI;
        case 0x82 :
          return GRN_CHAR_KANJI;
        case 0x83 :
          return GRN_CHAR_KANJI;
        case 0x84 :
          return GRN_CHAR_KANJI;
        case 0x85 :
          return GRN_CHAR_KANJI;
        case 0x86 :
          return GRN_CHAR_KANJI;
        case 0x87 :
          return GRN_CHAR_KANJI;
        case 0x88 :
          return GRN_CHAR_KANJI;
        case 0x89 :
          return GRN_CHAR_KANJI;
        case 0x8a :
          return GRN_CHAR_KANJI;
        case 0x8b :
          return GRN_CHAR_KANJI;
        case 0x8c :
          return GRN_CHAR_KANJI;
        case 0x8d :
          return GRN_CHAR_KANJI;
        case 0x8e :
          return GRN_CHAR_KANJI;
        case 0x8f :
          return GRN_CHAR_KANJI;
        case 0x90 :
          return GRN_CHAR_KANJI;
        case 0x91 :
          return GRN_CHAR_KANJI;
        case 0x92 :
          return GRN_CHAR_KANJI;
        case 0x93 :
          return GRN_CHAR_KANJI;
        case 0x94 :
          return GRN_CHAR_KANJI;
        case 0x95 :
          return GRN_CHAR_KANJI;
        case 0x96 :
          return GRN_CHAR_KANJI;
        case 0x97 :
          return GRN_CHAR_KANJI;
        case 0x98 :
          return GRN_CHAR_KANJI;
        case 0x99 :
          return GRN_CHAR_KANJI;
        case 0x9a :
          return GRN_CHAR_KANJI;
        case 0x9b :
          return GRN_CHAR_KANJI;
        case 0x9c :
          return GRN_CHAR_KANJI;
        case 0x9d :
          return GRN_CHAR_KANJI;
        case 0x9e :
          return GRN_CHAR_KANJI;
        case 0x9f :
          return GRN_CHAR_KANJI;
        case 0xa0 :
          return GRN_CHAR_KANJI;
        case 0xa1 :
          return GRN_CHAR_KANJI;
        case 0xa2 :
          return GRN_CHAR_KANJI;
        case 0xa3 :
          return GRN_CHAR_KANJI;
        case 0xa4 :
          return GRN_CHAR_KANJI;
        case 0xa5 :
          return GRN_CHAR_KANJI;
        case 0xa6 :
          return GRN_CHAR_KANJI;
        case 0xa7 :
          return GRN_CHAR_KANJI;
        case 0xa8 :
          return GRN_CHAR_KANJI;
        case 0xa9 :
          return GRN_CHAR_KANJI;
        case 0xaa :
          return GRN_CHAR_KANJI;
        case 0xab :
          return GRN_CHAR_KANJI;
        case 0xac :
          return GRN_CHAR_KANJI;
        case 0xad :
          return GRN_CHAR_KANJI;
        case 0xae :
          return GRN_CHAR_KANJI;
        case 0xaf :
          return GRN_CHAR_KANJI;
        case 0xb0 :
          return GRN_CHAR_KANJI;
        case 0xb1 :
          return GRN_CHAR_KANJI;
        case 0xb2 :
          return GRN_CHAR_KANJI;
        case 0xb3 :
          return GRN_CHAR_KANJI;
        case 0xb4 :
          return GRN_CHAR_KANJI;
        case 0xb5 :
          return GRN_CHAR_KANJI;
        case 0xb6 :
          return GRN_CHAR_KANJI;
        case 0xb7 :
          return GRN_CHAR_KANJI;
        case 0xb8 :
          return GRN_CHAR_KANJI;
        case 0xb9 :
          return GRN_CHAR_KANJI;
        case 0xba :
          return GRN_CHAR_KANJI;
        case 0xbb :
          return GRN_CHAR_KANJI;
        case 0xbc :
          return GRN_CHAR_KANJI;
        case 0xbd :
          return GRN_CHAR_KANJI;
        case 0xbe :
          return GRN_CHAR_KANJI;
        case 0xbf :
          return GRN_CHAR_KANJI;
        default :
          break;
        }
        break;
      case 0xa4 :
        switch (utf8[2]) {
        case 0x80 :
          return GRN_CHAR_KANJI;
        case 0x81 :
          return GRN_CHAR_KANJI;
        case 0x82 :
          return GRN_CHAR_KANJI;
        case 0x83 :
          return GRN_CHAR_KANJI;
        case 0x84 :
          return GRN_CHAR_KANJI;
        case 0x85 :
          return GRN_CHAR_KANJI;
        case 0x86 :
          return GRN_CHAR_KANJI;
        case 0x87 :
          return GRN_CHAR_KANJI;
        case 0x88 :
          return GRN_CHAR_KANJI;
        case 0x89 :
          return GRN_CHAR_KANJI;
        case 0x8a :
          return GRN_CHAR_KANJI;
        case 0x8b :
          return GRN_CHAR_KANJI;
        case 0x8c :
          return GRN_CHAR_KANJI;
        case 0x8d :
          return GRN_CHAR_KANJI;
        case 0x8e :
          return GRN_CHAR_KANJI;
        case 0x8f :
          return GRN_CHAR_KANJI;
        case 0x90 :
          return GRN_CHAR_KANJI;
        case 0x91 :
          return GRN_CHAR_KANJI;
        case 0x92 :
          return GRN_CHAR_KANJI;
        case 0x93 :
          return GRN_CHAR_KANJI;
        case 0x94 :
          return GRN_CHAR_KANJI;
        case 0x95 :
          return GRN_CHAR_KANJI;
        case 0x96 :
          return GRN_CHAR_KANJI;
        case 0x97 :
          return GRN_CHAR_KANJI;
        case 0x98 :
          return GRN_CHAR_KANJI;
        case 0x99 :
          return GRN_CHAR_KANJI;
        case 0x9a :
          return GRN_CHAR_KANJI;
        case 0x9b :
          return GRN_CHAR_KANJI;
        case 0x9c :
          return GRN_CHAR_KANJI;
        case 0x9d :
          return GRN_CHAR_KANJI;
        case 0x9e :
          return GRN_CHAR_KANJI;
        case 0x9f :
          return GRN_CHAR_KANJI;
        case 0xa0 :
          return GRN_CHAR_KANJI;
        case 0xa1 :
          return GRN_CHAR_KANJI;
        case 0xa2 :
          return GRN_CHAR_KANJI;
        case 0xa3 :
          return GRN_CHAR_KANJI;
        case 0xa4 :
          return GRN_CHAR_KANJI;
        case 0xa5 :
          return GRN_CHAR_KANJI;
        case 0xa6 :
          return GRN_CHAR_KANJI;
        case 0xa7 :
          return GRN_CHAR_KANJI;
        case 0xa8 :
          return GRN_CHAR_KANJI;
        case 0xa9 :
          return GRN_CHAR_KANJI;
        case 0xaa :
          return GRN_CHAR_KANJI;
        case 0xab :
          return GRN_CHAR_KANJI;
        case 0xac :
          return GRN_CHAR_KANJI;
        case 0xad :
          return GRN_CHAR_KANJI;
        case 0xae :
          return GRN_CHAR_KANJI;
        case 0xaf :
          return GRN_CHAR_KANJI;
        case 0xb0 :
          return GRN_CHAR_KANJI;
        case 0xb1 :
          return GRN_CHAR_KANJI;
        case 0xb2 :
          return GRN_CHAR_KANJI;
        case 0xb3 :
          return GRN_CHAR_KANJI;
        case 0xb4 :
          return GRN_CHAR_KANJI;
        case 0xb5 :
          return GRN_CHAR_KANJI;
        case 0xb6 :
          return GRN_CHAR_KANJI;
        case 0xb7 :
          return GRN_CHAR_KANJI;
        case 0xb8 :
          return GRN_CHAR_KANJI;
        case 0xb9 :
          return GRN_CHAR_KANJI;
        case 0xba :
          return GRN_CHAR_KANJI;
        case 0xbb :
          return GRN_CHAR_KANJI;
        case 0xbc :
          return GRN_CHAR_KANJI;
        case 0xbd :
          return GRN_CHAR_KANJI;
        case 0xbe :
          return GRN_CHAR_KANJI;
        case 0xbf :
          return GRN_CHAR_KANJI;
        default :
          break;
        }
        break;
      case 0xa5 :
        switch (utf8[2]) {
        case 0x80 :
          return GRN_CHAR_KANJI;
        case 0x81 :
          return GRN_CHAR_KANJI;
        case 0x82 :
          return GRN_CHAR_KANJI;
        case 0x83 :
          return GRN_CHAR_KANJI;
        case 0x84 :
          return GRN_CHAR_KANJI;
        case 0x85 :
          return GRN_CHAR_KANJI;
        case 0x86 :
          return GRN_CHAR_KANJI;
        case 0x87 :
          return GRN_CHAR_KANJI;
        case 0x88 :
          return GRN_CHAR_KANJI;
        case 0x89 :
          return GRN_CHAR_KANJI;
        case 0x8a :
          return GRN_CHAR_KANJI;
        case 0x8b :
          return GRN_CHAR_KANJI;
        case 0x8c :
          return GRN_CHAR_KANJI;
        case 0x8d :
          return GRN_CHAR_KANJI;
        case 0x8e :
          return GRN_CHAR_KANJI;
        case 0x8f :
          return GRN_CHAR_KANJI;
        case 0x90 :
          return GRN_CHAR_KANJI;
        case 0x91 :
          return GRN_CHAR_KANJI;
        case 0x92 :
          return GRN_CHAR_KANJI;
        case 0x93 :
          return GRN_CHAR_KANJI;
        case 0x94 :
          return GRN_CHAR_KANJI;
        case 0x95 :
          return GRN_CHAR_KANJI;
        case 0x96 :
          return GRN_CHAR_KANJI;
        case 0x97 :
          return GRN_CHAR_KANJI;
        case 0x98 :
          return GRN_CHAR_KANJI;
        case 0x99 :
          return GRN_CHAR_KANJI;
        case 0x9a :
          return GRN_CHAR_KANJI;
        case 0x9b :
          return GRN_CHAR_KANJI;
        case 0x9c :
          return GRN_CHAR_KANJI;
        case 0x9d :
          return GRN_CHAR_KANJI;
        case 0x9e :
          return GRN_CHAR_KANJI;
        case 0x9f :
          return GRN_CHAR_KANJI;
        case 0xa0 :
          return GRN_CHAR_KANJI;
        case 0xa1 :
          return GRN_CHAR_KANJI;
        case 0xa2 :
          return GRN_CHAR_KANJI;
        case 0xa3 :
          return GRN_CHAR_KANJI;
        case 0xa4 :
          return GRN_CHAR_KANJI;
        case 0xa5 :
          return GRN_CHAR_KANJI;
        case 0xa6 :
          return GRN_CHAR_KANJI;
        case 0xa7 :
          return GRN_CHAR_KANJI;
        case 0xa8 :
          return GRN_CHAR_KANJI;
        case 0xa9 :
          return GRN_CHAR_KANJI;
        case 0xaa :
          return GRN_CHAR_KANJI;
        case 0xab :
          return GRN_CHAR_KANJI;
        case 0xac :
          return GRN_CHAR_KANJI;
        case 0xad :
          return GRN_CHAR_KANJI;
        case 0xae :
          return GRN_CHAR_KANJI;
        case 0xaf :
          return GRN_CHAR_KANJI;
        case 0xb0 :
          return GRN_CHAR_KANJI;
        case 0xb1 :
          return GRN_CHAR_KANJI;
        case 0xb2 :
          return GRN_CHAR_KANJI;
        case 0xb3 :
          return GRN_CHAR_KANJI;
        case 0xb4 :
          return GRN_CHAR_KANJI;
        case 0xb5 :
          return GRN_CHAR_KANJI;
        case 0xb6 :
          return GRN_CHAR_KANJI;
        case 0xb7 :
          return GRN_CHAR_KANJI;
        case 0xb8 :
          return GRN_CHAR_KANJI;
        case 0xb9 :
          return GRN_CHAR_KANJI;
        case 0xba :
          return GRN_CHAR_KANJI;
        case 0xbb :
          return GRN_CHAR_KANJI;
        case 0xbc :
          return GRN_CHAR_KANJI;
        case 0xbd :
          return GRN_CHAR_KANJI;
        case 0xbe :
          return GRN_CHAR_KANJI;
        case 0xbf :
          return GRN_CHAR_KANJI;
        default :
          break;
        }
        break;
      case 0xa6 :
        switch (utf8[2]) {
        case 0x80 :
          return GRN_CHAR_KANJI;
        case 0x81 :
          return GRN_CHAR_KANJI;
        case 0x82 :
          return GRN_CHAR_KANJI;
        case 0x83 :
          return GRN_CHAR_KANJI;
        case 0x84 :
          return GRN_CHAR_KANJI;
        case 0x85 :
          return GRN_CHAR_KANJI;
        case 0x86 :
          return GRN_CHAR_KANJI;
        case 0x87 :
          return GRN_CHAR_KANJI;
        case 0x88 :
          return GRN_CHAR_KANJI;
        case 0x89 :
          return GRN_CHAR_KANJI;
        case 0x8a :
          return GRN_CHAR_KANJI;
        case 0x8b :
          return GRN_CHAR_KANJI;
        case 0x8c :
          return GRN_CHAR_KANJI;
        case 0x8d :
          return GRN_CHAR_KANJI;
        case 0x8e :
          return GRN_CHAR_KANJI;
        case 0x8f :
          return GRN_CHAR_KANJI;
        case 0x90 :
          return GRN_CHAR_KANJI;
        case 0x91 :
          return GRN_CHAR_KANJI;
        case 0x92 :
          return GRN_CHAR_KANJI;
        case 0x93 :
          return GRN_CHAR_KANJI;
        case 0x94 :
          return GRN_CHAR_KANJI;
        case 0x95 :
          return GRN_CHAR_KANJI;
        case 0x96 :
          return GRN_CHAR_KANJI;
        case 0x97 :
          return GRN_CHAR_KANJI;
        case 0x98 :
          return GRN_CHAR_KANJI;
        case 0x99 :
          return GRN_CHAR_KANJI;
        case 0x9a :
          return GRN_CHAR_KANJI;
        case 0x9b :
          return GRN_CHAR_KANJI;
        case 0x9c :
          return GRN_CHAR_KANJI;
        case 0x9d :
          return GRN_CHAR_KANJI;
        case 0x9e :
          return GRN_CHAR_KANJI;
        case 0x9f :
          return GRN_CHAR_KANJI;
        case 0xa0 :
          return GRN_CHAR_KANJI;
        case 0xa1 :
          return GRN_CHAR_KANJI;
        case 0xa2 :
          return GRN_CHAR_KANJI;
        case 0xa3 :
          return GRN_CHAR_KANJI;
        case 0xa4 :
          return GRN_CHAR_KANJI;
        case 0xa5 :
          return GRN_CHAR_KANJI;
        case 0xa6 :
          return GRN_CHAR_KANJI;
        case 0xa7 :
          return GRN_CHAR_KANJI;
        case 0xa8 :
          return GRN_CHAR_KANJI;
        case 0xa9 :
          return GRN_CHAR_KANJI;
        case 0xaa :
          return GRN_CHAR_KANJI;
        case 0xab :
          return GRN_CHAR_KANJI;
        case 0xac :
          return GRN_CHAR_KANJI;
        case 0xad :
          return GRN_CHAR_KANJI;
        case 0xae :
          return GRN_CHAR_KANJI;
        case 0xaf :
          return GRN_CHAR_KANJI;
        case 0xb0 :
          return GRN_CHAR_KANJI;
        case 0xb1 :
          return GRN_CHAR_KANJI;
        case 0xb2 :
          return GRN_CHAR_KANJI;
        case 0xb3 :
          return GRN_CHAR_KANJI;
        case 0xb4 :
          return GRN_CHAR_KANJI;
        case 0xb5 :
          return GRN_CHAR_KANJI;
        case 0xb6 :
          return GRN_CHAR_KANJI;
        case 0xb7 :
          return GRN_CHAR_KANJI;
        case 0xb8 :
          return GRN_CHAR_KANJI;
        case 0xb9 :
          return GRN_CHAR_KANJI;
        case 0xba :
          return GRN_CHAR_KANJI;
        case 0xbb :
          return GRN_CHAR_KANJI;
        case 0xbc :
          return GRN_CHAR_KANJI;
        case 0xbd :
          return GRN_CHAR_KANJI;
        case 0xbe :
          return GRN_CHAR_KANJI;
        case 0xbf :
          return GRN_CHAR_KANJI;
        default :
          break;
        }
        break;
      case 0xa7 :
        switch (utf8[2]) {
        case 0x80 :
          return GRN_CHAR_KANJI;
        case 0x81 :
          return GRN_CHAR_KANJI;
        case 0x82 :
          return GRN_CHAR_KANJI;
        case 0x83 :
          return GRN_CHAR_KANJI;
        case 0x84 :
          return GRN_CHAR_KANJI;
        case 0x85 :
          return GRN_CHAR_KANJI;
        case 0x86 :
          return GRN_CHAR_KANJI;
        case 0x87 :
          return GRN_CHAR_KANJI;
        case 0x88 :
          return GRN_CHAR_KANJI;
        case 0x89 :
          return GRN_CHAR_KANJI;
        case 0x8a :
          return GRN_CHAR_KANJI;
        case 0x8b :
          return GRN_CHAR_KANJI;
        case 0x8c :
          return GRN_CHAR_KANJI;
        case 0x8d :
          return GRN_CHAR_KANJI;
        case 0x8e :
          return GRN_CHAR_KANJI;
        case 0x8f :
          return GRN_CHAR_KANJI;
        case 0x90 :
          return GRN_CHAR_KANJI;
        case 0x91 :
          return GRN_CHAR_KANJI;
        case 0x92 :
          return GRN_CHAR_KANJI;
        case 0x93 :
          return GRN_CHAR_KANJI;
        case 0x94 :
          return GRN_CHAR_KANJI;
        case 0x95 :
          return GRN_CHAR_KANJI;
        case 0x96 :
          return GRN_CHAR_KANJI;
        case 0x97 :
          return GRN_CHAR_KANJI;
        case 0x98 :
          return GRN_CHAR_KANJI;
        case 0x99 :
          return GRN_CHAR_KANJI;
        case 0x9a :
          return GRN_CHAR_KANJI;
        case 0x9b :
          return GRN_CHAR_KANJI;
        case 0x9c :
          return GRN_CHAR_KANJI;
        case 0x9d :
          return GRN_CHAR_KANJI;
        case 0x9e :
          return GRN_CHAR_KANJI;
        case 0x9f :
          return GRN_CHAR_KANJI;
        case 0xa0 :
          return GRN_CHAR_KANJI;
        case 0xa1 :
          return GRN_CHAR_KANJI;
        case 0xa2 :
          return GRN_CHAR_KANJI;
        case 0xa3 :
          return GRN_CHAR_KANJI;
        case 0xa4 :
          return GRN_CHAR_KANJI;
        case 0xa5 :
          return GRN_CHAR_KANJI;
        case 0xa6 :
          return GRN_CHAR_KANJI;
        case 0xa7 :
          return GRN_CHAR_KANJI;
        case 0xa8 :
          return GRN_CHAR_KANJI;
        case 0xa9 :
          return GRN_CHAR_KANJI;
        case 0xaa :
          return GRN_CHAR_KANJI;
        case 0xab :
          return GRN_CHAR_KANJI;
        case 0xac :
          return GRN_CHAR_KANJI;
        case 0xad :
          return GRN_CHAR_KANJI;
        case 0xae :
          return GRN_CHAR_KANJI;
        case 0xaf :
          return GRN_CHAR_KANJI;
        case 0xb0 :
          return GRN_CHAR_KANJI;
        case 0xb1 :
          return GRN_CHAR_KANJI;
        case 0xb2 :
          return GRN_CHAR_KANJI;
        case 0xb3 :
          return GRN_CHAR_KANJI;
        case 0xb4 :
          return GRN_CHAR_KANJI;
        case 0xb5 :
          return GRN_CHAR_KANJI;
        case 0xb6 :
          return GRN_CHAR_KANJI;
        case 0xb7 :
          return GRN_CHAR_KANJI;
        case 0xb8 :
          return GRN_CHAR_KANJI;
        case 0xb9 :
          return GRN_CHAR_KANJI;
        case 0xba :
          return GRN_CHAR_KANJI;
        case 0xbb :
          return GRN_CHAR_KANJI;
        case 0xbc :
          return GRN_CHAR_KANJI;
        case 0xbd :
          return GRN_CHAR_KANJI;
        case 0xbe :
          return GRN_CHAR_KANJI;
        case 0xbf :
          return GRN_CHAR_KANJI;
        default :
          break;
        }
        break;
      case 0xa8 :
        switch (utf8[2]) {
        case 0x80 :
          return GRN_CHAR_KANJI;
        case 0x81 :
          return GRN_CHAR_KANJI;
        case 0x82 :
          return GRN_CHAR_KANJI;
        case 0x83 :
          return GRN_CHAR_KANJI;
        case 0x84 :
          return GRN_CHAR_KANJI;
        case 0x85 :
          return GRN_CHAR_KANJI;
        case 0x86 :
          return GRN_CHAR_KANJI;
        case 0x87 :
          return GRN_CHAR_KANJI;
        case 0x88 :
          return GRN_CHAR_KANJI;
        case 0x89 :
          return GRN_CHAR_KANJI;
        case 0x8a :
          return GRN_CHAR_KANJI;
        case 0x8b :
          return GRN_CHAR_KANJI;
        case 0x8c :
          return GRN_CHAR_KANJI;
        case 0x8d :
          return GRN_CHAR_KANJI;
        case 0x8e :
          return GRN_CHAR_KANJI;
        case 0x8f :
          return GRN_CHAR_KANJI;
        case 0x90 :
          return GRN_CHAR_KANJI;
        case 0x91 :
          return GRN_CHAR_KANJI;
        case 0x92 :
          return GRN_CHAR_KANJI;
        case 0x93 :
          return GRN_CHAR_KANJI;
        case 0x94 :
          return GRN_CHAR_KANJI;
        case 0x95 :
          return GRN_CHAR_KANJI;
        case 0x96 :
          return GRN_CHAR_KANJI;
        case 0x97 :
          return GRN_CHAR_KANJI;
        case 0x98 :
          return GRN_CHAR_KANJI;
        case 0x99 :
          return GRN_CHAR_KANJI;
        case 0x9a :
          return GRN_CHAR_KANJI;
        case 0x9b :
          return GRN_CHAR_KANJI;
        case 0x9c :
          return GRN_CHAR_KANJI;
        case 0x9d :
          return GRN_CHAR_KANJI;
        case 0x9e :
          return GRN_CHAR_KANJI;
        case 0x9f :
          return GRN_CHAR_KANJI;
        case 0xa0 :
          return GRN_CHAR_KANJI;
        case 0xa1 :
          return GRN_CHAR_KANJI;
        case 0xa2 :
          return GRN_CHAR_KANJI;
        case 0xa3 :
          return GRN_CHAR_KANJI;
        case 0xa4 :
          return GRN_CHAR_KANJI;
        case 0xa5 :
          return GRN_CHAR_KANJI;
        case 0xa6 :
          return GRN_CHAR_KANJI;
        case 0xa7 :
          return GRN_CHAR_KANJI;
        case 0xa8 :
          return GRN_CHAR_KANJI;
        case 0xa9 :
          return GRN_CHAR_KANJI;
        case 0xaa :
          return GRN_CHAR_KANJI;
        case 0xab :
          return GRN_CHAR_KANJI;
        case 0xac :
          return GRN_CHAR_KANJI;
        case 0xad :
          return GRN_CHAR_KANJI;
        case 0xae :
          return GRN_CHAR_KANJI;
        case 0xaf :
          return GRN_CHAR_KANJI;
        case 0xb0 :
          return GRN_CHAR_KANJI;
        case 0xb1 :
          return GRN_CHAR_KANJI;
        case 0xb2 :
          return GRN_CHAR_KANJI;
        case 0xb3 :
          return GRN_CHAR_KANJI;
        case 0xb4 :
          return GRN_CHAR_KANJI;
        case 0xb5 :
          return GRN_CHAR_KANJI;
        case 0xb6 :
          return GRN_CHAR_KANJI;
        case 0xb7 :
          return GRN_CHAR_KANJI;
        case 0xb8 :
          return GRN_CHAR_KANJI;
        case 0xb9 :
          return GRN_CHAR_KANJI;
        case 0xba :
          return GRN_CHAR_KANJI;
        case 0xbb :
          return GRN_CHAR_KANJI;
        case 0xbc :
          return GRN_CHAR_KANJI;
        case 0xbd :
          return GRN_CHAR_KANJI;
        case 0xbe :
          return GRN_CHAR_KANJI;
        case 0xbf :
          return GRN_CHAR_KANJI;
        default :
          break;
        }
        break;
      case 0xa9 :
        switch (utf8[2]) {
        case 0x80 :
          return GRN_CHAR_KANJI;
        case 0x81 :
          return GRN_CHAR_KANJI;
        case 0x82 :
          return GRN_CHAR_KANJI;
        case 0x83 :
          return GRN_CHAR_KANJI;
        case 0x84 :
          return GRN_CHAR_KANJI;
        case 0x85 :
          return GRN_CHAR_KANJI;
        case 0x86 :
          return GRN_CHAR_KANJI;
        case 0x87 :
          return GRN_CHAR_KANJI;
        case 0x88 :
          return GRN_CHAR_KANJI;
        case 0x89 :
          return GRN_CHAR_KANJI;
        case 0x8a :
          return GRN_CHAR_KANJI;
        case 0x8b :
          return GRN_CHAR_KANJI;
        case 0x8c :
          return GRN_CHAR_KANJI;
        case 0x8d :
          return GRN_CHAR_KANJI;
        case 0x8e :
          return GRN_CHAR_KANJI;
        case 0x8f :
          return GRN_CHAR_KANJI;
        case 0x90 :
          return GRN_CHAR_KANJI;
        case 0x91 :
          return GRN_CHAR_KANJI;
        case 0x92 :
          return GRN_CHAR_KANJI;
        case 0x93 :
          return GRN_CHAR_KANJI;
        case 0x94 :
          return GRN_CHAR_KANJI;
        case 0x95 :
          return GRN_CHAR_KANJI;
        case 0x96 :
          return GRN_CHAR_KANJI;
        case 0x97 :
          return GRN_CHAR_KANJI;
        case 0x98 :
          return GRN_CHAR_KANJI;
        case 0x99 :
          return GRN_CHAR_KANJI;
        case 0x9a :
          return GRN_CHAR_KANJI;
        case 0x9b :
          return GRN_CHAR_KANJI;
        case 0x9c :
          return GRN_CHAR_KANJI;
        case 0x9d :
          return GRN_CHAR_KANJI;
        case 0x9e :
          return GRN_CHAR_KANJI;
        case 0x9f :
          return GRN_CHAR_KANJI;
        case 0xa0 :
          return GRN_CHAR_KANJI;
        case 0xa1 :
          return GRN_CHAR_KANJI;
        case 0xa2 :
          return GRN_CHAR_KANJI;
        case 0xa3 :
          return GRN_CHAR_KANJI;
        case 0xa4 :
          return GRN_CHAR_KANJI;
        case 0xa5 :
          return GRN_CHAR_KANJI;
        case 0xa6 :
          return GRN_CHAR_KANJI;
        case 0xa7 :
          return GRN_CHAR_KANJI;
        case 0xa8 :
          return GRN_CHAR_KANJI;
        case 0xa9 :
          return GRN_CHAR_KANJI;
        case 0xaa :
          return GRN_CHAR_KANJI;
        case 0xab :
          return GRN_CHAR_KANJI;
        case 0xac :
          return GRN_CHAR_KANJI;
        case 0xad :
          return GRN_CHAR_KANJI;
        case 0xae :
          return GRN_CHAR_KANJI;
        case 0xaf :
          return GRN_CHAR_KANJI;
        case 0xb0 :
          return GRN_CHAR_KANJI;
        case 0xb1 :
          return GRN_CHAR_KANJI;
        case 0xb2 :
          return GRN_CHAR_KANJI;
        case 0xb3 :
          return GRN_CHAR_KANJI;
        case 0xb4 :
          return GRN_CHAR_KANJI;
        case 0xb5 :
          return GRN_CHAR_KANJI;
        case 0xb6 :
          return GRN_CHAR_KANJI;
        case 0xb7 :
          return GRN_CHAR_KANJI;
        case 0xb8 :
          return GRN_CHAR_KANJI;
        case 0xb9 :
          return GRN_CHAR_KANJI;
        case 0xba :
          return GRN_CHAR_KANJI;
        case 0xbb :
          return GRN_CHAR_KANJI;
        case 0xbc :
          return GRN_CHAR_KANJI;
        case 0xbd :
          return GRN_CHAR_KANJI;
        case 0xbe :
          return GRN_CHAR_KANJI;
        case 0xbf :
          return GRN_CHAR_KANJI;
        default :
          break;
        }
        break;
      case 0xaa :
        switch (utf8[2]) {
        case 0x80 :
          return GRN_CHAR_KANJI;
        case 0x81 :
          return GRN_CHAR_KANJI;
        case 0x82 :
          return GRN_CHAR_KANJI;
        case 0x83 :
          return GRN_CHAR_KANJI;
        case 0x84 :
          return GRN_CHAR_KANJI;
        case 0x85 :
          return GRN_CHAR_KANJI;
        case 0x86 :
          return GRN_CHAR_KANJI;
        case 0x87 :
          return GRN_CHAR_KANJI;
        case 0x88 :
          return GRN_CHAR_KANJI;
        case 0x89 :
          return GRN_CHAR_KANJI;
        case 0x8a :
          return GRN_CHAR_KANJI;
        case 0x8b :
          return GRN_CHAR_KANJI;
        case 0x8c :
          return GRN_CHAR_KANJI;
        case 0x8d :
          return GRN_CHAR_KANJI;
        case 0x8e :
          return GRN_CHAR_KANJI;
        case 0x8f :
          return GRN_CHAR_KANJI;
        case 0x90 :
          return GRN_CHAR_KANJI;
        case 0x91 :
          return GRN_CHAR_KANJI;
        case 0x92 :
          return GRN_CHAR_KANJI;
        case 0x93 :
          return GRN_CHAR_KANJI;
        case 0x94 :
          return GRN_CHAR_KANJI;
        case 0x95 :
          return GRN_CHAR_KANJI;
        case 0x96 :
          return GRN_CHAR_KANJI;
        case 0x97 :
          return GRN_CHAR_KANJI;
        case 0x98 :
          return GRN_CHAR_KANJI;
        case 0x99 :
          return GRN_CHAR_KANJI;
        case 0x9a :
          return GRN_CHAR_KANJI;
        case 0x9b :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0x9f) {
            return GRN_CHAR_KANJI;
          }
          break;
        default :
          break;
        }
        break;
      case 0xaf :
        switch (utf8[2]) {
        case 0xa0 :
          return GRN_CHAR_KANJI;
        case 0xa1 :
          return GRN_CHAR_KANJI;
        case 0xa2 :
          return GRN_CHAR_KANJI;
        case 0xa3 :
          return GRN_CHAR_KANJI;
        case 0xa4 :
          return GRN_CHAR_KANJI;
        case 0xa5 :
          return GRN_CHAR_KANJI;
        case 0xa6 :
          return GRN_CHAR_KANJI;
        case 0xa7 :
          return GRN_CHAR_KANJI;
        case 0xa8 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0x9f) {
            return GRN_CHAR_KANJI;
          }
          break;
        default :
          break;
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return GRN_CHAR_OTHERS;
}

static const char *grn_nfkc50_decompose_table_[] = {
  "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68",
  "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70",
  "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78",
  "\x79", "\x7a"
};

static const char *grn_nfkc50_decompose_table_c2[] = {
  "\x20", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xcc\x88", NULL, "\x61", NULL, NULL, NULL, NULL, "\xcc\x84",
  NULL, NULL, "\x32", "\x33", "\xcc\x81", "\xce\xbc", NULL, NULL,
  "\xcc\xa7", "\x31", "\x6f", NULL, "\x31\xe2\x81\x84\x34", "\x31\xe2\x81\x84\x32", "\x33\xe2\x81\x84\x34"
};

static const char *grn_nfkc50_decompose_table_c3[] = {
  "\xc3\xa0", "\xc3\xa1", "\xc3\xa2", "\xc3\xa3", "\xc3\xa4", "\xc3\xa5", NULL, "\xc3\xa7",
  "\xc3\xa8", "\xc3\xa9", "\xc3\xaa", "\xc3\xab", "\xc3\xac", "\xc3\xad", "\xc3\xae", "\xc3\xaf",
  NULL, "\xc3\xb1", "\xc3\xb2", "\xc3\xb3", "\xc3\xb4", "\xc3\xb5", "\xc3\xb6", NULL,
  NULL, "\xc3\xb9", "\xc3\xba", "\xc3\xbb", "\xc3\xbc", "\xc3\xbd"
};

static const char *grn_nfkc50_decompose_table_c4[] = {
  "\xc4\x81", NULL, "\xc4\x83", NULL, "\xc4\x85", NULL, "\xc4\x87", NULL,
  "\xc4\x89", NULL, "\xc4\x8b", NULL, "\xc4\x8d", NULL, "\xc4\x8f", NULL,
  NULL, NULL, "\xc4\x93", NULL, "\xc4\x95", NULL, "\xc4\x97", NULL,
  "\xc4\x99", NULL, "\xc4\x9b", NULL, "\xc4\x9d", NULL, "\xc4\x9f", NULL,
  "\xc4\xa1", NULL, "\xc4\xa3", NULL, "\xc4\xa5", NULL, NULL, NULL,
  "\xc4\xa9", NULL, "\xc4\xab", NULL, "\xc4\xad", NULL, "\xc4\xaf", NULL,
  "\x69\xcc\x87", NULL, "\x69\x6a", "\x69\x6a", "\xc4\xb5", NULL, "\xc4\xb7", NULL,
  NULL, "\xc4\xba", NULL, "\xc4\xbc", NULL, "\xc4\xbe", NULL, "\x6c\xc2\xb7"
};

static const char *grn_nfkc50_decompose_table_c5[] = {
  "\x6c\xc2\xb7", NULL, NULL, "\xc5\x84", NULL, "\xc5\x86", NULL, "\xc5\x88",
  NULL, "\xca\xbc\x6e", NULL, NULL, "\xc5\x8d", NULL, "\xc5\x8f", NULL,
  "\xc5\x91", NULL, NULL, NULL, "\xc5\x95", NULL, "\xc5\x97", NULL,
  "\xc5\x99", NULL, "\xc5\x9b", NULL, "\xc5\x9d", NULL, "\xc5\x9f", NULL,
  "\xc5\xa1", NULL, "\xc5\xa3", NULL, "\xc5\xa5", NULL, NULL, NULL,
  "\xc5\xa9", NULL, "\xc5\xab", NULL, "\xc5\xad", NULL, "\xc5\xaf", NULL,
  "\xc5\xb1", NULL, "\xc5\xb3", NULL, "\xc5\xb5", NULL, "\xc5\xb7", NULL,
  "\xc3\xbf", "\xc5\xba", NULL, "\xc5\xbc", NULL, "\xc5\xbe", NULL, "\x73"
};

static const char *grn_nfkc50_decompose_table_c6[] = {
  "\xc6\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, "\xc6\xb0"
};

static const char *grn_nfkc50_decompose_table_c7[] = {
  "\x64\xc5\xbe", "\x64\xc5\xbe", "\x64\xc5\xbe", "\x6c\x6a", "\x6c\x6a", "\x6c\x6a", "\x6e\x6a", "\x6e\x6a",
  "\x6e\x6a", "\xc7\x8e", NULL, "\xc7\x90", NULL, "\xc7\x92", NULL, "\xc7\x94",
  NULL, "\xc7\x96", NULL, "\xc7\x98", NULL, "\xc7\x9a", NULL, "\xc7\x9c",
  NULL, NULL, "\xc7\x9f", NULL, "\xc7\xa1", NULL, NULL, NULL,
  NULL, NULL, "\xc7\xa7", NULL, "\xc7\xa9", NULL, "\xc7\xab", NULL,
  "\xc7\xad", NULL, NULL, NULL, NULL, "\x64\x7a", "\x64\x7a", "\x64\x7a",
  "\xc7\xb5", NULL, NULL, NULL, "\xc7\xb9", NULL, "\xc7\xbb"
};

static const char *grn_nfkc50_decompose_table_c8[] = {
  "\xc8\x81", NULL, "\xc8\x83", NULL, "\xc8\x85", NULL, "\xc8\x87", NULL,
  "\xc8\x89", NULL, "\xc8\x8b", NULL, "\xc8\x8d", NULL, "\xc8\x8f", NULL,
  "\xc8\x91", NULL, "\xc8\x93", NULL, "\xc8\x95", NULL, "\xc8\x97", NULL,
  "\xc8\x99", NULL, "\xc8\x9b", NULL, NULL, NULL, "\xc8\x9f", NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, "\xc8\xa7", NULL,
  "\xc8\xa9", NULL, "\xc8\xab", NULL, "\xc8\xad", NULL, "\xc8\xaf", NULL,
  "\xc8\xb1", NULL, "\xc8\xb3"
};

static const char *grn_nfkc50_decompose_table_ca[] = {
  "\x68", "\xc9\xa6", "\x6a", "\x72", "\xc9\xb9", "\xc9\xbb", "\xca\x81", "\x77",
  "\x79"
};

static const char *grn_nfkc50_decompose_table_cb[] = {
  "\xcc\x86", "\xcc\x87", "\xcc\x8a", "\xcc\xa8", "\xcc\x83", "\xcc\x8b", NULL, NULL,
  "\xc9\xa3", "\x6c", "\x73", "\x78", "\xca\x95"
};

static const char *grn_nfkc50_decompose_table_cd[] = {
  "\xcc\x80", "\xcc\x81", NULL, "\xcc\x93", "\xcc\x88\xcc\x81", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xca\xb9", NULL, NULL, NULL,
  NULL, NULL, "\xcd\x85", NULL, NULL, NULL, "\x3b"
};

static const char *grn_nfkc50_decompose_table_ce[] = {
  "\xcc\x81", "\xcc\x88\xcc\x81", NULL, "\xc2\xb7"
};

static const char *grn_nfkc50_decompose_table_cf[] = {
  "\xce\xb2", "\xce\xb8", "\xce\xa5", "\xce\x8e", "\xce\xab", "\xcf\x86", "\xcf\x80", NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xce\xba", "\xcf\x81", "\xcf\x82", NULL, "\xce\x98", "\xce\xb5", NULL, NULL,
  NULL, "\xce\xa3"
};

static const char *grn_nfkc50_decompose_table_d9[] = {
  "\xd8\xa7\xd9\xb4", "\xd9\x88\xd9\xb4", "\xdb\x87\xd9\xb4", "\xd9\x8a\xd9\xb4"
};

static const char *grn_nfkc50_decompose_table_e0a5[] = {
  "\xe0\xa4\x95\xe0\xa4\xbc", "\xe0\xa4\x96\xe0\xa4\xbc", "\xe0\xa4\x97\xe0\xa4\xbc", "\xe0\xa4\x9c\xe0\xa4\xbc", "\xe0\xa4\xa1\xe0\xa4\xbc", "\xe0\xa4\xa2\xe0\xa4\xbc", "\xe0\xa4\xab\xe0\xa4\xbc", "\xe0\xa4\xaf\xe0\xa4\xbc"
};

static const char *grn_nfkc50_decompose_table_e0a7[] = {
  "\xe0\xa6\xa1\xe0\xa6\xbc", "\xe0\xa6\xa2\xe0\xa6\xbc", NULL, "\xe0\xa6\xaf\xe0\xa6\xbc"
};

static const char *grn_nfkc50_decompose_table_e0a8[] = {
  "\xe0\xa8\xb2\xe0\xa8\xbc", NULL, NULL, "\xe0\xa8\xb8\xe0\xa8\xbc"
};

static const char *grn_nfkc50_decompose_table_e0a9[] = {
  "\xe0\xa8\x96\xe0\xa8\xbc", "\xe0\xa8\x97\xe0\xa8\xbc", "\xe0\xa8\x9c\xe0\xa8\xbc", NULL, NULL, "\xe0\xa8\xab\xe0\xa8\xbc"
};

static const char *grn_nfkc50_decompose_table_e0ad[] = {
  "\xe0\xac\xa1\xe0\xac\xbc", "\xe0\xac\xa2\xe0\xac\xbc"
};

static const char *grn_nfkc50_decompose_table_e0bb[] = {
  "\xe0\xba\xab\xe0\xba\x99", "\xe0\xba\xab\xe0\xba\xa1"
};

static const char *grn_nfkc50_decompose_table_e0bd[] = {
  "\xe0\xbd\x82\xe0\xbe\xb7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, "\xe0\xbd\x8c\xe0\xbe\xb7", NULL, NULL, NULL, NULL, "\xe0\xbd\x91\xe0\xbe\xb7",
  NULL, NULL, NULL, NULL, "\xe0\xbd\x96\xe0\xbe\xb7", NULL, NULL, NULL,
  NULL, "\xe0\xbd\x9b\xe0\xbe\xb7", NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, "\xe0\xbd\x80\xe0\xbe\xb5", NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe0\xbd\xb1\xe0\xbd\xb2", NULL, "\xe0\xbd\xb1\xe0\xbd\xb4", "\xe0\xbe\xb2\xe0\xbe\x80", "\xe0\xbe\xb2\xe0\xbd\xb1\xe0\xbe\x80", "\xe0\xbe\xb3\xe0\xbe\x80", "\xe0\xbe\xb3\xe0\xbd\xb1\xe0\xbe\x80"
};

static const char *grn_nfkc50_decompose_table_e0be[] = {
  "\xe0\xbd\xb1\xe0\xbe\x80", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, "\xe0\xbe\x92\xe0\xbe\xb7", NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xe0\xbe\x9c\xe0\xbe\xb7", NULL, NULL, NULL,
  NULL, "\xe0\xbe\xa1\xe0\xbe\xb7", NULL, NULL, NULL, NULL, "\xe0\xbe\xa6\xe0\xbe\xb7", NULL,
  NULL, NULL, NULL, "\xe0\xbe\xab\xe0\xbe\xb7", NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe0\xbe\x90\xe0\xbe\xb5"
};

static const char *grn_nfkc50_decompose_table_e1b4[] = {
  "\x61", "\xc3\x86", "\x62", NULL, "\x64", "\x65", "\xc6\x8e", "\x67",
  "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", NULL,
  "\x6f", "\xc8\xa2", "\x70", "\x72"
};

static const char *grn_nfkc50_decompose_table_e1b5[] = {
  "\x74", "\x75", "\x77", "\x61", "\xc9\x90", "\xc9\x91", "\xe1\xb4\x82", "\x62",
  "\x64", "\x65", "\xc9\x99", "\xc9\x9b", "\xc9\x9c", "\x67", NULL, "\x6b",
  "\x6d", "\xc5\x8b", "\x6f", "\xc9\x94", "\xe1\xb4\x96", "\xe1\xb4\x97", "\x70", "\x74",
  "\x75", "\xe1\xb4\x9d", "\xc9\xaf", "\x76", "\xe1\xb4\xa5", "\xce\xb2", "\xce\xb3", "\xce\xb4",
  "\xcf\x86", "\xcf\x87", "\x69", "\x72", "\x75", "\x76", "\xce\xb2", "\xce\xb3",
  "\xcf\x81", "\xcf\x86", "\xcf\x87", NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xd0\xbd"
};

static const char *grn_nfkc50_decompose_table_e1b6[] = {
  "\xc9\x92", "\x63", "\xc9\x95", "\xc3\xb0", "\xc9\x9c", "\x66", "\xc9\x9f", "\xc9\xa1",
  "\xc9\xa5", "\xc9\xa8", "\xc9\xa9", "\xc9\xaa", "\xe1\xb5\xbb", "\xca\x9d", "\xc9\xad", "\xe1\xb6\x85",
  "\xca\x9f", "\xc9\xb1", "\xc9\xb0", "\xc9\xb2", "\xc9\xb3", "\xc9\xb4", "\xc9\xb5", "\xc9\xb8",
  "\xca\x82", "\xca\x83", "\xc6\xab", "\xca\x89", "\xca\x8a", "\xe1\xb4\x9c", "\xca\x8b", "\xca\x8c",
  "\x7a", "\xca\x90", "\xca\x91", "\xca\x92", "\xce\xb8"
};

static const char *grn_nfkc50_decompose_table_e1b8[] = {
  "\xe1\xb8\x81", NULL, "\xe1\xb8\x83", NULL, "\xe1\xb8\x85", NULL, "\xe1\xb8\x87", NULL,
  "\xe1\xb8\x89", NULL, "\xe1\xb8\x8b", NULL, "\xe1\xb8\x8d", NULL, "\xe1\xb8\x8f", NULL,
  "\xe1\xb8\x91", NULL, "\xe1\xb8\x93", NULL, "\xe1\xb8\x95", NULL, "\xe1\xb8\x97", NULL,
  "\xe1\xb8\x99", NULL, "\xe1\xb8\x9b", NULL, "\xe1\xb8\x9d", NULL, "\xe1\xb8\x9f", NULL,
  "\xe1\xb8\xa1", NULL, "\xe1\xb8\xa3", NULL, "\xe1\xb8\xa5", NULL, "\xe1\xb8\xa7", NULL,
  "\xe1\xb8\xa9", NULL, "\xe1\xb8\xab", NULL, "\xe1\xb8\xad", NULL, "\xe1\xb8\xaf", NULL,
  "\xe1\xb8\xb1", NULL, "\xe1\xb8\xb3", NULL, "\xe1\xb8\xb5", NULL, "\xe1\xb8\xb7", NULL,
  "\xe1\xb8\xb9", NULL, "\xe1\xb8\xbb", NULL, "\xe1\xb8\xbd", NULL, "\xe1\xb8\xbf"
};

static const char *grn_nfkc50_decompose_table_e1b9[] = {
  "\xe1\xb9\x81", NULL, "\xe1\xb9\x83", NULL, "\xe1\xb9\x85", NULL, "\xe1\xb9\x87", NULL,
  "\xe1\xb9\x89", NULL, "\xe1\xb9\x8b", NULL, "\xe1\xb9\x8d", NULL, "\xe1\xb9\x8f", NULL,
  "\xe1\xb9\x91", NULL, "\xe1\xb9\x93", NULL, "\xe1\xb9\x95", NULL, "\xe1\xb9\x97", NULL,
  "\xe1\xb9\x99", NULL, "\xe1\xb9\x9b", NULL, "\xe1\xb9\x9d", NULL, "\xe1\xb9\x9f", NULL,
  "\xe1\xb9\xa1", NULL, "\xe1\xb9\xa3", NULL, "\xe1\xb9\xa5", NULL, "\xe1\xb9\xa7", NULL,
  "\xe1\xb9\xa9", NULL, "\xe1\xb9\xab", NULL, "\xe1\xb9\xad", NULL, "\xe1\xb9\xaf", NULL,
  "\xe1\xb9\xb1", NULL, "\xe1\xb9\xb3", NULL, "\xe1\xb9\xb5", NULL, "\xe1\xb9\xb7", NULL,
  "\xe1\xb9\xb9", NULL, "\xe1\xb9\xbb", NULL, "\xe1\xb9\xbd", NULL, "\xe1\xb9\xbf"
};

static const char *grn_nfkc50_decompose_table_e1ba[] = {
  "\xe1\xba\x81", NULL, "\xe1\xba\x83", NULL, "\xe1\xba\x85", NULL, "\xe1\xba\x87", NULL,
  "\xe1\xba\x89", NULL, "\xe1\xba\x8b", NULL, "\xe1\xba\x8d", NULL, "\xe1\xba\x8f", NULL,
  "\xe1\xba\x91", NULL, "\xe1\xba\x93", NULL, "\xe1\xba\x95", NULL, NULL, NULL,
  NULL, NULL, "\x61\xca\xbe", "\xe1\xb9\xa1", NULL, NULL, NULL, NULL,
  "\xe1\xba\xa1", NULL, "\xe1\xba\xa3", NULL, "\xe1\xba\xa5", NULL, "\xe1\xba\xa7", NULL,
  "\xe1\xba\xa9", NULL, "\xe1\xba\xab", NULL, "\xe1\xba\xad", NULL, "\xe1\xba\xaf", NULL,
  "\xe1\xba\xb1", NULL, "\xe1\xba\xb3", NULL, "\xe1\xba\xb5", NULL, "\xe1\xba\xb7", NULL,
  "\xe1\xba\xb9", NULL, "\xe1\xba\xbb", NULL, "\xe1\xba\xbd", NULL, "\xe1\xba\xbf"
};

static const char *grn_nfkc50_decompose_table_e1bb[] = {
  "\xe1\xbb\x81", NULL, "\xe1\xbb\x83", NULL, "\xe1\xbb\x85", NULL, "\xe1\xbb\x87", NULL,
  "\xe1\xbb\x89", NULL, "\xe1\xbb\x8b", NULL, "\xe1\xbb\x8d", NULL, "\xe1\xbb\x8f", NULL,
  "\xe1\xbb\x91", NULL, "\xe1\xbb\x93", NULL, "\xe1\xbb\x95", NULL, "\xe1\xbb\x97", NULL,
  "\xe1\xbb\x99", NULL, "\xe1\xbb\x9b", NULL, "\xe1\xbb\x9d", NULL, "\xe1\xbb\x9f", NULL,
  "\xe1\xbb\xa1", NULL, "\xe1\xbb\xa3", NULL, "\xe1\xbb\xa5", NULL, "\xe1\xbb\xa7", NULL,
  "\xe1\xbb\xa9", NULL, "\xe1\xbb\xab", NULL, "\xe1\xbb\xad", NULL, "\xe1\xbb\xaf", NULL,
  "\xe1\xbb\xb1", NULL, "\xe1\xbb\xb3", NULL, "\xe1\xbb\xb5", NULL, "\xe1\xbb\xb7", NULL,
  "\xe1\xbb\xb9"
};

static const char *grn_nfkc50_decompose_table_e1bd[] = {
  "\xce\xac", NULL, "\xce\xad", NULL, "\xce\xae", NULL, "\xce\xaf", NULL,
  "\xcf\x8c", NULL, "\xcf\x8d", NULL, "\xcf\x8e"
};

static const char *grn_nfkc50_decompose_table_e1be[] = {
  "\xce\x86", NULL, "\xcc\x93", "\xce\xb9", "\xcc\x93"
};

static const char *grn_nfkc50_decompose_table_e1bf[] = {
  "\xcd\x82", "\xcc\x88\xcd\x82", NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, "\xce\x88", NULL, "\xce\x89", NULL, "\xcc\x93\xcc\x80", "\xcc\x93\xcc\x81", "\xcc\x93\xcd\x82",
  NULL, NULL, NULL, "\xce\x90", NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, "\xce\x8a", NULL, "\xcc\x94\xcc\x80", "\xcc\x94\xcc\x81", "\xcc\x94\xcd\x82",
  NULL, NULL, NULL, "\xce\xb0", NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, "\xce\x8e", NULL, "\xcc\x88\xcc\x80", "\xcc\x88\xcc\x81", "\x60",
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, "\xce\x8c", NULL, "\xce\x8f", NULL, "\xcc\x81", "\xcc\x94"
};

static const char *grn_nfkc50_decompose_table_e280[] = {
  "\x20", "\x20", "\x20", "\x20", "\x20", "\x20", "\x20", "\x20",
  "\x20", "\x20", "\x20", NULL, NULL, NULL, NULL, NULL,
  NULL, "\xe2\x80\x90", NULL, NULL, NULL, NULL, NULL, "\xcc\xb3",
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\x2e", "\x2e\x2e", "\x2e\x2e\x2e", NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, "\x20",
  NULL, NULL, NULL, "\xe2\x80\xb2\xe2\x80\xb2", "\xe2\x80\xb2\xe2\x80\xb2\xe2\x80\xb2", NULL, "\xe2\x80\xb5\xe2\x80\xb5", "\xe2\x80\xb5\xe2\x80\xb5\xe2\x80\xb5",
  NULL, NULL, NULL, NULL, "\x21\x21", NULL, "\xcc\x85"
};

static const char *grn_nfkc50_decompose_table_e281[] = {
  "\x3f\x3f", "\x3f\x21", "\x21\x3f", NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe2\x80\xb2\xe2\x80\xb2\xe2\x80\xb2\xe2\x80\xb2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\x20", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, "\x30", "\x69", NULL, NULL, "\x34", "\x35", "\x36",
  "\x37", "\x38", "\x39", "\x2b", "\xe2\x88\x92", "\x3d", "\x28", "\x29",
  "\x6e"
};

static const char *grn_nfkc50_decompose_table_e282[] = {
  "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37",
  "\x38", "\x39", "\x2b", "\xe2\x88\x92", "\x3d", "\x28", "\x29", NULL,
  "\x61", "\x65", "\x6f", "\x78", "\xc9\x99", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\x72\x73"
};

static const char *grn_nfkc50_decompose_table_e284[] = {
  "\x61\x2f\x63", "\x61\x2f\x73", "\x63", "\xc2\xb0\x63", NULL, "\x63\x2f\x6f", "\x63\x2f\x75", "\xc6\x90",
  NULL, "\xc2\xb0\x66", "\x67", "\x68", "\x68", "\x68", "\x68", "\xc4\xa7",
  "\x69", "\x69", "\x6c", "\x6c", NULL, "\x6e", "\x6e\x6f", NULL,
  NULL, "\x70", "\x71", "\x72", "\x72", "\x72", NULL, NULL,
  "\x73\x6d", "\x74\x65\x6c", "\x74\x6d", NULL, "\x7a", NULL, "\xce\xa9", NULL,
  "\x7a", NULL, "\x6b", "\xc3\xa5", "\x62", "\x63", NULL, "\x65",
  "\x65", "\x66", NULL, "\x6d", "\x6f", "\xd7\x90", "\xd7\x91", "\xd7\x92",
  "\xd7\x93", "\x69", NULL, "\x66\x61\x78", "\xcf\x80", "\xce\xb3", "\xce\x93", "\xce\xa0"
};

static const char *grn_nfkc50_decompose_table_e285[] = {
  "\xe2\x88\x91", NULL, NULL, NULL, NULL, "\x64", "\x64", "\x65",
  "\x69", "\x6a", NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, "\x31\xe2\x81\x84\x33", "\x32\xe2\x81\x84\x33", "\x31\xe2\x81\x84\x35", "\x32\xe2\x81\x84\x35", "\x33\xe2\x81\x84\x35",
  "\x34\xe2\x81\x84\x35", "\x31\xe2\x81\x84\x36", "\x35\xe2\x81\x84\x36", "\x31\xe2\x81\x84\x38", "\x33\xe2\x81\x84\x38", "\x35\xe2\x81\x84\x38", "\x37\xe2\x81\x84\x38", "\x31\xe2\x81\x84",
  "\x69", "\x69\x69", "\x69\x69\x69", "\x69\x76", "\x76", "\x76\x69", "\x76\x69\x69", "\x76\x69\x69\x69",
  "\x69\x78", "\x78", "\x78\x69", "\x78\x69\x69", "\x6c", "\x63", "\x64", "\x6d",
  "\x69", "\x69\x69", "\x69\x69\x69", "\x69\x76", "\x76", "\x76\x69", "\x76\x69\x69", "\x76\x69\x69\x69",
  "\x69\x78", "\x78", "\x78\x69", "\x78\x69\x69", "\x6c", "\x63", "\x64", "\x6d"
};

static const char *grn_nfkc50_decompose_table_e288[] = {
  "\xe2\x88\xab\xe2\x88\xab", "\xe2\x88\xab\xe2\x88\xab\xe2\x88\xab", NULL, "\xe2\x88\xae\xe2\x88\xae", "\xe2\x88\xae\xe2\x88\xae\xe2\x88\xae"
};

static const char *grn_nfkc50_decompose_table_e28c[] = {
  "\xe3\x80\x88", "\xe3\x80\x89"
};

static const char *grn_nfkc50_decompose_table_e291[] = {
  "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38",
  "\x39", "\x31\x30", "\x31\x31", "\x31\x32", "\x31\x33", "\x31\x34", "\x31\x35", "\x31\x36",
  "\x31\x37", "\x31\x38", "\x31\x39", "\x32\x30", "\x28\x31\x29", "\x28\x32\x29", "\x28\x33\x29", "\x28\x34\x29",
  "\x28\x35\x29", "\x28\x36\x29", "\x28\x37\x29", "\x28\x38\x29", "\x28\x39\x29", "\x28\x31\x30\x29", "\x28\x31\x31\x29", "\x28\x31\x32\x29"
};

static const char *grn_nfkc50_decompose_table_e292[] = {
  "\x28\x31\x33\x29", "\x28\x31\x34\x29", "\x28\x31\x35\x29", "\x28\x31\x36\x29", "\x28\x31\x37\x29", "\x28\x31\x38\x29", "\x28\x31\x39\x29", "\x28\x32\x30\x29",
  "\x31\x2e", "\x32\x2e", "\x33\x2e", "\x34\x2e", "\x35\x2e", "\x36\x2e", "\x37\x2e", "\x38\x2e",
  "\x39\x2e", "\x31\x30\x2e", "\x31\x31\x2e", "\x31\x32\x2e", "\x31\x33\x2e", "\x31\x34\x2e", "\x31\x35\x2e", "\x31\x36\x2e",
  "\x31\x37\x2e", "\x31\x38\x2e", "\x31\x39\x2e", "\x32\x30\x2e", "\x28\x61\x29", "\x28\x62\x29", "\x28\x63\x29", "\x28\x64\x29",
  "\x28\x65\x29", "\x28\x66\x29", "\x28\x67\x29", "\x28\x68\x29", "\x28\x69\x29", "\x28\x6a\x29", "\x28\x6b\x29", "\x28\x6c\x29",
  "\x28\x6d\x29", "\x28\x6e\x29", "\x28\x6f\x29", "\x28\x70\x29", "\x28\x71\x29", "\x28\x72\x29", "\x28\x73\x29", "\x28\x74\x29",
  "\x28\x75\x29", "\x28\x76\x29", "\x28\x77\x29", "\x28\x78\x29", "\x28\x79\x29", "\x28\x7a\x29", "\x61", "\x62",
  "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a"
};

static const char *grn_nfkc50_decompose_table_e293[] = {
  "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72",
  "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a",
  "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68",
  "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70",
  "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78",
  "\x79", "\x7a", "\x30"
};

static const char *grn_nfkc50_decompose_table_e2a9[] = {
  "\x3a\x3a\x3d", "\x3d\x3d", "\x3d\x3d\x3d"
};

static const char *grn_nfkc50_decompose_table_e2bc[] = {
  "\xe4\xb8\x80", "\xe4\xb8\xa8", "\xe4\xb8\xb6", "\xe4\xb8\xbf", "\xe4\xb9\x99", "\xe4\xba\x85", "\xe4\xba\x8c", "\xe4\xba\xa0",
  "\xe4\xba\xba", "\xe5\x84\xbf", "\xe5\x85\xa5", "\xe5\x85\xab", "\xe5\x86\x82", "\xe5\x86\x96", "\xe5\x86\xab", "\xe5\x87\xa0",
  "\xe5\x87\xb5", "\xe5\x88\x80", "\xe5\x8a\x9b", "\xe5\x8b\xb9", "\xe5\x8c\x95", "\xe5\x8c\x9a", "\xe5\x8c\xb8", "\xe5\x8d\x81",
  "\xe5\x8d\x9c", "\xe5\x8d\xa9", "\xe5\x8e\x82", "\xe5\x8e\xb6", "\xe5\x8f\x88", "\xe5\x8f\xa3", "\xe5\x9b\x97", "\xe5\x9c\x9f",
  "\xe5\xa3\xab", "\xe5\xa4\x82", "\xe5\xa4\x8a", "\xe5\xa4\x95", "\xe5\xa4\xa7", "\xe5\xa5\xb3", "\xe5\xad\x90", "\xe5\xae\x80",
  "\xe5\xaf\xb8", "\xe5\xb0\x8f", "\xe5\xb0\xa2", "\xe5\xb0\xb8", "\xe5\xb1\xae", "\xe5\xb1\xb1", "\xe5\xb7\x9b", "\xe5\xb7\xa5",
  "\xe5\xb7\xb1", "\xe5\xb7\xbe", "\xe5\xb9\xb2", "\xe5\xb9\xba", "\xe5\xb9\xbf", "\xe5\xbb\xb4", "\xe5\xbb\xbe", "\xe5\xbc\x8b",
  "\xe5\xbc\x93", "\xe5\xbd\x90", "\xe5\xbd\xa1", "\xe5\xbd\xb3", "\xe5\xbf\x83", "\xe6\x88\x88", "\xe6\x88\xb6", "\xe6\x89\x8b"
};

static const char *grn_nfkc50_decompose_table_e2bd[] = {
  "\xe6\x94\xaf", "\xe6\x94\xb4", "\xe6\x96\x87", "\xe6\x96\x97", "\xe6\x96\xa4", "\xe6\x96\xb9", "\xe6\x97\xa0", "\xe6\x97\xa5",
  "\xe6\x9b\xb0", "\xe6\x9c\x88", "\xe6\x9c\xa8", "\xe6\xac\xa0", "\xe6\xad\xa2", "\xe6\xad\xb9", "\xe6\xae\xb3", "\xe6\xaf\x8b",
  "\xe6\xaf\x94", "\xe6\xaf\x9b", "\xe6\xb0\x8f", "\xe6\xb0\x94", "\xe6\xb0\xb4", "\xe7\x81\xab", "\xe7\x88\xaa", "\xe7\x88\xb6",
  "\xe7\x88\xbb", "\xe7\x88\xbf", "\xe7\x89\x87", "\xe7\x89\x99", "\xe7\x89\x9b", "\xe7\x8a\xac", "\xe7\x8e\x84", "\xe7\x8e\x89",
  "\xe7\x93\x9c", "\xe7\x93\xa6", "\xe7\x94\x98", "\xe7\x94\x9f", "\xe7\x94\xa8", "\xe7\x94\xb0", "\xe7\x96\x8b", "\xe7\x96\x92",
  "\xe7\x99\xb6", "\xe7\x99\xbd", "\xe7\x9a\xae", "\xe7\x9a\xbf", "\xe7\x9b\xae", "\xe7\x9f\x9b", "\xe7\x9f\xa2", "\xe7\x9f\xb3",
  "\xe7\xa4\xba", "\xe7\xa6\xb8", "\xe7\xa6\xbe", "\xe7\xa9\xb4", "\xe7\xab\x8b", "\xe7\xab\xb9", "\xe7\xb1\xb3", "\xe7\xb3\xb8",
  "\xe7\xbc\xb6", "\xe7\xbd\x91", "\xe7\xbe\x8a", "\xe7\xbe\xbd", "\xe8\x80\x81", "\xe8\x80\x8c", "\xe8\x80\x92", "\xe8\x80\xb3"
};

static const char *grn_nfkc50_decompose_table_e2be[] = {
  "\xe8\x81\xbf", "\xe8\x82\x89", "\xe8\x87\xa3", "\xe8\x87\xaa", "\xe8\x87\xb3", "\xe8\x87\xbc", "\xe8\x88\x8c", "\xe8\x88\x9b",
  "\xe8\x88\x9f", "\xe8\x89\xae", "\xe8\x89\xb2", "\xe8\x89\xb8", "\xe8\x99\x8d", "\xe8\x99\xab", "\xe8\xa1\x80", "\xe8\xa1\x8c",
  "\xe8\xa1\xa3", "\xe8\xa5\xbe", "\xe8\xa6\x8b", "\xe8\xa7\x92", "\xe8\xa8\x80", "\xe8\xb0\xb7", "\xe8\xb1\x86", "\xe8\xb1\x95",
  "\xe8\xb1\xb8", "\xe8\xb2\x9d", "\xe8\xb5\xa4", "\xe8\xb5\xb0", "\xe8\xb6\xb3", "\xe8\xba\xab", "\xe8\xbb\x8a", "\xe8\xbe\x9b",
  "\xe8\xbe\xb0", "\xe8\xbe\xb5", "\xe9\x82\x91", "\xe9\x85\x89", "\xe9\x87\x86", "\xe9\x87\x8c", "\xe9\x87\x91", "\xe9\x95\xb7",
  "\xe9\x96\x80", "\xe9\x98\x9c", "\xe9\x9a\xb6", "\xe9\x9a\xb9", "\xe9\x9b\xa8", "\xe9\x9d\x91", "\xe9\x9d\x9e", "\xe9\x9d\xa2",
  "\xe9\x9d\xa9", "\xe9\x9f\x8b", "\xe9\x9f\xad", "\xe9\x9f\xb3", "\xe9\xa0\x81", "\xe9\xa2\xa8", "\xe9\xa3\x9b", "\xe9\xa3\x9f",
  "\xe9\xa6\x96", "\xe9\xa6\x99", "\xe9\xa6\xac", "\xe9\xaa\xa8", "\xe9\xab\x98", "\xe9\xab\x9f", "\xe9\xac\xa5", "\xe9\xac\xaf"
};

static const char *grn_nfkc50_decompose_table_e2bf[] = {
  "\xe9\xac\xb2", "\xe9\xac\xbc", "\xe9\xad\x9a", "\xe9\xb3\xa5", "\xe9\xb9\xb5", "\xe9\xb9\xbf", "\xe9\xba\xa5", "\xe9\xba\xbb",
  "\xe9\xbb\x83", "\xe9\xbb\x8d", "\xe9\xbb\x91", "\xe9\xbb\xb9", "\xe9\xbb\xbd", "\xe9\xbc\x8e", "\xe9\xbc\x93", "\xe9\xbc\xa0",
  "\xe9\xbc\xbb", "\xe9\xbd\x8a", "\xe9\xbd\x92", "\xe9\xbe\x8d", "\xe9\xbe\x9c", "\xe9\xbe\xa0"
};

static const char *grn_nfkc50_decompose_table_e380[] = {
  "\x20", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\x7e", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, "\xe3\x80\x92", NULL,
  "\xe5\x8d\x81", "\xe5\x8d\x84", "\xe5\x8d\x85"
};

static const char *grn_nfkc50_decompose_table_e382[] = {
  "\xe3\x82\x99", "\xe3\x82\x9a", NULL, NULL, "\xe3\x82\x88\xe3\x82\x8a"
};

static const char *grn_nfkc50_decompose_table_e384[] = {
  "\xe1\x84\x80", "\xe1\x84\x81", "\xe1\x86\xaa", "\xe1\x84\x82", "\xe1\x86\xac", "\xe1\x86\xad", "\xe1\x84\x83", "\xe1\x84\x84",
  "\xe1\x84\x85", "\xe1\x86\xb0", "\xe1\x86\xb1", "\xe1\x86\xb2", "\xe1\x86\xb3", "\xe1\x86\xb4", "\xe1\x86\xb5"
};

static const char *grn_nfkc50_decompose_table_e385[] = {
  "\xe1\x84\x9a", "\xe1\x84\x86", "\xe1\x84\x87", "\xe1\x84\x88", "\xe1\x84\xa1", "\xe1\x84\x89", "\xe1\x84\x8a", "\xe1\x84\x8b",
  "\xe1\x84\x8c", "\xe1\x84\x8d", "\xe1\x84\x8e", "\xe1\x84\x8f", "\xe1\x84\x90", "\xe1\x84\x91", "\xe1\x84\x92", "\xe1\x85\xa1",
  "\xe1\x85\xa2", "\xe1\x85\xa3", "\xe1\x85\xa4", "\xe1\x85\xa5", "\xe1\x85\xa6", "\xe1\x85\xa7", "\xe1\x85\xa8", "\xe1\x85\xa9",
  "\xe1\x85\xaa", "\xe1\x85\xab", "\xe1\x85\xac", "\xe1\x85\xad", "\xe1\x85\xae", "\xe1\x85\xaf", "\xe1\x85\xb0", "\xe1\x85\xb1",
  "\xe1\x85\xb2", "\xe1\x85\xb3", "\xe1\x85\xb4", "\xe1\x85\xb5", "\xe1\x85\xa0", "\xe1\x84\x94", "\xe1\x84\x95", "\xe1\x87\x87",
  "\xe1\x87\x88", "\xe1\x87\x8c", "\xe1\x87\x8e", "\xe1\x87\x93", "\xe1\x87\x97", "\xe1\x87\x99", "\xe1\x84\x9c", "\xe1\x87\x9d",
  "\xe1\x87\x9f", "\xe1\x84\x9d", "\xe1\x84\x9e", "\xe1\x84\xa0", "\xe1\x84\xa2", "\xe1\x84\xa3", "\xe1\x84\xa7", "\xe1\x84\xa9",
  "\xe1\x84\xab", "\xe1\x84\xac", "\xe1\x84\xad", "\xe1\x84\xae", "\xe1\x84\xaf", "\xe1\x84\xb2", "\xe1\x84\xb6", "\xe1\x85\x80"
};

static const char *grn_nfkc50_decompose_table_e386[] = {
  "\xe1\x85\x87", "\xe1\x85\x8c", "\xe1\x87\xb1", "\xe1\x87\xb2", "\xe1\x85\x97", "\xe1\x85\x98", "\xe1\x85\x99", "\xe1\x86\x84",
  "\xe1\x86\x85", "\xe1\x86\x88", "\xe1\x86\x91", "\xe1\x86\x92", "\xe1\x86\x94", "\xe1\x86\x9e", "\xe1\x86\xa1", NULL,
  NULL, NULL, "\xe4\xb8\x80", "\xe4\xba\x8c", "\xe4\xb8\x89", "\xe5\x9b\x9b", "\xe4\xb8\x8a", "\xe4\xb8\xad",
  "\xe4\xb8\x8b", "\xe7\x94\xb2", "\xe4\xb9\x99", "\xe4\xb8\x99", "\xe4\xb8\x81", "\xe5\xa4\xa9", "\xe5\x9c\xb0", "\xe4\xba\xba"
};

static const char *grn_nfkc50_decompose_table_e388[] = {
  "\x28\xe1\x84\x80\x29", "\x28\xe1\x84\x82\x29", "\x28\xe1\x84\x83\x29", "\x28\xe1\x84\x85\x29", "\x28\xe1\x84\x86\x29", "\x28\xe1\x84\x87\x29", "\x28\xe1\x84\x89\x29", "\x28\xe1\x84\x8b\x29",
  "\x28\xe1\x84\x8c\x29", "\x28\xe1\x84\x8e\x29", "\x28\xe1\x84\x8f\x29", "\x28\xe1\x84\x90\x29", "\x28\xe1\x84\x91\x29", "\x28\xe1\x84\x92\x29", "\x28\xea\xb0\x80\x29", "\x28\xeb\x82\x98\x29",
  "\x28\xeb\x8b\xa4\x29", "\x28\xeb\x9d\xbc\x29", "\x28\xeb\xa7\x88\x29", "\x28\xeb\xb0\x94\x29", "\x28\xec\x82\xac\x29", "\x28\xec\x95\x84\x29", "\x28\xec\x9e\x90\x29", "\x28\xec\xb0\xa8\x29",
  "\x28\xec\xb9\xb4\x29", "\x28\xed\x83\x80\x29", "\x28\xed\x8c\x8c\x29", "\x28\xed\x95\x98\x29", "\x28\xec\xa3\xbc\x29", "\x28\xec\x98\xa4\xec\xa0\x84\x29", "\x28\xec\x98\xa4\xed\x9b\x84\x29", NULL,
  "\x28\xe4\xb8\x80\x29", "\x28\xe4\xba\x8c\x29", "\x28\xe4\xb8\x89\x29", "\x28\xe5\x9b\x9b\x29", "\x28\xe4\xba\x94\x29", "\x28\xe5\x85\xad\x29", "\x28\xe4\xb8\x83\x29", "\x28\xe5\x85\xab\x29",
  "\x28\xe4\xb9\x9d\x29", "\x28\xe5\x8d\x81\x29", "\x28\xe6\x9c\x88\x29", "\x28\xe7\x81\xab\x29", "\x28\xe6\xb0\xb4\x29", "\x28\xe6\x9c\xa8\x29", "\x28\xe9\x87\x91\x29", "\x28\xe5\x9c\x9f\x29",
  "\x28\xe6\x97\xa5\x29", "\x28\xe6\xa0\xaa\x29", "\x28\xe6\x9c\x89\x29", "\x28\xe7\xa4\xbe\x29", "\x28\xe5\x90\x8d\x29", "\x28\xe7\x89\xb9\x29", "\x28\xe8\xb2\xa1\x29", "\x28\xe7\xa5\x9d\x29",
  "\x28\xe5\x8a\xb4\x29", "\x28\xe4\xbb\xa3\x29", "\x28\xe5\x91\xbc\x29", "\x28\xe5\xad\xa6\x29", "\x28\xe7\x9b\xa3\x29", "\x28\xe4\xbc\x81\x29", "\x28\xe8\xb3\x87\x29", "\x28\xe5\x8d\x94\x29"
};

static const char *grn_nfkc50_decompose_table_e389[] = {
  "\x28\xe7\xa5\xad\x29", "\x28\xe4\xbc\x91\x29", "\x28\xe8\x87\xaa\x29", "\x28\xe8\x87\xb3\x29", NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\x70\x74\x65", "\x32\x31", "\x32\x32", "\x32\x33", "\x32\x34", "\x32\x35", "\x32\x36", "\x32\x37",
  "\x32\x38", "\x32\x39", "\x33\x30", "\x33\x31", "\x33\x32", "\x33\x33", "\x33\x34", "\x33\x35",
  "\xe1\x84\x80", "\xe1\x84\x82", "\xe1\x84\x83", "\xe1\x84\x85", "\xe1\x84\x86", "\xe1\x84\x87", "\xe1\x84\x89", "\xe1\x84\x8b",
  "\xe1\x84\x8c", "\xe1\x84\x8e", "\xe1\x84\x8f", "\xe1\x84\x90", "\xe1\x84\x91", "\xe1\x84\x92", "\xea\xb0\x80", "\xeb\x82\x98",
  "\xeb\x8b\xa4", "\xeb\x9d\xbc", "\xeb\xa7\x88", "\xeb\xb0\x94", "\xec\x82\xac", "\xec\x95\x84", "\xec\x9e\x90", "\xec\xb0\xa8",
  "\xec\xb9\xb4", "\xed\x83\x80", "\xed\x8c\x8c", "\xed\x95\x98", "\xec\xb0\xb8\xea\xb3\xa0", "\xec\xa3\xbc\xec\x9d\x98", "\xec\x9a\xb0"
};

static const char *grn_nfkc50_decompose_table_e38a[] = {
  "\xe4\xb8\x80", "\xe4\xba\x8c", "\xe4\xb8\x89", "\xe5\x9b\x9b", "\xe4\xba\x94", "\xe5\x85\xad", "\xe4\xb8\x83", "\xe5\x85\xab",
  "\xe4\xb9\x9d", "\xe5\x8d\x81", "\xe6\x9c\x88", "\xe7\x81\xab", "\xe6\xb0\xb4", "\xe6\x9c\xa8", "\xe9\x87\x91", "\xe5\x9c\x9f",
  "\xe6\x97\xa5", "\xe6\xa0\xaa", "\xe6\x9c\x89", "\xe7\xa4\xbe", "\xe5\x90\x8d", "\xe7\x89\xb9", "\xe8\xb2\xa1", "\xe7\xa5\x9d",
  "\xe5\x8a\xb4", "\xe7\xa7\x98", "\xe7\x94\xb7", "\xe5\xa5\xb3", "\xe9\x81\xa9", "\xe5\x84\xaa", "\xe5\x8d\xb0", "\xe6\xb3\xa8",
  "\xe9\xa0\x85", "\xe4\xbc\x91", "\xe5\x86\x99", "\xe6\xad\xa3", "\xe4\xb8\x8a", "\xe4\xb8\xad", "\xe4\xb8\x8b", "\xe5\xb7\xa6",
  "\xe5\x8f\xb3", "\xe5\x8c\xbb", "\xe5\xae\x97", "\xe5\xad\xa6", "\xe7\x9b\xa3", "\xe4\xbc\x81", "\xe8\xb3\x87", "\xe5\x8d\x94",
  "\xe5\xa4\x9c", "\x33\x36", "\x33\x37", "\x33\x38", "\x33\x39", "\x34\x30", "\x34\x31", "\x34\x32",
  "\x34\x33", "\x34\x34", "\x34\x35", "\x34\x36", "\x34\x37", "\x34\x38", "\x34\x39", "\x35\x30"
};

static const char *grn_nfkc50_decompose_table_e38b[] = {
  "\x31\xe6\x9c\x88", "\x32\xe6\x9c\x88", "\x33\xe6\x9c\x88", "\x34\xe6\x9c\x88", "\x35\xe6\x9c\x88", "\x36\xe6\x9c\x88", "\x37\xe6\x9c\x88", "\x38\xe6\x9c\x88",
  "\x39\xe6\x9c\x88", "\x31\x30\xe6\x9c\x88", "\x31\x31\xe6\x9c\x88", "\x31\x32\xe6\x9c\x88", "\x68\x67", "\x65\x72\x67", "\x65\x76", "\x6c\x74\x64",
  "\xe3\x82\xa2", "\xe3\x82\xa4", "\xe3\x82\xa6", "\xe3\x82\xa8", "\xe3\x82\xaa", "\xe3\x82\xab", "\xe3\x82\xad", "\xe3\x82\xaf",
  "\xe3\x82\xb1", "\xe3\x82\xb3", "\xe3\x82\xb5", "\xe3\x82\xb7", "\xe3\x82\xb9", "\xe3\x82\xbb", "\xe3\x82\xbd", "\xe3\x82\xbf",
  "\xe3\x83\x81", "\xe3\x83\x84", "\xe3\x83\x86", "\xe3\x83\x88", "\xe3\x83\x8a", "\xe3\x83\x8b", "\xe3\x83\x8c", "\xe3\x83\x8d",
  "\xe3\x83\x8e", "\xe3\x83\x8f", "\xe3\x83\x92", "\xe3\x83\x95", "\xe3\x83\x98", "\xe3\x83\x9b", "\xe3\x83\x9e", "\xe3\x83\x9f",
  "\xe3\x83\xa0", "\xe3\x83\xa1", "\xe3\x83\xa2", "\xe3\x83\xa4", "\xe3\x83\xa6", "\xe3\x83\xa8", "\xe3\x83\xa9", "\xe3\x83\xaa",
  "\xe3\x83\xab", "\xe3\x83\xac", "\xe3\x83\xad", "\xe3\x83\xaf", "\xe3\x83\xb0", "\xe3\x83\xb1", "\xe3\x83\xb2"
};

static const char *grn_nfkc50_decompose_table_e38c[] = {
  "\xe3\x82\xa2\xe3\x83\x91\xe3\x83\xbc\xe3\x83\x88", "\xe3\x82\xa2\xe3\x83\xab\xe3\x83\x95\xe3\x82\xa1", "\xe3\x82\xa2\xe3\x83\xb3\xe3\x83\x9a\xe3\x82\xa2", "\xe3\x82\xa2\xe3\x83\xbc\xe3\x83\xab", "\xe3\x82\xa4\xe3\x83\x8b\xe3\x83\xb3\xe3\x82\xb0", "\xe3\x82\xa4\xe3\x83\xb3\xe3\x83\x81", "\xe3\x82\xa6\xe3\x82\xa9\xe3\x83\xb3", "\xe3\x82\xa8\xe3\x82\xb9\xe3\x82\xaf\xe3\x83\xbc\xe3\x83\x89",
  "\xe3\x82\xa8\xe3\x83\xbc\xe3\x82\xab\xe3\x83\xbc", "\xe3\x82\xaa\xe3\x83\xb3\xe3\x82\xb9", "\xe3\x82\xaa\xe3\x83\xbc\xe3\x83\xa0", "\xe3\x82\xab\xe3\x82\xa4\xe3\x83\xaa", "\xe3\x82\xab\xe3\x83\xa9\xe3\x83\x83\xe3\x83\x88", "\xe3\x82\xab\xe3\x83\xad\xe3\x83\xaa\xe3\x83\xbc", "\xe3\x82\xac\xe3\x83\xad\xe3\x83\xb3", "\xe3\x82\xac\xe3\x83\xb3\xe3\x83\x9e",
  "\xe3\x82\xae\xe3\x82\xac", "\xe3\x82\xae\xe3\x83\x8b\xe3\x83\xbc", "\xe3\x82\xad\xe3\x83\xa5\xe3\x83\xaa\xe3\x83\xbc", "\xe3\x82\xae\xe3\x83\xab\xe3\x83\x80\xe3\x83\xbc", "\xe3\x82\xad\xe3\x83\xad", "\xe3\x82\xad\xe3\x83\xad\xe3\x82\xb0\xe3\x83\xa9\xe3\x83\xa0", "\xe3\x82\xad\xe3\x83\xad\xe3\x83\xa1\xe3\x83\xbc\xe3\x83\x88\xe3\x83\xab", "\xe3\x82\xad\xe3\x83\xad\xe3\x83\xaf\xe3\x83\x83\xe3\x83\x88",
  "\xe3\x82\xb0\xe3\x83\xa9\xe3\x83\xa0", "\xe3\x82\xb0\xe3\x83\xa9\xe3\x83\xa0\xe3\x83\x88\xe3\x83\xb3", "\xe3\x82\xaf\xe3\x83\xab\xe3\x82\xbc\xe3\x82\xa4\xe3\x83\xad", "\xe3\x82\xaf\xe3\x83\xad\xe3\x83\xbc\xe3\x83\x8d", "\xe3\x82\xb1\xe3\x83\xbc\xe3\x82\xb9", "\xe3\x82\xb3\xe3\x83\xab\xe3\x83\x8a", "\xe3\x82\xb3\xe3\x83\xbc\xe3\x83\x9d", "\xe3\x82\xb5\xe3\x82\xa4\xe3\x82\xaf\xe3\x83\xab",
  "\xe3\x82\xb5\xe3\x83\xb3\xe3\x83\x81\xe3\x83\xbc\xe3\x83\xa0", "\xe3\x82\xb7\xe3\x83\xaa\xe3\x83\xb3\xe3\x82\xb0", "\xe3\x82\xbb\xe3\x83\xb3\xe3\x83\x81", "\xe3\x82\xbb\xe3\x83\xb3\xe3\x83\x88", "\xe3\x83\x80\xe3\x83\xbc\xe3\x82\xb9", "\xe3\x83\x87\xe3\x82\xb7", "\xe3\x83\x89\xe3\x83\xab", "\xe3\x83\x88\xe3\x83\xb3",
  "\xe3\x83\x8a\xe3\x83\x8e", "\xe3\x83\x8e\xe3\x83\x83\xe3\x83\x88", "\xe3\x83\x8f\xe3\x82\xa4\xe3\x83\x84", "\xe3\x83\x91\xe3\x83\xbc\xe3\x82\xbb\xe3\x83\xb3\xe3\x83\x88", "\xe3\x83\x91\xe3\x83\xbc\xe3\x83\x84", "\xe3\x83\x90\xe3\x83\xbc\xe3\x83\xac\xe3\x83\xab", "\xe3\x83\x94\xe3\x82\xa2\xe3\x82\xb9\xe3\x83\x88\xe3\x83\xab", "\xe3\x83\x94\xe3\x82\xaf\xe3\x83\xab",
  "\xe3\x83\x94\xe3\x82\xb3", "\xe3\x83\x93\xe3\x83\xab", "\xe3\x83\x95\xe3\x82\xa1\xe3\x83\xa9\xe3\x83\x83\xe3\x83\x89", "\xe3\x83\x95\xe3\x82\xa3\xe3\x83\xbc\xe3\x83\x88", "\xe3\x83\x96\xe3\x83\x83\xe3\x82\xb7\xe3\x82\xa7\xe3\x83\xab", "\xe3\x83\x95\xe3\x83\xa9\xe3\x83\xb3", "\xe3\x83\x98\xe3\x82\xaf\xe3\x82\xbf\xe3\x83\xbc\xe3\x83\xab", "\xe3\x83\x9a\xe3\x82\xbd",
  "\xe3\x83\x9a\xe3\x83\x8b\xe3\x83\x92", "\xe3\x83\x98\xe3\x83\xab\xe3\x83\x84", "\xe3\x83\x9a\xe3\x83\xb3\xe3\x82\xb9", "\xe3\x83\x9a\xe3\x83\xbc\xe3\x82\xb8", "\xe3\x83\x99\xe3\x83\xbc\xe3\x82\xbf", "\xe3\x83\x9d\xe3\x82\xa4\xe3\x83\xb3\xe3\x83\x88", "\xe3\x83\x9c\xe3\x83\xab\xe3\x83\x88", "\xe3\x83\x9b\xe3\x83\xb3"
};

static const char *grn_nfkc50_decompose_table_e38d[] = {
  "\xe3\x83\x9d\xe3\x83\xb3\xe3\x83\x89", "\xe3\x83\x9b\xe3\x83\xbc\xe3\x83\xab", "\xe3\x83\x9b\xe3\x83\xbc\xe3\x83\xb3", "\xe3\x83\x9e\xe3\x82\xa4\xe3\x82\xaf\xe3\x83\xad", "\xe3\x83\x9e\xe3\x82\xa4\xe3\x83\xab", "\xe3\x83\x9e\xe3\x83\x83\xe3\x83\x8f", "\xe3\x83\x9e\xe3\x83\xab\xe3\x82\xaf", "\xe3\x83\x9e\xe3\x83\xb3\xe3\x82\xb7\xe3\x83\xa7\xe3\x83\xb3",
  "\xe3\x83\x9f\xe3\x82\xaf\xe3\x83\xad\xe3\x83\xb3", "\xe3\x83\x9f\xe3\x83\xaa", "\xe3\x83\x9f\xe3\x83\xaa\xe3\x83\x90\xe3\x83\xbc\xe3\x83\xab", "\xe3\x83\xa1\xe3\x82\xac", "\xe3\x83\xa1\xe3\x82\xac\xe3\x83\x88\xe3\x83\xb3", "\xe3\x83\xa1\xe3\x83\xbc\xe3\x83\x88\xe3\x83\xab", "\xe3\x83\xa4\xe3\x83\xbc\xe3\x83\x89", "\xe3\x83\xa4\xe3\x83\xbc\xe3\x83\xab",
  "\xe3\x83\xa6\xe3\x82\xa2\xe3\x83\xb3", "\xe3\x83\xaa\xe3\x83\x83\xe3\x83\x88\xe3\x83\xab", "\xe3\x83\xaa\xe3\x83\xa9", "\xe3\x83\xab\xe3\x83\x94\xe3\x83\xbc", "\xe3\x83\xab\xe3\x83\xbc\xe3\x83\x96\xe3\x83\xab", "\xe3\x83\xac\xe3\x83\xa0", "\xe3\x83\xac\xe3\x83\xb3\xe3\x83\x88\xe3\x82\xb2\xe3\x83\xb3", "\xe3\x83\xaf\xe3\x83\x83\xe3\x83\x88",
  "\x30\xe7\x82\xb9", "\x31\xe7\x82\xb9", "\x32\xe7\x82\xb9", "\x33\xe7\x82\xb9", "\x34\xe7\x82\xb9", "\x35\xe7\x82\xb9", "\x36\xe7\x82\xb9", "\x37\xe7\x82\xb9",
  "\x38\xe7\x82\xb9", "\x39\xe7\x82\xb9", "\x31\x30\xe7\x82\xb9", "\x31\x31\xe7\x82\xb9", "\x31\x32\xe7\x82\xb9", "\x31\x33\xe7\x82\xb9", "\x31\x34\xe7\x82\xb9", "\x31\x35\xe7\x82\xb9",
  "\x31\x36\xe7\x82\xb9", "\x31\x37\xe7\x82\xb9", "\x31\x38\xe7\x82\xb9", "\x31\x39\xe7\x82\xb9", "\x32\x30\xe7\x82\xb9", "\x32\x31\xe7\x82\xb9", "\x32\x32\xe7\x82\xb9", "\x32\x33\xe7\x82\xb9",
  "\x32\x34\xe7\x82\xb9", "\x68\x70\x61", "\x64\x61", "\x61\x75", "\x62\x61\x72", "\x6f\x76", "\x70\x63", "\x64\x6d",
  "\x64\x6d\x32", "\x64\x6d\x33", "\x69\x75", "\xe5\xb9\xb3\xe6\x88\x90", "\xe6\x98\xad\xe5\x92\x8c", "\xe5\xa4\xa7\xe6\xad\xa3", "\xe6\x98\x8e\xe6\xb2\xbb", "\xe6\xa0\xaa\xe5\xbc\x8f\xe4\xbc\x9a\xe7\xa4\xbe"
};

static const char *grn_nfkc50_decompose_table_e38e[] = {
  "\x70\x61", "\x6e\x61", "\xce\xbc\x61", "\x6d\x61", "\x6b\x61", "\x6b\x62", "\x6d\x62", "\x67\x62",
  "\x63\x61\x6c", "\x6b\x63\x61\x6c", "\x70\x66", "\x6e\x66", "\xce\xbc\x66", "\xce\xbc\x67", "\x6d\x67", "\x6b\x67",
  "\x68\x7a", "\x6b\x68\x7a", "\x6d\x68\x7a", "\x67\x68\x7a", "\x74\x68\x7a", "\xce\xbc\x6c", "\x6d\x6c", "\x64\x6c",
  "\x6b\x6c", "\x66\x6d", "\x6e\x6d", "\xce\xbc\x6d", "\x6d\x6d", "\x63\x6d", "\x6b\x6d", "\x6d\x6d\x32",
  "\x63\x6d\x32", "\x6d\x32", "\x6b\x6d\x32", "\x6d\x6d\x33", "\x63\x6d\x33", "\x6d\x33", "\x6b\x6d\x33", "\x6d\xe2\x88\x95\x73",
  "\x6d\xe2\x88\x95\x73\x32", "\x70\x61", "\x6b\x70\x61", "\x6d\x70\x61", "\x67\x70\x61", "\x72\x61\x64", "\x72\x61\x64\xe2\x88\x95\x73", "\x72\x61\x64\xe2\x88\x95\x73\x32",
  "\x70\x73", "\x6e\x73", "\xce\xbc\x73", "\x6d\x73", "\x70\x76", "\x6e\x76", "\xce\xbc\x76", "\x6d\x76",
  "\x6b\x76", "\x6d\x76", "\x70\x77", "\x6e\x77", "\xce\xbc\x77", "\x6d\x77", "\x6b\x77", "\x6d\x77"
};

static const char *grn_nfkc50_decompose_table_e38f[] = {
  "\x6b\xce\xa9", "\x6d\xce\xa9", "\x61\x2e\x6d\x2e", "\x62\x71", "\x63\x63", "\x63\x64", "\x63\xe2\x88\x95\x6b\x67", "\x63\x6f\x2e",
  "\x64\x62", "\x67\x79", "\x68\x61", "\x68\x70", "\x69\x6e", "\x6b\x6b", "\x6b\x6d", "\x6b\x74",
  "\x6c\x6d", "\x6c\x6e", "\x6c\x6f\x67", "\x6c\x78", "\x6d\x62", "\x6d\x69\x6c", "\x6d\x6f\x6c", "\x70\x68",
  "\x70\x2e\x6d\x2e", "\x70\x70\x6d", "\x70\x72", "\x73\x72", "\x73\x76", "\x77\x62", "\x76\xe2\x88\x95\x6d", "\x61\xe2\x88\x95\x6d",
  "\x31\xe6\x97\xa5", "\x32\xe6\x97\xa5", "\x33\xe6\x97\xa5", "\x34\xe6\x97\xa5", "\x35\xe6\x97\xa5", "\x36\xe6\x97\xa5", "\x37\xe6\x97\xa5", "\x38\xe6\x97\xa5",
  "\x39\xe6\x97\xa5", "\x31\x30\xe6\x97\xa5", "\x31\x31\xe6\x97\xa5", "\x31\x32\xe6\x97\xa5", "\x31\x33\xe6\x97\xa5", "\x31\x34\xe6\x97\xa5", "\x31\x35\xe6\x97\xa5", "\x31\x36\xe6\x97\xa5",
  "\x31\x37\xe6\x97\xa5", "\x31\x38\xe6\x97\xa5", "\x31\x39\xe6\x97\xa5", "\x32\x30\xe6\x97\xa5", "\x32\x31\xe6\x97\xa5", "\x32\x32\xe6\x97\xa5", "\x32\x33\xe6\x97\xa5", "\x32\x34\xe6\x97\xa5",
  "\x32\x35\xe6\x97\xa5", "\x32\x36\xe6\x97\xa5", "\x32\x37\xe6\x97\xa5", "\x32\x38\xe6\x97\xa5", "\x32\x39\xe6\x97\xa5", "\x33\x30\xe6\x97\xa5", "\x33\x31\xe6\x97\xa5", "\x67\x61\x6c"
};

static const char *grn_nfkc50_decompose_table_efa4[] = {
  "\xe8\xb1\x88", "\xe6\x9b\xb4", "\xe8\xbb\x8a", "\xe8\xb3\x88", "\xe6\xbb\x91", "\xe4\xb8\xb2", "\xe5\x8f\xa5", "\xe9\xbe\x9c",
  "\xe9\xbe\x9c", "\xe5\xa5\x91", "\xe9\x87\x91", "\xe5\x96\x87", "\xe5\xa5\x88", "\xe6\x87\xb6", "\xe7\x99\xa9", "\xe7\xbe\x85",
  "\xe8\x98\xbf", "\xe8\x9e\xba", "\xe8\xa3\xb8", "\xe9\x82\x8f", "\xe6\xa8\x82", "\xe6\xb4\x9b", "\xe7\x83\x99", "\xe7\x8f\x9e",
  "\xe8\x90\xbd", "\xe9\x85\xaa", "\xe9\xa7\xb1", "\xe4\xba\x82", "\xe5\x8d\xb5", "\xe6\xac\x84", "\xe7\x88\x9b", "\xe8\x98\xad",
  "\xe9\xb8\x9e", "\xe5\xb5\x90", "\xe6\xbf\xab", "\xe8\x97\x8d", "\xe8\xa5\xa4", "\xe6\x8b\x89", "\xe8\x87\x98", "\xe8\xa0\x9f",
  "\xe5\xbb\x8a", "\xe6\x9c\x97", "\xe6\xb5\xaa", "\xe7\x8b\xbc", "\xe9\x83\x8e", "\xe4\xbe\x86", "\xe5\x86\xb7", "\xe5\x8b\x9e",
  "\xe6\x93\x84", "\xe6\xab\x93", "\xe7\x88\x90", "\xe7\x9b\xa7", "\xe8\x80\x81", "\xe8\x98\x86", "\xe8\x99\x9c", "\xe8\xb7\xaf",
  "\xe9\x9c\xb2", "\xe9\xad\xaf", "\xe9\xb7\xba", "\xe7\xa2\x8c", "\xe7\xa5\xbf", "\xe7\xb6\xa0", "\xe8\x8f\x89", "\xe9\x8c\x84"
};

static const char *grn_nfkc50_decompose_table_efa5[] = {
  "\xe9\xb9\xbf", "\xe8\xab\x96", "\xe5\xa3\x9f", "\xe5\xbc\x84", "\xe7\xb1\xa0", "\xe8\x81\xbe", "\xe7\x89\xa2", "\xe7\xa3\x8a",
  "\xe8\xb3\x82", "\xe9\x9b\xb7", "\xe5\xa3\x98", "\xe5\xb1\xa2", "\xe6\xa8\x93", "\xe6\xb7\x9a", "\xe6\xbc\x8f", "\xe7\xb4\xaf",
  "\xe7\xb8\xb7", "\xe9\x99\x8b", "\xe5\x8b\x92", "\xe8\x82\x8b", "\xe5\x87\x9c", "\xe5\x87\x8c", "\xe7\xa8\x9c", "\xe7\xb6\xbe",
  "\xe8\x8f\xb1", "\xe9\x99\xb5", "\xe8\xae\x80", "\xe6\x8b\x8f", "\xe6\xa8\x82", "\xe8\xab\xbe", "\xe4\xb8\xb9", "\xe5\xaf\xa7",
  "\xe6\x80\x92", "\xe7\x8e\x87", "\xe7\x95\xb0", "\xe5\x8c\x97", "\xe7\xa3\xbb", "\xe4\xbe\xbf", "\xe5\xbe\xa9", "\xe4\xb8\x8d",
  "\xe6\xb3\x8c", "\xe6\x95\xb8", "\xe7\xb4\xa2", "\xe5\x8f\x83", "\xe5\xa1\x9e", "\xe7\x9c\x81", "\xe8\x91\x89", "\xe8\xaa\xaa",
  "\xe6\xae\xba", "\xe8\xbe\xb0", "\xe6\xb2\x88", "\xe6\x8b\xbe", "\xe8\x8b\xa5", "\xe6\x8e\xa0", "\xe7\x95\xa5", "\xe4\xba\xae",
  "\xe5\x85\xa9", "\xe5\x87\x89", "\xe6\xa2\x81", "\xe7\xb3\xa7", "\xe8\x89\xaf", "\xe8\xab\x92", "\xe9\x87\x8f", "\xe5\x8b\xb5"
};

static const char *grn_nfkc50_decompose_table_efa6[] = {
  "\xe5\x91\x82", "\xe5\xa5\xb3", "\xe5\xbb\xac", "\xe6\x97\x85", "\xe6\xbf\xbe", "\xe7\xa4\xaa", "\xe9\x96\xad", "\xe9\xa9\xaa",
  "\xe9\xba\x97", "\xe9\xbb\x8e", "\xe5\x8a\x9b", "\xe6\x9b\x86", "\xe6\xad\xb7", "\xe8\xbd\xa2", "\xe5\xb9\xb4", "\xe6\x86\x90",
  "\xe6\x88\x80", "\xe6\x92\x9a", "\xe6\xbc\xa3", "\xe7\x85\x89", "\xe7\x92\x89", "\xe7\xa7\x8a", "\xe7\xb7\xb4", "\xe8\x81\xaf",
  "\xe8\xbc\xa6", "\xe8\x93\xae", "\xe9\x80\xa3", "\xe9\x8d\x8a", "\xe5\x88\x97", "\xe5\x8a\xa3", "\xe5\x92\xbd", "\xe7\x83\x88",
  "\xe8\xa3\x82", "\xe8\xaa\xaa", "\xe5\xbb\x89", "\xe5\xbf\xb5", "\xe6\x8d\xbb", "\xe6\xae\xae", "\xe7\xb0\xbe", "\xe7\x8d\xb5",
  "\xe4\xbb\xa4", "\xe5\x9b\xb9", "\xe5\xaf\xa7", "\xe5\xb6\xba", "\xe6\x80\x9c", "\xe7\x8e\xb2", "\xe7\x91\xa9", "\xe7\xbe\x9a",
  "\xe8\x81\x86", "\xe9\x88\xb4", "\xe9\x9b\xb6", "\xe9\x9d\x88", "\xe9\xa0\x98", "\xe4\xbe\x8b", "\xe7\xa6\xae", "\xe9\x86\xb4",
  "\xe9\x9a\xb8", "\xe6\x83\xa1", "\xe4\xba\x86", "\xe5\x83\x9a", "\xe5\xaf\xae", "\xe5\xb0\xbf", "\xe6\x96\x99", "\xe6\xa8\x82"
};

static const char *grn_nfkc50_decompose_table_efa7[] = {
  "\xe7\x87\x8e", "\xe7\x99\x82", "\xe8\x93\xbc", "\xe9\x81\xbc", "\xe9\xbe\x8d", "\xe6\x9a\x88", "\xe9\x98\xae", "\xe5\x8a\x89",
  "\xe6\x9d\xbb", "\xe6\x9f\xb3", "\xe6\xb5\x81", "\xe6\xba\x9c", "\xe7\x90\x89", "\xe7\x95\x99", "\xe7\xa1\xab", "\xe7\xb4\x90",
  "\xe9\xa1\x9e", "\xe5\x85\xad", "\xe6\x88\xae", "\xe9\x99\xb8", "\xe5\x80\xab", "\xe5\xb4\x99", "\xe6\xb7\xaa", "\xe8\xbc\xaa",
  "\xe5\xbe\x8b", "\xe6\x85\x84", "\xe6\xa0\x97", "\xe7\x8e\x87", "\xe9\x9a\x86", "\xe5\x88\xa9", "\xe5\x90\x8f", "\xe5\xb1\xa5",
  "\xe6\x98\x93", "\xe6\x9d\x8e", "\xe6\xa2\xa8", "\xe6\xb3\xa5", "\xe7\x90\x86", "\xe7\x97\xa2", "\xe7\xbd\xb9", "\xe8\xa3\x8f",
  "\xe8\xa3\xa1", "\xe9\x87\x8c", "\xe9\x9b\xa2", "\xe5\x8c\xbf", "\xe6\xba\xba", "\xe5\x90\x9d", "\xe7\x87\x90", "\xe7\x92\x98",
  "\xe8\x97\xba", "\xe9\x9a\xa3", "\xe9\xb1\x97", "\xe9\xba\x9f", "\xe6\x9e\x97", "\xe6\xb7\x8b", "\xe8\x87\xa8", "\xe7\xab\x8b",
  "\xe7\xac\xa0", "\xe7\xb2\x92", "\xe7\x8b\x80", "\xe7\x82\x99", "\xe8\xad\x98", "\xe4\xbb\x80", "\xe8\x8c\xb6", "\xe5\x88\xba"
};

static const char *grn_nfkc50_decompose_table_efa8[] = {
  "\xe5\x88\x87", "\xe5\xba\xa6", "\xe6\x8b\x93", "\xe7\xb3\x96", "\xe5\xae\x85", "\xe6\xb4\x9e", "\xe6\x9a\xb4", "\xe8\xbc\xbb",
  "\xe8\xa1\x8c", "\xe9\x99\x8d", "\xe8\xa6\x8b", "\xe5\xbb\x93", "\xe5\x85\x80", "\xe5\x97\x80", NULL, NULL,
  "\xe5\xa1\x9a", NULL, "\xe6\x99\xb4", NULL, NULL, "\xe5\x87\x9e", "\xe7\x8c\xaa", "\xe7\x9b\x8a",
  "\xe7\xa4\xbc", "\xe7\xa5\x9e", "\xe7\xa5\xa5", "\xe7\xa6\x8f", "\xe9\x9d\x96", "\xe7\xb2\xbe", "\xe7\xbe\xbd", NULL,
  "\xe8\x98\x92", NULL, "\xe8\xab\xb8", NULL, NULL, "\xe9\x80\xb8", "\xe9\x83\xbd", NULL,
  NULL, NULL, "\xe9\xa3\xaf", "\xe9\xa3\xbc", "\xe9\xa4\xa8", "\xe9\xb6\xb4", NULL, NULL,
  "\xe4\xbe\xae", "\xe5\x83\xa7", "\xe5\x85\x8d", "\xe5\x8b\x89", "\xe5\x8b\xa4", "\xe5\x8d\x91", "\xe5\x96\x9d", "\xe5\x98\x86",
  "\xe5\x99\xa8", "\xe5\xa1\x80", "\xe5\xa2\xa8", "\xe5\xb1\xa4", "\xe5\xb1\xae", "\xe6\x82\x94", "\xe6\x85\xa8", "\xe6\x86\x8e"
};

static const char *grn_nfkc50_decompose_table_efa9[] = {
  "\xe6\x87\xb2", "\xe6\x95\x8f", "\xe6\x97\xa2", "\xe6\x9a\x91", "\xe6\xa2\x85", "\xe6\xb5\xb7", "\xe6\xb8\x9a", "\xe6\xbc\xa2",
  "\xe7\x85\xae", "\xe7\x88\xab", "\xe7\x90\xa2", "\xe7\xa2\x91", "\xe7\xa4\xbe", "\xe7\xa5\x89", "\xe7\xa5\x88", "\xe7\xa5\x90",
  "\xe7\xa5\x96", "\xe7\xa5\x9d", "\xe7\xa6\x8d", "\xe7\xa6\x8e", "\xe7\xa9\x80", "\xe7\xaa\x81", "\xe7\xaf\x80", "\xe7\xb7\xb4",
  "\xe7\xb8\x89", "\xe7\xb9\x81", "\xe7\xbd\xb2", "\xe8\x80\x85", "\xe8\x87\xad", "\xe8\x89\xb9", "\xe8\x89\xb9", "\xe8\x91\x97",
  "\xe8\xa4\x90", "\xe8\xa6\x96", "\xe8\xac\x81", "\xe8\xac\xb9", "\xe8\xb3\x93", "\xe8\xb4\x88", "\xe8\xbe\xb6", "\xe9\x80\xb8",
  "\xe9\x9b\xa3", "\xe9\x9f\xbf", "\xe9\xa0\xbb", NULL, NULL, NULL, NULL, NULL,
  "\xe4\xb8\xa6", "\xe5\x86\xb5", "\xe5\x85\xa8", "\xe4\xbe\x80", "\xe5\x85\x85", "\xe5\x86\x80", "\xe5\x8b\x87", "\xe5\x8b\xba",
  "\xe5\x96\x9d", "\xe5\x95\x95", "\xe5\x96\x99", "\xe5\x97\xa2", "\xe5\xa1\x9a", "\xe5\xa2\xb3", "\xe5\xa5\x84", "\xe5\xa5\x94"
};

static const char *grn_nfkc50_decompose_table_efaa[] = {
  "\xe5\xa9\xa2", "\xe5\xac\xa8", "\xe5\xbb\x92", "\xe5\xbb\x99", "\xe5\xbd\xa9", "\xe5\xbe\xad", "\xe6\x83\x98", "\xe6\x85\x8e",
  "\xe6\x84\x88", "\xe6\x86\x8e", "\xe6\x85\xa0", "\xe6\x87\xb2", "\xe6\x88\xb4", "\xe6\x8f\x84", "\xe6\x90\x9c", "\xe6\x91\x92",
  "\xe6\x95\x96", "\xe6\x99\xb4", "\xe6\x9c\x97", "\xe6\x9c\x9b", "\xe6\x9d\x96", "\xe6\xad\xb9", "\xe6\xae\xba", "\xe6\xb5\x81",
  "\xe6\xbb\x9b", "\xe6\xbb\x8b", "\xe6\xbc\xa2", "\xe7\x80\x9e", "\xe7\x85\xae", "\xe7\x9e\xa7", "\xe7\x88\xb5", "\xe7\x8a\xaf",
  "\xe7\x8c\xaa", "\xe7\x91\xb1", "\xe7\x94\x86", "\xe7\x94\xbb", "\xe7\x98\x9d", "\xe7\x98\x9f", "\xe7\x9b\x8a", "\xe7\x9b\x9b",
  "\xe7\x9b\xb4", "\xe7\x9d\x8a", "\xe7\x9d\x80", "\xe7\xa3\x8c", "\xe7\xaa\xb1", "\xe7\xaf\x80", "\xe7\xb1\xbb", "\xe7\xb5\x9b",
  "\xe7\xb7\xb4", "\xe7\xbc\xbe", "\xe8\x80\x85", "\xe8\x8d\x92", "\xe8\x8f\xaf", "\xe8\x9d\xb9", "\xe8\xa5\x81", "\xe8\xa6\x86",
  "\xe8\xa6\x96", "\xe8\xaa\xbf", "\xe8\xab\xb8", "\xe8\xab\x8b", "\xe8\xac\x81", "\xe8\xab\xbe", "\xe8\xab\xad", "\xe8\xac\xb9"
};

static const char *grn_nfkc50_decompose_table_efab[] = {
  "\xe8\xae\x8a", "\xe8\xb4\x88", "\xe8\xbc\xb8", "\xe9\x81\xb2", "\xe9\x86\x99", "\xe9\x89\xb6", "\xe9\x99\xbc", "\xe9\x9b\xa3",
  "\xe9\x9d\x96", "\xe9\x9f\x9b", "\xe9\x9f\xbf", "\xe9\xa0\x8b", "\xe9\xa0\xbb", "\xe9\xac\x92", "\xe9\xbe\x9c", "\xf0\xa2\xa1\x8a",
  "\xf0\xa2\xa1\x84", "\xf0\xa3\x8f\x95", "\xe3\xae\x9d", "\xe4\x80\x98", "\xe4\x80\xb9", "\xf0\xa5\x89\x89", "\xf0\xa5\xb3\x90", "\xf0\xa7\xbb\x93",
  "\xe9\xbd\x83", "\xe9\xbe\x8e"
};

static const char *grn_nfkc50_decompose_table_efac[] = {
  "\x66\x66", "\x66\x69", "\x66\x6c", "\x66\x66\x69", "\x66\x66\x6c", "\x73\x74", "\x73\x74", NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, "\xd5\xb4\xd5\xb6", "\xd5\xb4\xd5\xa5", "\xd5\xb4\xd5\xab", "\xd5\xbe\xd5\xb6", "\xd5\xb4\xd5\xad",
  NULL, NULL, NULL, NULL, NULL, "\xd7\x99\xd6\xb4", NULL, "\xd7\xb2\xd6\xb7",
  "\xd7\xa2", "\xd7\x90", "\xd7\x93", "\xd7\x94", "\xd7\x9b", "\xd7\x9c", "\xd7\x9d", "\xd7\xa8",
  "\xd7\xaa", "\x2b", "\xd7\xa9\xd7\x81", "\xd7\xa9\xd7\x82", "\xd7\xa9\xd6\xbc\xd7\x81", "\xd7\xa9\xd6\xbc\xd7\x82", "\xd7\x90\xd6\xb7", "\xd7\x90\xd6\xb8",
  "\xd7\x90\xd6\xbc", "\xd7\x91\xd6\xbc", "\xd7\x92\xd6\xbc", "\xd7\x93\xd6\xbc", "\xd7\x94\xd6\xbc", "\xd7\x95\xd6\xbc", "\xd7\x96\xd6\xbc", NULL,
  "\xd7\x98\xd6\xbc", "\xd7\x99\xd6\xbc", "\xd7\x9a\xd6\xbc", "\xd7\x9b\xd6\xbc", "\xd7\x9c\xd6\xbc", NULL, "\xd7\x9e\xd6\xbc"
};

static const char *grn_nfkc50_decompose_table_efad[] = {
  "\xd7\xa0\xd6\xbc", "\xd7\xa1\xd6\xbc", NULL, "\xd7\xa3\xd6\xbc", "\xd7\xa4\xd6\xbc", NULL, "\xd7\xa6\xd6\xbc", "\xd7\xa7\xd6\xbc",
  "\xd7\xa8\xd6\xbc", "\xd7\xa9\xd6\xbc", "\xd7\xaa\xd6\xbc", "\xd7\x95\xd6\xb9", "\xd7\x91\xd6\xbf", "\xd7\x9b\xd6\xbf", "\xd7\xa4\xd6\xbf", "\xd7\x90\xd7\x9c",
  "\xd9\xb1", "\xd9\xb1", "\xd9\xbb", "\xd9\xbb", "\xd9\xbb", "\xd9\xbb", "\xd9\xbe", "\xd9\xbe",
  "\xd9\xbe", "\xd9\xbe", "\xda\x80", "\xda\x80", "\xda\x80", "\xda\x80", "\xd9\xba", "\xd9\xba",
  "\xd9\xba", "\xd9\xba", "\xd9\xbf", "\xd9\xbf", "\xd9\xbf", "\xd9\xbf", "\xd9\xb9", "\xd9\xb9",
  "\xd9\xb9", "\xd9\xb9", "\xda\xa4", "\xda\xa4", "\xda\xa4", "\xda\xa4", "\xda\xa6", "\xda\xa6",
  "\xda\xa6", "\xda\xa6", "\xda\x84", "\xda\x84", "\xda\x84", "\xda\x84", "\xda\x83", "\xda\x83",
  "\xda\x83", "\xda\x83", "\xda\x86", "\xda\x86", "\xda\x86", "\xda\x86", "\xda\x87", "\xda\x87"
};

static const char *grn_nfkc50_decompose_table_efae[] = {
  "\xda\x87", "\xda\x87", "\xda\x8d", "\xda\x8d", "\xda\x8c", "\xda\x8c", "\xda\x8e", "\xda\x8e",
  "\xda\x88", "\xda\x88", "\xda\x98", "\xda\x98", "\xda\x91", "\xda\x91", "\xda\xa9", "\xda\xa9",
  "\xda\xa9", "\xda\xa9", "\xda\xaf", "\xda\xaf", "\xda\xaf", "\xda\xaf", "\xda\xb3", "\xda\xb3",
  "\xda\xb3", "\xda\xb3", "\xda\xb1", "\xda\xb1", "\xda\xb1", "\xda\xb1", "\xda\xba", "\xda\xba",
  "\xda\xbb", "\xda\xbb", "\xda\xbb", "\xda\xbb", "\xdb\x80", "\xdb\x80", "\xdb\x81", "\xdb\x81",
  "\xdb\x81", "\xdb\x81", "\xda\xbe", "\xda\xbe", "\xda\xbe", "\xda\xbe", "\xdb\x92", "\xdb\x92",
  "\xdb\x93", "\xdb\x93"
};

static const char *grn_nfkc50_decompose_table_efaf[] = {
  "\xda\xad", "\xda\xad", "\xda\xad", "\xda\xad", "\xdb\x87", "\xdb\x87", "\xdb\x86", "\xdb\x86",
  "\xdb\x88", "\xdb\x88", "\xdb\x87\xd9\xb4", "\xdb\x8b", "\xdb\x8b", "\xdb\x85", "\xdb\x85", "\xdb\x89",
  "\xdb\x89", "\xdb\x90", "\xdb\x90", "\xdb\x90", "\xdb\x90", "\xd9\x89", "\xd9\x89", "\xd8\xa6\xd8\xa7",
  "\xd8\xa6\xd8\xa7", "\xd8\xa6\xdb\x95", "\xd8\xa6\xdb\x95", "\xd8\xa6\xd9\x88", "\xd8\xa6\xd9\x88", "\xd8\xa6\xdb\x87", "\xd8\xa6\xdb\x87", "\xd8\xa6\xdb\x86",
  "\xd8\xa6\xdb\x86", "\xd8\xa6\xdb\x88", "\xd8\xa6\xdb\x88", "\xd8\xa6\xdb\x90", "\xd8\xa6\xdb\x90", "\xd8\xa6\xdb\x90", "\xd8\xa6\xd9\x89", "\xd8\xa6\xd9\x89",
  "\xd8\xa6\xd9\x89", "\xdb\x8c", "\xdb\x8c", "\xdb\x8c", "\xdb\x8c"
};

static const char *grn_nfkc50_decompose_table_efb0[] = {
  "\xd8\xa6\xd8\xac", "\xd8\xa6\xd8\xad", "\xd8\xa6\xd9\x85", "\xd8\xa6\xd9\x89", "\xd8\xa6\xd9\x8a", "\xd8\xa8\xd8\xac", "\xd8\xa8\xd8\xad", "\xd8\xa8\xd8\xae",
  "\xd8\xa8\xd9\x85", "\xd8\xa8\xd9\x89", "\xd8\xa8\xd9\x8a", "\xd8\xaa\xd8\xac", "\xd8\xaa\xd8\xad", "\xd8\xaa\xd8\xae", "\xd8\xaa\xd9\x85", "\xd8\xaa\xd9\x89",
  "\xd8\xaa\xd9\x8a", "\xd8\xab\xd8\xac", "\xd8\xab\xd9\x85", "\xd8\xab\xd9\x89", "\xd8\xab\xd9\x8a", "\xd8\xac\xd8\xad", "\xd8\xac\xd9\x85", "\xd8\xad\xd8\xac",
  "\xd8\xad\xd9\x85", "\xd8\xae\xd8\xac", "\xd8\xae\xd8\xad", "\xd8\xae\xd9\x85", "\xd8\xb3\xd8\xac", "\xd8\xb3\xd8\xad", "\xd8\xb3\xd8\xae", "\xd8\xb3\xd9\x85",
  "\xd8\xb5\xd8\xad", "\xd8\xb5\xd9\x85", "\xd8\xb6\xd8\xac", "\xd8\xb6\xd8\xad", "\xd8\xb6\xd8\xae", "\xd8\xb6\xd9\x85", "\xd8\xb7\xd8\xad", "\xd8\xb7\xd9\x85",
  "\xd8\xb8\xd9\x85", "\xd8\xb9\xd8\xac", "\xd8\xb9\xd9\x85", "\xd8\xba\xd8\xac", "\xd8\xba\xd9\x85", "\xd9\x81\xd8\xac", "\xd9\x81\xd8\xad", "\xd9\x81\xd8\xae",
  "\xd9\x81\xd9\x85", "\xd9\x81\xd9\x89", "\xd9\x81\xd9\x8a", "\xd9\x82\xd8\xad", "\xd9\x82\xd9\x85", "\xd9\x82\xd9\x89", "\xd9\x82\xd9\x8a", "\xd9\x83\xd8\xa7",
  "\xd9\x83\xd8\xac", "\xd9\x83\xd8\xad", "\xd9\x83\xd8\xae", "\xd9\x83\xd9\x84", "\xd9\x83\xd9\x85", "\xd9\x83\xd9\x89", "\xd9\x83\xd9\x8a", "\xd9\x84\xd8\xac"
};

static const char *grn_nfkc50_decompose_table_efb1[] = {
  "\xd9\x84\xd8\xad", "\xd9\x84\xd8\xae", "\xd9\x84\xd9\x85", "\xd9\x84\xd9\x89", "\xd9\x84\xd9\x8a", "\xd9\x85\xd8\xac", "\xd9\x85\xd8\xad", "\xd9\x85\xd8\xae",
  "\xd9\x85\xd9\x85", "\xd9\x85\xd9\x89", "\xd9\x85\xd9\x8a", "\xd9\x86\xd8\xac", "\xd9\x86\xd8\xad", "\xd9\x86\xd8\xae", "\xd9\x86\xd9\x85", "\xd9\x86\xd9\x89",
  "\xd9\x86\xd9\x8a", "\xd9\x87\xd8\xac", "\xd9\x87\xd9\x85", "\xd9\x87\xd9\x89", "\xd9\x87\xd9\x8a", "\xd9\x8a\xd8\xac", "\xd9\x8a\xd8\xad", "\xd9\x8a\xd8\xae",
  "\xd9\x8a\xd9\x85", "\xd9\x8a\xd9\x89", "\xd9\x8a\xd9\x8a", "\xd8\xb0\xd9\xb0", "\xd8\xb1\xd9\xb0", "\xd9\x89\xd9\xb0", "\xd9\x8c\xd9\x91", "\xd9\x8d\xd9\x91",
  "\xd9\x8e\xd9\x91", "\xd9\x8f\xd9\x91", "\xd9\x90\xd9\x91", "\xd9\x91\xd9\xb0", "\xd8\xa6\xd8\xb1", "\xd8\xa6\xd8\xb2", "\xd8\xa6\xd9\x85", "\xd8\xa6\xd9\x86",
  "\xd8\xa6\xd9\x89", "\xd8\xa6\xd9\x8a", "\xd8\xa8\xd8\xb1", "\xd8\xa8\xd8\xb2", "\xd8\xa8\xd9\x85", "\xd8\xa8\xd9\x86", "\xd8\xa8\xd9\x89", "\xd8\xa8\xd9\x8a",
  "\xd8\xaa\xd8\xb1", "\xd8\xaa\xd8\xb2", "\xd8\xaa\xd9\x85", "\xd8\xaa\xd9\x86", "\xd8\xaa\xd9\x89", "\xd8\xaa\xd9\x8a", "\xd8\xab\xd8\xb1", "\xd8\xab\xd8\xb2",
  "\xd8\xab\xd9\x85", "\xd8\xab\xd9\x86", "\xd8\xab\xd9\x89", "\xd8\xab\xd9\x8a", "\xd9\x81\xd9\x89", "\xd9\x81\xd9\x8a", "\xd9\x82\xd9\x89", "\xd9\x82\xd9\x8a"
};

static const char *grn_nfkc50_decompose_table_efb2[] = {
  "\xd9\x83\xd8\xa7", "\xd9\x83\xd9\x84", "\xd9\x83\xd9\x85", "\xd9\x83\xd9\x89", "\xd9\x83\xd9\x8a", "\xd9\x84\xd9\x85", "\xd9\x84\xd9\x89", "\xd9\x84\xd9\x8a",
  "\xd9\x85\xd8\xa7", "\xd9\x85\xd9\x85", "\xd9\x86\xd8\xb1", "\xd9\x86\xd8\xb2", "\xd9\x86\xd9\x85", "\xd9\x86\xd9\x86", "\xd9\x86\xd9\x89", "\xd9\x86\xd9\x8a",
  "\xd9\x89\xd9\xb0", "\xd9\x8a\xd8\xb1", "\xd9\x8a\xd8\xb2", "\xd9\x8a\xd9\x85", "\xd9\x8a\xd9\x86", "\xd9\x8a\xd9\x89", "\xd9\x8a\xd9\x8a", "\xd8\xa6\xd8\xac",
  "\xd8\xa6\xd8\xad", "\xd8\xa6\xd8\xae", "\xd8\xa6\xd9\x85", "\xd8\xa6\xd9\x87", "\xd8\xa8\xd8\xac", "\xd8\xa8\xd8\xad", "\xd8\xa8\xd8\xae", "\xd8\xa8\xd9\x85",
  "\xd8\xa8\xd9\x87", "\xd8\xaa\xd8\xac", "\xd8\xaa\xd8\xad", "\xd8\xaa\xd8\xae", "\xd8\xaa\xd9\x85", "\xd8\xaa\xd9\x87", "\xd8\xab\xd9\x85", "\xd8\xac\xd8\xad",
  "\xd8\xac\xd9\x85", "\xd8\xad\xd8\xac", "\xd8\xad\xd9\x85", "\xd8\xae\xd8\xac", "\xd8\xae\xd9\x85", "\xd8\xb3\xd8\xac", "\xd8\xb3\xd8\xad", "\xd8\xb3\xd8\xae",
  "\xd8\xb3\xd9\x85", "\xd8\xb5\xd8\xad", "\xd8\xb5\xd8\xae", "\xd8\xb5\xd9\x85", "\xd8\xb6\xd8\xac", "\xd8\xb6\xd8\xad", "\xd8\xb6\xd8\xae", "\xd8\xb6\xd9\x85",
  "\xd8\xb7\xd8\xad", "\xd8\xb8\xd9\x85", "\xd8\xb9\xd8\xac", "\xd8\xb9\xd9\x85", "\xd8\xba\xd8\xac", "\xd8\xba\xd9\x85", "\xd9\x81\xd8\xac", "\xd9\x81\xd8\xad"
};

static const char *grn_nfkc50_decompose_table_efb3[] = {
  "\xd9\x81\xd8\xae", "\xd9\x81\xd9\x85", "\xd9\x82\xd8\xad", "\xd9\x82\xd9\x85", "\xd9\x83\xd8\xac", "\xd9\x83\xd8\xad", "\xd9\x83\xd8\xae", "\xd9\x83\xd9\x84",
  "\xd9\x83\xd9\x85", "\xd9\x84\xd8\xac", "\xd9\x84\xd8\xad", "\xd9\x84\xd8\xae", "\xd9\x84\xd9\x85", "\xd9\x84\xd9\x87", "\xd9\x85\xd8\xac", "\xd9\x85\xd8\xad",
  "\xd9\x85\xd8\xae", "\xd9\x85\xd9\x85", "\xd9\x86\xd8\xac", "\xd9\x86\xd8\xad", "\xd9\x86\xd8\xae", "\xd9\x86\xd9\x85", "\xd9\x86\xd9\x87", "\xd9\x87\xd8\xac",
  "\xd9\x87\xd9\x85", "\xd9\x87\xd9\xb0", "\xd9\x8a\xd8\xac", "\xd9\x8a\xd8\xad", "\xd9\x8a\xd8\xae", "\xd9\x8a\xd9\x85", "\xd9\x8a\xd9\x87", "\xd8\xa6\xd9\x85",
  "\xd8\xa6\xd9\x87", "\xd8\xa8\xd9\x85", "\xd8\xa8\xd9\x87", "\xd8\xaa\xd9\x85", "\xd8\xaa\xd9\x87", "\xd8\xab\xd9\x85", "\xd8\xab\xd9\x87", "\xd8\xb3\xd9\x85",
  "\xd8\xb3\xd9\x87", "\xd8\xb4\xd9\x85", "\xd8\xb4\xd9\x87", "\xd9\x83\xd9\x84", "\xd9\x83\xd9\x85", "\xd9\x84\xd9\x85", "\xd9\x86\xd9\x85", "\xd9\x86\xd9\x87",
  "\xd9\x8a\xd9\x85", "\xd9\x8a\xd9\x87", "\xd9\x80\xd9\x8e\xd9\x91", "\xd9\x80\xd9\x8f\xd9\x91", "\xd9\x80\xd9\x90\xd9\x91", "\xd8\xb7\xd9\x89", "\xd8\xb7\xd9\x8a", "\xd8\xb9\xd9\x89",
  "\xd8\xb9\xd9\x8a", "\xd8\xba\xd9\x89", "\xd8\xba\xd9\x8a", "\xd8\xb3\xd9\x89", "\xd8\xb3\xd9\x8a", "\xd8\xb4\xd9\x89", "\xd8\xb4\xd9\x8a", "\xd8\xad\xd9\x89"
};

static const char *grn_nfkc50_decompose_table_efb4[] = {
  "\xd8\xad\xd9\x8a", "\xd8\xac\xd9\x89", "\xd8\xac\xd9\x8a", "\xd8\xae\xd9\x89", "\xd8\xae\xd9\x8a", "\xd8\xb5\xd9\x89", "\xd8\xb5\xd9\x8a", "\xd8\xb6\xd9\x89",
  "\xd8\xb6\xd9\x8a", "\xd8\xb4\xd8\xac", "\xd8\xb4\xd8\xad", "\xd8\xb4\xd8\xae", "\xd8\xb4\xd9\x85", "\xd8\xb4\xd8\xb1", "\xd8\xb3\xd8\xb1", "\xd8\xb5\xd8\xb1",
  "\xd8\xb6\xd8\xb1", "\xd8\xb7\xd9\x89", "\xd8\xb7\xd9\x8a", "\xd8\xb9\xd9\x89", "\xd8\xb9\xd9\x8a", "\xd8\xba\xd9\x89", "\xd8\xba\xd9\x8a", "\xd8\xb3\xd9\x89",
  "\xd8\xb3\xd9\x8a", "\xd8\xb4\xd9\x89", "\xd8\xb4\xd9\x8a", "\xd8\xad\xd9\x89", "\xd8\xad\xd9\x8a", "\xd8\xac\xd9\x89", "\xd8\xac\xd9\x8a", "\xd8\xae\xd9\x89",
  "\xd8\xae\xd9\x8a", "\xd8\xb5\xd9\x89", "\xd8\xb5\xd9\x8a", "\xd8\xb6\xd9\x89", "\xd8\xb6\xd9\x8a", "\xd8\xb4\xd8\xac", "\xd8\xb4\xd8\xad", "\xd8\xb4\xd8\xae",
  "\xd8\xb4\xd9\x85", "\xd8\xb4\xd8\xb1", "\xd8\xb3\xd8\xb1", "\xd8\xb5\xd8\xb1", "\xd8\xb6\xd8\xb1", "\xd8\xb4\xd8\xac", "\xd8\xb4\xd8\xad", "\xd8\xb4\xd8\xae",
  "\xd8\xb4\xd9\x85", "\xd8\xb3\xd9\x87", "\xd8\xb4\xd9\x87", "\xd8\xb7\xd9\x85", "\xd8\xb3\xd8\xac", "\xd8\xb3\xd8\xad", "\xd8\xb3\xd8\xae", "\xd8\xb4\xd8\xac",
  "\xd8\xb4\xd8\xad", "\xd8\xb4\xd8\xae", "\xd8\xb7\xd9\x85", "\xd8\xb8\xd9\x85", "\xd8\xa7\xd9\x8b", "\xd8\xa7\xd9\x8b"
};

static const char *grn_nfkc50_decompose_table_efb5[] = {
  "\xd8\xaa\xd8\xac\xd9\x85", "\xd8\xaa\xd8\xad\xd8\xac", "\xd8\xaa\xd8\xad\xd8\xac", "\xd8\xaa\xd8\xad\xd9\x85", "\xd8\xaa\xd8\xae\xd9\x85", "\xd8\xaa\xd9\x85\xd8\xac", "\xd8\xaa\xd9\x85\xd8\xad", "\xd8\xaa\xd9\x85\xd8\xae",
  "\xd8\xac\xd9\x85\xd8\xad", "\xd8\xac\xd9\x85\xd8\xad", "\xd8\xad\xd9\x85\xd9\x8a", "\xd8\xad\xd9\x85\xd9\x89", "\xd8\xb3\xd8\xad\xd8\xac", "\xd8\xb3\xd8\xac\xd8\xad", "\xd8\xb3\xd8\xac\xd9\x89", "\xd8\xb3\xd9\x85\xd8\xad",
  "\xd8\xb3\xd9\x85\xd8\xad", "\xd8\xb3\xd9\x85\xd8\xac", "\xd8\xb3\xd9\x85\xd9\x85", "\xd8\xb3\xd9\x85\xd9\x85", "\xd8\xb5\xd8\xad\xd8\xad", "\xd8\xb5\xd8\xad\xd8\xad", "\xd8\xb5\xd9\x85\xd9\x85", "\xd8\xb4\xd8\xad\xd9\x85",
  "\xd8\xb4\xd8\xad\xd9\x85", "\xd8\xb4\xd8\xac\xd9\x8a", "\xd8\xb4\xd9\x85\xd8\xae", "\xd8\xb4\xd9\x85\xd8\xae", "\xd8\xb4\xd9\x85\xd9\x85", "\xd8\xb4\xd9\x85\xd9\x85", "\xd8\xb6\xd8\xad\xd9\x89", "\xd8\xb6\xd8\xae\xd9\x85",
  "\xd8\xb6\xd8\xae\xd9\x85", "\xd8\xb7\xd9\x85\xd8\xad", "\xd8\xb7\xd9\x85\xd8\xad", "\xd8\xb7\xd9\x85\xd9\x85", "\xd8\xb7\xd9\x85\xd9\x8a", "\xd8\xb9\xd8\xac\xd9\x85", "\xd8\xb9\xd9\x85\xd9\x85", "\xd8\xb9\xd9\x85\xd9\x85",
  "\xd8\xb9\xd9\x85\xd9\x89", "\xd8\xba\xd9\x85\xd9\x85", "\xd8\xba\xd9\x85\xd9\x8a", "\xd8\xba\xd9\x85\xd9\x89", "\xd9\x81\xd8\xae\xd9\x85", "\xd9\x81\xd8\xae\xd9\x85", "\xd9\x82\xd9\x85\xd8\xad", "\xd9\x82\xd9\x85\xd9\x85"
};

static const char *grn_nfkc50_decompose_table_efb6[] = {
  "\xd9\x84\xd8\xad\xd9\x85", "\xd9\x84\xd8\xad\xd9\x8a", "\xd9\x84\xd8\xad\xd9\x89", "\xd9\x84\xd8\xac\xd8\xac", "\xd9\x84\xd8\xac\xd8\xac", "\xd9\x84\xd8\xae\xd9\x85", "\xd9\x84\xd8\xae\xd9\x85", "\xd9\x84\xd9\x85\xd8\xad",
  "\xd9\x84\xd9\x85\xd8\xad", "\xd9\x85\xd8\xad\xd8\xac", "\xd9\x85\xd8\xad\xd9\x85", "\xd9\x85\xd8\xad\xd9\x8a", "\xd9\x85\xd8\xac\xd8\xad", "\xd9\x85\xd8\xac\xd9\x85", "\xd9\x85\xd8\xae\xd8\xac", "\xd9\x85\xd8\xae\xd9\x85",
  NULL, NULL, "\xd9\x85\xd8\xac\xd8\xae", "\xd9\x87\xd9\x85\xd8\xac", "\xd9\x87\xd9\x85\xd9\x85", "\xd9\x86\xd8\xad\xd9\x85", "\xd9\x86\xd8\xad\xd9\x89", "\xd9\x86\xd8\xac\xd9\x85",
  "\xd9\x86\xd8\xac\xd9\x85", "\xd9\x86\xd8\xac\xd9\x89", "\xd9\x86\xd9\x85\xd9\x8a", "\xd9\x86\xd9\x85\xd9\x89", "\xd9\x8a\xd9\x85\xd9\x85", "\xd9\x8a\xd9\x85\xd9\x85", "\xd8\xa8\xd8\xae\xd9\x8a", "\xd8\xaa\xd8\xac\xd9\x8a",
  "\xd8\xaa\xd8\xac\xd9\x89", "\xd8\xaa\xd8\xae\xd9\x8a", "\xd8\xaa\xd8\xae\xd9\x89", "\xd8\xaa\xd9\x85\xd9\x8a", "\xd8\xaa\xd9\x85\xd9\x89", "\xd8\xac\xd9\x85\xd9\x8a", "\xd8\xac\xd8\xad\xd9\x89", "\xd8\xac\xd9\x85\xd9\x89",
  "\xd8\xb3\xd8\xae\xd9\x89", "\xd8\xb5\xd8\xad\xd9\x8a", "\xd8\xb4\xd8\xad\xd9\x8a", "\xd8\xb6\xd8\xad\xd9\x8a", "\xd9\x84\xd8\xac\xd9\x8a", "\xd9\x84\xd9\x85\xd9\x8a", "\xd9\x8a\xd8\xad\xd9\x8a", "\xd9\x8a\xd8\xac\xd9\x8a",
  "\xd9\x8a\xd9\x85\xd9\x8a", "\xd9\x85\xd9\x85\xd9\x8a", "\xd9\x82\xd9\x85\xd9\x8a", "\xd9\x86\xd8\xad\xd9\x8a", "\xd9\x82\xd9\x85\xd8\xad", "\xd9\x84\xd8\xad\xd9\x85", "\xd8\xb9\xd9\x85\xd9\x8a", "\xd9\x83\xd9\x85\xd9\x8a",
  "\xd9\x86\xd8\xac\xd8\xad", "\xd9\x85\xd8\xae\xd9\x8a", "\xd9\x84\xd8\xac\xd9\x85", "\xd9\x83\xd9\x85\xd9\x85", "\xd9\x84\xd8\xac\xd9\x85", "\xd9\x86\xd8\xac\xd8\xad", "\xd8\xac\xd8\xad\xd9\x8a", "\xd8\xad\xd8\xac\xd9\x8a"
};

static const char *grn_nfkc50_decompose_table_efb7[] = {
  "\xd9\x85\xd8\xac\xd9\x8a", "\xd9\x81\xd9\x85\xd9\x8a", "\xd8\xa8\xd8\xad\xd9\x8a", "\xd9\x83\xd9\x85\xd9\x85", "\xd8\xb9\xd8\xac\xd9\x85", "\xd8\xb5\xd9\x85\xd9\x85", "\xd8\xb3\xd8\xae\xd9\x8a", "\xd9\x86\xd8\xac\xd9\x8a",
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xd8\xb5\xd9\x84\xdb\x92", "\xd9\x82\xd9\x84\xdb\x92", "\xd8\xa7\xd9\x84\xd9\x84\xd9\x87", "\xd8\xa7\xd9\x83\xd8\xa8\xd8\xb1", "\xd9\x85\xd8\xad\xd9\x85\xd8\xaf", "\xd8\xb5\xd9\x84\xd8\xb9\xd9\x85", "\xd8\xb1\xd8\xb3\xd9\x88\xd9\x84", "\xd8\xb9\xd9\x84\xd9\x8a\xd9\x87",
  "\xd9\x88\xd8\xb3\xd9\x84\xd9\x85", "\xd8\xb5\xd9\x84\xd9\x89", "\xd8\xb5\xd9\x84\xd9\x89\x20\xd8\xa7\xd9\x84\xd9\x84\xd9\x87\x20\xd8\xb9\xd9\x84\xd9\x8a\xd9\x87\x20\xd9\x88\xd8\xb3\xd9\x84\xd9\x85", "\xd8\xac\xd9\x84\x20\xd8\xac\xd9\x84\xd8\xa7\xd9\x84\xd9\x87", "\xd8\xb1\xdb\x8c\xd8\xa7\xd9\x84"
};

static const char *grn_nfkc50_decompose_table_efb8[] = {
  "\x2c", "\xe3\x80\x81", "\xe3\x80\x82", "\x3a", "\x3b", "\x21", "\x3f", "\xe3\x80\x96",
  "\xe3\x80\x97", "\x2e\x2e\x2e", NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\x2e\x2e", "\xe2\x80\x94", "\xe2\x80\x93", "\x5f", "\x5f", "\x28", "\x29", "\x7b",
  "\x7d", "\xe3\x80\x94", "\xe3\x80\x95", "\xe3\x80\x90", "\xe3\x80\x91", "\xe3\x80\x8a", "\xe3\x80\x8b", "\xe3\x80\x88"
};

static const char *grn_nfkc50_decompose_table_efb9[] = {
  "\xe3\x80\x89", "\xe3\x80\x8c", "\xe3\x80\x8d", "\xe3\x80\x8e", "\xe3\x80\x8f", NULL, NULL, "\x5b",
  "\x5d", "\xcc\x85", "\xcc\x85", "\xcc\x85", "\xcc\x85", "\x5f", "\x5f", "\x5f",
  "\x2c", "\xe3\x80\x81", "\x2e", NULL, "\x3b", "\x3a", "\x3f", "\x21",
  "\xe2\x80\x94", "\x28", "\x29", "\x7b", "\x7d", "\xe3\x80\x94", "\xe3\x80\x95", "\x23",
  "\x26", "\x2a", "\x2b", "\x2d", "\x3c", "\x3e", "\x3d", NULL,
  "\x5c", "\x24", "\x25", "\x40", NULL, NULL, NULL, NULL,
  "\xd9\x8b", "\xd9\x80\xd9\x8b", "\xd9\x8c", NULL, "\xd9\x8d", NULL, "\xd9\x8e", "\xd9\x80\xd9\x8e",
  "\xd9\x8f", "\xd9\x80\xd9\x8f", "\xd9\x90", "\xd9\x80\xd9\x90", "\xd9\x91", "\xd9\x80\xd9\x91", "\xd9\x92", "\xd9\x80\xd9\x92"
};

static const char *grn_nfkc50_decompose_table_efba[] = {
  "\xd8\xa1", "\xd8\xa2", "\xd8\xa2", "\xd8\xa3", "\xd8\xa3", "\xd8\xa4", "\xd8\xa4", "\xd8\xa5",
  "\xd8\xa5", "\xd8\xa6", "\xd8\xa6", "\xd8\xa6", "\xd8\xa6", "\xd8\xa7", "\xd8\xa7", "\xd8\xa8",
  "\xd8\xa8", "\xd8\xa8", "\xd8\xa8", "\xd8\xa9", "\xd8\xa9", "\xd8\xaa", "\xd8\xaa", "\xd8\xaa",
  "\xd8\xaa", "\xd8\xab", "\xd8\xab", "\xd8\xab", "\xd8\xab", "\xd8\xac", "\xd8\xac", "\xd8\xac",
  "\xd8\xac", "\xd8\xad", "\xd8\xad", "\xd8\xad", "\xd8\xad", "\xd8\xae", "\xd8\xae", "\xd8\xae",
  "\xd8\xae", "\xd8\xaf", "\xd8\xaf", "\xd8\xb0", "\xd8\xb0", "\xd8\xb1", "\xd8\xb1", "\xd8\xb2",
  "\xd8\xb2", "\xd8\xb3", "\xd8\xb3", "\xd8\xb3", "\xd8\xb3", "\xd8\xb4", "\xd8\xb4", "\xd8\xb4",
  "\xd8\xb4", "\xd8\xb5", "\xd8\xb5", "\xd8\xb5", "\xd8\xb5", "\xd8\xb6", "\xd8\xb6", "\xd8\xb6"
};

static const char *grn_nfkc50_decompose_table_efbb[] = {
  "\xd8\xb6", "\xd8\xb7", "\xd8\xb7", "\xd8\xb7", "\xd8\xb7", "\xd8\xb8", "\xd8\xb8", "\xd8\xb8",
  "\xd8\xb8", "\xd8\xb9", "\xd8\xb9", "\xd8\xb9", "\xd8\xb9", "\xd8\xba", "\xd8\xba", "\xd8\xba",
  "\xd8\xba", "\xd9\x81", "\xd9\x81", "\xd9\x81", "\xd9\x81", "\xd9\x82", "\xd9\x82", "\xd9\x82",
  "\xd9\x82", "\xd9\x83", "\xd9\x83", "\xd9\x83", "\xd9\x83", "\xd9\x84", "\xd9\x84", "\xd9\x84",
  "\xd9\x84", "\xd9\x85", "\xd9\x85", "\xd9\x85", "\xd9\x85", "\xd9\x86", "\xd9\x86", "\xd9\x86",
  "\xd9\x86", "\xd9\x87", "\xd9\x87", "\xd9\x87", "\xd9\x87", "\xd9\x88", "\xd9\x88", "\xd9\x89",
  "\xd9\x89", "\xd9\x8a", "\xd9\x8a", "\xd9\x8a", "\xd9\x8a", "\xd9\x84\xd8\xa2", "\xd9\x84\xd8\xa2", "\xd9\x84\xd8\xa3",
  "\xd9\x84\xd8\xa3", "\xd9\x84\xd8\xa5", "\xd9\x84\xd8\xa5", "\xd9\x84\xd8\xa7", "\xd9\x84\xd8\xa7"
};

static const char *grn_nfkc50_decompose_table_efbc[] = {
  "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28",
  "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30",
  "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38",
  "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40",
  "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68",
  "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70",
  "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78",
  "\x79", "\x7a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f"
};

static const char *grn_nfkc50_decompose_table_efbd[] = {
  "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67",
  "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f",
  "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77",
  "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\xe2\xa6\x85",
  "\xe2\xa6\x86", "\xe3\x80\x82", "\xe3\x80\x8c", "\xe3\x80\x8d", "\xe3\x80\x81", "\xe3\x83\xbb", "\xe3\x83\xb2", "\xe3\x82\xa1",
  "\xe3\x82\xa3", "\xe3\x82\xa5", "\xe3\x82\xa7", "\xe3\x82\xa9", "\xe3\x83\xa3", "\xe3\x83\xa5", "\xe3\x83\xa7", "\xe3\x83\x83",
  "\xe3\x83\xbc", "\xe3\x82\xa2", "\xe3\x82\xa4", "\xe3\x82\xa6", "\xe3\x82\xa8", "\xe3\x82\xaa", "\xe3\x82\xab", "\xe3\x82\xad",
  "\xe3\x82\xaf", "\xe3\x82\xb1", "\xe3\x82\xb3", "\xe3\x82\xb5", "\xe3\x82\xb7", "\xe3\x82\xb9", "\xe3\x82\xbb", "\xe3\x82\xbd"
};

static const char *grn_nfkc50_decompose_table_efbe[] = {
  "\xe3\x82\xbf", "\xe3\x83\x81", "\xe3\x83\x84", "\xe3\x83\x86", "\xe3\x83\x88", "\xe3\x83\x8a", "\xe3\x83\x8b", "\xe3\x83\x8c",
  "\xe3\x83\x8d", "\xe3\x83\x8e", "\xe3\x83\x8f", "\xe3\x83\x92", "\xe3\x83\x95", "\xe3\x83\x98", "\xe3\x83\x9b", "\xe3\x83\x9e",
  "\xe3\x83\x9f", "\xe3\x83\xa0", "\xe3\x83\xa1", "\xe3\x83\xa2", "\xe3\x83\xa4", "\xe3\x83\xa6", "\xe3\x83\xa8", "\xe3\x83\xa9",
  "\xe3\x83\xaa", "\xe3\x83\xab", "\xe3\x83\xac", "\xe3\x83\xad", "\xe3\x83\xaf", "\xe3\x83\xb3", "\xe3\x82\x99", "\xe3\x82\x9a",
  "\xe1\x85\xa0", "\xe1\x84\x80", "\xe1\x84\x81", "\xe1\x86\xaa", "\xe1\x84\x82", "\xe1\x86\xac", "\xe1\x86\xad", "\xe1\x84\x83",
  "\xe1\x84\x84", "\xe1\x84\x85", "\xe1\x86\xb0", "\xe1\x86\xb1", "\xe1\x86\xb2", "\xe1\x86\xb3", "\xe1\x86\xb4", "\xe1\x86\xb5",
  "\xe1\x84\x9a", "\xe1\x84\x86", "\xe1\x84\x87", "\xe1\x84\x88", "\xe1\x84\xa1", "\xe1\x84\x89", "\xe1\x84\x8a", "\xe1\x84\x8b",
  "\xe1\x84\x8c", "\xe1\x84\x8d", "\xe1\x84\x8e", "\xe1\x84\x8f", "\xe1\x84\x90", "\xe1\x84\x91", "\xe1\x84\x92"
};

static const char *grn_nfkc50_decompose_table_efbf[] = {
  "\xe1\x85\xa1", "\xe1\x85\xa2", "\xe1\x85\xa3", "\xe1\x85\xa4", "\xe1\x85\xa5", "\xe1\x85\xa6", NULL, NULL,
  "\xe1\x85\xa7", "\xe1\x85\xa8", "\xe1\x85\xa9", "\xe1\x85\xaa", "\xe1\x85\xab", "\xe1\x85\xac", NULL, NULL,
  "\xe1\x85\xad", "\xe1\x85\xae", "\xe1\x85\xaf", "\xe1\x85\xb0", "\xe1\x85\xb1", "\xe1\x85\xb2", NULL, NULL,
  "\xe1\x85\xb3", "\xe1\x85\xb4", "\xe1\x85\xb5", NULL, NULL, NULL, "\xc2\xa2", "\xc2\xa3",
  "\xc2\xac", "\xcc\x84", "\xc2\xa6", "\xc2\xa5", "\xe2\x82\xa9", NULL, "\xe2\x94\x82", "\xe2\x86\x90",
  "\xe2\x86\x91", "\xe2\x86\x92", "\xe2\x86\x93", "\xe2\x96\xa0", "\xe2\x97\x8b"
};

static const char *grn_nfkc50_decompose_table_f09d85[] = {
  "\xf0\x9d\x85\x97\xf0\x9d\x85\xa5", "\xf0\x9d\x85\x98\xf0\x9d\x85\xa5", "\xf0\x9d\x85\x98\xf0\x9d\x85\xa5\xf0\x9d\x85\xae", "\xf0\x9d\x85\x98\xf0\x9d\x85\xa5\xf0\x9d\x85\xaf", "\xf0\x9d\x85\x98\xf0\x9d\x85\xa5\xf0\x9d\x85\xb0", "\xf0\x9d\x85\x98\xf0\x9d\x85\xa5\xf0\x9d\x85\xb1", "\xf0\x9d\x85\x98\xf0\x9d\x85\xa5\xf0\x9d\x85\xb2"
};

static const char *grn_nfkc50_decompose_table_f09d86[] = {
  "\xf0\x9d\x86\xb9\xf0\x9d\x85\xa5", "\xf0\x9d\x86\xba\xf0\x9d\x85\xa5", "\xf0\x9d\x86\xb9\xf0\x9d\x85\xa5\xf0\x9d\x85\xae", "\xf0\x9d\x86\xba\xf0\x9d\x85\xa5\xf0\x9d\x85\xae", "\xf0\x9d\x86\xb9\xf0\x9d\x85\xa5\xf0\x9d\x85\xaf"
};

static const char *grn_nfkc50_decompose_table_f09d90[] = {
  "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68",
  "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70",
  "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78",
  "\x79", "\x7a", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66",
  "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e",
  "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76",
  "\x77", "\x78", "\x79", "\x7a", "\x61", "\x62", "\x63", "\x64",
  "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c"
};

static const char *grn_nfkc50_decompose_table_f09d91[] = {
  "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74",
  "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x61", "\x62",
  "\x63", "\x64", "\x65", "\x66", "\x67", NULL, "\x69", "\x6a",
  "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72",
  "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a",
  "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68",
  "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70",
  "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78"
};

static const char *grn_nfkc50_decompose_table_f09d92[] = {
  "\x79", "\x7a", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66",
  "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e",
  "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76",
  "\x77", "\x78", "\x79", "\x7a", "\x61", NULL, "\x63", "\x64",
  NULL, NULL, "\x67", NULL, NULL, "\x6a", "\x6b", NULL,
  NULL, "\x6e", "\x6f", "\x70", "\x71", NULL, "\x73", "\x74",
  "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x61", "\x62",
  "\x63", "\x64", NULL, "\x66", NULL, "\x68", "\x69", "\x6a"
};

static const char *grn_nfkc50_decompose_table_f09d93[] = {
  "\x6b", "\x6c", "\x6d", "\x6e", NULL, "\x70", "\x71", "\x72",
  "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a",
  "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68",
  "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70",
  "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78",
  "\x79", "\x7a", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66",
  "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e",
  "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76"
};

static const char *grn_nfkc50_decompose_table_f09d94[] = {
  "\x77", "\x78", "\x79", "\x7a", "\x61", "\x62", NULL, "\x64",
  "\x65", "\x66", "\x67", NULL, NULL, "\x6a", "\x6b", "\x6c",
  "\x6d", "\x6e", "\x6f", "\x70", "\x71", NULL, "\x73", "\x74",
  "\x75", "\x76", "\x77", "\x78", "\x79", NULL, "\x61", "\x62",
  "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a",
  "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72",
  "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a",
  "\x61", "\x62", NULL, "\x64", "\x65", "\x66", "\x67"
};

static const char *grn_nfkc50_decompose_table_f09d95[] = {
  "\x69", "\x6a", "\x6b", "\x6c", "\x6d", NULL, "\x6f", NULL,
  NULL, NULL, "\x73", "\x74", "\x75", "\x76", "\x77", "\x78",
  "\x79", NULL, "\x61", "\x62", "\x63", "\x64", "\x65", "\x66",
  "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e",
  "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76",
  "\x77", "\x78", "\x79", "\x7a", "\x61", "\x62", "\x63", "\x64",
  "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c",
  "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74"
};

static const char *grn_nfkc50_decompose_table_f09d96[] = {
  "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x61", "\x62",
  "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a",
  "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72",
  "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a",
  "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68",
  "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70",
  "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78",
  "\x79", "\x7a", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66"
};

static const char *grn_nfkc50_decompose_table_f09d97[] = {
  "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e",
  "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76",
  "\x77", "\x78", "\x79", "\x7a", "\x61", "\x62", "\x63", "\x64",
  "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c",
  "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74",
  "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x61", "\x62",
  "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a",
  "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72"
};

static const char *grn_nfkc50_decompose_table_f09d98[] = {
  "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a",
  "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68",
  "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70",
  "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78",
  "\x79", "\x7a", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66",
  "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e",
  "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76",
  "\x77", "\x78", "\x79", "\x7a", "\x61", "\x62", "\x63", "\x64"
};

static const char *grn_nfkc50_decompose_table_f09d99[] = {
  "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c",
  "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74",
  "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x61", "\x62",
  "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a",
  "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72",
  "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a",
  "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68",
  "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70"
};

static const char *grn_nfkc50_decompose_table_f09d9a[] = {
  "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78",
  "\x79", "\x7a", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66",
  "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e",
  "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76",
  "\x77", "\x78", "\x79", "\x7a", "\xc4\xb1", "\xc8\xb7", NULL, NULL,
  "\xce\x91", "\xce\x92", "\xce\x93", "\xce\x94", "\xce\x95", "\xce\x96", "\xce\x97", "\xce\x98",
  "\xce\x99", "\xce\x9a", "\xce\x9b", "\xce\x9c", "\xce\x9d", "\xce\x9e", "\xce\x9f", "\xce\xa0",
  "\xce\xa1", "\xce\x98", "\xce\xa3", "\xce\xa4", "\xce\xa5", "\xce\xa6", "\xce\xa7", "\xce\xa8"
};

static const char *grn_nfkc50_decompose_table_f09d9b[] = {
  "\xce\xa9", "\xe2\x88\x87", "\xce\xb1", "\xce\xb2", "\xce\xb3", "\xce\xb4", "\xce\xb5", "\xce\xb6",
  "\xce\xb7", "\xce\xb8", "\xce\xb9", "\xce\xba", "\xce\xbb", "\xce\xbc", "\xce\xbd", "\xce\xbe",
  "\xce\xbf", "\xcf\x80", "\xcf\x81", "\xcf\x82", "\xcf\x83", "\xcf\x84", "\xcf\x85", "\xcf\x86",
  "\xcf\x87", "\xcf\x88", "\xcf\x89", "\xe2\x88\x82", "\xce\xb5", "\xce\xb8", "\xce\xba", "\xcf\x86",
  "\xcf\x81", "\xcf\x80", "\xce\x91", "\xce\x92", "\xce\x93", "\xce\x94", "\xce\x95", "\xce\x96",
  "\xce\x97", "\xce\x98", "\xce\x99", "\xce\x9a", "\xce\x9b", "\xce\x9c", "\xce\x9d", "\xce\x9e",
  "\xce\x9f", "\xce\xa0", "\xce\xa1", "\xce\x98", "\xce\xa3", "\xce\xa4", "\xce\xa5", "\xce\xa6",
  "\xce\xa7", "\xce\xa8", "\xce\xa9", "\xe2\x88\x87", "\xce\xb1", "\xce\xb2", "\xce\xb3", "\xce\xb4"
};

static const char *grn_nfkc50_decompose_table_f09d9c[] = {
  "\xce\xb5", "\xce\xb6", "\xce\xb7", "\xce\xb8", "\xce\xb9", "\xce\xba", "\xce\xbb", "\xce\xbc",
  "\xce\xbd", "\xce\xbe", "\xce\xbf", "\xcf\x80", "\xcf\x81", "\xcf\x82", "\xcf\x83", "\xcf\x84",
  "\xcf\x85", "\xcf\x86", "\xcf\x87", "\xcf\x88", "\xcf\x89", "\xe2\x88\x82", "\xce\xb5", "\xce\xb8",
  "\xce\xba", "\xcf\x86", "\xcf\x81", "\xcf\x80", "\xce\x91", "\xce\x92", "\xce\x93", "\xce\x94",
  "\xce\x95", "\xce\x96", "\xce\x97", "\xce\x98", "\xce\x99", "\xce\x9a", "\xce\x9b", "\xce\x9c",
  "\xce\x9d", "\xce\x9e", "\xce\x9f", "\xce\xa0", "\xce\xa1", "\xce\x98", "\xce\xa3", "\xce\xa4",
  "\xce\xa5", "\xce\xa6", "\xce\xa7", "\xce\xa8", "\xce\xa9", "\xe2\x88\x87", "\xce\xb1", "\xce\xb2",
  "\xce\xb3", "\xce\xb4", "\xce\xb5", "\xce\xb6", "\xce\xb7", "\xce\xb8", "\xce\xb9", "\xce\xba"
};

static const char *grn_nfkc50_decompose_table_f09d9d[] = {
  "\xce\xbb", "\xce\xbc", "\xce\xbd", "\xce\xbe", "\xce\xbf", "\xcf\x80", "\xcf\x81", "\xcf\x82",
  "\xcf\x83", "\xcf\x84", "\xcf\x85", "\xcf\x86", "\xcf\x87", "\xcf\x88", "\xcf\x89", "\xe2\x88\x82",
  "\xce\xb5", "\xce\xb8", "\xce\xba", "\xcf\x86", "\xcf\x81", "\xcf\x80", "\xce\x91", "\xce\x92",
  "\xce\x93", "\xce\x94", "\xce\x95", "\xce\x96", "\xce\x97", "\xce\x98", "\xce\x99", "\xce\x9a",
  "\xce\x9b", "\xce\x9c", "\xce\x9d", "\xce\x9e", "\xce\x9f", "\xce\xa0", "\xce\xa1", "\xce\x98",
  "\xce\xa3", "\xce\xa4", "\xce\xa5", "\xce\xa6", "\xce\xa7", "\xce\xa8", "\xce\xa9", "\xe2\x88\x87",
  "\xce\xb1", "\xce\xb2", "\xce\xb3", "\xce\xb4", "\xce\xb5", "\xce\xb6", "\xce\xb7", "\xce\xb8",
  "\xce\xb9", "\xce\xba", "\xce\xbb", "\xce\xbc", "\xce\xbd", "\xce\xbe", "\xce\xbf", "\xcf\x80"
};

static const char *grn_nfkc50_decompose_table_f09d9e[] = {
  "\xcf\x81", "\xcf\x82", "\xcf\x83", "\xcf\x84", "\xcf\x85", "\xcf\x86", "\xcf\x87", "\xcf\x88",
  "\xcf\x89", "\xe2\x88\x82", "\xce\xb5", "\xce\xb8", "\xce\xba", "\xcf\x86", "\xcf\x81", "\xcf\x80",
  "\xce\x91", "\xce\x92", "\xce\x93", "\xce\x94", "\xce\x95", "\xce\x96", "\xce\x97", "\xce\x98",
  "\xce\x99", "\xce\x9a", "\xce\x9b", "\xce\x9c", "\xce\x9d", "\xce\x9e", "\xce\x9f", "\xce\xa0",
  "\xce\xa1", "\xce\x98", "\xce\xa3", "\xce\xa4", "\xce\xa5", "\xce\xa6", "\xce\xa7", "\xce\xa8",
  "\xce\xa9", "\xe2\x88\x87", "\xce\xb1", "\xce\xb2", "\xce\xb3", "\xce\xb4", "\xce\xb5", "\xce\xb6",
  "\xce\xb7", "\xce\xb8", "\xce\xb9", "\xce\xba", "\xce\xbb", "\xce\xbc", "\xce\xbd", "\xce\xbe",
  "\xce\xbf", "\xcf\x80", "\xcf\x81", "\xcf\x82", "\xcf\x83", "\xcf\x84", "\xcf\x85", "\xcf\x86"
};

static const char *grn_nfkc50_decompose_table_f09d9f[] = {
  "\xcf\x87", "\xcf\x88", "\xcf\x89", "\xe2\x88\x82", "\xce\xb5", "\xce\xb8", "\xce\xba", "\xcf\x86",
  "\xcf\x81", "\xcf\x80", "\xcf\x9c", "\xcf\x9d", NULL, NULL, "\x30", "\x31",
  "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39",
  "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37",
  "\x38", "\x39", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35",
  "\x36", "\x37", "\x38", "\x39", "\x30", "\x31", "\x32", "\x33",
  "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x30", "\x31",
  "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39"
};

static const char *grn_nfkc50_decompose_table_f0afa0[] = {
  "\xe4\xb8\xbd", "\xe4\xb8\xb8", "\xe4\xb9\x81", "\xf0\xa0\x84\xa2", "\xe4\xbd\xa0", "\xe4\xbe\xae", "\xe4\xbe\xbb", "\xe5\x80\x82",
  "\xe5\x81\xba", "\xe5\x82\x99", "\xe5\x83\xa7", "\xe5\x83\x8f", "\xe3\x92\x9e", "\xf0\xa0\x98\xba", "\xe5\x85\x8d", "\xe5\x85\x94",
  "\xe5\x85\xa4", "\xe5\x85\xb7", "\xf0\xa0\x94\x9c", "\xe3\x92\xb9", "\xe5\x85\xa7", "\xe5\x86\x8d", "\xf0\xa0\x95\x8b", "\xe5\x86\x97",
  "\xe5\x86\xa4", "\xe4\xbb\x8c", "\xe5\x86\xac", "\xe5\x86\xb5", "\xf0\xa9\x87\x9f", "\xe5\x87\xb5", "\xe5\x88\x83", "\xe3\x93\x9f",
  "\xe5\x88\xbb", "\xe5\x89\x86", "\xe5\x89\xb2", "\xe5\x89\xb7", "\xe3\x94\x95", "\xe5\x8b\x87", "\xe5\x8b\x89", "\xe5\x8b\xa4",
  "\xe5\x8b\xba", "\xe5\x8c\x85", "\xe5\x8c\x86", "\xe5\x8c\x97", "\xe5\x8d\x89", "\xe5\x8d\x91", "\xe5\x8d\x9a", "\xe5\x8d\xb3",
  "\xe5\x8d\xbd", "\xe5\x8d\xbf", "\xe5\x8d\xbf", "\xe5\x8d\xbf", "\xf0\xa0\xa8\xac", "\xe7\x81\xb0", "\xe5\x8f\x8a", "\xe5\x8f\x9f",
  "\xf0\xa0\xad\xa3", "\xe5\x8f\xab", "\xe5\x8f\xb1", "\xe5\x90\x86", "\xe5\x92\x9e", "\xe5\x90\xb8", "\xe5\x91\x88", "\xe5\x91\xa8"
};

static const char *grn_nfkc50_decompose_table_f0afa1[] = {
  "\xe5\x92\xa2", "\xe5\x93\xb6", "\xe5\x94\x90", "\xe5\x95\x93", "\xe5\x95\xa3", "\xe5\x96\x84", "\xe5\x96\x84", "\xe5\x96\x99",
  "\xe5\x96\xab", "\xe5\x96\xb3", "\xe5\x97\x82", "\xe5\x9c\x96", "\xe5\x98\x86", "\xe5\x9c\x97", "\xe5\x99\x91", "\xe5\x99\xb4",
  "\xe5\x88\x87", "\xe5\xa3\xae", "\xe5\x9f\x8e", "\xe5\x9f\xb4", "\xe5\xa0\x8d", "\xe5\x9e\x8b", "\xe5\xa0\xb2", "\xe5\xa0\xb1",
  "\xe5\xa2\xac", "\xf0\xa1\x93\xa4", "\xe5\xa3\xb2", "\xe5\xa3\xb7", "\xe5\xa4\x86", "\xe5\xa4\x9a", "\xe5\xa4\xa2", "\xe5\xa5\xa2",
  "\xf0\xa1\x9a\xa8", "\xf0\xa1\x9b\xaa", "\xe5\xa7\xac", "\xe5\xa8\x9b", "\xe5\xa8\xa7", "\xe5\xa7\x98", "\xe5\xa9\xa6", "\xe3\x9b\xae",
  "\xe3\x9b\xbc", "\xe5\xac\x88", "\xe5\xac\xbe", "\xe5\xac\xbe", "\xf0\xa1\xa7\x88", "\xe5\xaf\x83", "\xe5\xaf\x98", "\xe5\xaf\xa7",
  "\xe5\xaf\xb3", "\xf0\xa1\xac\x98", "\xe5\xaf\xbf", "\xe5\xb0\x86", "\xe5\xbd\x93", "\xe5\xb0\xa2", "\xe3\x9e\x81", "\xe5\xb1\xa0",
  "\xe5\xb1\xae", "\xe5\xb3\x80", "\xe5\xb2\x8d", "\xf0\xa1\xb7\xa4", "\xe5\xb5\x83", "\xf0\xa1\xb7\xa6", "\xe5\xb5\xae", "\xe5\xb5\xab"
};

static const char *grn_nfkc50_decompose_table_f0afa2[] = {
  "\xe5\xb5\xbc", "\xe5\xb7\xa1", "\xe5\xb7\xa2", "\xe3\xa0\xaf", "\xe5\xb7\xbd", "\xe5\xb8\xa8", "\xe5\xb8\xbd", "\xe5\xb9\xa9",
  "\xe3\xa1\xa2", "\xf0\xa2\x86\x83", "\xe3\xa1\xbc", "\xe5\xba\xb0", "\xe5\xba\xb3", "\xe5\xba\xb6", "\xe5\xbb\x8a", "\xf0\xaa\x8e\x92",
  "\xe5\xbb\xbe", "\xf0\xa2\x8c\xb1", "\xf0\xa2\x8c\xb1", "\xe8\x88\x81", "\xe5\xbc\xa2", "\xe5\xbc\xa2", "\xe3\xa3\x87", "\xf0\xa3\x8a\xb8",
  "\xf0\xa6\x87\x9a", "\xe5\xbd\xa2", "\xe5\xbd\xab", "\xe3\xa3\xa3", "\xe5\xbe\x9a", "\xe5\xbf\x8d", "\xe5\xbf\x97", "\xe5\xbf\xb9",
  "\xe6\x82\x81", "\xe3\xa4\xba", "\xe3\xa4\x9c", "\xe6\x82\x94", "\xf0\xa2\x9b\x94", "\xe6\x83\x87", "\xe6\x85\x88", "\xe6\x85\x8c",
  "\xe6\x85\x8e", "\xe6\x85\x8c", "\xe6\x85\xba", "\xe6\x86\x8e", "\xe6\x86\xb2", "\xe6\x86\xa4", "\xe6\x86\xaf", "\xe6\x87\x9e",
  "\xe6\x87\xb2", "\xe6\x87\xb6", "\xe6\x88\x90", "\xe6\x88\x9b", "\xe6\x89\x9d", "\xe6\x8a\xb1", "\xe6\x8b\x94", "\xe6\x8d\x90",
  "\xf0\xa2\xac\x8c", "\xe6\x8c\xbd", "\xe6\x8b\xbc", "\xe6\x8d\xa8", "\xe6\x8e\x83", "\xe6\x8f\xa4", "\xf0\xa2\xaf\xb1", "\xe6\x90\xa2"
};

static const char *grn_nfkc50_decompose_table_f0afa3[] = {
  "\xe6\x8f\x85", "\xe6\x8e\xa9", "\xe3\xa8\xae", "\xe6\x91\xa9", "\xe6\x91\xbe", "\xe6\x92\x9d", "\xe6\x91\xb7", "\xe3\xa9\xac",
  "\xe6\x95\x8f", "\xe6\x95\xac", "\xf0\xa3\x80\x8a", "\xe6\x97\xa3", "\xe6\x9b\xb8", "\xe6\x99\x89", "\xe3\xac\x99", "\xe6\x9a\x91",
  "\xe3\xac\x88", "\xe3\xab\xa4", "\xe5\x86\x92", "\xe5\x86\x95", "\xe6\x9c\x80", "\xe6\x9a\x9c", "\xe8\x82\xad", "\xe4\x8f\x99",
  "\xe6\x9c\x97", "\xe6\x9c\x9b", "\xe6\x9c\xa1", "\xe6\x9d\x9e", "\xe6\x9d\x93", "\xf0\xa3\x8f\x83", "\xe3\xad\x89", "\xe6\x9f\xba",
  "\xe6\x9e\x85", "\xe6\xa1\x92", "\xe6\xa2\x85", "\xf0\xa3\x91\xad", "\xe6\xa2\x8e", "\xe6\xa0\x9f", "\xe6\xa4\x94", "\xe3\xae\x9d",
  "\xe6\xa5\x82", "\xe6\xa6\xa3", "\xe6\xa7\xaa", "\xe6\xaa\xa8", "\xf0\xa3\x9a\xa3", "\xe6\xab\x9b", "\xe3\xb0\x98", "\xe6\xac\xa1",
  "\xf0\xa3\xa2\xa7", "\xe6\xad\x94", "\xe3\xb1\x8e", "\xe6\xad\xb2", "\xe6\xae\x9f", "\xe6\xae\xba", "\xe6\xae\xbb", "\xf0\xa3\xaa\x8d",
  "\xf0\xa1\xb4\x8b", "\xf0\xa3\xab\xba", "\xe6\xb1\x8e", "\xf0\xa3\xb2\xbc", "\xe6\xb2\xbf", "\xe6\xb3\x8d", "\xe6\xb1\xa7", "\xe6\xb4\x96"
};

static const char *grn_nfkc50_decompose_table_f0afa4[] = {
  "\xe6\xb4\xbe", "\xe6\xb5\xb7", "\xe6\xb5\x81", "\xe6\xb5\xa9", "\xe6\xb5\xb8", "\xe6\xb6\x85", "\xf0\xa3\xb4\x9e", "\xe6\xb4\xb4",
  "\xe6\xb8\xaf", "\xe6\xb9\xae", "\xe3\xb4\xb3", "\xe6\xbb\x8b", "\xe6\xbb\x87", "\xf0\xa3\xbb\x91", "\xe6\xb7\xb9", "\xe6\xbd\xae",
  "\xf0\xa3\xbd\x9e", "\xf0\xa3\xbe\x8e", "\xe6\xbf\x86", "\xe7\x80\xb9", "\xe7\x80\x9e", "\xe7\x80\x9b", "\xe3\xb6\x96", "\xe7\x81\x8a",
  "\xe7\x81\xbd", "\xe7\x81\xb7", "\xe7\x82\xad", "\xf0\xa0\x94\xa5", "\xe7\x85\x85", "\xf0\xa4\x89\xa3", "\xe7\x86\x9c", "\xf0\xa4\x8e\xab",
  "\xe7\x88\xa8", "\xe7\x88\xb5", "\xe7\x89\x90", "\xf0\xa4\x98\x88", "\xe7\x8a\x80", "\xe7\x8a\x95", "\xf0\xa4\x9c\xb5", "\xf0\xa4\xa0\x94",
  "\xe7\x8d\xba", "\xe7\x8e\x8b", "\xe3\xba\xac", "\xe7\x8e\xa5", "\xe3\xba\xb8", "\xe3\xba\xb8", "\xe7\x91\x87", "\xe7\x91\x9c",
  "\xe7\x91\xb1", "\xe7\x92\x85", "\xe7\x93\x8a", "\xe3\xbc\x9b", "\xe7\x94\xa4", "\xf0\xa4\xb0\xb6", "\xe7\x94\xbe", "\xf0\xa4\xb2\x92",
  "\xe7\x95\xb0", "\xf0\xa2\x86\x9f", "\xe7\x98\x90", "\xf0\xa4\xbe\xa1", "\xf0\xa4\xbe\xb8", "\xf0\xa5\x81\x84", "\xe3\xbf\xbc", "\xe4\x80\x88"
};

static const char *grn_nfkc50_decompose_table_f0afa5[] = {
  "\xe7\x9b\xb4", "\xf0\xa5\x83\xb3", "\xf0\xa5\x83\xb2", "\xf0\xa5\x84\x99", "\xf0\xa5\x84\xb3", "\xe7\x9c\x9e", "\xe7\x9c\x9f", "\xe7\x9c\x9f",
  "\xe7\x9d\x8a", "\xe4\x80\xb9", "\xe7\x9e\x8b", "\xe4\x81\x86", "\xe4\x82\x96", "\xf0\xa5\x90\x9d", "\xe7\xa1\x8e", "\xe7\xa2\x8c",
  "\xe7\xa3\x8c", "\xe4\x83\xa3", "\xf0\xa5\x98\xa6", "\xe7\xa5\x96", "\xf0\xa5\x9a\x9a", "\xf0\xa5\x9b\x85", "\xe7\xa6\x8f", "\xe7\xa7\xab",
  "\xe4\x84\xaf", "\xe7\xa9\x80", "\xe7\xa9\x8a", "\xe7\xa9\x8f", "\xf0\xa5\xa5\xbc", "\xf0\xa5\xaa\xa7", "\xf0\xa5\xaa\xa7", "\xe7\xab\xae",
  "\xe4\x88\x82", "\xf0\xa5\xae\xab", "\xe7\xaf\x86", "\xe7\xaf\x89", "\xe4\x88\xa7", "\xf0\xa5\xb2\x80", "\xe7\xb3\x92", "\xe4\x8a\xa0",
  "\xe7\xb3\xa8", "\xe7\xb3\xa3", "\xe7\xb4\x80", "\xf0\xa5\xbe\x86", "\xe7\xb5\xa3", "\xe4\x8c\x81", "\xe7\xb7\x87", "\xe7\xb8\x82",
  "\xe7\xb9\x85", "\xe4\x8c\xb4", "\xf0\xa6\x88\xa8", "\xf0\xa6\x89\x87", "\xe4\x8d\x99", "\xf0\xa6\x8b\x99", "\xe7\xbd\xba", "\xf0\xa6\x8c\xbe",
  "\xe7\xbe\x95", "\xe7\xbf\xba", "\xe8\x80\x85", "\xf0\xa6\x93\x9a", "\xf0\xa6\x94\xa3", "\xe8\x81\xa0", "\xf0\xa6\x96\xa8", "\xe8\x81\xb0"
};

static const char *grn_nfkc50_decompose_table_f0afa6[] = {
  "\xf0\xa3\x8d\x9f", "\xe4\x8f\x95", "\xe8\x82\xb2", "\xe8\x84\x83", "\xe4\x90\x8b", "\xe8\x84\xbe", "\xe5\xaa\xb5", "\xf0\xa6\x9e\xa7",
  "\xf0\xa6\x9e\xb5", "\xf0\xa3\x8e\x93", "\xf0\xa3\x8e\x9c", "\xe8\x88\x81", "\xe8\x88\x84", "\xe8\xbe\x9e", "\xe4\x91\xab", "\xe8\x8a\x91",
  "\xe8\x8a\x8b", "\xe8\x8a\x9d", "\xe5\x8a\xb3", "\xe8\x8a\xb1", "\xe8\x8a\xb3", "\xe8\x8a\xbd", "\xe8\x8b\xa6", "\xf0\xa6\xac\xbc",
  "\xe8\x8b\xa5", "\xe8\x8c\x9d", "\xe8\x8d\xa3", "\xe8\x8e\xad", "\xe8\x8c\xa3", "\xe8\x8e\xbd", "\xe8\x8f\xa7", "\xe8\x91\x97",
  "\xe8\x8d\x93", "\xe8\x8f\x8a", "\xe8\x8f\x8c", "\xe8\x8f\x9c", "\xf0\xa6\xb0\xb6", "\xf0\xa6\xb5\xab", "\xf0\xa6\xb3\x95", "\xe4\x94\xab",
  "\xe8\x93\xb1", "\xe8\x93\xb3", "\xe8\x94\x96", "\xf0\xa7\x8f\x8a", "\xe8\x95\xa4", "\xf0\xa6\xbc\xac", "\xe4\x95\x9d", "\xe4\x95\xa1",
  "\xf0\xa6\xbe\xb1", "\xf0\xa7\x83\x92", "\xe4\x95\xab", "\xe8\x99\x90", "\xe8\x99\x9c", "\xe8\x99\xa7", "\xe8\x99\xa9", "\xe8\x9a\xa9",
  "\xe8\x9a\x88", "\xe8\x9c\x8e", "\xe8\x9b\xa2", "\xe8\x9d\xb9", "\xe8\x9c\xa8", "\xe8\x9d\xab", "\xe8\x9e\x86", "\xe4\x97\x97"
};

static const char *grn_nfkc50_decompose_table_f0afa7[] = {
  "\xe8\x9f\xa1", "\xe8\xa0\x81", "\xe4\x97\xb9", "\xe8\xa1\xa0", "\xe8\xa1\xa3", "\xf0\xa7\x99\xa7", "\xe8\xa3\x97", "\xe8\xa3\x9e",
  "\xe4\x98\xb5", "\xe8\xa3\xba", "\xe3\x92\xbb", "\xf0\xa7\xa2\xae", "\xf0\xa7\xa5\xa6", "\xe4\x9a\xbe", "\xe4\x9b\x87", "\xe8\xaa\xa0",
  "\xe8\xab\xad", "\xe8\xae\x8a", "\xe8\xb1\x95", "\xf0\xa7\xb2\xa8", "\xe8\xb2\xab", "\xe8\xb3\x81", "\xe8\xb4\x9b", "\xe8\xb5\xb7",
  "\xf0\xa7\xbc\xaf", "\xf0\xa0\xa0\x84", "\xe8\xb7\x8b", "\xe8\xb6\xbc", "\xe8\xb7\xb0", "\xf0\xa0\xa3\x9e", "\xe8\xbb\x94", "\xe8\xbc\xb8",
  "\xf0\xa8\x97\x92", "\xf0\xa8\x97\xad", "\xe9\x82\x94", "\xe9\x83\xb1", "\xe9\x84\x91", "\xf0\xa8\x9c\xae", "\xe9\x84\x9b", "\xe9\x88\xb8",
  "\xe9\x8b\x97", "\xe9\x8b\x98", "\xe9\x89\xbc", "\xe9\x8f\xb9", "\xe9\x90\x95", "\xf0\xa8\xaf\xba", "\xe9\x96\x8b", "\xe4\xa6\x95",
  "\xe9\x96\xb7", "\xf0\xa8\xb5\xb7", "\xe4\xa7\xa6", "\xe9\x9b\x83", "\xe5\xb6\xb2", "\xe9\x9c\xa3", "\xf0\xa9\x85\x85", "\xf0\xa9\x88\x9a",
  "\xe4\xa9\xae", "\xe4\xa9\xb6", "\xe9\x9f\xa0", "\xf0\xa9\x90\x8a", "\xe4\xaa\xb2", "\xf0\xa9\x92\x96", "\xe9\xa0\x8b", "\xe9\xa0\x8b"
};

static const char *grn_nfkc50_decompose_table_f0afa8[] = {
  "\xe9\xa0\xa9", "\xf0\xa9\x96\xb6", "\xe9\xa3\xa2", "\xe4\xac\xb3", "\xe9\xa4\xa9", "\xe9\xa6\xa7", "\xe9\xa7\x82", "\xe9\xa7\xbe",
  "\xe4\xaf\x8e", "\xf0\xa9\xac\xb0", "\xe9\xac\x92", "\xe9\xb1\x80", "\xe9\xb3\xbd", "\xe4\xb3\x8e", "\xe4\xb3\xad", "\xe9\xb5\xa7",
  "\xf0\xaa\x83\x8e", "\xe4\xb3\xb8", "\xf0\xaa\x84\x85", "\xf0\xaa\x88\x8e", "\xf0\xaa\x8a\x91", "\xe9\xba\xbb", "\xe4\xb5\x96", "\xe9\xbb\xb9",
  "\xe9\xbb\xbe", "\xe9\xbc\x85", "\xe9\xbc\x8f", "\xe9\xbc\x96", "\xe9\xbc\xbb", "\xf0\xaa\x98\x80"
};

const char *
grn_nfkc50_decompose(const unsigned char *utf8)
{
  if (utf8[0] < 0x80) {
    if (utf8[0] >= 0x41 &&
        utf8[0] <= 0x5a) {
      return grn_nfkc50_decompose_table_[utf8[0] - 0x41];
    } else {
      return NULL;
    }
  } else {
    switch (utf8[0]) {
    case 0xc2 :
      if (utf8[1] >= 0xa0 &&
          utf8[1] <= 0xbe) {
        return grn_nfkc50_decompose_table_c2[utf8[1] - 0xa0];
      }
      break;
    case 0xc3 :
      if (utf8[1] >= 0x80 &&
          utf8[1] <= 0x9d) {
        return grn_nfkc50_decompose_table_c3[utf8[1] - 0x80];
      }
      break;
    case 0xc4 :
      return grn_nfkc50_decompose_table_c4[utf8[1] - 0x80];
    case 0xc5 :
      return grn_nfkc50_decompose_table_c5[utf8[1] - 0x80];
    case 0xc6 :
      if (utf8[1] >= 0xa0 &&
          utf8[1] <= 0xaf) {
        return grn_nfkc50_decompose_table_c6[utf8[1] - 0xa0];
      }
      break;
    case 0xc7 :
      if (utf8[1] >= 0x84 &&
          utf8[1] <= 0xba) {
        return grn_nfkc50_decompose_table_c7[utf8[1] - 0x84];
      }
      break;
    case 0xc8 :
      if (utf8[1] >= 0x80 &&
          utf8[1] <= 0xb2) {
        return grn_nfkc50_decompose_table_c8[utf8[1] - 0x80];
      }
      break;
    case 0xca :
      if (utf8[1] >= 0xb0 &&
          utf8[1] <= 0xb8) {
        return grn_nfkc50_decompose_table_ca[utf8[1] - 0xb0];
      }
      break;
    case 0xcb :
      if (utf8[1] >= 0x98 &&
          utf8[1] <= 0xa4) {
        return grn_nfkc50_decompose_table_cb[utf8[1] - 0x98];
      }
      break;
    case 0xcd :
      if (utf8[1] >= 0x80 &&
          utf8[1] <= 0xbe) {
        return grn_nfkc50_decompose_table_cd[utf8[1] - 0x80];
      }
      break;
    case 0xce :
      if (utf8[1] >= 0x84 &&
          utf8[1] <= 0x87) {
        return grn_nfkc50_decompose_table_ce[utf8[1] - 0x84];
      }
      break;
    case 0xcf :
      if (utf8[1] >= 0x90 &&
          utf8[1] <= 0xb9) {
        return grn_nfkc50_decompose_table_cf[utf8[1] - 0x90];
      }
      break;
    case 0xd6 :
      if (utf8[1] == 0x87) {
        return "\xd5\xa5\xd6\x82";
      }
      break;
    case 0xd9 :
      if (utf8[1] >= 0xb5 &&
          utf8[1] <= 0xb8) {
        return grn_nfkc50_decompose_table_d9[utf8[1] - 0xb5];
      }
      break;
    case 0xe0 :
      switch (utf8[1]) {
      case 0xa5 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0x9f) {
          return grn_nfkc50_decompose_table_e0a5[utf8[2] - 0x98];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x9c &&
            utf8[2] <= 0x9f) {
          return grn_nfkc50_decompose_table_e0a7[utf8[2] - 0x9c];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0xb3 &&
            utf8[2] <= 0xb6) {
          return grn_nfkc50_decompose_table_e0a8[utf8[2] - 0xb3];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x99 &&
            utf8[2] <= 0x9e) {
          return grn_nfkc50_decompose_table_e0a9[utf8[2] - 0x99];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x9c &&
            utf8[2] <= 0x9d) {
          return grn_nfkc50_decompose_table_e0ad[utf8[2] - 0x9c];
        }
        break;
      case 0xb8 :
        if (utf8[2] == 0xb3) {
          return "\xe0\xb9\x8d\xe0\xb8\xb2";
        }
        break;
      case 0xba :
        if (utf8[2] == 0xb3) {
          return "\xe0\xbb\x8d\xe0\xba\xb2";
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x9c &&
            utf8[2] <= 0x9d) {
          return grn_nfkc50_decompose_table_e0bb[utf8[2] - 0x9c];
        }
        break;
      case 0xbc :
        if (utf8[2] == 0x8c) {
          return "\xe0\xbc\x8b";
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x83 &&
            utf8[2] <= 0xb9) {
          return grn_nfkc50_decompose_table_e0bd[utf8[2] - 0x83];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x81 &&
            utf8[2] <= 0xb9) {
          return grn_nfkc50_decompose_table_e0be[utf8[2] - 0x81];
        }
        break;
      default :
        break;
      }
      break;
    case 0xe1 :
      switch (utf8[1]) {
      case 0x83 :
        if (utf8[2] == 0xbc) {
          return "\xe1\x83\x9c";
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0xac &&
            utf8[2] <= 0xbf) {
          return grn_nfkc50_decompose_table_e1b4[utf8[2] - 0xac];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_decompose_table_e1b5[utf8[2] - 0x80];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x9b &&
            utf8[2] <= 0xbf) {
          return grn_nfkc50_decompose_table_e1b6[utf8[2] - 0x9b];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xbe) {
          return grn_nfkc50_decompose_table_e1b8[utf8[2] - 0x80];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xbe) {
          return grn_nfkc50_decompose_table_e1b9[utf8[2] - 0x80];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xbe) {
          return grn_nfkc50_decompose_table_e1ba[utf8[2] - 0x80];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_decompose_table_e1bb[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0xb1 &&
            utf8[2] <= 0xbd) {
          return grn_nfkc50_decompose_table_e1bd[utf8[2] - 0xb1];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0xbb &&
            utf8[2] <= 0xbf) {
          return grn_nfkc50_decompose_table_e1be[utf8[2] - 0xbb];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xbe) {
          return grn_nfkc50_decompose_table_e1bf[utf8[2] - 0x80];
        }
        break;
      default :
        break;
      }
      break;
    case 0xe2 :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xbe) {
          return grn_nfkc50_decompose_table_e280[utf8[2] - 0x80];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x87 &&
            utf8[2] <= 0xbf) {
          return grn_nfkc50_decompose_table_e281[utf8[2] - 0x87];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_decompose_table_e282[utf8[2] - 0x80];
        }
        break;
      case 0x84 :
        return grn_nfkc50_decompose_table_e284[utf8[2] - 0x80];
      case 0x85 :
        return grn_nfkc50_decompose_table_e285[utf8[2] - 0x80];
      case 0x88 :
        if (utf8[2] >= 0xac &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_decompose_table_e288[utf8[2] - 0xac];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0xa9 &&
            utf8[2] <= 0xaa) {
          return grn_nfkc50_decompose_table_e28c[utf8[2] - 0xa9];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0xa0 &&
            utf8[2] <= 0xbf) {
          return grn_nfkc50_decompose_table_e291[utf8[2] - 0xa0];
        }
        break;
      case 0x92 :
        return grn_nfkc50_decompose_table_e292[utf8[2] - 0x80];
      case 0x93 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xaa) {
          return grn_nfkc50_decompose_table_e293[utf8[2] - 0x80];
        }
        break;
      case 0xa8 :
        if (utf8[2] == 0x8c) {
          return "\xe2\x88\xab\xe2\x88\xab\xe2\x88\xab\xe2\x88\xab";
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0xb4 &&
            utf8[2] <= 0xb6) {
          return grn_nfkc50_decompose_table_e2a9[utf8[2] - 0xb4];
        }
        break;
      case 0xab :
        if (utf8[2] == 0x9c) {
          return "\xe2\xab\x9d\xcc\xb8";
        }
        break;
      case 0xb5 :
        if (utf8[2] == 0xaf) {
          return "\xe2\xb5\xa1";
        }
        break;
      case 0xba :
        if (utf8[2] == 0x9f) {
          return "\xe6\xaf\x8d";
        }
        break;
      case 0xbb :
        if (utf8[2] == 0xb3) {
          return "\xe9\xbe\x9f";
        }
        break;
      case 0xbc :
        return grn_nfkc50_decompose_table_e2bc[utf8[2] - 0x80];
      case 0xbd :
        return grn_nfkc50_decompose_table_e2bd[utf8[2] - 0x80];
      case 0xbe :
        return grn_nfkc50_decompose_table_e2be[utf8[2] - 0x80];
      case 0xbf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x95) {
          return grn_nfkc50_decompose_table_e2bf[utf8[2] - 0x80];
        }
        break;
      default :
        break;
      }
      break;
    case 0xe3 :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xba) {
          return grn_nfkc50_decompose_table_e380[utf8[2] - 0x80];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x9b &&
            utf8[2] <= 0x9f) {
          return grn_nfkc50_decompose_table_e382[utf8[2] - 0x9b];
        }
        break;
      case 0x83 :
        if (utf8[2] == 0xbf) {
          return "\xe3\x82\xb3\xe3\x83\x88";
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0xb1 &&
            utf8[2] <= 0xbf) {
          return grn_nfkc50_decompose_table_e384[utf8[2] - 0xb1];
        }
        break;
      case 0x85 :
        return grn_nfkc50_decompose_table_e385[utf8[2] - 0x80];
      case 0x86 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x9f) {
          return grn_nfkc50_decompose_table_e386[utf8[2] - 0x80];
        }
        break;
      case 0x88 :
        return grn_nfkc50_decompose_table_e388[utf8[2] - 0x80];
      case 0x89 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xbe) {
          return grn_nfkc50_decompose_table_e389[utf8[2] - 0x80];
        }
        break;
      case 0x8a :
        return grn_nfkc50_decompose_table_e38a[utf8[2] - 0x80];
      case 0x8b :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xbe) {
          return grn_nfkc50_decompose_table_e38b[utf8[2] - 0x80];
        }
        break;
      case 0x8c :
        return grn_nfkc50_decompose_table_e38c[utf8[2] - 0x80];
      case 0x8d :
        return grn_nfkc50_decompose_table_e38d[utf8[2] - 0x80];
      case 0x8e :
        return grn_nfkc50_decompose_table_e38e[utf8[2] - 0x80];
      case 0x8f :
        return grn_nfkc50_decompose_table_e38f[utf8[2] - 0x80];
      default :
        break;
      }
      break;
    case 0xef :
      switch (utf8[1]) {
      case 0xa4 :
        return grn_nfkc50_decompose_table_efa4[utf8[2] - 0x80];
      case 0xa5 :
        return grn_nfkc50_decompose_table_efa5[utf8[2] - 0x80];
      case 0xa6 :
        return grn_nfkc50_decompose_table_efa6[utf8[2] - 0x80];
      case 0xa7 :
        return grn_nfkc50_decompose_table_efa7[utf8[2] - 0x80];
      case 0xa8 :
        return grn_nfkc50_decompose_table_efa8[utf8[2] - 0x80];
      case 0xa9 :
        return grn_nfkc50_decompose_table_efa9[utf8[2] - 0x80];
      case 0xaa :
        return grn_nfkc50_decompose_table_efaa[utf8[2] - 0x80];
      case 0xab :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x99) {
          return grn_nfkc50_decompose_table_efab[utf8[2] - 0x80];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xbe) {
          return grn_nfkc50_decompose_table_efac[utf8[2] - 0x80];
        }
        break;
      case 0xad :
        return grn_nfkc50_decompose_table_efad[utf8[2] - 0x80];
      case 0xae :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb1) {
          return grn_nfkc50_decompose_table_efae[utf8[2] - 0x80];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x93 &&
            utf8[2] <= 0xbf) {
          return grn_nfkc50_decompose_table_efaf[utf8[2] - 0x93];
        }
        break;
      case 0xb0 :
        return grn_nfkc50_decompose_table_efb0[utf8[2] - 0x80];
      case 0xb1 :
        return grn_nfkc50_decompose_table_efb1[utf8[2] - 0x80];
      case 0xb2 :
        return grn_nfkc50_decompose_table_efb2[utf8[2] - 0x80];
      case 0xb3 :
        return grn_nfkc50_decompose_table_efb3[utf8[2] - 0x80];
      case 0xb4 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xbd) {
          return grn_nfkc50_decompose_table_efb4[utf8[2] - 0x80];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xbf) {
          return grn_nfkc50_decompose_table_efb5[utf8[2] - 0x90];
        }
        break;
      case 0xb6 :
        return grn_nfkc50_decompose_table_efb6[utf8[2] - 0x80];
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_decompose_table_efb7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xbf) {
          return grn_nfkc50_decompose_table_efb8[utf8[2] - 0x90];
        }
        break;
      case 0xb9 :
        return grn_nfkc50_decompose_table_efb9[utf8[2] - 0x80];
      case 0xba :
        return grn_nfkc50_decompose_table_efba[utf8[2] - 0x80];
      case 0xbb :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_decompose_table_efbb[utf8[2] - 0x80];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x81 &&
            utf8[2] <= 0xbf) {
          return grn_nfkc50_decompose_table_efbc[utf8[2] - 0x81];
        }
        break;
      case 0xbd :
        return grn_nfkc50_decompose_table_efbd[utf8[2] - 0x80];
      case 0xbe :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xbe) {
          return grn_nfkc50_decompose_table_efbe[utf8[2] - 0x80];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x82 &&
            utf8[2] <= 0xae) {
          return grn_nfkc50_decompose_table_efbf[utf8[2] - 0x82];
        }
        break;
      default :
        break;
      }
      break;
    case 0xf0 :
      switch (utf8[1]) {
      case 0x9d :
        switch (utf8[2]) {
        case 0x85 :
          if (utf8[3] >= 0x9e &&
              utf8[3] <= 0xa4) {
            return grn_nfkc50_decompose_table_f09d85[utf8[3] - 0x9e];
          }
          break;
        case 0x86 :
          if (utf8[3] >= 0xbb &&
              utf8[3] <= 0xbf) {
            return grn_nfkc50_decompose_table_f09d86[utf8[3] - 0xbb];
          }
          break;
        case 0x87 :
          if (utf8[3] == 0x80) {
            return "\xf0\x9d\x86\xba\xf0\x9d\x85\xa5\xf0\x9d\x85\xaf";
          }
          break;
        case 0x90 :
          return grn_nfkc50_decompose_table_f09d90[utf8[3] - 0x80];
        case 0x91 :
          return grn_nfkc50_decompose_table_f09d91[utf8[3] - 0x80];
        case 0x92 :
          return grn_nfkc50_decompose_table_f09d92[utf8[3] - 0x80];
        case 0x93 :
          return grn_nfkc50_decompose_table_f09d93[utf8[3] - 0x80];
        case 0x94 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xbe) {
            return grn_nfkc50_decompose_table_f09d94[utf8[3] - 0x80];
          }
          break;
        case 0x95 :
          return grn_nfkc50_decompose_table_f09d95[utf8[3] - 0x80];
        case 0x96 :
          return grn_nfkc50_decompose_table_f09d96[utf8[3] - 0x80];
        case 0x97 :
          return grn_nfkc50_decompose_table_f09d97[utf8[3] - 0x80];
        case 0x98 :
          return grn_nfkc50_decompose_table_f09d98[utf8[3] - 0x80];
        case 0x99 :
          return grn_nfkc50_decompose_table_f09d99[utf8[3] - 0x80];
        case 0x9a :
          return grn_nfkc50_decompose_table_f09d9a[utf8[3] - 0x80];
        case 0x9b :
          return grn_nfkc50_decompose_table_f09d9b[utf8[3] - 0x80];
        case 0x9c :
          return grn_nfkc50_decompose_table_f09d9c[utf8[3] - 0x80];
        case 0x9d :
          return grn_nfkc50_decompose_table_f09d9d[utf8[3] - 0x80];
        case 0x9e :
          return grn_nfkc50_decompose_table_f09d9e[utf8[3] - 0x80];
        case 0x9f :
          return grn_nfkc50_decompose_table_f09d9f[utf8[3] - 0x80];
        default :
          break;
        }
        break;
      case 0xaf :
        switch (utf8[2]) {
        case 0xa0 :
          return grn_nfkc50_decompose_table_f0afa0[utf8[3] - 0x80];
        case 0xa1 :
          return grn_nfkc50_decompose_table_f0afa1[utf8[3] - 0x80];
        case 0xa2 :
          return grn_nfkc50_decompose_table_f0afa2[utf8[3] - 0x80];
        case 0xa3 :
          return grn_nfkc50_decompose_table_f0afa3[utf8[3] - 0x80];
        case 0xa4 :
          return grn_nfkc50_decompose_table_f0afa4[utf8[3] - 0x80];
        case 0xa5 :
          return grn_nfkc50_decompose_table_f0afa5[utf8[3] - 0x80];
        case 0xa6 :
          return grn_nfkc50_decompose_table_f0afa6[utf8[3] - 0x80];
        case 0xa7 :
          return grn_nfkc50_decompose_table_f0afa7[utf8[3] - 0x80];
        case 0xa8 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0x9d) {
            return grn_nfkc50_decompose_table_f0afa8[utf8[3] - 0x80];
          }
          break;
        default :
          break;
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_cc80_table_[] = {
  "\xc3\xa0", NULL, NULL, NULL, "\xc3\xa8", NULL, NULL, NULL,
  "\xc3\xac", NULL, NULL, NULL, NULL, "\xc7\xb9", "\xc3\xb2", NULL,
  NULL, NULL, NULL, NULL, "\xc3\xb9", NULL, "\xe1\xba\x81", NULL,
  "\xe1\xbb\xb3"
};

static const char *grn_nfkc50_compose_prefix_cc80_table_c3[] = {
  "\xe1\xba\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbb\x81", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, "\xe1\xbb\x93", NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, "\xc7\x9c"
};

static const char *grn_nfkc50_compose_prefix_cc80_table_c4[] = {
  "\xe1\xba\xb1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xb8\x95"
};

static const char *grn_nfkc50_compose_prefix_cc80_table_c6[] = {
  "\xe1\xbb\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, "\xe1\xbb\xab"
};

static const char *grn_nfkc50_compose_prefix_cc80_table_ce[] = {
  "\xe1\xbe\xba", NULL, NULL, NULL, "\xe1\xbf\x88", NULL, "\xe1\xbf\x8a", NULL,
  "\xe1\xbf\x9a", NULL, NULL, NULL, NULL, NULL, "\xe1\xbf\xb8", NULL,
  NULL, NULL, NULL, NULL, "\xe1\xbf\xaa", NULL, NULL, NULL,
  "\xe1\xbf\xba", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbd\xb0", NULL, NULL, NULL, "\xe1\xbd\xb2", NULL, "\xe1\xbd\xb4", NULL,
  "\xe1\xbd\xb6", NULL, NULL, NULL, NULL, NULL, "\xe1\xbd\xb8"
};

static const char *grn_nfkc50_compose_prefix_cc80_table_cf[] = {
  "\xe1\xbd\xba", NULL, NULL, NULL, "\xe1\xbd\xbc", "\xe1\xbf\x92", "\xe1\xbf\xa2"
};

static const char *grn_nfkc50_compose_prefix_cc80_table_d0[] = {
  "\xd0\x80", NULL, NULL, "\xd0\x8d", NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xd1\x90", NULL, NULL, "\xd1\x9d"
};

static const char *grn_nfkc50_compose_prefix_cc80_table_e1bc[] = {
  "\xe1\xbc\x82", "\xe1\xbc\x83", NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbc\x8a", "\xe1\xbc\x8b", NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbc\x92", "\xe1\xbc\x93", NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbc\x9a", "\xe1\xbc\x9b", NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbc\xa2", "\xe1\xbc\xa3", NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbc\xaa", "\xe1\xbc\xab", NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbc\xb2", "\xe1\xbc\xb3", NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbc\xba", "\xe1\xbc\xbb"
};

static const char *grn_nfkc50_compose_prefix_cc80_table_e1bd[] = {
  "\xe1\xbd\x82", "\xe1\xbd\x83", NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbd\x8a", "\xe1\xbd\x8b", NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbd\x92", "\xe1\xbd\x93", NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, "\xe1\xbd\x9b", NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbd\xa2", "\xe1\xbd\xa3", NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbd\xaa", "\xe1\xbd\xab"
};

static inline const char *
grn_nfkc50_compose_prefix_cc80(const unsigned char *utf8)
{
  if (utf8[0] < 0x80) {
    if (utf8[0] >= 0x61 &&
        utf8[0] <= 0x79) {
      return grn_nfkc50_compose_prefix_cc80_table_[utf8[0] - 0x61];
    } else {
      return NULL;
    }
  } else {
    switch (utf8[0]) {
    case 0xc3 :
      if (utf8[1] >= 0xa2 &&
          utf8[1] <= 0xbc) {
        return grn_nfkc50_compose_prefix_cc80_table_c3[utf8[1] - 0xa2];
      }
      break;
    case 0xc4 :
      if (utf8[1] >= 0x83 &&
          utf8[1] <= 0x93) {
        return grn_nfkc50_compose_prefix_cc80_table_c4[utf8[1] - 0x83];
      }
      break;
    case 0xc5 :
      if (utf8[1] == 0x8d) {
        return "\xe1\xb9\x91";
      }
      break;
    case 0xc6 :
      if (utf8[1] >= 0xa1 &&
          utf8[1] <= 0xb0) {
        return grn_nfkc50_compose_prefix_cc80_table_c6[utf8[1] - 0xa1];
      }
      break;
    case 0xce :
      if (utf8[1] >= 0x91 &&
          utf8[1] <= 0xbf) {
        return grn_nfkc50_compose_prefix_cc80_table_ce[utf8[1] - 0x91];
      }
      break;
    case 0xcf :
      if (utf8[1] >= 0x85 &&
          utf8[1] <= 0x8b) {
        return grn_nfkc50_compose_prefix_cc80_table_cf[utf8[1] - 0x85];
      }
      break;
    case 0xd0 :
      if (utf8[1] >= 0x95 &&
          utf8[1] <= 0xb8) {
        return grn_nfkc50_compose_prefix_cc80_table_d0[utf8[1] - 0x95];
      }
      break;
    case 0xe1 :
      switch (utf8[1]) {
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb9) {
          return grn_nfkc50_compose_prefix_cc80_table_e1bc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xa9) {
          return grn_nfkc50_compose_prefix_cc80_table_e1bd[utf8[2] - 0x80];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_cc81_table_[] = {
  "\xc3\xa1", NULL, "\xc4\x87", NULL, "\xc3\xa9", NULL, "\xc7\xb5", NULL,
  "\xc3\xad", NULL, "\xe1\xb8\xb1", "\xc4\xba", "\xe1\xb8\xbf", "\xc5\x84", "\xc3\xb3", "\xe1\xb9\x95",
  NULL, "\xc5\x95", "\xc5\x9b", NULL, "\xc3\xba", NULL, "\xe1\xba\x83", NULL,
  "\xc3\xbd", "\xc5\xba"
};

static const char *grn_nfkc50_compose_prefix_cc81_table_c3[] = {
  "\xc7\xbc", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, "\xc7\xbe", NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xe1\xba\xa5", NULL, NULL, "\xc7\xbb",
  "\xc7\xbd", "\xe1\xb8\x89", NULL, NULL, "\xe1\xba\xbf", NULL, NULL, NULL,
  NULL, "\xe1\xb8\xaf", NULL, NULL, NULL, NULL, "\xe1\xbb\x91", "\xe1\xb9\x8d",
  NULL, NULL, "\xc7\xbf", NULL, NULL, NULL, "\xc7\x98"
};

static const char *grn_nfkc50_compose_prefix_cc81_table_c4[] = {
  "\xe1\xba\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xb8\x97"
};

static const char *grn_nfkc50_compose_prefix_cc81_table_c5[] = {
  "\xe1\xb9\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xe1\xb9\xb9"
};

static const char *grn_nfkc50_compose_prefix_cc81_table_c6[] = {
  "\xe1\xbb\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, "\xe1\xbb\xa9"
};

static const char *grn_nfkc50_compose_prefix_cc81_table_ce[] = {
  "\xce\x86", NULL, NULL, NULL, "\xce\x88", NULL, "\xce\x89", NULL,
  "\xce\x8a", NULL, NULL, NULL, NULL, NULL, "\xce\x8c", NULL,
  NULL, NULL, NULL, NULL, "\xce\x8e", NULL, NULL, NULL,
  "\xce\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xce\xac", NULL, NULL, NULL, "\xce\xad", NULL, "\xce\xae", NULL,
  "\xce\xaf", NULL, NULL, NULL, NULL, NULL, "\xcf\x8c"
};

static const char *grn_nfkc50_compose_prefix_cc81_table_cf[] = {
  "\xcf\x8d", NULL, NULL, NULL, "\xcf\x8e", "\xce\x90", "\xce\xb0"
};

static const char *grn_nfkc50_compose_prefix_cc81_table_d0[] = {
  "\xd0\x83", NULL, NULL, NULL, NULL, NULL, NULL, "\xd0\x8c",
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xd1\x93", NULL, NULL, NULL, NULL, NULL, NULL, "\xd1\x9c"
};

static const char *grn_nfkc50_compose_prefix_cc81_table_e1bc[] = {
  "\xe1\xbc\x84", "\xe1\xbc\x85", NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbc\x8c", "\xe1\xbc\x8d", NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbc\x94", "\xe1\xbc\x95", NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbc\x9c", "\xe1\xbc\x9d", NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbc\xa4", "\xe1\xbc\xa5", NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbc\xac", "\xe1\xbc\xad", NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbc\xb4", "\xe1\xbc\xb5", NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbc\xbc", "\xe1\xbc\xbd"
};

static const char *grn_nfkc50_compose_prefix_cc81_table_e1bd[] = {
  "\xe1\xbd\x84", "\xe1\xbd\x85", NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbd\x8c", "\xe1\xbd\x8d", NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbd\x94", "\xe1\xbd\x95", NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, "\xe1\xbd\x9d", NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbd\xa4", "\xe1\xbd\xa5", NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbd\xac", "\xe1\xbd\xad"
};

static inline const char *
grn_nfkc50_compose_prefix_cc81(const unsigned char *utf8)
{
  if (utf8[0] < 0x80) {
    if (utf8[0] >= 0x61 &&
        utf8[0] <= 0x7a) {
      return grn_nfkc50_compose_prefix_cc81_table_[utf8[0] - 0x61];
    } else {
      return NULL;
    }
  } else {
    switch (utf8[0]) {
    case 0xc3 :
      if (utf8[1] >= 0x86 &&
          utf8[1] <= 0xbc) {
        return grn_nfkc50_compose_prefix_cc81_table_c3[utf8[1] - 0x86];
      }
      break;
    case 0xc4 :
      if (utf8[1] >= 0x83 &&
          utf8[1] <= 0x93) {
        return grn_nfkc50_compose_prefix_cc81_table_c4[utf8[1] - 0x83];
      }
      break;
    case 0xc5 :
      if (utf8[1] >= 0x8d &&
          utf8[1] <= 0xa9) {
        return grn_nfkc50_compose_prefix_cc81_table_c5[utf8[1] - 0x8d];
      }
      break;
    case 0xc6 :
      if (utf8[1] >= 0xa1 &&
          utf8[1] <= 0xb0) {
        return grn_nfkc50_compose_prefix_cc81_table_c6[utf8[1] - 0xa1];
      }
      break;
    case 0xce :
      if (utf8[1] >= 0x91 &&
          utf8[1] <= 0xbf) {
        return grn_nfkc50_compose_prefix_cc81_table_ce[utf8[1] - 0x91];
      }
      break;
    case 0xcf :
      if (utf8[1] >= 0x85 &&
          utf8[1] <= 0x8b) {
        return grn_nfkc50_compose_prefix_cc81_table_cf[utf8[1] - 0x85];
      }
      break;
    case 0xd0 :
      if (utf8[1] >= 0x93 &&
          utf8[1] <= 0xba) {
        return grn_nfkc50_compose_prefix_cc81_table_d0[utf8[1] - 0x93];
      }
      break;
    case 0xe1 :
      switch (utf8[1]) {
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb9) {
          return grn_nfkc50_compose_prefix_cc81_table_e1bc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xa9) {
          return grn_nfkc50_compose_prefix_cc81_table_e1bd[utf8[2] - 0x80];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_cc82_table_[] = {
  "\xc3\xa2", NULL, "\xc4\x89", NULL, "\xc3\xaa", NULL, "\xc4\x9d", "\xc4\xa5",
  "\xc3\xae", "\xc4\xb5", NULL, NULL, NULL, NULL, "\xc3\xb4", NULL,
  NULL, NULL, "\xc5\x9d", NULL, "\xc3\xbb", NULL, "\xc5\xb5", NULL,
  "\xc5\xb7", "\xe1\xba\x91"
};

static const char *grn_nfkc50_compose_prefix_cc82_table_e1ba[] = {
  "\xe1\xba\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbb\x87"
};

static inline const char *
grn_nfkc50_compose_prefix_cc82(const unsigned char *utf8)
{
  if (utf8[0] < 0x80) {
    if (utf8[0] >= 0x61 &&
        utf8[0] <= 0x7a) {
      return grn_nfkc50_compose_prefix_cc82_table_[utf8[0] - 0x61];
    } else {
      return NULL;
    }
  } else {
    switch (utf8[0]) {
    case 0xe1 :
      switch (utf8[1]) {
      case 0xba :
        if (utf8[2] >= 0xa1 &&
            utf8[2] <= 0xb9) {
          return grn_nfkc50_compose_prefix_cc82_table_e1ba[utf8[2] - 0xa1];
        }
        break;
      case 0xbb :
        if (utf8[2] == 0x8d) {
          return "\xe1\xbb\x99";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_cc83_table_[] = {
  "\xc3\xa3", NULL, NULL, NULL, "\xe1\xba\xbd", NULL, NULL, NULL,
  "\xc4\xa9", NULL, NULL, NULL, NULL, "\xc3\xb1", "\xc3\xb5", NULL,
  NULL, NULL, NULL, NULL, "\xc5\xa9", "\xe1\xb9\xbd", NULL, NULL,
  "\xe1\xbb\xb9"
};

static const char *grn_nfkc50_compose_prefix_cc83_table_c3[] = {
  "\xe1\xba\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbb\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, "\xe1\xbb\x97"
};

static const char *grn_nfkc50_compose_prefix_cc83_table_c6[] = {
  "\xe1\xbb\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, "\xe1\xbb\xaf"
};

static inline const char *
grn_nfkc50_compose_prefix_cc83(const unsigned char *utf8)
{
  if (utf8[0] < 0x80) {
    if (utf8[0] >= 0x61 &&
        utf8[0] <= 0x79) {
      return grn_nfkc50_compose_prefix_cc83_table_[utf8[0] - 0x61];
    } else {
      return NULL;
    }
  } else {
    switch (utf8[0]) {
    case 0xc3 :
      if (utf8[1] >= 0xa2 &&
          utf8[1] <= 0xb4) {
        return grn_nfkc50_compose_prefix_cc83_table_c3[utf8[1] - 0xa2];
      }
      break;
    case 0xc4 :
      if (utf8[1] == 0x83) {
        return "\xe1\xba\xb5";
      }
      break;
    case 0xc6 :
      if (utf8[1] >= 0xa1 &&
          utf8[1] <= 0xb0) {
        return grn_nfkc50_compose_prefix_cc83_table_c6[utf8[1] - 0xa1];
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_cc88_table_[] = {
  "\xc3\xa4", NULL, NULL, NULL, "\xc3\xab", NULL, NULL, "\xe1\xb8\xa7",
  "\xc3\xaf", NULL, NULL, NULL, NULL, NULL, "\xc3\xb6", NULL,
  NULL, NULL, NULL, "\xe1\xba\x97", "\xc3\xbc", NULL, "\xe1\xba\x85", "\xe1\xba\x8d",
  "\xc3\xbf"
};

static const char *grn_nfkc50_compose_prefix_cc88_table_ce[] = {
  "\xce\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xce\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xcf\x8a"
};

static const char *grn_nfkc50_compose_prefix_cc88_table_d0[] = {
  "\xd0\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, "\xd3\x92", NULL, NULL, NULL, NULL, "\xd0\x81",
  "\xd3\x9c", "\xd3\x9e", "\xd3\xa4", NULL, NULL, NULL, NULL, NULL,
  "\xd3\xa6", NULL, NULL, NULL, NULL, "\xd3\xb0", NULL, NULL,
  NULL, "\xd3\xb4", NULL, NULL, NULL, "\xd3\xb8", NULL, "\xd3\xac",
  NULL, NULL, "\xd3\x93", NULL, NULL, NULL, NULL, "\xd1\x91",
  "\xd3\x9d", "\xd3\x9f", "\xd3\xa5", NULL, NULL, NULL, NULL, NULL,
  "\xd3\xa7"
};

static const char *grn_nfkc50_compose_prefix_cc88_table_d1[] = {
  "\xd3\xb1", NULL, NULL, NULL, "\xd3\xb5", NULL, NULL, NULL,
  "\xd3\xb9", NULL, "\xd3\xad", NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, "\xd1\x97"
};

static const char *grn_nfkc50_compose_prefix_cc88_table_d3[] = {
  "\xd3\x9a", "\xd3\x9b", NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xd3\xaa", "\xd3\xab"
};

static inline const char *
grn_nfkc50_compose_prefix_cc88(const unsigned char *utf8)
{
  if (utf8[0] < 0x80) {
    if (utf8[0] >= 0x61 &&
        utf8[0] <= 0x79) {
      return grn_nfkc50_compose_prefix_cc88_table_[utf8[0] - 0x61];
    } else {
      return NULL;
    }
  } else {
    switch (utf8[0]) {
    case 0xc3 :
      if (utf8[1] == 0xb5) {
        return "\xe1\xb9\x8f";
      }
      break;
    case 0xc5 :
      if (utf8[1] == 0xab) {
        return "\xe1\xb9\xbb";
      }
      break;
    case 0xce :
      if (utf8[1] >= 0x99 &&
          utf8[1] <= 0xb9) {
        return grn_nfkc50_compose_prefix_cc88_table_ce[utf8[1] - 0x99];
      }
      break;
    case 0xcf :
      if (utf8[1] == 0x85) {
        return "\xcf\x8b";
      }
      break;
    case 0xd0 :
      if (utf8[1] >= 0x86 &&
          utf8[1] <= 0xbe) {
        return grn_nfkc50_compose_prefix_cc88_table_d0[utf8[1] - 0x86];
      }
      break;
    case 0xd1 :
      if (utf8[1] >= 0x83 &&
          utf8[1] <= 0x96) {
        return grn_nfkc50_compose_prefix_cc88_table_d1[utf8[1] - 0x83];
      }
      break;
    case 0xd3 :
      if (utf8[1] >= 0x98 &&
          utf8[1] <= 0xa9) {
        return grn_nfkc50_compose_prefix_cc88_table_d3[utf8[1] - 0x98];
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_cc8a_table_[] = {
  "\xc3\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xc5\xaf", NULL, "\xe1\xba\x98", NULL,
  "\xe1\xba\x99"
};

static inline const char *
grn_nfkc50_compose_prefix_cc8a(const unsigned char *utf8)
{
  if (utf8[0] < 0x80) {
    if (utf8[0] >= 0x61 &&
        utf8[0] <= 0x79) {
      return grn_nfkc50_compose_prefix_cc8a_table_[utf8[0] - 0x61];
    } else {
      return NULL;
    }
  } else {
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_cca7_table_[] = {
  "\xc3\xa7", "\xe1\xb8\x91", "\xc8\xa9", NULL, "\xc4\xa3", "\xe1\xb8\xa9", NULL, NULL,
  "\xc4\xb7", "\xc4\xbc", NULL, "\xc5\x86", NULL, NULL, NULL, "\xc5\x97",
  "\xc5\x9f", "\xc5\xa3"
};

static inline const char *
grn_nfkc50_compose_prefix_cca7(const unsigned char *utf8)
{
  if (utf8[0] < 0x80) {
    if (utf8[0] >= 0x63 &&
        utf8[0] <= 0x74) {
      return grn_nfkc50_compose_prefix_cca7_table_[utf8[0] - 0x63];
    } else {
      return NULL;
    }
  } else {
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_cc84_table_[] = {
  "\xc4\x81", NULL, NULL, NULL, "\xc4\x93", NULL, "\xe1\xb8\xa1", NULL,
  "\xc4\xab", NULL, NULL, NULL, NULL, NULL, "\xc5\x8d", NULL,
  NULL, NULL, NULL, NULL, "\xc5\xab", NULL, NULL, NULL,
  "\xc8\xb3"
};

static const char *grn_nfkc50_compose_prefix_cc84_table_c3[] = {
  "\xc7\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, "\xc7\x9f", NULL,
  "\xc7\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, "\xc8\xad",
  "\xc8\xab", NULL, NULL, NULL, NULL, NULL, "\xc7\x96"
};

static const char *grn_nfkc50_compose_prefix_cc84_table_c8[] = {
  "\xc7\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xc8\xb1"
};

static const char *grn_nfkc50_compose_prefix_cc84_table_ce[] = {
  "\xe1\xbe\xb9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbf\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xe1\xbf\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbe\xb1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbf\x91"
};

static const char *grn_nfkc50_compose_prefix_cc84_table_d0[] = {
  "\xd3\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, "\xd3\xae", NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xd3\xa3"
};

static inline const char *
grn_nfkc50_compose_prefix_cc84(const unsigned char *utf8)
{
  if (utf8[0] < 0x80) {
    if (utf8[0] >= 0x61 &&
        utf8[0] <= 0x79) {
      return grn_nfkc50_compose_prefix_cc84_table_[utf8[0] - 0x61];
    } else {
      return NULL;
    }
  } else {
    switch (utf8[0]) {
    case 0xc3 :
      if (utf8[1] >= 0x86 &&
          utf8[1] <= 0xbc) {
        return grn_nfkc50_compose_prefix_cc84_table_c3[utf8[1] - 0x86];
      }
      break;
    case 0xc7 :
      if (utf8[1] == 0xab) {
        return "\xc7\xad";
      }
      break;
    case 0xc8 :
      if (utf8[1] >= 0xa7 &&
          utf8[1] <= 0xaf) {
        return grn_nfkc50_compose_prefix_cc84_table_c8[utf8[1] - 0xa7];
      }
      break;
    case 0xce :
      if (utf8[1] >= 0x91 &&
          utf8[1] <= 0xb9) {
        return grn_nfkc50_compose_prefix_cc84_table_ce[utf8[1] - 0x91];
      }
      break;
    case 0xcf :
      if (utf8[1] == 0x85) {
        return "\xe1\xbf\xa1";
      }
      break;
    case 0xd0 :
      if (utf8[1] >= 0x98 &&
          utf8[1] <= 0xb8) {
        return grn_nfkc50_compose_prefix_cc84_table_d0[utf8[1] - 0x98];
      }
      break;
    case 0xd1 :
      if (utf8[1] == 0x83) {
        return "\xd3\xaf";
      }
      break;
    case 0xe1 :
      switch (utf8[1]) {
      case 0xb8 :
        if (utf8[2] == 0xb7) {
          return "\xe1\xb8\xb9";
        }
        break;
      case 0xb9 :
        if (utf8[2] == 0x9b) {
          return "\xe1\xb9\x9d";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_cc86_table_[] = {
  "\xc4\x83", NULL, NULL, NULL, "\xc4\x95", NULL, "\xc4\x9f", NULL,
  "\xc4\xad", NULL, NULL, NULL, NULL, NULL, "\xc5\x8f", NULL,
  NULL, NULL, NULL, NULL, "\xc5\xad"
};

static const char *grn_nfkc50_compose_prefix_cc86_table_ce[] = {
  "\xe1\xbe\xb8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbf\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xe1\xbf\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbe\xb0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbf\x90"
};

static const char *grn_nfkc50_compose_prefix_cc86_table_d0[] = {
  "\xd3\x90", NULL, NULL, NULL, NULL, "\xd3\x96", "\xd3\x81", NULL,
  "\xd0\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, "\xd0\x8e", NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xd3\x91", NULL, NULL, NULL, NULL, "\xd3\x97", "\xd3\x82", NULL,
  "\xd0\xb9"
};

static inline const char *
grn_nfkc50_compose_prefix_cc86(const unsigned char *utf8)
{
  if (utf8[0] < 0x80) {
    if (utf8[0] >= 0x61 &&
        utf8[0] <= 0x75) {
      return grn_nfkc50_compose_prefix_cc86_table_[utf8[0] - 0x61];
    } else {
      return NULL;
    }
  } else {
    switch (utf8[0]) {
    case 0xc8 :
      if (utf8[1] == 0xa9) {
        return "\xe1\xb8\x9d";
      }
      break;
    case 0xce :
      if (utf8[1] >= 0x91 &&
          utf8[1] <= 0xb9) {
        return grn_nfkc50_compose_prefix_cc86_table_ce[utf8[1] - 0x91];
      }
      break;
    case 0xcf :
      if (utf8[1] == 0x85) {
        return "\xe1\xbf\xa0";
      }
      break;
    case 0xd0 :
      if (utf8[1] >= 0x90 &&
          utf8[1] <= 0xb8) {
        return grn_nfkc50_compose_prefix_cc86_table_d0[utf8[1] - 0x90];
      }
      break;
    case 0xd1 :
      if (utf8[1] == 0x83) {
        return "\xd1\x9e";
      }
      break;
    case 0xe1 :
      switch (utf8[1]) {
      case 0xba :
        if (utf8[2] == 0xa1) {
          return "\xe1\xba\xb7";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_cca8_table_[] = {
  "\xc4\x85", NULL, NULL, NULL, "\xc4\x99", NULL, NULL, NULL,
  "\xc4\xaf", NULL, NULL, NULL, NULL, NULL, "\xc7\xab", NULL,
  NULL, NULL, NULL, NULL, "\xc5\xb3"
};

static inline const char *
grn_nfkc50_compose_prefix_cca8(const unsigned char *utf8)
{
  if (utf8[0] < 0x80) {
    if (utf8[0] >= 0x61 &&
        utf8[0] <= 0x75) {
      return grn_nfkc50_compose_prefix_cca8_table_[utf8[0] - 0x61];
    } else {
      return NULL;
    }
  } else {
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_cc87_table_[] = {
  "\xc8\xa7", "\xe1\xb8\x83", "\xc4\x8b", "\xe1\xb8\x8b", "\xc4\x97", "\xe1\xb8\x9f", "\xc4\xa1", "\xe1\xb8\xa3",
  NULL, NULL, NULL, NULL, "\xe1\xb9\x81", "\xe1\xb9\x85", "\xc8\xaf", "\xe1\xb9\x97",
  NULL, "\xe1\xb9\x99", "\xe1\xb9\xa1", "\xe1\xb9\xab", NULL, NULL, "\xe1\xba\x87", "\xe1\xba\x8b",
  "\xe1\xba\x8f", "\xc5\xbc"
};

static const char *grn_nfkc50_compose_prefix_cc87_table_c5[] = {
  "\xe1\xb9\xa5", NULL, NULL, NULL, NULL, NULL, "\xe1\xb9\xa7"
};

static inline const char *
grn_nfkc50_compose_prefix_cc87(const unsigned char *utf8)
{
  if (utf8[0] < 0x80) {
    if (utf8[0] >= 0x61 &&
        utf8[0] <= 0x7a) {
      return grn_nfkc50_compose_prefix_cc87_table_[utf8[0] - 0x61];
    } else {
      return NULL;
    }
  } else {
    switch (utf8[0]) {
    case 0xc5 :
      if (utf8[1] >= 0x9b &&
          utf8[1] <= 0xa1) {
        return grn_nfkc50_compose_prefix_cc87_table_c5[utf8[1] - 0x9b];
      }
      break;
    case 0xe1 :
      switch (utf8[1]) {
      case 0xb9 :
        if (utf8[2] == 0xa3) {
          return "\xe1\xb9\xa9";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_cc8c_table_[] = {
  "\xc7\x8e", NULL, "\xc4\x8d", "\xc4\x8f", "\xc4\x9b", NULL, "\xc7\xa7", "\xc8\x9f",
  "\xc7\x90", "\xc7\xb0", "\xc7\xa9", "\xc4\xbe", NULL, "\xc5\x88", "\xc7\x92", NULL,
  NULL, "\xc5\x99", "\xc5\xa1", "\xc5\xa5", "\xc7\x94", NULL, NULL, NULL,
  NULL, "\xc5\xbe"
};

static inline const char *
grn_nfkc50_compose_prefix_cc8c(const unsigned char *utf8)
{
  if (utf8[0] < 0x80) {
    if (utf8[0] >= 0x61 &&
        utf8[0] <= 0x7a) {
      return grn_nfkc50_compose_prefix_cc8c_table_[utf8[0] - 0x61];
    } else {
      return NULL;
    }
  } else {
    switch (utf8[0]) {
    case 0xc3 :
      if (utf8[1] == 0xbc) {
        return "\xc7\x9a";
      }
      break;
    case 0xc6 :
      if (utf8[1] == 0xb7) {
        return "\xc7\xae";
      }
      break;
    case 0xca :
      if (utf8[1] == 0x92) {
        return "\xc7\xaf";
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_cc8b_table_[] = {
  "\xc5\x91", NULL, NULL, NULL, NULL, NULL, "\xc5\xb1"
};

static inline const char *
grn_nfkc50_compose_prefix_cc8b(const unsigned char *utf8)
{
  if (utf8[0] < 0x80) {
    if (utf8[0] >= 0x6f &&
        utf8[0] <= 0x75) {
      return grn_nfkc50_compose_prefix_cc8b_table_[utf8[0] - 0x6f];
    } else {
      return NULL;
    }
  } else {
    switch (utf8[0]) {
    case 0xd0 :
      if (utf8[1] == 0xa3) {
        return "\xd3\xb2";
      }
      break;
    case 0xd1 :
      if (utf8[1] == 0x83) {
        return "\xd3\xb3";
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_cc9b_table_[] = {
  "\xc6\xa1", NULL, NULL, NULL, NULL, NULL, "\xc6\xb0"
};

static inline const char *
grn_nfkc50_compose_prefix_cc9b(const unsigned char *utf8)
{
  if (utf8[0] < 0x80) {
    if (utf8[0] >= 0x6f &&
        utf8[0] <= 0x75) {
      return grn_nfkc50_compose_prefix_cc9b_table_[utf8[0] - 0x6f];
    } else {
      return NULL;
    }
  } else {
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_cc8f_table_[] = {
  "\xc8\x81", NULL, NULL, NULL, "\xc8\x85", NULL, NULL, NULL,
  "\xc8\x89", NULL, NULL, NULL, NULL, NULL, "\xc8\x8d", NULL,
  NULL, "\xc8\x91", NULL, NULL, "\xc8\x95"
};

static const char *grn_nfkc50_compose_prefix_cc8f_table_d1[] = {
  "\xd1\xb6", "\xd1\xb7"
};

static inline const char *
grn_nfkc50_compose_prefix_cc8f(const unsigned char *utf8)
{
  if (utf8[0] < 0x80) {
    if (utf8[0] >= 0x61 &&
        utf8[0] <= 0x75) {
      return grn_nfkc50_compose_prefix_cc8f_table_[utf8[0] - 0x61];
    } else {
      return NULL;
    }
  } else {
    switch (utf8[0]) {
    case 0xd1 :
      if (utf8[1] >= 0xb4 &&
          utf8[1] <= 0xb5) {
        return grn_nfkc50_compose_prefix_cc8f_table_d1[utf8[1] - 0xb4];
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_cc91_table_[] = {
  "\xc8\x83", NULL, NULL, NULL, "\xc8\x87", NULL, NULL, NULL,
  "\xc8\x8b", NULL, NULL, NULL, NULL, NULL, "\xc8\x8f", NULL,
  NULL, "\xc8\x93", NULL, NULL, "\xc8\x97"
};

static inline const char *
grn_nfkc50_compose_prefix_cc91(const unsigned char *utf8)
{
  if (utf8[0] < 0x80) {
    if (utf8[0] >= 0x61 &&
        utf8[0] <= 0x75) {
      return grn_nfkc50_compose_prefix_cc91_table_[utf8[0] - 0x61];
    } else {
      return NULL;
    }
  } else {
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_cca6_table_[] = {
  "\xc8\x99", "\xc8\x9b"
};

static inline const char *
grn_nfkc50_compose_prefix_cca6(const unsigned char *utf8)
{
  if (utf8[0] < 0x80) {
    if (utf8[0] >= 0x73 &&
        utf8[0] <= 0x74) {
      return grn_nfkc50_compose_prefix_cca6_table_[utf8[0] - 0x73];
    } else {
      return NULL;
    }
  } else {
  }

  return NULL;
}

static inline const char *
grn_nfkc50_compose_prefix_d993(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xd8 :
      if (utf8[1] == 0xa7) {
        return "\xd8\xa2";
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_d994_table_d9[] = {
  "\xd8\xa4", NULL, "\xd8\xa6"
};

static const char *grn_nfkc50_compose_prefix_d994_table_db[] = {
  "\xdb\x82", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, "\xdb\x93", NULL, NULL, "\xdb\x80"
};

static inline const char *
grn_nfkc50_compose_prefix_d994(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xd8 :
      if (utf8[1] == 0xa7) {
        return "\xd8\xa3";
      }
      break;
    case 0xd9 :
      if (utf8[1] >= 0x88 &&
          utf8[1] <= 0x8a) {
        return grn_nfkc50_compose_prefix_d994_table_d9[utf8[1] - 0x88];
      }
      break;
    case 0xdb :
      if (utf8[1] >= 0x81 &&
          utf8[1] <= 0x95) {
        return grn_nfkc50_compose_prefix_d994_table_db[utf8[1] - 0x81];
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static inline const char *
grn_nfkc50_compose_prefix_d995(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xd8 :
      if (utf8[1] == 0xa7) {
        return "\xd8\xa5";
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_e0a4bc_table_e0a4[] = {
  "\xe0\xa4\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe0\xa4\xb1", NULL, NULL, "\xe0\xa4\xb4"
};

static inline const char *
grn_nfkc50_compose_prefix_e0a4bc(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe0 :
      switch (utf8[1]) {
      case 0xa4 :
        if (utf8[2] >= 0xa8 &&
            utf8[2] <= 0xb3) {
          return grn_nfkc50_compose_prefix_e0a4bc_table_e0a4[utf8[2] - 0xa8];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static inline const char *
grn_nfkc50_compose_prefix_e0a6be(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe0 :
      switch (utf8[1]) {
      case 0xa7 :
        if (utf8[2] == 0x87) {
          return "\xe0\xa7\x8b";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static inline const char *
grn_nfkc50_compose_prefix_e0a797(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe0 :
      switch (utf8[1]) {
      case 0xa7 :
        if (utf8[2] == 0x87) {
          return "\xe0\xa7\x8c";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static inline const char *
grn_nfkc50_compose_prefix_e0ad96(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe0 :
      switch (utf8[1]) {
      case 0xad :
        if (utf8[2] == 0x87) {
          return "\xe0\xad\x88";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static inline const char *
grn_nfkc50_compose_prefix_e0acbe(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe0 :
      switch (utf8[1]) {
      case 0xad :
        if (utf8[2] == 0x87) {
          return "\xe0\xad\x8b";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static inline const char *
grn_nfkc50_compose_prefix_e0ad97(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe0 :
      switch (utf8[1]) {
      case 0xad :
        if (utf8[2] == 0x87) {
          return "\xe0\xad\x8c";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static inline const char *
grn_nfkc50_compose_prefix_e0af97(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe0 :
      switch (utf8[1]) {
      case 0xae :
        if (utf8[2] == 0x92) {
          return "\xe0\xae\x94";
        }
        break;
      case 0xaf :
        if (utf8[2] == 0x86) {
          return "\xe0\xaf\x8c";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_e0aebe_table_e0af[] = {
  "\xe0\xaf\x8a", "\xe0\xaf\x8b"
};

static inline const char *
grn_nfkc50_compose_prefix_e0aebe(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe0 :
      switch (utf8[1]) {
      case 0xaf :
        if (utf8[2] >= 0x86 &&
            utf8[2] <= 0x87) {
          return grn_nfkc50_compose_prefix_e0aebe_table_e0af[utf8[2] - 0x86];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static inline const char *
grn_nfkc50_compose_prefix_e0b196(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe0 :
      switch (utf8[1]) {
      case 0xb1 :
        if (utf8[2] == 0x86) {
          return "\xe0\xb1\x88";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_e0b395_table_e0b3[] = {
  "\xe0\xb3\x87", NULL, NULL, NULL, "\xe0\xb3\x8b"
};

static inline const char *
grn_nfkc50_compose_prefix_e0b395(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe0 :
      switch (utf8[1]) {
      case 0xb2 :
        if (utf8[2] == 0xbf) {
          return "\xe0\xb3\x80";
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x86 &&
            utf8[2] <= 0x8a) {
          return grn_nfkc50_compose_prefix_e0b395_table_e0b3[utf8[2] - 0x86];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static inline const char *
grn_nfkc50_compose_prefix_e0b396(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe0 :
      switch (utf8[1]) {
      case 0xb3 :
        if (utf8[2] == 0x86) {
          return "\xe0\xb3\x88";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static inline const char *
grn_nfkc50_compose_prefix_e0b382(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe0 :
      switch (utf8[1]) {
      case 0xb3 :
        if (utf8[2] == 0x86) {
          return "\xe0\xb3\x8a";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_e0b4be_table_e0b5[] = {
  "\xe0\xb5\x8a", "\xe0\xb5\x8b"
};

static inline const char *
grn_nfkc50_compose_prefix_e0b4be(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe0 :
      switch (utf8[1]) {
      case 0xb5 :
        if (utf8[2] >= 0x86 &&
            utf8[2] <= 0x87) {
          return grn_nfkc50_compose_prefix_e0b4be_table_e0b5[utf8[2] - 0x86];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static inline const char *
grn_nfkc50_compose_prefix_e0b597(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe0 :
      switch (utf8[1]) {
      case 0xb5 :
        if (utf8[2] == 0x86) {
          return "\xe0\xb5\x8c";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_e0b78a_table_e0b7[] = {
  "\xe0\xb7\x9a", NULL, NULL, "\xe0\xb7\x9d"
};

static inline const char *
grn_nfkc50_compose_prefix_e0b78a(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe0 :
      switch (utf8[1]) {
      case 0xb7 :
        if (utf8[2] >= 0x99 &&
            utf8[2] <= 0x9c) {
          return grn_nfkc50_compose_prefix_e0b78a_table_e0b7[utf8[2] - 0x99];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static inline const char *
grn_nfkc50_compose_prefix_e0b78f(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe0 :
      switch (utf8[1]) {
      case 0xb7 :
        if (utf8[2] == 0x99) {
          return "\xe0\xb7\x9c";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static inline const char *
grn_nfkc50_compose_prefix_e0b79f(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe0 :
      switch (utf8[1]) {
      case 0xb7 :
        if (utf8[2] == 0x99) {
          return "\xe0\xb7\x9e";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static inline const char *
grn_nfkc50_compose_prefix_e180ae(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe1 :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] == 0xa5) {
          return "\xe1\x80\xa6";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_e1acb5_table_e1ac[] = {
  "\xe1\xac\x86", NULL, "\xe1\xac\x88", NULL, "\xe1\xac\x8a", NULL, "\xe1\xac\x8c", NULL,
  "\xe1\xac\x8e", NULL, NULL, NULL, "\xe1\xac\x92", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, "\xe1\xac\xbb", NULL, "\xe1\xac\xbd",
  NULL, "\xe1\xad\x80", "\xe1\xad\x81"
};

static inline const char *
grn_nfkc50_compose_prefix_e1acb5(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe1 :
      switch (utf8[1]) {
      case 0xac :
        if (utf8[2] >= 0x85 &&
            utf8[2] <= 0xbf) {
          return grn_nfkc50_compose_prefix_e1acb5_table_e1ac[utf8[2] - 0x85];
        }
        break;
      case 0xad :
        if (utf8[2] == 0x82) {
          return "\xe1\xad\x83";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static inline const char *
grn_nfkc50_compose_prefix_cca5(const unsigned char *utf8)
{
  if (utf8[0] < 0x80) {
    if (utf8[0] == 0x61) {
      return "\xe1\xb8\x81";
    } else {
      return NULL;
    }
  } else {
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_cca3_table_[] = {
  "\xe1\xba\xa1", "\xe1\xb8\x85", NULL, "\xe1\xb8\x8d", "\xe1\xba\xb9", NULL, NULL, "\xe1\xb8\xa5",
  "\xe1\xbb\x8b", NULL, "\xe1\xb8\xb3", "\xe1\xb8\xb7", "\xe1\xb9\x83", "\xe1\xb9\x87", "\xe1\xbb\x8d", NULL,
  NULL, "\xe1\xb9\x9b", "\xe1\xb9\xa3", "\xe1\xb9\xad", "\xe1\xbb\xa5", "\xe1\xb9\xbf", "\xe1\xba\x89", NULL,
  "\xe1\xbb\xb5", "\xe1\xba\x93"
};

static const char *grn_nfkc50_compose_prefix_cca3_table_c6[] = {
  "\xe1\xbb\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, "\xe1\xbb\xb1"
};

static inline const char *
grn_nfkc50_compose_prefix_cca3(const unsigned char *utf8)
{
  if (utf8[0] < 0x80) {
    if (utf8[0] >= 0x61 &&
        utf8[0] <= 0x7a) {
      return grn_nfkc50_compose_prefix_cca3_table_[utf8[0] - 0x61];
    } else {
      return NULL;
    }
  } else {
    switch (utf8[0]) {
    case 0xc6 :
      if (utf8[1] >= 0xa1 &&
          utf8[1] <= 0xb0) {
        return grn_nfkc50_compose_prefix_cca3_table_c6[utf8[1] - 0xa1];
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_ccb1_table_[] = {
  "\xe1\xb8\x87", NULL, "\xe1\xb8\x8f", NULL, NULL, NULL, "\xe1\xba\x96", NULL,
  NULL, "\xe1\xb8\xb5", "\xe1\xb8\xbb", NULL, "\xe1\xb9\x89", NULL, NULL, NULL,
  "\xe1\xb9\x9f", NULL, "\xe1\xb9\xaf", NULL, NULL, NULL, NULL, NULL,
  "\xe1\xba\x95"
};

static inline const char *
grn_nfkc50_compose_prefix_ccb1(const unsigned char *utf8)
{
  if (utf8[0] < 0x80) {
    if (utf8[0] >= 0x62 &&
        utf8[0] <= 0x7a) {
      return grn_nfkc50_compose_prefix_ccb1_table_[utf8[0] - 0x62];
    } else {
      return NULL;
    }
  } else {
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_ccad_table_[] = {
  "\xe1\xb8\x93", "\xe1\xb8\x99", NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xb8\xbd", NULL, "\xe1\xb9\x8b", NULL, NULL, NULL, NULL, NULL,
  "\xe1\xb9\xb1", "\xe1\xb9\xb7"
};

static inline const char *
grn_nfkc50_compose_prefix_ccad(const unsigned char *utf8)
{
  if (utf8[0] < 0x80) {
    if (utf8[0] >= 0x64 &&
        utf8[0] <= 0x75) {
      return grn_nfkc50_compose_prefix_ccad_table_[utf8[0] - 0x64];
    } else {
      return NULL;
    }
  } else {
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_ccb0_table_[] = {
  "\xe1\xb8\x9b", NULL, NULL, NULL, "\xe1\xb8\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xb9\xb5"
};

static inline const char *
grn_nfkc50_compose_prefix_ccb0(const unsigned char *utf8)
{
  if (utf8[0] < 0x80) {
    if (utf8[0] >= 0x65 &&
        utf8[0] <= 0x75) {
      return grn_nfkc50_compose_prefix_ccb0_table_[utf8[0] - 0x65];
    } else {
      return NULL;
    }
  } else {
  }

  return NULL;
}

static inline const char *
grn_nfkc50_compose_prefix_ccae(const unsigned char *utf8)
{
  if (utf8[0] < 0x80) {
    if (utf8[0] == 0x68) {
      return "\xe1\xb8\xab";
    } else {
      return NULL;
    }
  } else {
  }

  return NULL;
}

static inline const char *
grn_nfkc50_compose_prefix_cca4(const unsigned char *utf8)
{
  if (utf8[0] < 0x80) {
    if (utf8[0] == 0x75) {
      return "\xe1\xb9\xb3";
    } else {
      return NULL;
    }
  } else {
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_cc89_table_[] = {
  "\xe1\xba\xa3", NULL, NULL, NULL, "\xe1\xba\xbb", NULL, NULL, NULL,
  "\xe1\xbb\x89", NULL, NULL, NULL, NULL, NULL, "\xe1\xbb\x8f", NULL,
  NULL, NULL, NULL, NULL, "\xe1\xbb\xa7", NULL, NULL, NULL,
  "\xe1\xbb\xb7"
};

static const char *grn_nfkc50_compose_prefix_cc89_table_c3[] = {
  "\xe1\xba\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbb\x83", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, "\xe1\xbb\x95"
};

static const char *grn_nfkc50_compose_prefix_cc89_table_c6[] = {
  "\xe1\xbb\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, "\xe1\xbb\xad"
};

static inline const char *
grn_nfkc50_compose_prefix_cc89(const unsigned char *utf8)
{
  if (utf8[0] < 0x80) {
    if (utf8[0] >= 0x61 &&
        utf8[0] <= 0x79) {
      return grn_nfkc50_compose_prefix_cc89_table_[utf8[0] - 0x61];
    } else {
      return NULL;
    }
  } else {
    switch (utf8[0]) {
    case 0xc3 :
      if (utf8[1] >= 0xa2 &&
          utf8[1] <= 0xb4) {
        return grn_nfkc50_compose_prefix_cc89_table_c3[utf8[1] - 0xa2];
      }
      break;
    case 0xc4 :
      if (utf8[1] == 0x83) {
        return "\xe1\xba\xb3";
      }
      break;
    case 0xc6 :
      if (utf8[1] >= 0xa1 &&
          utf8[1] <= 0xb0) {
        return grn_nfkc50_compose_prefix_cc89_table_c6[utf8[1] - 0xa1];
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_cc93_table_ce[] = {
  "\xe1\xbc\x88", NULL, NULL, NULL, "\xe1\xbc\x98", NULL, "\xe1\xbc\xa8", NULL,
  "\xe1\xbc\xb8", NULL, NULL, NULL, NULL, NULL, "\xe1\xbd\x88", NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbd\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbc\x80", NULL, NULL, NULL, "\xe1\xbc\x90", NULL, "\xe1\xbc\xa0", NULL,
  "\xe1\xbc\xb0", NULL, NULL, NULL, NULL, NULL, "\xe1\xbd\x80"
};

static const char *grn_nfkc50_compose_prefix_cc93_table_cf[] = {
  "\xe1\xbf\xa4", NULL, NULL, NULL, "\xe1\xbd\x90", NULL, NULL, NULL,
  "\xe1\xbd\xa0"
};

static inline const char *
grn_nfkc50_compose_prefix_cc93(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xce :
      if (utf8[1] >= 0x91 &&
          utf8[1] <= 0xbf) {
        return grn_nfkc50_compose_prefix_cc93_table_ce[utf8[1] - 0x91];
      }
      break;
    case 0xcf :
      if (utf8[1] >= 0x81 &&
          utf8[1] <= 0x89) {
        return grn_nfkc50_compose_prefix_cc93_table_cf[utf8[1] - 0x81];
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_cc94_table_ce[] = {
  "\xe1\xbc\x89", NULL, NULL, NULL, "\xe1\xbc\x99", NULL, "\xe1\xbc\xa9", NULL,
  "\xe1\xbc\xb9", NULL, NULL, NULL, NULL, NULL, "\xe1\xbd\x89", NULL,
  "\xe1\xbf\xac", NULL, NULL, NULL, "\xe1\xbd\x99", NULL, NULL, NULL,
  "\xe1\xbd\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbc\x81", NULL, NULL, NULL, "\xe1\xbc\x91", NULL, "\xe1\xbc\xa1", NULL,
  "\xe1\xbc\xb1", NULL, NULL, NULL, NULL, NULL, "\xe1\xbd\x81"
};

static const char *grn_nfkc50_compose_prefix_cc94_table_cf[] = {
  "\xe1\xbf\xa5", NULL, NULL, NULL, "\xe1\xbd\x91", NULL, NULL, NULL,
  "\xe1\xbd\xa1"
};

static inline const char *
grn_nfkc50_compose_prefix_cc94(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xce :
      if (utf8[1] >= 0x91 &&
          utf8[1] <= 0xbf) {
        return grn_nfkc50_compose_prefix_cc94_table_ce[utf8[1] - 0x91];
      }
      break;
    case 0xcf :
      if (utf8[1] >= 0x81 &&
          utf8[1] <= 0x89) {
        return grn_nfkc50_compose_prefix_cc94_table_cf[utf8[1] - 0x81];
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_cd82_table_ce[] = {
  "\xe1\xbe\xb6", NULL, NULL, NULL, NULL, NULL, "\xe1\xbf\x86", NULL,
  "\xe1\xbf\x96"
};

static const char *grn_nfkc50_compose_prefix_cd82_table_cf[] = {
  "\xe1\xbf\xa6", NULL, NULL, NULL, "\xe1\xbf\xb6", "\xe1\xbf\x97", "\xe1\xbf\xa7"
};

static const char *grn_nfkc50_compose_prefix_cd82_table_e1bc[] = {
  "\xe1\xbc\x86", "\xe1\xbc\x87", NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbc\x8e", "\xe1\xbc\x8f", NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbc\xa6", "\xe1\xbc\xa7", NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbc\xae", "\xe1\xbc\xaf", NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbc\xb6", "\xe1\xbc\xb7", NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbc\xbe", "\xe1\xbc\xbf"
};

static const char *grn_nfkc50_compose_prefix_cd82_table_e1bd[] = {
  "\xe1\xbd\x96", "\xe1\xbd\x97", NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, "\xe1\xbd\x9f", NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbd\xa6", "\xe1\xbd\xa7", NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbd\xae", "\xe1\xbd\xaf"
};

static inline const char *
grn_nfkc50_compose_prefix_cd82(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xce :
      if (utf8[1] >= 0xb1 &&
          utf8[1] <= 0xb9) {
        return grn_nfkc50_compose_prefix_cd82_table_ce[utf8[1] - 0xb1];
      }
      break;
    case 0xcf :
      if (utf8[1] >= 0x85 &&
          utf8[1] <= 0x8b) {
        return grn_nfkc50_compose_prefix_cd82_table_cf[utf8[1] - 0x85];
      }
      break;
    case 0xe1 :
      switch (utf8[1]) {
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb9) {
          return grn_nfkc50_compose_prefix_cd82_table_e1bc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xa9) {
          return grn_nfkc50_compose_prefix_cd82_table_e1bd[utf8[2] - 0x90];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_cd85_table_ce[] = {
  "\xe1\xbe\xbc", NULL, NULL, NULL, NULL, NULL, "\xe1\xbf\x8c", NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbf\xbc", NULL, NULL, "\xe1\xbe\xb4", NULL, "\xe1\xbf\x84", NULL, NULL,
  "\xe1\xbe\xb3", NULL, NULL, NULL, NULL, NULL, "\xe1\xbf\x83"
};

static const char *grn_nfkc50_compose_prefix_cd85_table_cf[] = {
  "\xe1\xbf\xb3", NULL, NULL, NULL, NULL, "\xe1\xbf\xb4"
};

static const char *grn_nfkc50_compose_prefix_cd85_table_e1bc[] = {
  "\xe1\xbe\x80", "\xe1\xbe\x81", "\xe1\xbe\x82", "\xe1\xbe\x83", "\xe1\xbe\x84", "\xe1\xbe\x85", "\xe1\xbe\x86", "\xe1\xbe\x87",
  "\xe1\xbe\x88", "\xe1\xbe\x89", "\xe1\xbe\x8a", "\xe1\xbe\x8b", "\xe1\xbe\x8c", "\xe1\xbe\x8d", "\xe1\xbe\x8e", "\xe1\xbe\x8f",
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbe\x90", "\xe1\xbe\x91", "\xe1\xbe\x92", "\xe1\xbe\x93", "\xe1\xbe\x94", "\xe1\xbe\x95", "\xe1\xbe\x96", "\xe1\xbe\x97",
  "\xe1\xbe\x98", "\xe1\xbe\x99", "\xe1\xbe\x9a", "\xe1\xbe\x9b", "\xe1\xbe\x9c", "\xe1\xbe\x9d", "\xe1\xbe\x9e", "\xe1\xbe\x9f"
};

static const char *grn_nfkc50_compose_prefix_cd85_table_e1bd[] = {
  "\xe1\xbe\xa0", "\xe1\xbe\xa1", "\xe1\xbe\xa2", "\xe1\xbe\xa3", "\xe1\xbe\xa4", "\xe1\xbe\xa5", "\xe1\xbe\xa6", "\xe1\xbe\xa7",
  "\xe1\xbe\xa8", "\xe1\xbe\xa9", "\xe1\xbe\xaa", "\xe1\xbe\xab", "\xe1\xbe\xac", "\xe1\xbe\xad", "\xe1\xbe\xae", "\xe1\xbe\xaf",
  "\xe1\xbe\xb2", NULL, NULL, NULL, "\xe1\xbf\x82", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xe1\xbf\xb2"
};

static const char *grn_nfkc50_compose_prefix_cd85_table_e1bf[] = {
  "\xe1\xbf\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbf\xb7"
};

static inline const char *
grn_nfkc50_compose_prefix_cd85(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xce :
      if (utf8[1] >= 0x91 &&
          utf8[1] <= 0xb7) {
        return grn_nfkc50_compose_prefix_cd85_table_ce[utf8[1] - 0x91];
      }
      break;
    case 0xcf :
      if (utf8[1] >= 0x89 &&
          utf8[1] <= 0x8e) {
        return grn_nfkc50_compose_prefix_cd85_table_cf[utf8[1] - 0x89];
      }
      break;
    case 0xe1 :
      switch (utf8[1]) {
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xaf) {
          return grn_nfkc50_compose_prefix_cd85_table_e1bc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0xa0 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_cd85_table_e1bd[utf8[2] - 0xa0];
        }
        break;
      case 0xbe :
        if (utf8[2] == 0xb6) {
          return "\xe1\xbe\xb7";
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x86 &&
            utf8[2] <= 0xb6) {
          return grn_nfkc50_compose_prefix_cd85_table_e1bf[utf8[2] - 0x86];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_ccb8_table_[] = {
  "\xe2\x89\xae", "\xe2\x89\xa0", "\xe2\x89\xaf"
};

static const char *grn_nfkc50_compose_prefix_ccb8_table_e286[] = {
  "\xe2\x86\x9a", NULL, "\xe2\x86\x9b", NULL, "\xe2\x86\xae"
};

static const char *grn_nfkc50_compose_prefix_ccb8_table_e287[] = {
  "\xe2\x87\x8d", NULL, "\xe2\x87\x8f", NULL, "\xe2\x87\x8e"
};

static const char *grn_nfkc50_compose_prefix_ccb8_table_e288[] = {
  "\xe2\x88\x84", NULL, NULL, NULL, NULL, "\xe2\x88\x89", NULL, NULL,
  "\xe2\x88\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe2\x88\xa4", NULL, "\xe2\x88\xa6", NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, "\xe2\x89\x81"
};

static const char *grn_nfkc50_compose_prefix_ccb8_table_e289[] = {
  "\xe2\x89\x84", NULL, "\xe2\x89\x87", NULL, NULL, "\xe2\x89\x89", NULL, NULL,
  NULL, NULL, "\xe2\x89\xad", NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, "\xe2\x89\xa2", NULL,
  NULL, "\xe2\x89\xb0", "\xe2\x89\xb1", NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, "\xe2\x89\xb4",
  "\xe2\x89\xb5", NULL, NULL, "\xe2\x89\xb8", "\xe2\x89\xb9", NULL, NULL, "\xe2\x8a\x80",
  "\xe2\x8a\x81", "\xe2\x8b\xa0", "\xe2\x8b\xa1"
};

static const char *grn_nfkc50_compose_prefix_ccb8_table_e28a[] = {
  "\xe2\x8a\x84", "\xe2\x8a\x85", NULL, NULL, "\xe2\x8a\x88", "\xe2\x8a\x89", NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, "\xe2\x8b\xa2",
  "\xe2\x8b\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe2\x8a\xac", NULL, NULL, NULL, NULL, NULL, "\xe2\x8a\xad", "\xe2\x8a\xae",
  NULL, "\xe2\x8a\xaf", NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe2\x8b\xaa", "\xe2\x8b\xab", "\xe2\x8b\xac", "\xe2\x8b\xad"
};

static inline const char *
grn_nfkc50_compose_prefix_ccb8(const unsigned char *utf8)
{
  if (utf8[0] < 0x80) {
    if (utf8[0] >= 0x3c &&
        utf8[0] <= 0x3e) {
      return grn_nfkc50_compose_prefix_ccb8_table_[utf8[0] - 0x3c];
    } else {
      return NULL;
    }
  } else {
    switch (utf8[0]) {
    case 0xe2 :
      switch (utf8[1]) {
      case 0x86 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0x94) {
          return grn_nfkc50_compose_prefix_ccb8_table_e286[utf8[2] - 0x90];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0x94) {
          return grn_nfkc50_compose_prefix_ccb8_table_e287[utf8[2] - 0x90];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x83 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_ccb8_table_e288[utf8[2] - 0x83];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x83 &&
            utf8[2] <= 0xbd) {
          return grn_nfkc50_compose_prefix_ccb8_table_e289[utf8[2] - 0x83];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x82 &&
            utf8[2] <= 0xb5) {
          return grn_nfkc50_compose_prefix_ccb8_table_e28a[utf8[2] - 0x82];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_e38299_table_e381[] = {
  "\xe3\x82\x94", NULL, NULL, NULL, NULL, "\xe3\x81\x8c", NULL, "\xe3\x81\x8e",
  NULL, "\xe3\x81\x90", NULL, "\xe3\x81\x92", NULL, "\xe3\x81\x94", NULL, "\xe3\x81\x96",
  NULL, "\xe3\x81\x98", NULL, "\xe3\x81\x9a", NULL, "\xe3\x81\x9c", NULL, "\xe3\x81\x9e",
  NULL, "\xe3\x81\xa0", NULL, "\xe3\x81\xa2", NULL, NULL, "\xe3\x81\xa5", NULL,
  "\xe3\x81\xa7", NULL, "\xe3\x81\xa9", NULL, NULL, NULL, NULL, NULL,
  NULL, "\xe3\x81\xb0", NULL, NULL, "\xe3\x81\xb3", NULL, NULL, "\xe3\x81\xb6",
  NULL, NULL, "\xe3\x81\xb9", NULL, NULL, "\xe3\x81\xbc"
};

static const char *grn_nfkc50_compose_prefix_e38299_table_e382[] = {
  "\xe3\x82\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, "\xe3\x83\xb4", NULL, NULL, NULL, NULL, "\xe3\x82\xac", NULL,
  "\xe3\x82\xae", NULL, "\xe3\x82\xb0", NULL, "\xe3\x82\xb2", NULL, "\xe3\x82\xb4", NULL,
  "\xe3\x82\xb6", NULL, "\xe3\x82\xb8", NULL, "\xe3\x82\xba", NULL, "\xe3\x82\xbc", NULL,
  "\xe3\x82\xbe", NULL, "\xe3\x83\x80"
};

static const char *grn_nfkc50_compose_prefix_e38299_table_e383[] = {
  "\xe3\x83\x82", NULL, NULL, "\xe3\x83\x85", NULL, "\xe3\x83\x87", NULL, "\xe3\x83\x89",
  NULL, NULL, NULL, NULL, NULL, NULL, "\xe3\x83\x90", NULL,
  NULL, "\xe3\x83\x93", NULL, NULL, "\xe3\x83\x96", NULL, NULL, "\xe3\x83\x99",
  NULL, NULL, "\xe3\x83\x9c", NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, "\xe3\x83\xb7", "\xe3\x83\xb8",
  "\xe3\x83\xb9", "\xe3\x83\xba", NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xe3\x83\xbe"
};

static inline const char *
grn_nfkc50_compose_prefix_e38299(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe3 :
      switch (utf8[1]) {
      case 0x81 :
        if (utf8[2] >= 0x86 &&
            utf8[2] <= 0xbb) {
          return grn_nfkc50_compose_prefix_e38299_table_e381[utf8[2] - 0x86];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x9d &&
            utf8[2] <= 0xbf) {
          return grn_nfkc50_compose_prefix_e38299_table_e382[utf8[2] - 0x9d];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x81 &&
            utf8[2] <= 0xbd) {
          return grn_nfkc50_compose_prefix_e38299_table_e383[utf8[2] - 0x81];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_e3829a_table_e381[] = {
  "\xe3\x81\xb1", NULL, NULL, "\xe3\x81\xb4", NULL, NULL, "\xe3\x81\xb7", NULL,
  NULL, "\xe3\x81\xba", NULL, NULL, "\xe3\x81\xbd"
};

static const char *grn_nfkc50_compose_prefix_e3829a_table_e383[] = {
  "\xe3\x83\x91", NULL, NULL, "\xe3\x83\x94", NULL, NULL, "\xe3\x83\x97", NULL,
  NULL, "\xe3\x83\x9a", NULL, NULL, "\xe3\x83\x9d"
};

static inline const char *
grn_nfkc50_compose_prefix_e3829a(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe3 :
      switch (utf8[1]) {
      case 0x81 :
        if (utf8[2] >= 0xaf &&
            utf8[2] <= 0xbb) {
          return grn_nfkc50_compose_prefix_e3829a_table_e381[utf8[2] - 0xaf];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x8f &&
            utf8[2] <= 0x9b) {
          return grn_nfkc50_compose_prefix_e3829a_table_e383[utf8[2] - 0x8f];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_e185a1_table_e184[] = {
  "\xea\xb0\x80", "\xea\xb9\x8c", "\xeb\x82\x98", "\xeb\x8b\xa4", "\xeb\x94\xb0", "\xeb\x9d\xbc", "\xeb\xa7\x88", "\xeb\xb0\x94",
  "\xeb\xb9\xa0", "\xec\x82\xac", "\xec\x8b\xb8", "\xec\x95\x84", "\xec\x9e\x90", "\xec\xa7\x9c", "\xec\xb0\xa8", "\xec\xb9\xb4",
  "\xed\x83\x80", "\xed\x8c\x8c", "\xed\x95\x98"
};

static inline const char *
grn_nfkc50_compose_prefix_e185a1(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe1 :
      switch (utf8[1]) {
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x92) {
          return grn_nfkc50_compose_prefix_e185a1_table_e184[utf8[2] - 0x80];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_e186a8_table_eab0[] = {
  "\xea\xb0\x81", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb0\x9d", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb0\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eab1[] = {
  "\xea\xb1\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb1\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eab2[] = {
  "\xea\xb2\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\xa9"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eab3[] = {
  "\xea\xb3\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb3\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eab4[] = {
  "\xea\xb4\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb4\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eab5[] = {
  "\xea\xb5\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\xad"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eab6[] = {
  "\xea\xb6\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\xa5"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eab7[] = {
  "\xea\xb7\x81", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb7\x9d", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb7\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eab8[] = {
  "\xea\xb8\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb8\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eab9[] = {
  "\xea\xb9\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\xa9"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eaba[] = {
  "\xea\xba\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xba\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eabb[] = {
  "\xea\xbb\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbb\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eabc[] = {
  "\xea\xbc\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\xad"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eabd[] = {
  "\xea\xbd\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\xa5"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eabe[] = {
  "\xea\xbe\x81", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbe\x9d", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbe\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eabf[] = {
  "\xea\xbf\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbf\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eb80[] = {
  "\xeb\x80\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\xa9"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eb81[] = {
  "\xeb\x81\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x81\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eb82[] = {
  "\xeb\x82\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x82\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eb83[] = {
  "\xeb\x83\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\xad"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eb84[] = {
  "\xeb\x84\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\xa5"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eb85[] = {
  "\xeb\x85\x81", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x85\x9d", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x85\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eb86[] = {
  "\xeb\x86\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x86\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eb87[] = {
  "\xeb\x87\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\xa9"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eb88[] = {
  "\xeb\x88\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x88\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eb89[] = {
  "\xeb\x89\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x89\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eb8a[] = {
  "\xeb\x8a\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\xad"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eb8b[] = {
  "\xeb\x8b\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\xa5"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eb8c[] = {
  "\xeb\x8c\x81", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8c\x9d", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8c\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eb8d[] = {
  "\xeb\x8d\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8d\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eb8e[] = {
  "\xeb\x8e\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\xa9"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eb8f[] = {
  "\xeb\x8f\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8f\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eb90[] = {
  "\xeb\x90\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x90\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eb91[] = {
  "\xeb\x91\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\xad"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eb92[] = {
  "\xeb\x92\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\xa5"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eb93[] = {
  "\xeb\x93\x81", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x93\x9d", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x93\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eb94[] = {
  "\xeb\x94\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x94\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eb95[] = {
  "\xeb\x95\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\xa9"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eb96[] = {
  "\xeb\x96\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x96\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eb97[] = {
  "\xeb\x97\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x97\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eb98[] = {
  "\xeb\x98\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\xad"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eb99[] = {
  "\xeb\x99\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\xa5"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eb9a[] = {
  "\xeb\x9a\x81", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9a\x9d", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9a\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eb9b[] = {
  "\xeb\x9b\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9b\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eb9c[] = {
  "\xeb\x9c\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\xa9"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eb9d[] = {
  "\xeb\x9d\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9d\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eb9e[] = {
  "\xeb\x9e\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9e\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eb9f[] = {
  "\xeb\x9f\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\xad"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eba0[] = {
  "\xeb\xa0\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\xa5"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eba1[] = {
  "\xeb\xa1\x81", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa1\x9d", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa1\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eba2[] = {
  "\xeb\xa2\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa2\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eba3[] = {
  "\xeb\xa3\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\xa9"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eba4[] = {
  "\xeb\xa4\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa4\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eba5[] = {
  "\xeb\xa5\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa5\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eba6[] = {
  "\xeb\xa6\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\xad"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eba7[] = {
  "\xeb\xa7\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\xa5"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eba8[] = {
  "\xeb\xa8\x81", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa8\x9d", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa8\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eba9[] = {
  "\xeb\xa9\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa9\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ebaa[] = {
  "\xeb\xaa\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\xa9"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ebab[] = {
  "\xeb\xab\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xab\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ebac[] = {
  "\xeb\xac\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xac\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ebad[] = {
  "\xeb\xad\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\xad"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ebae[] = {
  "\xeb\xae\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\xa5"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ebaf[] = {
  "\xeb\xaf\x81", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaf\x9d", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xaf\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ebb0[] = {
  "\xeb\xb0\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb0\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ebb1[] = {
  "\xeb\xb1\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\xa9"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ebb2[] = {
  "\xeb\xb2\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb2\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ebb3[] = {
  "\xeb\xb3\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb3\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ebb4[] = {
  "\xeb\xb4\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\xad"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ebb5[] = {
  "\xeb\xb5\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\xa5"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ebb6[] = {
  "\xeb\xb6\x81", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb6\x9d", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb6\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ebb7[] = {
  "\xeb\xb7\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb7\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ebb8[] = {
  "\xeb\xb8\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\xa9"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ebb9[] = {
  "\xeb\xb9\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb9\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ebba[] = {
  "\xeb\xba\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xba\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ebbb[] = {
  "\xeb\xbb\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\xad"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ebbc[] = {
  "\xeb\xbc\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\xa5"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ebbd[] = {
  "\xeb\xbd\x81", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbd\x9d", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xbd\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ebbe[] = {
  "\xeb\xbe\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbe\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ebbf[] = {
  "\xeb\xbf\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\xa9"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ec80[] = {
  "\xec\x80\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x80\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ec81[] = {
  "\xec\x81\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x81\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ec82[] = {
  "\xec\x82\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\xad"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ec83[] = {
  "\xec\x83\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\xa5"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ec84[] = {
  "\xec\x84\x81", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x84\x9d", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x84\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ec85[] = {
  "\xec\x85\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x85\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ec86[] = {
  "\xec\x86\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\xa9"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ec87[] = {
  "\xec\x87\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x87\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ec88[] = {
  "\xec\x88\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x88\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ec89[] = {
  "\xec\x89\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\xad"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ec8a[] = {
  "\xec\x8a\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\xa5"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ec8b[] = {
  "\xec\x8b\x81", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8b\x9d", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8b\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ec8c[] = {
  "\xec\x8c\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8c\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ec8d[] = {
  "\xec\x8d\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\xa9"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ec8e[] = {
  "\xec\x8e\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8e\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ec8f[] = {
  "\xec\x8f\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8f\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ec90[] = {
  "\xec\x90\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\xad"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ec91[] = {
  "\xec\x91\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\xa5"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ec92[] = {
  "\xec\x92\x81", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x92\x9d", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x92\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ec93[] = {
  "\xec\x93\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x93\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ec94[] = {
  "\xec\x94\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\xa9"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ec95[] = {
  "\xec\x95\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x95\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ec96[] = {
  "\xec\x96\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x96\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ec97[] = {
  "\xec\x97\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\xad"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ec98[] = {
  "\xec\x98\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\xa5"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ec99[] = {
  "\xec\x99\x81", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x99\x9d", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x99\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ec9a[] = {
  "\xec\x9a\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9a\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ec9b[] = {
  "\xec\x9b\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\xa9"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ec9c[] = {
  "\xec\x9c\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9c\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ec9d[] = {
  "\xec\x9d\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9d\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ec9e[] = {
  "\xec\x9e\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\xad"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ec9f[] = {
  "\xec\x9f\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\xa5"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eca0[] = {
  "\xec\xa0\x81", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa0\x9d", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa0\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eca1[] = {
  "\xec\xa1\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa1\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eca2[] = {
  "\xec\xa2\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\xa9"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eca3[] = {
  "\xec\xa3\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa3\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eca4[] = {
  "\xec\xa4\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa4\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eca5[] = {
  "\xec\xa5\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\xad"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eca6[] = {
  "\xec\xa6\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\xa5"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eca7[] = {
  "\xec\xa7\x81", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa7\x9d", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa7\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eca8[] = {
  "\xec\xa8\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa8\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_eca9[] = {
  "\xec\xa9\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\xa9"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ecaa[] = {
  "\xec\xaa\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xaa\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ecab[] = {
  "\xec\xab\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xab\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ecac[] = {
  "\xec\xac\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\xad"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ecad[] = {
  "\xec\xad\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\xa5"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ecae[] = {
  "\xec\xae\x81", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xae\x9d", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xae\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ecaf[] = {
  "\xec\xaf\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaf\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ecb0[] = {
  "\xec\xb0\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\xa9"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ecb1[] = {
  "\xec\xb1\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb1\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ecb2[] = {
  "\xec\xb2\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb2\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ecb3[] = {
  "\xec\xb3\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\xad"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ecb4[] = {
  "\xec\xb4\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\xa5"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ecb5[] = {
  "\xec\xb5\x81", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb5\x9d", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb5\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ecb6[] = {
  "\xec\xb6\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb6\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ecb7[] = {
  "\xec\xb7\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\xa9"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ecb8[] = {
  "\xec\xb8\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb8\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ecb9[] = {
  "\xec\xb9\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb9\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ecba[] = {
  "\xec\xba\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\xad"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ecbb[] = {
  "\xec\xbb\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\xa5"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ecbc[] = {
  "\xec\xbc\x81", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbc\x9d", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbc\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ecbd[] = {
  "\xec\xbd\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbd\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ecbe[] = {
  "\xec\xbe\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\xa9"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ecbf[] = {
  "\xec\xbf\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbf\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ed80[] = {
  "\xed\x80\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x80\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ed81[] = {
  "\xed\x81\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\xad"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ed82[] = {
  "\xed\x82\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\xa5"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ed83[] = {
  "\xed\x83\x81", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x83\x9d", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x83\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ed84[] = {
  "\xed\x84\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x84\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ed85[] = {
  "\xed\x85\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\xa9"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ed86[] = {
  "\xed\x86\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x86\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ed87[] = {
  "\xed\x87\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x87\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ed88[] = {
  "\xed\x88\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\xad"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ed89[] = {
  "\xed\x89\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\xa5"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ed8a[] = {
  "\xed\x8a\x81", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8a\x9d", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8a\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ed8b[] = {
  "\xed\x8b\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8b\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ed8c[] = {
  "\xed\x8c\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\xa9"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ed8d[] = {
  "\xed\x8d\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8d\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ed8e[] = {
  "\xed\x8e\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8e\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ed8f[] = {
  "\xed\x8f\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\xad"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ed90[] = {
  "\xed\x90\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\xa5"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ed91[] = {
  "\xed\x91\x81", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x91\x9d", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x91\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ed92[] = {
  "\xed\x92\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x92\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ed93[] = {
  "\xed\x93\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\xa9"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ed94[] = {
  "\xed\x94\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x94\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ed95[] = {
  "\xed\x95\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x95\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ed96[] = {
  "\xed\x96\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\xad"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ed97[] = {
  "\xed\x97\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\xa5"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ed98[] = {
  "\xed\x98\x81", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x98\x9d", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x98\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ed99[] = {
  "\xed\x99\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x99\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ed9a[] = {
  "\xed\x9a\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\xa9"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ed9b[] = {
  "\xed\x9b\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x9b\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ed9c[] = {
  "\xed\x9c\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9c\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186a8_table_ed9d[] = {
  "\xed\x9d\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\xad"
};

static inline const char *
grn_nfkc50_compose_prefix_e186a8(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xea :
      switch (utf8[1]) {
      case 0xb0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186a8_table_eab0[utf8[2] - 0x80];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186a8_table_eab1[utf8[2] - 0x94];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186a8_table_eab2[utf8[2] - 0x8c];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186a8_table_eab3[utf8[2] - 0x84];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186a8_table_eab4[utf8[2] - 0x98];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186a8_table_eab5[utf8[2] - 0x90];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186a8_table_eab6[utf8[2] - 0x88];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186a8_table_eab7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186a8_table_eab8[utf8[2] - 0x94];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186a8_table_eab9[utf8[2] - 0x8c];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186a8_table_eaba[utf8[2] - 0x84];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186a8_table_eabb[utf8[2] - 0x98];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186a8_table_eabc[utf8[2] - 0x90];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186a8_table_eabd[utf8[2] - 0x88];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186a8_table_eabe[utf8[2] - 0x80];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186a8_table_eabf[utf8[2] - 0x94];
        }
        break;
      default :
        break;
      }
      break;
    case 0xeb :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186a8_table_eb80[utf8[2] - 0x8c];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186a8_table_eb81[utf8[2] - 0x84];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186a8_table_eb82[utf8[2] - 0x98];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186a8_table_eb83[utf8[2] - 0x90];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186a8_table_eb84[utf8[2] - 0x88];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186a8_table_eb85[utf8[2] - 0x80];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186a8_table_eb86[utf8[2] - 0x94];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186a8_table_eb87[utf8[2] - 0x8c];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186a8_table_eb88[utf8[2] - 0x84];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186a8_table_eb89[utf8[2] - 0x98];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186a8_table_eb8a[utf8[2] - 0x90];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186a8_table_eb8b[utf8[2] - 0x88];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186a8_table_eb8c[utf8[2] - 0x80];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186a8_table_eb8d[utf8[2] - 0x94];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186a8_table_eb8e[utf8[2] - 0x8c];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186a8_table_eb8f[utf8[2] - 0x84];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186a8_table_eb90[utf8[2] - 0x98];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186a8_table_eb91[utf8[2] - 0x90];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186a8_table_eb92[utf8[2] - 0x88];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186a8_table_eb93[utf8[2] - 0x80];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186a8_table_eb94[utf8[2] - 0x94];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186a8_table_eb95[utf8[2] - 0x8c];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186a8_table_eb96[utf8[2] - 0x84];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186a8_table_eb97[utf8[2] - 0x98];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186a8_table_eb98[utf8[2] - 0x90];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186a8_table_eb99[utf8[2] - 0x88];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186a8_table_eb9a[utf8[2] - 0x80];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186a8_table_eb9b[utf8[2] - 0x94];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186a8_table_eb9c[utf8[2] - 0x8c];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186a8_table_eb9d[utf8[2] - 0x84];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186a8_table_eb9e[utf8[2] - 0x98];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186a8_table_eb9f[utf8[2] - 0x90];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186a8_table_eba0[utf8[2] - 0x88];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186a8_table_eba1[utf8[2] - 0x80];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186a8_table_eba2[utf8[2] - 0x94];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186a8_table_eba3[utf8[2] - 0x8c];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186a8_table_eba4[utf8[2] - 0x84];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186a8_table_eba5[utf8[2] - 0x98];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186a8_table_eba6[utf8[2] - 0x90];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186a8_table_eba7[utf8[2] - 0x88];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186a8_table_eba8[utf8[2] - 0x80];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186a8_table_eba9[utf8[2] - 0x94];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186a8_table_ebaa[utf8[2] - 0x8c];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186a8_table_ebab[utf8[2] - 0x84];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186a8_table_ebac[utf8[2] - 0x98];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186a8_table_ebad[utf8[2] - 0x90];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186a8_table_ebae[utf8[2] - 0x88];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186a8_table_ebaf[utf8[2] - 0x80];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186a8_table_ebb0[utf8[2] - 0x94];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186a8_table_ebb1[utf8[2] - 0x8c];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186a8_table_ebb2[utf8[2] - 0x84];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186a8_table_ebb3[utf8[2] - 0x98];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186a8_table_ebb4[utf8[2] - 0x90];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186a8_table_ebb5[utf8[2] - 0x88];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186a8_table_ebb6[utf8[2] - 0x80];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186a8_table_ebb7[utf8[2] - 0x94];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186a8_table_ebb8[utf8[2] - 0x8c];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186a8_table_ebb9[utf8[2] - 0x84];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186a8_table_ebba[utf8[2] - 0x98];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186a8_table_ebbb[utf8[2] - 0x90];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186a8_table_ebbc[utf8[2] - 0x88];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186a8_table_ebbd[utf8[2] - 0x80];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186a8_table_ebbe[utf8[2] - 0x94];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186a8_table_ebbf[utf8[2] - 0x8c];
        }
        break;
      default :
        break;
      }
      break;
    case 0xec :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186a8_table_ec80[utf8[2] - 0x84];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186a8_table_ec81[utf8[2] - 0x98];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186a8_table_ec82[utf8[2] - 0x90];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186a8_table_ec83[utf8[2] - 0x88];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186a8_table_ec84[utf8[2] - 0x80];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186a8_table_ec85[utf8[2] - 0x94];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186a8_table_ec86[utf8[2] - 0x8c];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186a8_table_ec87[utf8[2] - 0x84];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186a8_table_ec88[utf8[2] - 0x98];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186a8_table_ec89[utf8[2] - 0x90];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186a8_table_ec8a[utf8[2] - 0x88];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186a8_table_ec8b[utf8[2] - 0x80];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186a8_table_ec8c[utf8[2] - 0x94];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186a8_table_ec8d[utf8[2] - 0x8c];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186a8_table_ec8e[utf8[2] - 0x84];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186a8_table_ec8f[utf8[2] - 0x98];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186a8_table_ec90[utf8[2] - 0x90];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186a8_table_ec91[utf8[2] - 0x88];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186a8_table_ec92[utf8[2] - 0x80];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186a8_table_ec93[utf8[2] - 0x94];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186a8_table_ec94[utf8[2] - 0x8c];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186a8_table_ec95[utf8[2] - 0x84];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186a8_table_ec96[utf8[2] - 0x98];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186a8_table_ec97[utf8[2] - 0x90];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186a8_table_ec98[utf8[2] - 0x88];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186a8_table_ec99[utf8[2] - 0x80];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186a8_table_ec9a[utf8[2] - 0x94];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186a8_table_ec9b[utf8[2] - 0x8c];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186a8_table_ec9c[utf8[2] - 0x84];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186a8_table_ec9d[utf8[2] - 0x98];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186a8_table_ec9e[utf8[2] - 0x90];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186a8_table_ec9f[utf8[2] - 0x88];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186a8_table_eca0[utf8[2] - 0x80];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186a8_table_eca1[utf8[2] - 0x94];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186a8_table_eca2[utf8[2] - 0x8c];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186a8_table_eca3[utf8[2] - 0x84];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186a8_table_eca4[utf8[2] - 0x98];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186a8_table_eca5[utf8[2] - 0x90];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186a8_table_eca6[utf8[2] - 0x88];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186a8_table_eca7[utf8[2] - 0x80];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186a8_table_eca8[utf8[2] - 0x94];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186a8_table_eca9[utf8[2] - 0x8c];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186a8_table_ecaa[utf8[2] - 0x84];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186a8_table_ecab[utf8[2] - 0x98];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186a8_table_ecac[utf8[2] - 0x90];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186a8_table_ecad[utf8[2] - 0x88];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186a8_table_ecae[utf8[2] - 0x80];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186a8_table_ecaf[utf8[2] - 0x94];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186a8_table_ecb0[utf8[2] - 0x8c];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186a8_table_ecb1[utf8[2] - 0x84];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186a8_table_ecb2[utf8[2] - 0x98];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186a8_table_ecb3[utf8[2] - 0x90];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186a8_table_ecb4[utf8[2] - 0x88];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186a8_table_ecb5[utf8[2] - 0x80];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186a8_table_ecb6[utf8[2] - 0x94];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186a8_table_ecb7[utf8[2] - 0x8c];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186a8_table_ecb8[utf8[2] - 0x84];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186a8_table_ecb9[utf8[2] - 0x98];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186a8_table_ecba[utf8[2] - 0x90];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186a8_table_ecbb[utf8[2] - 0x88];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186a8_table_ecbc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186a8_table_ecbd[utf8[2] - 0x94];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186a8_table_ecbe[utf8[2] - 0x8c];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186a8_table_ecbf[utf8[2] - 0x84];
        }
        break;
      default :
        break;
      }
      break;
    case 0xed :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186a8_table_ed80[utf8[2] - 0x98];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186a8_table_ed81[utf8[2] - 0x90];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186a8_table_ed82[utf8[2] - 0x88];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186a8_table_ed83[utf8[2] - 0x80];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186a8_table_ed84[utf8[2] - 0x94];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186a8_table_ed85[utf8[2] - 0x8c];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186a8_table_ed86[utf8[2] - 0x84];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186a8_table_ed87[utf8[2] - 0x98];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186a8_table_ed88[utf8[2] - 0x90];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186a8_table_ed89[utf8[2] - 0x88];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186a8_table_ed8a[utf8[2] - 0x80];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186a8_table_ed8b[utf8[2] - 0x94];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186a8_table_ed8c[utf8[2] - 0x8c];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186a8_table_ed8d[utf8[2] - 0x84];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186a8_table_ed8e[utf8[2] - 0x98];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186a8_table_ed8f[utf8[2] - 0x90];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186a8_table_ed90[utf8[2] - 0x88];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186a8_table_ed91[utf8[2] - 0x80];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186a8_table_ed92[utf8[2] - 0x94];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186a8_table_ed93[utf8[2] - 0x8c];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186a8_table_ed94[utf8[2] - 0x84];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186a8_table_ed95[utf8[2] - 0x98];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186a8_table_ed96[utf8[2] - 0x90];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186a8_table_ed97[utf8[2] - 0x88];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186a8_table_ed98[utf8[2] - 0x80];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186a8_table_ed99[utf8[2] - 0x94];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186a8_table_ed9a[utf8[2] - 0x8c];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186a8_table_ed9b[utf8[2] - 0x84];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186a8_table_ed9c[utf8[2] - 0x98];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186a8_table_ed9d[utf8[2] - 0x90];
        }
        break;
      case 0x9e :
        if (utf8[2] == 0x88) {
          return "\xed\x9e\x89";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_e186a9_table_eab0[] = {
  "\xea\xb0\x82", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb0\x9e", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb0\xba"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eab1[] = {
  "\xea\xb1\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb1\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eab2[] = {
  "\xea\xb2\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\xaa"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eab3[] = {
  "\xea\xb3\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb3\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eab4[] = {
  "\xea\xb4\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb4\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eab5[] = {
  "\xea\xb5\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\xae"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eab6[] = {
  "\xea\xb6\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\xa6"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eab7[] = {
  "\xea\xb7\x82", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb7\x9e", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb7\xba"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eab8[] = {
  "\xea\xb8\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb8\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eab9[] = {
  "\xea\xb9\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\xaa"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eaba[] = {
  "\xea\xba\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xba\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eabb[] = {
  "\xea\xbb\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbb\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eabc[] = {
  "\xea\xbc\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\xae"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eabd[] = {
  "\xea\xbd\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\xa6"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eabe[] = {
  "\xea\xbe\x82", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbe\x9e", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbe\xba"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eabf[] = {
  "\xea\xbf\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbf\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eb80[] = {
  "\xeb\x80\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\xaa"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eb81[] = {
  "\xeb\x81\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x81\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eb82[] = {
  "\xeb\x82\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x82\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eb83[] = {
  "\xeb\x83\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\xae"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eb84[] = {
  "\xeb\x84\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\xa6"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eb85[] = {
  "\xeb\x85\x82", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x85\x9e", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x85\xba"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eb86[] = {
  "\xeb\x86\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x86\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eb87[] = {
  "\xeb\x87\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\xaa"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eb88[] = {
  "\xeb\x88\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x88\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eb89[] = {
  "\xeb\x89\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x89\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eb8a[] = {
  "\xeb\x8a\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\xae"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eb8b[] = {
  "\xeb\x8b\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\xa6"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eb8c[] = {
  "\xeb\x8c\x82", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8c\x9e", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8c\xba"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eb8d[] = {
  "\xeb\x8d\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8d\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eb8e[] = {
  "\xeb\x8e\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\xaa"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eb8f[] = {
  "\xeb\x8f\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8f\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eb90[] = {
  "\xeb\x90\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x90\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eb91[] = {
  "\xeb\x91\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\xae"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eb92[] = {
  "\xeb\x92\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\xa6"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eb93[] = {
  "\xeb\x93\x82", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x93\x9e", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x93\xba"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eb94[] = {
  "\xeb\x94\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x94\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eb95[] = {
  "\xeb\x95\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\xaa"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eb96[] = {
  "\xeb\x96\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x96\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eb97[] = {
  "\xeb\x97\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x97\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eb98[] = {
  "\xeb\x98\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\xae"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eb99[] = {
  "\xeb\x99\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\xa6"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eb9a[] = {
  "\xeb\x9a\x82", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9a\x9e", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9a\xba"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eb9b[] = {
  "\xeb\x9b\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9b\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eb9c[] = {
  "\xeb\x9c\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\xaa"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eb9d[] = {
  "\xeb\x9d\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9d\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eb9e[] = {
  "\xeb\x9e\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9e\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eb9f[] = {
  "\xeb\x9f\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\xae"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eba0[] = {
  "\xeb\xa0\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\xa6"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eba1[] = {
  "\xeb\xa1\x82", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa1\x9e", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa1\xba"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eba2[] = {
  "\xeb\xa2\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa2\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eba3[] = {
  "\xeb\xa3\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\xaa"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eba4[] = {
  "\xeb\xa4\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa4\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eba5[] = {
  "\xeb\xa5\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa5\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eba6[] = {
  "\xeb\xa6\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\xae"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eba7[] = {
  "\xeb\xa7\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\xa6"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eba8[] = {
  "\xeb\xa8\x82", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa8\x9e", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa8\xba"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eba9[] = {
  "\xeb\xa9\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa9\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ebaa[] = {
  "\xeb\xaa\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\xaa"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ebab[] = {
  "\xeb\xab\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xab\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ebac[] = {
  "\xeb\xac\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xac\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ebad[] = {
  "\xeb\xad\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\xae"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ebae[] = {
  "\xeb\xae\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\xa6"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ebaf[] = {
  "\xeb\xaf\x82", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaf\x9e", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xaf\xba"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ebb0[] = {
  "\xeb\xb0\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb0\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ebb1[] = {
  "\xeb\xb1\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\xaa"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ebb2[] = {
  "\xeb\xb2\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb2\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ebb3[] = {
  "\xeb\xb3\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb3\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ebb4[] = {
  "\xeb\xb4\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\xae"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ebb5[] = {
  "\xeb\xb5\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\xa6"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ebb6[] = {
  "\xeb\xb6\x82", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb6\x9e", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb6\xba"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ebb7[] = {
  "\xeb\xb7\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb7\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ebb8[] = {
  "\xeb\xb8\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\xaa"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ebb9[] = {
  "\xeb\xb9\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb9\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ebba[] = {
  "\xeb\xba\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xba\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ebbb[] = {
  "\xeb\xbb\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\xae"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ebbc[] = {
  "\xeb\xbc\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\xa6"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ebbd[] = {
  "\xeb\xbd\x82", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbd\x9e", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xbd\xba"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ebbe[] = {
  "\xeb\xbe\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbe\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ebbf[] = {
  "\xeb\xbf\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\xaa"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ec80[] = {
  "\xec\x80\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x80\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ec81[] = {
  "\xec\x81\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x81\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ec82[] = {
  "\xec\x82\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\xae"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ec83[] = {
  "\xec\x83\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\xa6"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ec84[] = {
  "\xec\x84\x82", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x84\x9e", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x84\xba"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ec85[] = {
  "\xec\x85\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x85\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ec86[] = {
  "\xec\x86\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\xaa"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ec87[] = {
  "\xec\x87\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x87\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ec88[] = {
  "\xec\x88\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x88\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ec89[] = {
  "\xec\x89\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\xae"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ec8a[] = {
  "\xec\x8a\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\xa6"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ec8b[] = {
  "\xec\x8b\x82", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8b\x9e", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8b\xba"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ec8c[] = {
  "\xec\x8c\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8c\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ec8d[] = {
  "\xec\x8d\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\xaa"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ec8e[] = {
  "\xec\x8e\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8e\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ec8f[] = {
  "\xec\x8f\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8f\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ec90[] = {
  "\xec\x90\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\xae"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ec91[] = {
  "\xec\x91\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\xa6"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ec92[] = {
  "\xec\x92\x82", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x92\x9e", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x92\xba"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ec93[] = {
  "\xec\x93\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x93\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ec94[] = {
  "\xec\x94\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\xaa"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ec95[] = {
  "\xec\x95\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x95\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ec96[] = {
  "\xec\x96\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x96\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ec97[] = {
  "\xec\x97\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\xae"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ec98[] = {
  "\xec\x98\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\xa6"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ec99[] = {
  "\xec\x99\x82", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x99\x9e", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x99\xba"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ec9a[] = {
  "\xec\x9a\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9a\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ec9b[] = {
  "\xec\x9b\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\xaa"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ec9c[] = {
  "\xec\x9c\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9c\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ec9d[] = {
  "\xec\x9d\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9d\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ec9e[] = {
  "\xec\x9e\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\xae"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ec9f[] = {
  "\xec\x9f\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\xa6"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eca0[] = {
  "\xec\xa0\x82", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa0\x9e", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa0\xba"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eca1[] = {
  "\xec\xa1\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa1\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eca2[] = {
  "\xec\xa2\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\xaa"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eca3[] = {
  "\xec\xa3\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa3\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eca4[] = {
  "\xec\xa4\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa4\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eca5[] = {
  "\xec\xa5\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\xae"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eca6[] = {
  "\xec\xa6\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\xa6"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eca7[] = {
  "\xec\xa7\x82", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa7\x9e", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa7\xba"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eca8[] = {
  "\xec\xa8\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa8\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_eca9[] = {
  "\xec\xa9\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\xaa"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ecaa[] = {
  "\xec\xaa\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xaa\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ecab[] = {
  "\xec\xab\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xab\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ecac[] = {
  "\xec\xac\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\xae"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ecad[] = {
  "\xec\xad\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\xa6"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ecae[] = {
  "\xec\xae\x82", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xae\x9e", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xae\xba"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ecaf[] = {
  "\xec\xaf\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaf\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ecb0[] = {
  "\xec\xb0\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\xaa"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ecb1[] = {
  "\xec\xb1\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb1\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ecb2[] = {
  "\xec\xb2\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb2\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ecb3[] = {
  "\xec\xb3\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\xae"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ecb4[] = {
  "\xec\xb4\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\xa6"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ecb5[] = {
  "\xec\xb5\x82", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb5\x9e", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb5\xba"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ecb6[] = {
  "\xec\xb6\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb6\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ecb7[] = {
  "\xec\xb7\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\xaa"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ecb8[] = {
  "\xec\xb8\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb8\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ecb9[] = {
  "\xec\xb9\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb9\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ecba[] = {
  "\xec\xba\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\xae"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ecbb[] = {
  "\xec\xbb\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\xa6"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ecbc[] = {
  "\xec\xbc\x82", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbc\x9e", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbc\xba"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ecbd[] = {
  "\xec\xbd\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbd\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ecbe[] = {
  "\xec\xbe\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\xaa"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ecbf[] = {
  "\xec\xbf\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbf\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ed80[] = {
  "\xed\x80\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x80\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ed81[] = {
  "\xed\x81\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\xae"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ed82[] = {
  "\xed\x82\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\xa6"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ed83[] = {
  "\xed\x83\x82", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x83\x9e", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x83\xba"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ed84[] = {
  "\xed\x84\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x84\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ed85[] = {
  "\xed\x85\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\xaa"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ed86[] = {
  "\xed\x86\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x86\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ed87[] = {
  "\xed\x87\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x87\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ed88[] = {
  "\xed\x88\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\xae"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ed89[] = {
  "\xed\x89\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\xa6"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ed8a[] = {
  "\xed\x8a\x82", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8a\x9e", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8a\xba"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ed8b[] = {
  "\xed\x8b\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8b\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ed8c[] = {
  "\xed\x8c\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\xaa"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ed8d[] = {
  "\xed\x8d\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8d\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ed8e[] = {
  "\xed\x8e\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8e\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ed8f[] = {
  "\xed\x8f\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\xae"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ed90[] = {
  "\xed\x90\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\xa6"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ed91[] = {
  "\xed\x91\x82", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x91\x9e", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x91\xba"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ed92[] = {
  "\xed\x92\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x92\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ed93[] = {
  "\xed\x93\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\xaa"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ed94[] = {
  "\xed\x94\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x94\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ed95[] = {
  "\xed\x95\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x95\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ed96[] = {
  "\xed\x96\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\xae"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ed97[] = {
  "\xed\x97\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\xa6"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ed98[] = {
  "\xed\x98\x82", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x98\x9e", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x98\xba"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ed99[] = {
  "\xed\x99\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x99\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ed9a[] = {
  "\xed\x9a\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\xaa"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ed9b[] = {
  "\xed\x9b\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x9b\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ed9c[] = {
  "\xed\x9c\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9c\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186a9_table_ed9d[] = {
  "\xed\x9d\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\xae"
};

static inline const char *
grn_nfkc50_compose_prefix_e186a9(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xea :
      switch (utf8[1]) {
      case 0xb0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186a9_table_eab0[utf8[2] - 0x80];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186a9_table_eab1[utf8[2] - 0x94];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186a9_table_eab2[utf8[2] - 0x8c];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186a9_table_eab3[utf8[2] - 0x84];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186a9_table_eab4[utf8[2] - 0x98];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186a9_table_eab5[utf8[2] - 0x90];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186a9_table_eab6[utf8[2] - 0x88];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186a9_table_eab7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186a9_table_eab8[utf8[2] - 0x94];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186a9_table_eab9[utf8[2] - 0x8c];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186a9_table_eaba[utf8[2] - 0x84];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186a9_table_eabb[utf8[2] - 0x98];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186a9_table_eabc[utf8[2] - 0x90];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186a9_table_eabd[utf8[2] - 0x88];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186a9_table_eabe[utf8[2] - 0x80];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186a9_table_eabf[utf8[2] - 0x94];
        }
        break;
      default :
        break;
      }
      break;
    case 0xeb :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186a9_table_eb80[utf8[2] - 0x8c];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186a9_table_eb81[utf8[2] - 0x84];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186a9_table_eb82[utf8[2] - 0x98];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186a9_table_eb83[utf8[2] - 0x90];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186a9_table_eb84[utf8[2] - 0x88];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186a9_table_eb85[utf8[2] - 0x80];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186a9_table_eb86[utf8[2] - 0x94];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186a9_table_eb87[utf8[2] - 0x8c];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186a9_table_eb88[utf8[2] - 0x84];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186a9_table_eb89[utf8[2] - 0x98];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186a9_table_eb8a[utf8[2] - 0x90];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186a9_table_eb8b[utf8[2] - 0x88];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186a9_table_eb8c[utf8[2] - 0x80];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186a9_table_eb8d[utf8[2] - 0x94];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186a9_table_eb8e[utf8[2] - 0x8c];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186a9_table_eb8f[utf8[2] - 0x84];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186a9_table_eb90[utf8[2] - 0x98];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186a9_table_eb91[utf8[2] - 0x90];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186a9_table_eb92[utf8[2] - 0x88];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186a9_table_eb93[utf8[2] - 0x80];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186a9_table_eb94[utf8[2] - 0x94];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186a9_table_eb95[utf8[2] - 0x8c];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186a9_table_eb96[utf8[2] - 0x84];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186a9_table_eb97[utf8[2] - 0x98];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186a9_table_eb98[utf8[2] - 0x90];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186a9_table_eb99[utf8[2] - 0x88];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186a9_table_eb9a[utf8[2] - 0x80];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186a9_table_eb9b[utf8[2] - 0x94];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186a9_table_eb9c[utf8[2] - 0x8c];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186a9_table_eb9d[utf8[2] - 0x84];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186a9_table_eb9e[utf8[2] - 0x98];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186a9_table_eb9f[utf8[2] - 0x90];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186a9_table_eba0[utf8[2] - 0x88];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186a9_table_eba1[utf8[2] - 0x80];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186a9_table_eba2[utf8[2] - 0x94];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186a9_table_eba3[utf8[2] - 0x8c];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186a9_table_eba4[utf8[2] - 0x84];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186a9_table_eba5[utf8[2] - 0x98];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186a9_table_eba6[utf8[2] - 0x90];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186a9_table_eba7[utf8[2] - 0x88];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186a9_table_eba8[utf8[2] - 0x80];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186a9_table_eba9[utf8[2] - 0x94];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186a9_table_ebaa[utf8[2] - 0x8c];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186a9_table_ebab[utf8[2] - 0x84];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186a9_table_ebac[utf8[2] - 0x98];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186a9_table_ebad[utf8[2] - 0x90];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186a9_table_ebae[utf8[2] - 0x88];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186a9_table_ebaf[utf8[2] - 0x80];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186a9_table_ebb0[utf8[2] - 0x94];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186a9_table_ebb1[utf8[2] - 0x8c];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186a9_table_ebb2[utf8[2] - 0x84];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186a9_table_ebb3[utf8[2] - 0x98];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186a9_table_ebb4[utf8[2] - 0x90];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186a9_table_ebb5[utf8[2] - 0x88];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186a9_table_ebb6[utf8[2] - 0x80];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186a9_table_ebb7[utf8[2] - 0x94];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186a9_table_ebb8[utf8[2] - 0x8c];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186a9_table_ebb9[utf8[2] - 0x84];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186a9_table_ebba[utf8[2] - 0x98];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186a9_table_ebbb[utf8[2] - 0x90];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186a9_table_ebbc[utf8[2] - 0x88];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186a9_table_ebbd[utf8[2] - 0x80];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186a9_table_ebbe[utf8[2] - 0x94];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186a9_table_ebbf[utf8[2] - 0x8c];
        }
        break;
      default :
        break;
      }
      break;
    case 0xec :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186a9_table_ec80[utf8[2] - 0x84];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186a9_table_ec81[utf8[2] - 0x98];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186a9_table_ec82[utf8[2] - 0x90];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186a9_table_ec83[utf8[2] - 0x88];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186a9_table_ec84[utf8[2] - 0x80];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186a9_table_ec85[utf8[2] - 0x94];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186a9_table_ec86[utf8[2] - 0x8c];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186a9_table_ec87[utf8[2] - 0x84];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186a9_table_ec88[utf8[2] - 0x98];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186a9_table_ec89[utf8[2] - 0x90];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186a9_table_ec8a[utf8[2] - 0x88];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186a9_table_ec8b[utf8[2] - 0x80];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186a9_table_ec8c[utf8[2] - 0x94];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186a9_table_ec8d[utf8[2] - 0x8c];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186a9_table_ec8e[utf8[2] - 0x84];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186a9_table_ec8f[utf8[2] - 0x98];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186a9_table_ec90[utf8[2] - 0x90];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186a9_table_ec91[utf8[2] - 0x88];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186a9_table_ec92[utf8[2] - 0x80];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186a9_table_ec93[utf8[2] - 0x94];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186a9_table_ec94[utf8[2] - 0x8c];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186a9_table_ec95[utf8[2] - 0x84];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186a9_table_ec96[utf8[2] - 0x98];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186a9_table_ec97[utf8[2] - 0x90];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186a9_table_ec98[utf8[2] - 0x88];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186a9_table_ec99[utf8[2] - 0x80];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186a9_table_ec9a[utf8[2] - 0x94];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186a9_table_ec9b[utf8[2] - 0x8c];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186a9_table_ec9c[utf8[2] - 0x84];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186a9_table_ec9d[utf8[2] - 0x98];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186a9_table_ec9e[utf8[2] - 0x90];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186a9_table_ec9f[utf8[2] - 0x88];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186a9_table_eca0[utf8[2] - 0x80];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186a9_table_eca1[utf8[2] - 0x94];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186a9_table_eca2[utf8[2] - 0x8c];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186a9_table_eca3[utf8[2] - 0x84];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186a9_table_eca4[utf8[2] - 0x98];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186a9_table_eca5[utf8[2] - 0x90];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186a9_table_eca6[utf8[2] - 0x88];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186a9_table_eca7[utf8[2] - 0x80];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186a9_table_eca8[utf8[2] - 0x94];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186a9_table_eca9[utf8[2] - 0x8c];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186a9_table_ecaa[utf8[2] - 0x84];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186a9_table_ecab[utf8[2] - 0x98];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186a9_table_ecac[utf8[2] - 0x90];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186a9_table_ecad[utf8[2] - 0x88];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186a9_table_ecae[utf8[2] - 0x80];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186a9_table_ecaf[utf8[2] - 0x94];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186a9_table_ecb0[utf8[2] - 0x8c];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186a9_table_ecb1[utf8[2] - 0x84];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186a9_table_ecb2[utf8[2] - 0x98];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186a9_table_ecb3[utf8[2] - 0x90];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186a9_table_ecb4[utf8[2] - 0x88];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186a9_table_ecb5[utf8[2] - 0x80];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186a9_table_ecb6[utf8[2] - 0x94];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186a9_table_ecb7[utf8[2] - 0x8c];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186a9_table_ecb8[utf8[2] - 0x84];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186a9_table_ecb9[utf8[2] - 0x98];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186a9_table_ecba[utf8[2] - 0x90];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186a9_table_ecbb[utf8[2] - 0x88];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186a9_table_ecbc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186a9_table_ecbd[utf8[2] - 0x94];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186a9_table_ecbe[utf8[2] - 0x8c];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186a9_table_ecbf[utf8[2] - 0x84];
        }
        break;
      default :
        break;
      }
      break;
    case 0xed :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186a9_table_ed80[utf8[2] - 0x98];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186a9_table_ed81[utf8[2] - 0x90];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186a9_table_ed82[utf8[2] - 0x88];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186a9_table_ed83[utf8[2] - 0x80];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186a9_table_ed84[utf8[2] - 0x94];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186a9_table_ed85[utf8[2] - 0x8c];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186a9_table_ed86[utf8[2] - 0x84];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186a9_table_ed87[utf8[2] - 0x98];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186a9_table_ed88[utf8[2] - 0x90];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186a9_table_ed89[utf8[2] - 0x88];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186a9_table_ed8a[utf8[2] - 0x80];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186a9_table_ed8b[utf8[2] - 0x94];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186a9_table_ed8c[utf8[2] - 0x8c];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186a9_table_ed8d[utf8[2] - 0x84];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186a9_table_ed8e[utf8[2] - 0x98];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186a9_table_ed8f[utf8[2] - 0x90];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186a9_table_ed90[utf8[2] - 0x88];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186a9_table_ed91[utf8[2] - 0x80];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186a9_table_ed92[utf8[2] - 0x94];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186a9_table_ed93[utf8[2] - 0x8c];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186a9_table_ed94[utf8[2] - 0x84];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186a9_table_ed95[utf8[2] - 0x98];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186a9_table_ed96[utf8[2] - 0x90];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186a9_table_ed97[utf8[2] - 0x88];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186a9_table_ed98[utf8[2] - 0x80];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186a9_table_ed99[utf8[2] - 0x94];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186a9_table_ed9a[utf8[2] - 0x8c];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186a9_table_ed9b[utf8[2] - 0x84];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186a9_table_ed9c[utf8[2] - 0x98];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186a9_table_ed9d[utf8[2] - 0x90];
        }
        break;
      case 0x9e :
        if (utf8[2] == 0x88) {
          return "\xed\x9e\x8a";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_e186aa_table_eab0[] = {
  "\xea\xb0\x83", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb0\x9f", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb0\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eab1[] = {
  "\xea\xb1\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb1\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eab2[] = {
  "\xea\xb2\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\xab"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eab3[] = {
  "\xea\xb3\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb3\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eab4[] = {
  "\xea\xb4\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb4\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eab5[] = {
  "\xea\xb5\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eab6[] = {
  "\xea\xb6\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\xa7"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eab7[] = {
  "\xea\xb7\x83", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb7\x9f", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb7\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eab8[] = {
  "\xea\xb8\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb8\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eab9[] = {
  "\xea\xb9\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\xab"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eaba[] = {
  "\xea\xba\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xba\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eabb[] = {
  "\xea\xbb\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbb\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eabc[] = {
  "\xea\xbc\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eabd[] = {
  "\xea\xbd\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\xa7"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eabe[] = {
  "\xea\xbe\x83", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbe\x9f", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbe\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eabf[] = {
  "\xea\xbf\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbf\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eb80[] = {
  "\xeb\x80\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\xab"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eb81[] = {
  "\xeb\x81\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x81\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eb82[] = {
  "\xeb\x82\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x82\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eb83[] = {
  "\xeb\x83\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eb84[] = {
  "\xeb\x84\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\xa7"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eb85[] = {
  "\xeb\x85\x83", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x85\x9f", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x85\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eb86[] = {
  "\xeb\x86\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x86\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eb87[] = {
  "\xeb\x87\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\xab"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eb88[] = {
  "\xeb\x88\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x88\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eb89[] = {
  "\xeb\x89\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x89\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eb8a[] = {
  "\xeb\x8a\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eb8b[] = {
  "\xeb\x8b\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\xa7"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eb8c[] = {
  "\xeb\x8c\x83", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8c\x9f", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8c\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eb8d[] = {
  "\xeb\x8d\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8d\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eb8e[] = {
  "\xeb\x8e\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\xab"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eb8f[] = {
  "\xeb\x8f\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8f\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eb90[] = {
  "\xeb\x90\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x90\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eb91[] = {
  "\xeb\x91\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eb92[] = {
  "\xeb\x92\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\xa7"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eb93[] = {
  "\xeb\x93\x83", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x93\x9f", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x93\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eb94[] = {
  "\xeb\x94\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x94\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eb95[] = {
  "\xeb\x95\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\xab"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eb96[] = {
  "\xeb\x96\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x96\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eb97[] = {
  "\xeb\x97\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x97\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eb98[] = {
  "\xeb\x98\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eb99[] = {
  "\xeb\x99\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\xa7"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eb9a[] = {
  "\xeb\x9a\x83", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9a\x9f", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9a\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eb9b[] = {
  "\xeb\x9b\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9b\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eb9c[] = {
  "\xeb\x9c\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\xab"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eb9d[] = {
  "\xeb\x9d\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9d\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eb9e[] = {
  "\xeb\x9e\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9e\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eb9f[] = {
  "\xeb\x9f\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eba0[] = {
  "\xeb\xa0\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\xa7"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eba1[] = {
  "\xeb\xa1\x83", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa1\x9f", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa1\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eba2[] = {
  "\xeb\xa2\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa2\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eba3[] = {
  "\xeb\xa3\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\xab"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eba4[] = {
  "\xeb\xa4\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa4\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eba5[] = {
  "\xeb\xa5\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa5\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eba6[] = {
  "\xeb\xa6\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eba7[] = {
  "\xeb\xa7\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\xa7"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eba8[] = {
  "\xeb\xa8\x83", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa8\x9f", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa8\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eba9[] = {
  "\xeb\xa9\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa9\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ebaa[] = {
  "\xeb\xaa\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\xab"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ebab[] = {
  "\xeb\xab\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xab\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ebac[] = {
  "\xeb\xac\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xac\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ebad[] = {
  "\xeb\xad\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ebae[] = {
  "\xeb\xae\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\xa7"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ebaf[] = {
  "\xeb\xaf\x83", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaf\x9f", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xaf\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ebb0[] = {
  "\xeb\xb0\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb0\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ebb1[] = {
  "\xeb\xb1\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\xab"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ebb2[] = {
  "\xeb\xb2\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb2\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ebb3[] = {
  "\xeb\xb3\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb3\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ebb4[] = {
  "\xeb\xb4\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ebb5[] = {
  "\xeb\xb5\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\xa7"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ebb6[] = {
  "\xeb\xb6\x83", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb6\x9f", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb6\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ebb7[] = {
  "\xeb\xb7\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb7\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ebb8[] = {
  "\xeb\xb8\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\xab"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ebb9[] = {
  "\xeb\xb9\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb9\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ebba[] = {
  "\xeb\xba\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xba\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ebbb[] = {
  "\xeb\xbb\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ebbc[] = {
  "\xeb\xbc\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\xa7"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ebbd[] = {
  "\xeb\xbd\x83", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbd\x9f", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xbd\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ebbe[] = {
  "\xeb\xbe\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbe\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ebbf[] = {
  "\xeb\xbf\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\xab"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ec80[] = {
  "\xec\x80\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x80\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ec81[] = {
  "\xec\x81\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x81\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ec82[] = {
  "\xec\x82\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ec83[] = {
  "\xec\x83\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\xa7"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ec84[] = {
  "\xec\x84\x83", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x84\x9f", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x84\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ec85[] = {
  "\xec\x85\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x85\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ec86[] = {
  "\xec\x86\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\xab"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ec87[] = {
  "\xec\x87\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x87\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ec88[] = {
  "\xec\x88\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x88\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ec89[] = {
  "\xec\x89\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ec8a[] = {
  "\xec\x8a\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\xa7"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ec8b[] = {
  "\xec\x8b\x83", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8b\x9f", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8b\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ec8c[] = {
  "\xec\x8c\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8c\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ec8d[] = {
  "\xec\x8d\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\xab"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ec8e[] = {
  "\xec\x8e\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8e\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ec8f[] = {
  "\xec\x8f\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8f\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ec90[] = {
  "\xec\x90\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ec91[] = {
  "\xec\x91\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\xa7"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ec92[] = {
  "\xec\x92\x83", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x92\x9f", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x92\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ec93[] = {
  "\xec\x93\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x93\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ec94[] = {
  "\xec\x94\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\xab"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ec95[] = {
  "\xec\x95\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x95\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ec96[] = {
  "\xec\x96\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x96\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ec97[] = {
  "\xec\x97\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ec98[] = {
  "\xec\x98\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\xa7"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ec99[] = {
  "\xec\x99\x83", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x99\x9f", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x99\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ec9a[] = {
  "\xec\x9a\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9a\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ec9b[] = {
  "\xec\x9b\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\xab"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ec9c[] = {
  "\xec\x9c\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9c\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ec9d[] = {
  "\xec\x9d\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9d\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ec9e[] = {
  "\xec\x9e\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ec9f[] = {
  "\xec\x9f\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\xa7"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eca0[] = {
  "\xec\xa0\x83", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa0\x9f", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa0\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eca1[] = {
  "\xec\xa1\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa1\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eca2[] = {
  "\xec\xa2\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\xab"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eca3[] = {
  "\xec\xa3\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa3\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eca4[] = {
  "\xec\xa4\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa4\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eca5[] = {
  "\xec\xa5\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eca6[] = {
  "\xec\xa6\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\xa7"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eca7[] = {
  "\xec\xa7\x83", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa7\x9f", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa7\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eca8[] = {
  "\xec\xa8\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa8\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_eca9[] = {
  "\xec\xa9\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\xab"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ecaa[] = {
  "\xec\xaa\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xaa\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ecab[] = {
  "\xec\xab\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xab\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ecac[] = {
  "\xec\xac\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ecad[] = {
  "\xec\xad\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\xa7"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ecae[] = {
  "\xec\xae\x83", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xae\x9f", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xae\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ecaf[] = {
  "\xec\xaf\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaf\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ecb0[] = {
  "\xec\xb0\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\xab"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ecb1[] = {
  "\xec\xb1\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb1\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ecb2[] = {
  "\xec\xb2\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb2\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ecb3[] = {
  "\xec\xb3\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ecb4[] = {
  "\xec\xb4\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\xa7"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ecb5[] = {
  "\xec\xb5\x83", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb5\x9f", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb5\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ecb6[] = {
  "\xec\xb6\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb6\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ecb7[] = {
  "\xec\xb7\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\xab"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ecb8[] = {
  "\xec\xb8\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb8\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ecb9[] = {
  "\xec\xb9\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb9\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ecba[] = {
  "\xec\xba\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ecbb[] = {
  "\xec\xbb\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\xa7"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ecbc[] = {
  "\xec\xbc\x83", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbc\x9f", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbc\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ecbd[] = {
  "\xec\xbd\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbd\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ecbe[] = {
  "\xec\xbe\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\xab"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ecbf[] = {
  "\xec\xbf\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbf\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ed80[] = {
  "\xed\x80\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x80\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ed81[] = {
  "\xed\x81\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ed82[] = {
  "\xed\x82\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\xa7"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ed83[] = {
  "\xed\x83\x83", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x83\x9f", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x83\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ed84[] = {
  "\xed\x84\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x84\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ed85[] = {
  "\xed\x85\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\xab"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ed86[] = {
  "\xed\x86\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x86\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ed87[] = {
  "\xed\x87\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x87\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ed88[] = {
  "\xed\x88\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ed89[] = {
  "\xed\x89\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\xa7"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ed8a[] = {
  "\xed\x8a\x83", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8a\x9f", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8a\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ed8b[] = {
  "\xed\x8b\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8b\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ed8c[] = {
  "\xed\x8c\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\xab"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ed8d[] = {
  "\xed\x8d\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8d\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ed8e[] = {
  "\xed\x8e\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8e\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ed8f[] = {
  "\xed\x8f\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ed90[] = {
  "\xed\x90\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\xa7"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ed91[] = {
  "\xed\x91\x83", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x91\x9f", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x91\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ed92[] = {
  "\xed\x92\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x92\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ed93[] = {
  "\xed\x93\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\xab"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ed94[] = {
  "\xed\x94\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x94\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ed95[] = {
  "\xed\x95\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x95\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ed96[] = {
  "\xed\x96\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ed97[] = {
  "\xed\x97\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\xa7"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ed98[] = {
  "\xed\x98\x83", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x98\x9f", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x98\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ed99[] = {
  "\xed\x99\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x99\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ed9a[] = {
  "\xed\x9a\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\xab"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ed9b[] = {
  "\xed\x9b\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x9b\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ed9c[] = {
  "\xed\x9c\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9c\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186aa_table_ed9d[] = {
  "\xed\x9d\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\xaf"
};

static inline const char *
grn_nfkc50_compose_prefix_e186aa(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xea :
      switch (utf8[1]) {
      case 0xb0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186aa_table_eab0[utf8[2] - 0x80];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186aa_table_eab1[utf8[2] - 0x94];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186aa_table_eab2[utf8[2] - 0x8c];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186aa_table_eab3[utf8[2] - 0x84];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186aa_table_eab4[utf8[2] - 0x98];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186aa_table_eab5[utf8[2] - 0x90];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186aa_table_eab6[utf8[2] - 0x88];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186aa_table_eab7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186aa_table_eab8[utf8[2] - 0x94];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186aa_table_eab9[utf8[2] - 0x8c];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186aa_table_eaba[utf8[2] - 0x84];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186aa_table_eabb[utf8[2] - 0x98];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186aa_table_eabc[utf8[2] - 0x90];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186aa_table_eabd[utf8[2] - 0x88];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186aa_table_eabe[utf8[2] - 0x80];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186aa_table_eabf[utf8[2] - 0x94];
        }
        break;
      default :
        break;
      }
      break;
    case 0xeb :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186aa_table_eb80[utf8[2] - 0x8c];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186aa_table_eb81[utf8[2] - 0x84];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186aa_table_eb82[utf8[2] - 0x98];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186aa_table_eb83[utf8[2] - 0x90];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186aa_table_eb84[utf8[2] - 0x88];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186aa_table_eb85[utf8[2] - 0x80];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186aa_table_eb86[utf8[2] - 0x94];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186aa_table_eb87[utf8[2] - 0x8c];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186aa_table_eb88[utf8[2] - 0x84];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186aa_table_eb89[utf8[2] - 0x98];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186aa_table_eb8a[utf8[2] - 0x90];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186aa_table_eb8b[utf8[2] - 0x88];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186aa_table_eb8c[utf8[2] - 0x80];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186aa_table_eb8d[utf8[2] - 0x94];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186aa_table_eb8e[utf8[2] - 0x8c];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186aa_table_eb8f[utf8[2] - 0x84];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186aa_table_eb90[utf8[2] - 0x98];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186aa_table_eb91[utf8[2] - 0x90];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186aa_table_eb92[utf8[2] - 0x88];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186aa_table_eb93[utf8[2] - 0x80];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186aa_table_eb94[utf8[2] - 0x94];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186aa_table_eb95[utf8[2] - 0x8c];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186aa_table_eb96[utf8[2] - 0x84];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186aa_table_eb97[utf8[2] - 0x98];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186aa_table_eb98[utf8[2] - 0x90];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186aa_table_eb99[utf8[2] - 0x88];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186aa_table_eb9a[utf8[2] - 0x80];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186aa_table_eb9b[utf8[2] - 0x94];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186aa_table_eb9c[utf8[2] - 0x8c];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186aa_table_eb9d[utf8[2] - 0x84];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186aa_table_eb9e[utf8[2] - 0x98];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186aa_table_eb9f[utf8[2] - 0x90];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186aa_table_eba0[utf8[2] - 0x88];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186aa_table_eba1[utf8[2] - 0x80];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186aa_table_eba2[utf8[2] - 0x94];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186aa_table_eba3[utf8[2] - 0x8c];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186aa_table_eba4[utf8[2] - 0x84];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186aa_table_eba5[utf8[2] - 0x98];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186aa_table_eba6[utf8[2] - 0x90];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186aa_table_eba7[utf8[2] - 0x88];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186aa_table_eba8[utf8[2] - 0x80];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186aa_table_eba9[utf8[2] - 0x94];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186aa_table_ebaa[utf8[2] - 0x8c];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186aa_table_ebab[utf8[2] - 0x84];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186aa_table_ebac[utf8[2] - 0x98];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186aa_table_ebad[utf8[2] - 0x90];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186aa_table_ebae[utf8[2] - 0x88];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186aa_table_ebaf[utf8[2] - 0x80];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186aa_table_ebb0[utf8[2] - 0x94];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186aa_table_ebb1[utf8[2] - 0x8c];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186aa_table_ebb2[utf8[2] - 0x84];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186aa_table_ebb3[utf8[2] - 0x98];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186aa_table_ebb4[utf8[2] - 0x90];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186aa_table_ebb5[utf8[2] - 0x88];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186aa_table_ebb6[utf8[2] - 0x80];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186aa_table_ebb7[utf8[2] - 0x94];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186aa_table_ebb8[utf8[2] - 0x8c];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186aa_table_ebb9[utf8[2] - 0x84];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186aa_table_ebba[utf8[2] - 0x98];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186aa_table_ebbb[utf8[2] - 0x90];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186aa_table_ebbc[utf8[2] - 0x88];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186aa_table_ebbd[utf8[2] - 0x80];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186aa_table_ebbe[utf8[2] - 0x94];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186aa_table_ebbf[utf8[2] - 0x8c];
        }
        break;
      default :
        break;
      }
      break;
    case 0xec :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186aa_table_ec80[utf8[2] - 0x84];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186aa_table_ec81[utf8[2] - 0x98];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186aa_table_ec82[utf8[2] - 0x90];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186aa_table_ec83[utf8[2] - 0x88];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186aa_table_ec84[utf8[2] - 0x80];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186aa_table_ec85[utf8[2] - 0x94];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186aa_table_ec86[utf8[2] - 0x8c];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186aa_table_ec87[utf8[2] - 0x84];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186aa_table_ec88[utf8[2] - 0x98];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186aa_table_ec89[utf8[2] - 0x90];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186aa_table_ec8a[utf8[2] - 0x88];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186aa_table_ec8b[utf8[2] - 0x80];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186aa_table_ec8c[utf8[2] - 0x94];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186aa_table_ec8d[utf8[2] - 0x8c];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186aa_table_ec8e[utf8[2] - 0x84];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186aa_table_ec8f[utf8[2] - 0x98];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186aa_table_ec90[utf8[2] - 0x90];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186aa_table_ec91[utf8[2] - 0x88];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186aa_table_ec92[utf8[2] - 0x80];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186aa_table_ec93[utf8[2] - 0x94];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186aa_table_ec94[utf8[2] - 0x8c];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186aa_table_ec95[utf8[2] - 0x84];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186aa_table_ec96[utf8[2] - 0x98];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186aa_table_ec97[utf8[2] - 0x90];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186aa_table_ec98[utf8[2] - 0x88];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186aa_table_ec99[utf8[2] - 0x80];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186aa_table_ec9a[utf8[2] - 0x94];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186aa_table_ec9b[utf8[2] - 0x8c];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186aa_table_ec9c[utf8[2] - 0x84];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186aa_table_ec9d[utf8[2] - 0x98];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186aa_table_ec9e[utf8[2] - 0x90];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186aa_table_ec9f[utf8[2] - 0x88];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186aa_table_eca0[utf8[2] - 0x80];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186aa_table_eca1[utf8[2] - 0x94];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186aa_table_eca2[utf8[2] - 0x8c];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186aa_table_eca3[utf8[2] - 0x84];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186aa_table_eca4[utf8[2] - 0x98];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186aa_table_eca5[utf8[2] - 0x90];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186aa_table_eca6[utf8[2] - 0x88];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186aa_table_eca7[utf8[2] - 0x80];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186aa_table_eca8[utf8[2] - 0x94];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186aa_table_eca9[utf8[2] - 0x8c];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186aa_table_ecaa[utf8[2] - 0x84];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186aa_table_ecab[utf8[2] - 0x98];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186aa_table_ecac[utf8[2] - 0x90];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186aa_table_ecad[utf8[2] - 0x88];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186aa_table_ecae[utf8[2] - 0x80];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186aa_table_ecaf[utf8[2] - 0x94];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186aa_table_ecb0[utf8[2] - 0x8c];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186aa_table_ecb1[utf8[2] - 0x84];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186aa_table_ecb2[utf8[2] - 0x98];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186aa_table_ecb3[utf8[2] - 0x90];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186aa_table_ecb4[utf8[2] - 0x88];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186aa_table_ecb5[utf8[2] - 0x80];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186aa_table_ecb6[utf8[2] - 0x94];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186aa_table_ecb7[utf8[2] - 0x8c];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186aa_table_ecb8[utf8[2] - 0x84];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186aa_table_ecb9[utf8[2] - 0x98];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186aa_table_ecba[utf8[2] - 0x90];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186aa_table_ecbb[utf8[2] - 0x88];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186aa_table_ecbc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186aa_table_ecbd[utf8[2] - 0x94];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186aa_table_ecbe[utf8[2] - 0x8c];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186aa_table_ecbf[utf8[2] - 0x84];
        }
        break;
      default :
        break;
      }
      break;
    case 0xed :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186aa_table_ed80[utf8[2] - 0x98];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186aa_table_ed81[utf8[2] - 0x90];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186aa_table_ed82[utf8[2] - 0x88];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186aa_table_ed83[utf8[2] - 0x80];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186aa_table_ed84[utf8[2] - 0x94];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186aa_table_ed85[utf8[2] - 0x8c];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186aa_table_ed86[utf8[2] - 0x84];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186aa_table_ed87[utf8[2] - 0x98];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186aa_table_ed88[utf8[2] - 0x90];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186aa_table_ed89[utf8[2] - 0x88];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186aa_table_ed8a[utf8[2] - 0x80];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186aa_table_ed8b[utf8[2] - 0x94];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186aa_table_ed8c[utf8[2] - 0x8c];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186aa_table_ed8d[utf8[2] - 0x84];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186aa_table_ed8e[utf8[2] - 0x98];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186aa_table_ed8f[utf8[2] - 0x90];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186aa_table_ed90[utf8[2] - 0x88];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186aa_table_ed91[utf8[2] - 0x80];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186aa_table_ed92[utf8[2] - 0x94];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186aa_table_ed93[utf8[2] - 0x8c];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186aa_table_ed94[utf8[2] - 0x84];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186aa_table_ed95[utf8[2] - 0x98];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186aa_table_ed96[utf8[2] - 0x90];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186aa_table_ed97[utf8[2] - 0x88];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186aa_table_ed98[utf8[2] - 0x80];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186aa_table_ed99[utf8[2] - 0x94];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186aa_table_ed9a[utf8[2] - 0x8c];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186aa_table_ed9b[utf8[2] - 0x84];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186aa_table_ed9c[utf8[2] - 0x98];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186aa_table_ed9d[utf8[2] - 0x90];
        }
        break;
      case 0x9e :
        if (utf8[2] == 0x88) {
          return "\xed\x9e\x8b";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_e186ab_table_eab0[] = {
  "\xea\xb0\x84", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb0\xa0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb0\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eab1[] = {
  "\xea\xb1\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb1\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eab2[] = {
  "\xea\xb2\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\xac"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eab3[] = {
  "\xea\xb3\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb4\x80"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eab4[] = {
  "\xea\xb4\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb4\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eab5[] = {
  "\xea\xb5\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eab6[] = {
  "\xea\xb6\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\xa8"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eab7[] = {
  "\xea\xb7\x84", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb7\xa0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb7\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eab8[] = {
  "\xea\xb8\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb8\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eab9[] = {
  "\xea\xb9\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\xac"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eaba[] = {
  "\xea\xba\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbb\x80"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eabb[] = {
  "\xea\xbb\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbb\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eabc[] = {
  "\xea\xbc\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eabd[] = {
  "\xea\xbd\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\xa8"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eabe[] = {
  "\xea\xbe\x84", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbe\xa0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbe\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eabf[] = {
  "\xea\xbf\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbf\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eb80[] = {
  "\xeb\x80\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\xac"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eb81[] = {
  "\xeb\x81\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x82\x80"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eb82[] = {
  "\xeb\x82\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x82\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eb83[] = {
  "\xeb\x83\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eb84[] = {
  "\xeb\x84\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\xa8"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eb85[] = {
  "\xeb\x85\x84", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x85\xa0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x85\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eb86[] = {
  "\xeb\x86\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x86\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eb87[] = {
  "\xeb\x87\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\xac"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eb88[] = {
  "\xeb\x88\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x89\x80"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eb89[] = {
  "\xeb\x89\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x89\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eb8a[] = {
  "\xeb\x8a\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eb8b[] = {
  "\xeb\x8b\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\xa8"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eb8c[] = {
  "\xeb\x8c\x84", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8c\xa0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8c\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eb8d[] = {
  "\xeb\x8d\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8d\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eb8e[] = {
  "\xeb\x8e\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\xac"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eb8f[] = {
  "\xeb\x8f\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x90\x80"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eb90[] = {
  "\xeb\x90\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x90\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eb91[] = {
  "\xeb\x91\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eb92[] = {
  "\xeb\x92\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\xa8"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eb93[] = {
  "\xeb\x93\x84", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x93\xa0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x93\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eb94[] = {
  "\xeb\x94\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x94\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eb95[] = {
  "\xeb\x95\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\xac"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eb96[] = {
  "\xeb\x96\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x97\x80"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eb97[] = {
  "\xeb\x97\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x97\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eb98[] = {
  "\xeb\x98\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eb99[] = {
  "\xeb\x99\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\xa8"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eb9a[] = {
  "\xeb\x9a\x84", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9a\xa0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9a\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eb9b[] = {
  "\xeb\x9b\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9b\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eb9c[] = {
  "\xeb\x9c\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\xac"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eb9d[] = {
  "\xeb\x9d\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9e\x80"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eb9e[] = {
  "\xeb\x9e\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9e\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eb9f[] = {
  "\xeb\x9f\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eba0[] = {
  "\xeb\xa0\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\xa8"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eba1[] = {
  "\xeb\xa1\x84", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa1\xa0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa1\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eba2[] = {
  "\xeb\xa2\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa2\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eba3[] = {
  "\xeb\xa3\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\xac"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eba4[] = {
  "\xeb\xa4\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa5\x80"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eba5[] = {
  "\xeb\xa5\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa5\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eba6[] = {
  "\xeb\xa6\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eba7[] = {
  "\xeb\xa7\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\xa8"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eba8[] = {
  "\xeb\xa8\x84", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa8\xa0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa8\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eba9[] = {
  "\xeb\xa9\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa9\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ebaa[] = {
  "\xeb\xaa\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\xac"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ebab[] = {
  "\xeb\xab\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xac\x80"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ebac[] = {
  "\xeb\xac\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xac\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ebad[] = {
  "\xeb\xad\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ebae[] = {
  "\xeb\xae\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\xa8"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ebaf[] = {
  "\xeb\xaf\x84", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaf\xa0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xaf\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ebb0[] = {
  "\xeb\xb0\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb0\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ebb1[] = {
  "\xeb\xb1\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\xac"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ebb2[] = {
  "\xeb\xb2\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb3\x80"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ebb3[] = {
  "\xeb\xb3\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb3\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ebb4[] = {
  "\xeb\xb4\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ebb5[] = {
  "\xeb\xb5\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\xa8"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ebb6[] = {
  "\xeb\xb6\x84", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb6\xa0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb6\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ebb7[] = {
  "\xeb\xb7\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb7\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ebb8[] = {
  "\xeb\xb8\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\xac"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ebb9[] = {
  "\xeb\xb9\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xba\x80"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ebba[] = {
  "\xeb\xba\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xba\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ebbb[] = {
  "\xeb\xbb\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ebbc[] = {
  "\xeb\xbc\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\xa8"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ebbd[] = {
  "\xeb\xbd\x84", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbd\xa0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xbd\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ebbe[] = {
  "\xeb\xbe\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbe\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ebbf[] = {
  "\xeb\xbf\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\xac"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ec80[] = {
  "\xec\x80\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x81\x80"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ec81[] = {
  "\xec\x81\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x81\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ec82[] = {
  "\xec\x82\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ec83[] = {
  "\xec\x83\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\xa8"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ec84[] = {
  "\xec\x84\x84", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x84\xa0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x84\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ec85[] = {
  "\xec\x85\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x85\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ec86[] = {
  "\xec\x86\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\xac"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ec87[] = {
  "\xec\x87\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x88\x80"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ec88[] = {
  "\xec\x88\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x88\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ec89[] = {
  "\xec\x89\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ec8a[] = {
  "\xec\x8a\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\xa8"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ec8b[] = {
  "\xec\x8b\x84", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8b\xa0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8b\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ec8c[] = {
  "\xec\x8c\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8c\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ec8d[] = {
  "\xec\x8d\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\xac"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ec8e[] = {
  "\xec\x8e\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8f\x80"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ec8f[] = {
  "\xec\x8f\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8f\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ec90[] = {
  "\xec\x90\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ec91[] = {
  "\xec\x91\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\xa8"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ec92[] = {
  "\xec\x92\x84", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x92\xa0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x92\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ec93[] = {
  "\xec\x93\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x93\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ec94[] = {
  "\xec\x94\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\xac"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ec95[] = {
  "\xec\x95\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x96\x80"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ec96[] = {
  "\xec\x96\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x96\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ec97[] = {
  "\xec\x97\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ec98[] = {
  "\xec\x98\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\xa8"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ec99[] = {
  "\xec\x99\x84", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x99\xa0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x99\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ec9a[] = {
  "\xec\x9a\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9a\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ec9b[] = {
  "\xec\x9b\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\xac"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ec9c[] = {
  "\xec\x9c\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9d\x80"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ec9d[] = {
  "\xec\x9d\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9d\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ec9e[] = {
  "\xec\x9e\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ec9f[] = {
  "\xec\x9f\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\xa8"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eca0[] = {
  "\xec\xa0\x84", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa0\xa0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa0\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eca1[] = {
  "\xec\xa1\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa1\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eca2[] = {
  "\xec\xa2\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\xac"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eca3[] = {
  "\xec\xa3\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa4\x80"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eca4[] = {
  "\xec\xa4\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa4\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eca5[] = {
  "\xec\xa5\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eca6[] = {
  "\xec\xa6\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\xa8"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eca7[] = {
  "\xec\xa7\x84", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa7\xa0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa7\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eca8[] = {
  "\xec\xa8\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa8\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_eca9[] = {
  "\xec\xa9\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\xac"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ecaa[] = {
  "\xec\xaa\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xab\x80"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ecab[] = {
  "\xec\xab\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xab\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ecac[] = {
  "\xec\xac\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ecad[] = {
  "\xec\xad\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\xa8"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ecae[] = {
  "\xec\xae\x84", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xae\xa0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xae\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ecaf[] = {
  "\xec\xaf\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaf\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ecb0[] = {
  "\xec\xb0\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\xac"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ecb1[] = {
  "\xec\xb1\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb2\x80"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ecb2[] = {
  "\xec\xb2\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb2\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ecb3[] = {
  "\xec\xb3\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ecb4[] = {
  "\xec\xb4\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\xa8"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ecb5[] = {
  "\xec\xb5\x84", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb5\xa0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb5\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ecb6[] = {
  "\xec\xb6\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb6\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ecb7[] = {
  "\xec\xb7\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\xac"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ecb8[] = {
  "\xec\xb8\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb9\x80"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ecb9[] = {
  "\xec\xb9\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb9\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ecba[] = {
  "\xec\xba\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ecbb[] = {
  "\xec\xbb\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\xa8"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ecbc[] = {
  "\xec\xbc\x84", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbc\xa0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbc\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ecbd[] = {
  "\xec\xbd\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbd\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ecbe[] = {
  "\xec\xbe\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\xac"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ecbf[] = {
  "\xec\xbf\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x80\x80"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ed80[] = {
  "\xed\x80\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x80\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ed81[] = {
  "\xed\x81\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ed82[] = {
  "\xed\x82\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\xa8"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ed83[] = {
  "\xed\x83\x84", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x83\xa0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x83\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ed84[] = {
  "\xed\x84\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x84\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ed85[] = {
  "\xed\x85\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\xac"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ed86[] = {
  "\xed\x86\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x87\x80"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ed87[] = {
  "\xed\x87\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x87\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ed88[] = {
  "\xed\x88\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ed89[] = {
  "\xed\x89\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\xa8"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ed8a[] = {
  "\xed\x8a\x84", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8a\xa0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8a\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ed8b[] = {
  "\xed\x8b\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8b\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ed8c[] = {
  "\xed\x8c\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\xac"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ed8d[] = {
  "\xed\x8d\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8e\x80"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ed8e[] = {
  "\xed\x8e\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8e\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ed8f[] = {
  "\xed\x8f\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ed90[] = {
  "\xed\x90\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\xa8"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ed91[] = {
  "\xed\x91\x84", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x91\xa0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x91\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ed92[] = {
  "\xed\x92\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x92\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ed93[] = {
  "\xed\x93\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\xac"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ed94[] = {
  "\xed\x94\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x95\x80"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ed95[] = {
  "\xed\x95\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x95\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ed96[] = {
  "\xed\x96\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ed97[] = {
  "\xed\x97\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\xa8"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ed98[] = {
  "\xed\x98\x84", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x98\xa0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x98\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ed99[] = {
  "\xed\x99\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x99\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ed9a[] = {
  "\xed\x9a\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\xac"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ed9b[] = {
  "\xed\x9b\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x9c\x80"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ed9c[] = {
  "\xed\x9c\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9c\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186ab_table_ed9d[] = {
  "\xed\x9d\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\xb0"
};

static inline const char *
grn_nfkc50_compose_prefix_e186ab(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xea :
      switch (utf8[1]) {
      case 0xb0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ab_table_eab0[utf8[2] - 0x80];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ab_table_eab1[utf8[2] - 0x94];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ab_table_eab2[utf8[2] - 0x8c];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ab_table_eab3[utf8[2] - 0x84];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ab_table_eab4[utf8[2] - 0x98];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ab_table_eab5[utf8[2] - 0x90];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ab_table_eab6[utf8[2] - 0x88];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ab_table_eab7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ab_table_eab8[utf8[2] - 0x94];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ab_table_eab9[utf8[2] - 0x8c];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ab_table_eaba[utf8[2] - 0x84];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ab_table_eabb[utf8[2] - 0x98];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ab_table_eabc[utf8[2] - 0x90];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ab_table_eabd[utf8[2] - 0x88];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ab_table_eabe[utf8[2] - 0x80];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ab_table_eabf[utf8[2] - 0x94];
        }
        break;
      default :
        break;
      }
      break;
    case 0xeb :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ab_table_eb80[utf8[2] - 0x8c];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ab_table_eb81[utf8[2] - 0x84];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ab_table_eb82[utf8[2] - 0x98];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ab_table_eb83[utf8[2] - 0x90];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ab_table_eb84[utf8[2] - 0x88];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ab_table_eb85[utf8[2] - 0x80];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ab_table_eb86[utf8[2] - 0x94];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ab_table_eb87[utf8[2] - 0x8c];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ab_table_eb88[utf8[2] - 0x84];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ab_table_eb89[utf8[2] - 0x98];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ab_table_eb8a[utf8[2] - 0x90];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ab_table_eb8b[utf8[2] - 0x88];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ab_table_eb8c[utf8[2] - 0x80];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ab_table_eb8d[utf8[2] - 0x94];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ab_table_eb8e[utf8[2] - 0x8c];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ab_table_eb8f[utf8[2] - 0x84];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ab_table_eb90[utf8[2] - 0x98];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ab_table_eb91[utf8[2] - 0x90];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ab_table_eb92[utf8[2] - 0x88];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ab_table_eb93[utf8[2] - 0x80];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ab_table_eb94[utf8[2] - 0x94];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ab_table_eb95[utf8[2] - 0x8c];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ab_table_eb96[utf8[2] - 0x84];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ab_table_eb97[utf8[2] - 0x98];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ab_table_eb98[utf8[2] - 0x90];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ab_table_eb99[utf8[2] - 0x88];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ab_table_eb9a[utf8[2] - 0x80];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ab_table_eb9b[utf8[2] - 0x94];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ab_table_eb9c[utf8[2] - 0x8c];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ab_table_eb9d[utf8[2] - 0x84];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ab_table_eb9e[utf8[2] - 0x98];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ab_table_eb9f[utf8[2] - 0x90];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ab_table_eba0[utf8[2] - 0x88];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ab_table_eba1[utf8[2] - 0x80];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ab_table_eba2[utf8[2] - 0x94];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ab_table_eba3[utf8[2] - 0x8c];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ab_table_eba4[utf8[2] - 0x84];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ab_table_eba5[utf8[2] - 0x98];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ab_table_eba6[utf8[2] - 0x90];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ab_table_eba7[utf8[2] - 0x88];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ab_table_eba8[utf8[2] - 0x80];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ab_table_eba9[utf8[2] - 0x94];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ab_table_ebaa[utf8[2] - 0x8c];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ab_table_ebab[utf8[2] - 0x84];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ab_table_ebac[utf8[2] - 0x98];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ab_table_ebad[utf8[2] - 0x90];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ab_table_ebae[utf8[2] - 0x88];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ab_table_ebaf[utf8[2] - 0x80];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ab_table_ebb0[utf8[2] - 0x94];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ab_table_ebb1[utf8[2] - 0x8c];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ab_table_ebb2[utf8[2] - 0x84];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ab_table_ebb3[utf8[2] - 0x98];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ab_table_ebb4[utf8[2] - 0x90];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ab_table_ebb5[utf8[2] - 0x88];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ab_table_ebb6[utf8[2] - 0x80];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ab_table_ebb7[utf8[2] - 0x94];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ab_table_ebb8[utf8[2] - 0x8c];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ab_table_ebb9[utf8[2] - 0x84];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ab_table_ebba[utf8[2] - 0x98];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ab_table_ebbb[utf8[2] - 0x90];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ab_table_ebbc[utf8[2] - 0x88];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ab_table_ebbd[utf8[2] - 0x80];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ab_table_ebbe[utf8[2] - 0x94];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ab_table_ebbf[utf8[2] - 0x8c];
        }
        break;
      default :
        break;
      }
      break;
    case 0xec :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ab_table_ec80[utf8[2] - 0x84];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ab_table_ec81[utf8[2] - 0x98];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ab_table_ec82[utf8[2] - 0x90];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ab_table_ec83[utf8[2] - 0x88];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ab_table_ec84[utf8[2] - 0x80];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ab_table_ec85[utf8[2] - 0x94];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ab_table_ec86[utf8[2] - 0x8c];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ab_table_ec87[utf8[2] - 0x84];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ab_table_ec88[utf8[2] - 0x98];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ab_table_ec89[utf8[2] - 0x90];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ab_table_ec8a[utf8[2] - 0x88];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ab_table_ec8b[utf8[2] - 0x80];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ab_table_ec8c[utf8[2] - 0x94];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ab_table_ec8d[utf8[2] - 0x8c];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ab_table_ec8e[utf8[2] - 0x84];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ab_table_ec8f[utf8[2] - 0x98];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ab_table_ec90[utf8[2] - 0x90];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ab_table_ec91[utf8[2] - 0x88];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ab_table_ec92[utf8[2] - 0x80];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ab_table_ec93[utf8[2] - 0x94];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ab_table_ec94[utf8[2] - 0x8c];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ab_table_ec95[utf8[2] - 0x84];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ab_table_ec96[utf8[2] - 0x98];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ab_table_ec97[utf8[2] - 0x90];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ab_table_ec98[utf8[2] - 0x88];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ab_table_ec99[utf8[2] - 0x80];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ab_table_ec9a[utf8[2] - 0x94];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ab_table_ec9b[utf8[2] - 0x8c];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ab_table_ec9c[utf8[2] - 0x84];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ab_table_ec9d[utf8[2] - 0x98];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ab_table_ec9e[utf8[2] - 0x90];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ab_table_ec9f[utf8[2] - 0x88];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ab_table_eca0[utf8[2] - 0x80];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ab_table_eca1[utf8[2] - 0x94];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ab_table_eca2[utf8[2] - 0x8c];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ab_table_eca3[utf8[2] - 0x84];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ab_table_eca4[utf8[2] - 0x98];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ab_table_eca5[utf8[2] - 0x90];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ab_table_eca6[utf8[2] - 0x88];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ab_table_eca7[utf8[2] - 0x80];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ab_table_eca8[utf8[2] - 0x94];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ab_table_eca9[utf8[2] - 0x8c];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ab_table_ecaa[utf8[2] - 0x84];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ab_table_ecab[utf8[2] - 0x98];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ab_table_ecac[utf8[2] - 0x90];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ab_table_ecad[utf8[2] - 0x88];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ab_table_ecae[utf8[2] - 0x80];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ab_table_ecaf[utf8[2] - 0x94];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ab_table_ecb0[utf8[2] - 0x8c];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ab_table_ecb1[utf8[2] - 0x84];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ab_table_ecb2[utf8[2] - 0x98];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ab_table_ecb3[utf8[2] - 0x90];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ab_table_ecb4[utf8[2] - 0x88];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ab_table_ecb5[utf8[2] - 0x80];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ab_table_ecb6[utf8[2] - 0x94];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ab_table_ecb7[utf8[2] - 0x8c];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ab_table_ecb8[utf8[2] - 0x84];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ab_table_ecb9[utf8[2] - 0x98];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ab_table_ecba[utf8[2] - 0x90];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ab_table_ecbb[utf8[2] - 0x88];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ab_table_ecbc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ab_table_ecbd[utf8[2] - 0x94];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ab_table_ecbe[utf8[2] - 0x8c];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ab_table_ecbf[utf8[2] - 0x84];
        }
        break;
      default :
        break;
      }
      break;
    case 0xed :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ab_table_ed80[utf8[2] - 0x98];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ab_table_ed81[utf8[2] - 0x90];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ab_table_ed82[utf8[2] - 0x88];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ab_table_ed83[utf8[2] - 0x80];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ab_table_ed84[utf8[2] - 0x94];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ab_table_ed85[utf8[2] - 0x8c];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ab_table_ed86[utf8[2] - 0x84];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ab_table_ed87[utf8[2] - 0x98];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ab_table_ed88[utf8[2] - 0x90];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ab_table_ed89[utf8[2] - 0x88];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ab_table_ed8a[utf8[2] - 0x80];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ab_table_ed8b[utf8[2] - 0x94];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ab_table_ed8c[utf8[2] - 0x8c];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ab_table_ed8d[utf8[2] - 0x84];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ab_table_ed8e[utf8[2] - 0x98];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ab_table_ed8f[utf8[2] - 0x90];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ab_table_ed90[utf8[2] - 0x88];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ab_table_ed91[utf8[2] - 0x80];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ab_table_ed92[utf8[2] - 0x94];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ab_table_ed93[utf8[2] - 0x8c];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ab_table_ed94[utf8[2] - 0x84];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ab_table_ed95[utf8[2] - 0x98];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ab_table_ed96[utf8[2] - 0x90];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ab_table_ed97[utf8[2] - 0x88];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ab_table_ed98[utf8[2] - 0x80];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ab_table_ed99[utf8[2] - 0x94];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ab_table_ed9a[utf8[2] - 0x8c];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ab_table_ed9b[utf8[2] - 0x84];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ab_table_ed9c[utf8[2] - 0x98];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ab_table_ed9d[utf8[2] - 0x90];
        }
        break;
      case 0x9e :
        if (utf8[2] == 0x88) {
          return "\xed\x9e\x8c";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_e186ac_table_eab0[] = {
  "\xea\xb0\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb0\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb0\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eab1[] = {
  "\xea\xb1\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb1\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eab2[] = {
  "\xea\xb2\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\xad"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eab3[] = {
  "\xea\xb3\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb4\x81"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eab4[] = {
  "\xea\xb4\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb4\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eab5[] = {
  "\xea\xb5\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eab6[] = {
  "\xea\xb6\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\xa9"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eab7[] = {
  "\xea\xb7\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb7\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb7\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eab8[] = {
  "\xea\xb8\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb8\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eab9[] = {
  "\xea\xb9\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\xad"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eaba[] = {
  "\xea\xba\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbb\x81"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eabb[] = {
  "\xea\xbb\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbb\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eabc[] = {
  "\xea\xbc\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eabd[] = {
  "\xea\xbd\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\xa9"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eabe[] = {
  "\xea\xbe\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbe\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbe\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eabf[] = {
  "\xea\xbf\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbf\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eb80[] = {
  "\xeb\x80\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\xad"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eb81[] = {
  "\xeb\x81\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x82\x81"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eb82[] = {
  "\xeb\x82\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x82\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eb83[] = {
  "\xeb\x83\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eb84[] = {
  "\xeb\x84\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\xa9"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eb85[] = {
  "\xeb\x85\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x85\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x85\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eb86[] = {
  "\xeb\x86\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x86\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eb87[] = {
  "\xeb\x87\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\xad"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eb88[] = {
  "\xeb\x88\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x89\x81"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eb89[] = {
  "\xeb\x89\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x89\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eb8a[] = {
  "\xeb\x8a\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eb8b[] = {
  "\xeb\x8b\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\xa9"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eb8c[] = {
  "\xeb\x8c\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8c\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8c\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eb8d[] = {
  "\xeb\x8d\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8d\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eb8e[] = {
  "\xeb\x8e\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\xad"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eb8f[] = {
  "\xeb\x8f\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x90\x81"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eb90[] = {
  "\xeb\x90\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x90\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eb91[] = {
  "\xeb\x91\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eb92[] = {
  "\xeb\x92\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\xa9"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eb93[] = {
  "\xeb\x93\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x93\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x93\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eb94[] = {
  "\xeb\x94\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x94\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eb95[] = {
  "\xeb\x95\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\xad"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eb96[] = {
  "\xeb\x96\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x97\x81"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eb97[] = {
  "\xeb\x97\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x97\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eb98[] = {
  "\xeb\x98\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eb99[] = {
  "\xeb\x99\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\xa9"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eb9a[] = {
  "\xeb\x9a\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9a\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9a\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eb9b[] = {
  "\xeb\x9b\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9b\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eb9c[] = {
  "\xeb\x9c\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\xad"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eb9d[] = {
  "\xeb\x9d\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9e\x81"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eb9e[] = {
  "\xeb\x9e\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9e\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eb9f[] = {
  "\xeb\x9f\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eba0[] = {
  "\xeb\xa0\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\xa9"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eba1[] = {
  "\xeb\xa1\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa1\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa1\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eba2[] = {
  "\xeb\xa2\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa2\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eba3[] = {
  "\xeb\xa3\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\xad"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eba4[] = {
  "\xeb\xa4\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa5\x81"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eba5[] = {
  "\xeb\xa5\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa5\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eba6[] = {
  "\xeb\xa6\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eba7[] = {
  "\xeb\xa7\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\xa9"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eba8[] = {
  "\xeb\xa8\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa8\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa8\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eba9[] = {
  "\xeb\xa9\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa9\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ebaa[] = {
  "\xeb\xaa\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\xad"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ebab[] = {
  "\xeb\xab\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xac\x81"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ebac[] = {
  "\xeb\xac\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xac\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ebad[] = {
  "\xeb\xad\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ebae[] = {
  "\xeb\xae\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\xa9"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ebaf[] = {
  "\xeb\xaf\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaf\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xaf\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ebb0[] = {
  "\xeb\xb0\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb0\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ebb1[] = {
  "\xeb\xb1\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\xad"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ebb2[] = {
  "\xeb\xb2\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb3\x81"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ebb3[] = {
  "\xeb\xb3\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb3\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ebb4[] = {
  "\xeb\xb4\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ebb5[] = {
  "\xeb\xb5\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\xa9"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ebb6[] = {
  "\xeb\xb6\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb6\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb6\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ebb7[] = {
  "\xeb\xb7\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb7\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ebb8[] = {
  "\xeb\xb8\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\xad"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ebb9[] = {
  "\xeb\xb9\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xba\x81"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ebba[] = {
  "\xeb\xba\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xba\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ebbb[] = {
  "\xeb\xbb\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ebbc[] = {
  "\xeb\xbc\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\xa9"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ebbd[] = {
  "\xeb\xbd\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbd\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xbd\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ebbe[] = {
  "\xeb\xbe\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbe\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ebbf[] = {
  "\xeb\xbf\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\xad"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ec80[] = {
  "\xec\x80\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x81\x81"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ec81[] = {
  "\xec\x81\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x81\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ec82[] = {
  "\xec\x82\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ec83[] = {
  "\xec\x83\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\xa9"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ec84[] = {
  "\xec\x84\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x84\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x84\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ec85[] = {
  "\xec\x85\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x85\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ec86[] = {
  "\xec\x86\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\xad"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ec87[] = {
  "\xec\x87\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x88\x81"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ec88[] = {
  "\xec\x88\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x88\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ec89[] = {
  "\xec\x89\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ec8a[] = {
  "\xec\x8a\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\xa9"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ec8b[] = {
  "\xec\x8b\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8b\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8b\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ec8c[] = {
  "\xec\x8c\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8c\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ec8d[] = {
  "\xec\x8d\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\xad"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ec8e[] = {
  "\xec\x8e\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8f\x81"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ec8f[] = {
  "\xec\x8f\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8f\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ec90[] = {
  "\xec\x90\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ec91[] = {
  "\xec\x91\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\xa9"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ec92[] = {
  "\xec\x92\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x92\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x92\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ec93[] = {
  "\xec\x93\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x93\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ec94[] = {
  "\xec\x94\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\xad"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ec95[] = {
  "\xec\x95\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x96\x81"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ec96[] = {
  "\xec\x96\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x96\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ec97[] = {
  "\xec\x97\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ec98[] = {
  "\xec\x98\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\xa9"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ec99[] = {
  "\xec\x99\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x99\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x99\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ec9a[] = {
  "\xec\x9a\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9a\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ec9b[] = {
  "\xec\x9b\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\xad"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ec9c[] = {
  "\xec\x9c\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9d\x81"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ec9d[] = {
  "\xec\x9d\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9d\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ec9e[] = {
  "\xec\x9e\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ec9f[] = {
  "\xec\x9f\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\xa9"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eca0[] = {
  "\xec\xa0\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa0\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa0\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eca1[] = {
  "\xec\xa1\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa1\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eca2[] = {
  "\xec\xa2\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\xad"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eca3[] = {
  "\xec\xa3\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa4\x81"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eca4[] = {
  "\xec\xa4\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa4\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eca5[] = {
  "\xec\xa5\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eca6[] = {
  "\xec\xa6\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\xa9"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eca7[] = {
  "\xec\xa7\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa7\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa7\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eca8[] = {
  "\xec\xa8\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa8\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_eca9[] = {
  "\xec\xa9\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\xad"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ecaa[] = {
  "\xec\xaa\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xab\x81"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ecab[] = {
  "\xec\xab\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xab\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ecac[] = {
  "\xec\xac\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ecad[] = {
  "\xec\xad\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\xa9"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ecae[] = {
  "\xec\xae\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xae\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xae\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ecaf[] = {
  "\xec\xaf\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaf\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ecb0[] = {
  "\xec\xb0\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\xad"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ecb1[] = {
  "\xec\xb1\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb2\x81"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ecb2[] = {
  "\xec\xb2\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb2\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ecb3[] = {
  "\xec\xb3\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ecb4[] = {
  "\xec\xb4\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\xa9"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ecb5[] = {
  "\xec\xb5\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb5\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb5\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ecb6[] = {
  "\xec\xb6\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb6\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ecb7[] = {
  "\xec\xb7\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\xad"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ecb8[] = {
  "\xec\xb8\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb9\x81"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ecb9[] = {
  "\xec\xb9\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb9\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ecba[] = {
  "\xec\xba\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ecbb[] = {
  "\xec\xbb\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\xa9"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ecbc[] = {
  "\xec\xbc\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbc\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbc\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ecbd[] = {
  "\xec\xbd\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbd\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ecbe[] = {
  "\xec\xbe\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\xad"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ecbf[] = {
  "\xec\xbf\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x80\x81"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ed80[] = {
  "\xed\x80\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x80\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ed81[] = {
  "\xed\x81\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ed82[] = {
  "\xed\x82\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\xa9"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ed83[] = {
  "\xed\x83\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x83\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x83\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ed84[] = {
  "\xed\x84\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x84\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ed85[] = {
  "\xed\x85\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\xad"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ed86[] = {
  "\xed\x86\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x87\x81"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ed87[] = {
  "\xed\x87\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x87\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ed88[] = {
  "\xed\x88\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ed89[] = {
  "\xed\x89\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\xa9"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ed8a[] = {
  "\xed\x8a\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8a\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8a\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ed8b[] = {
  "\xed\x8b\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8b\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ed8c[] = {
  "\xed\x8c\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\xad"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ed8d[] = {
  "\xed\x8d\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8e\x81"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ed8e[] = {
  "\xed\x8e\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8e\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ed8f[] = {
  "\xed\x8f\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ed90[] = {
  "\xed\x90\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\xa9"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ed91[] = {
  "\xed\x91\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x91\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x91\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ed92[] = {
  "\xed\x92\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x92\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ed93[] = {
  "\xed\x93\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\xad"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ed94[] = {
  "\xed\x94\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x95\x81"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ed95[] = {
  "\xed\x95\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x95\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ed96[] = {
  "\xed\x96\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ed97[] = {
  "\xed\x97\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\xa9"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ed98[] = {
  "\xed\x98\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x98\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x98\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ed99[] = {
  "\xed\x99\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x99\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ed9a[] = {
  "\xed\x9a\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\xad"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ed9b[] = {
  "\xed\x9b\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x9c\x81"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ed9c[] = {
  "\xed\x9c\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9c\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186ac_table_ed9d[] = {
  "\xed\x9d\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\xb1"
};

static inline const char *
grn_nfkc50_compose_prefix_e186ac(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xea :
      switch (utf8[1]) {
      case 0xb0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ac_table_eab0[utf8[2] - 0x80];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ac_table_eab1[utf8[2] - 0x94];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ac_table_eab2[utf8[2] - 0x8c];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ac_table_eab3[utf8[2] - 0x84];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ac_table_eab4[utf8[2] - 0x98];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ac_table_eab5[utf8[2] - 0x90];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ac_table_eab6[utf8[2] - 0x88];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ac_table_eab7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ac_table_eab8[utf8[2] - 0x94];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ac_table_eab9[utf8[2] - 0x8c];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ac_table_eaba[utf8[2] - 0x84];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ac_table_eabb[utf8[2] - 0x98];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ac_table_eabc[utf8[2] - 0x90];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ac_table_eabd[utf8[2] - 0x88];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ac_table_eabe[utf8[2] - 0x80];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ac_table_eabf[utf8[2] - 0x94];
        }
        break;
      default :
        break;
      }
      break;
    case 0xeb :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ac_table_eb80[utf8[2] - 0x8c];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ac_table_eb81[utf8[2] - 0x84];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ac_table_eb82[utf8[2] - 0x98];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ac_table_eb83[utf8[2] - 0x90];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ac_table_eb84[utf8[2] - 0x88];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ac_table_eb85[utf8[2] - 0x80];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ac_table_eb86[utf8[2] - 0x94];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ac_table_eb87[utf8[2] - 0x8c];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ac_table_eb88[utf8[2] - 0x84];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ac_table_eb89[utf8[2] - 0x98];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ac_table_eb8a[utf8[2] - 0x90];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ac_table_eb8b[utf8[2] - 0x88];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ac_table_eb8c[utf8[2] - 0x80];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ac_table_eb8d[utf8[2] - 0x94];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ac_table_eb8e[utf8[2] - 0x8c];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ac_table_eb8f[utf8[2] - 0x84];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ac_table_eb90[utf8[2] - 0x98];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ac_table_eb91[utf8[2] - 0x90];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ac_table_eb92[utf8[2] - 0x88];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ac_table_eb93[utf8[2] - 0x80];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ac_table_eb94[utf8[2] - 0x94];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ac_table_eb95[utf8[2] - 0x8c];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ac_table_eb96[utf8[2] - 0x84];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ac_table_eb97[utf8[2] - 0x98];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ac_table_eb98[utf8[2] - 0x90];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ac_table_eb99[utf8[2] - 0x88];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ac_table_eb9a[utf8[2] - 0x80];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ac_table_eb9b[utf8[2] - 0x94];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ac_table_eb9c[utf8[2] - 0x8c];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ac_table_eb9d[utf8[2] - 0x84];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ac_table_eb9e[utf8[2] - 0x98];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ac_table_eb9f[utf8[2] - 0x90];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ac_table_eba0[utf8[2] - 0x88];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ac_table_eba1[utf8[2] - 0x80];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ac_table_eba2[utf8[2] - 0x94];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ac_table_eba3[utf8[2] - 0x8c];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ac_table_eba4[utf8[2] - 0x84];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ac_table_eba5[utf8[2] - 0x98];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ac_table_eba6[utf8[2] - 0x90];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ac_table_eba7[utf8[2] - 0x88];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ac_table_eba8[utf8[2] - 0x80];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ac_table_eba9[utf8[2] - 0x94];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ac_table_ebaa[utf8[2] - 0x8c];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ac_table_ebab[utf8[2] - 0x84];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ac_table_ebac[utf8[2] - 0x98];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ac_table_ebad[utf8[2] - 0x90];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ac_table_ebae[utf8[2] - 0x88];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ac_table_ebaf[utf8[2] - 0x80];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ac_table_ebb0[utf8[2] - 0x94];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ac_table_ebb1[utf8[2] - 0x8c];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ac_table_ebb2[utf8[2] - 0x84];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ac_table_ebb3[utf8[2] - 0x98];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ac_table_ebb4[utf8[2] - 0x90];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ac_table_ebb5[utf8[2] - 0x88];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ac_table_ebb6[utf8[2] - 0x80];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ac_table_ebb7[utf8[2] - 0x94];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ac_table_ebb8[utf8[2] - 0x8c];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ac_table_ebb9[utf8[2] - 0x84];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ac_table_ebba[utf8[2] - 0x98];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ac_table_ebbb[utf8[2] - 0x90];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ac_table_ebbc[utf8[2] - 0x88];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ac_table_ebbd[utf8[2] - 0x80];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ac_table_ebbe[utf8[2] - 0x94];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ac_table_ebbf[utf8[2] - 0x8c];
        }
        break;
      default :
        break;
      }
      break;
    case 0xec :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ac_table_ec80[utf8[2] - 0x84];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ac_table_ec81[utf8[2] - 0x98];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ac_table_ec82[utf8[2] - 0x90];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ac_table_ec83[utf8[2] - 0x88];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ac_table_ec84[utf8[2] - 0x80];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ac_table_ec85[utf8[2] - 0x94];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ac_table_ec86[utf8[2] - 0x8c];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ac_table_ec87[utf8[2] - 0x84];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ac_table_ec88[utf8[2] - 0x98];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ac_table_ec89[utf8[2] - 0x90];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ac_table_ec8a[utf8[2] - 0x88];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ac_table_ec8b[utf8[2] - 0x80];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ac_table_ec8c[utf8[2] - 0x94];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ac_table_ec8d[utf8[2] - 0x8c];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ac_table_ec8e[utf8[2] - 0x84];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ac_table_ec8f[utf8[2] - 0x98];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ac_table_ec90[utf8[2] - 0x90];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ac_table_ec91[utf8[2] - 0x88];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ac_table_ec92[utf8[2] - 0x80];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ac_table_ec93[utf8[2] - 0x94];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ac_table_ec94[utf8[2] - 0x8c];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ac_table_ec95[utf8[2] - 0x84];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ac_table_ec96[utf8[2] - 0x98];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ac_table_ec97[utf8[2] - 0x90];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ac_table_ec98[utf8[2] - 0x88];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ac_table_ec99[utf8[2] - 0x80];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ac_table_ec9a[utf8[2] - 0x94];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ac_table_ec9b[utf8[2] - 0x8c];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ac_table_ec9c[utf8[2] - 0x84];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ac_table_ec9d[utf8[2] - 0x98];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ac_table_ec9e[utf8[2] - 0x90];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ac_table_ec9f[utf8[2] - 0x88];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ac_table_eca0[utf8[2] - 0x80];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ac_table_eca1[utf8[2] - 0x94];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ac_table_eca2[utf8[2] - 0x8c];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ac_table_eca3[utf8[2] - 0x84];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ac_table_eca4[utf8[2] - 0x98];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ac_table_eca5[utf8[2] - 0x90];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ac_table_eca6[utf8[2] - 0x88];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ac_table_eca7[utf8[2] - 0x80];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ac_table_eca8[utf8[2] - 0x94];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ac_table_eca9[utf8[2] - 0x8c];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ac_table_ecaa[utf8[2] - 0x84];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ac_table_ecab[utf8[2] - 0x98];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ac_table_ecac[utf8[2] - 0x90];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ac_table_ecad[utf8[2] - 0x88];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ac_table_ecae[utf8[2] - 0x80];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ac_table_ecaf[utf8[2] - 0x94];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ac_table_ecb0[utf8[2] - 0x8c];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ac_table_ecb1[utf8[2] - 0x84];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ac_table_ecb2[utf8[2] - 0x98];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ac_table_ecb3[utf8[2] - 0x90];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ac_table_ecb4[utf8[2] - 0x88];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ac_table_ecb5[utf8[2] - 0x80];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ac_table_ecb6[utf8[2] - 0x94];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ac_table_ecb7[utf8[2] - 0x8c];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ac_table_ecb8[utf8[2] - 0x84];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ac_table_ecb9[utf8[2] - 0x98];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ac_table_ecba[utf8[2] - 0x90];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ac_table_ecbb[utf8[2] - 0x88];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ac_table_ecbc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ac_table_ecbd[utf8[2] - 0x94];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ac_table_ecbe[utf8[2] - 0x8c];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ac_table_ecbf[utf8[2] - 0x84];
        }
        break;
      default :
        break;
      }
      break;
    case 0xed :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ac_table_ed80[utf8[2] - 0x98];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ac_table_ed81[utf8[2] - 0x90];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ac_table_ed82[utf8[2] - 0x88];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ac_table_ed83[utf8[2] - 0x80];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ac_table_ed84[utf8[2] - 0x94];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ac_table_ed85[utf8[2] - 0x8c];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ac_table_ed86[utf8[2] - 0x84];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ac_table_ed87[utf8[2] - 0x98];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ac_table_ed88[utf8[2] - 0x90];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ac_table_ed89[utf8[2] - 0x88];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ac_table_ed8a[utf8[2] - 0x80];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ac_table_ed8b[utf8[2] - 0x94];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ac_table_ed8c[utf8[2] - 0x8c];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ac_table_ed8d[utf8[2] - 0x84];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ac_table_ed8e[utf8[2] - 0x98];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ac_table_ed8f[utf8[2] - 0x90];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ac_table_ed90[utf8[2] - 0x88];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ac_table_ed91[utf8[2] - 0x80];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ac_table_ed92[utf8[2] - 0x94];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ac_table_ed93[utf8[2] - 0x8c];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ac_table_ed94[utf8[2] - 0x84];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ac_table_ed95[utf8[2] - 0x98];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ac_table_ed96[utf8[2] - 0x90];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ac_table_ed97[utf8[2] - 0x88];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ac_table_ed98[utf8[2] - 0x80];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ac_table_ed99[utf8[2] - 0x94];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ac_table_ed9a[utf8[2] - 0x8c];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ac_table_ed9b[utf8[2] - 0x84];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ac_table_ed9c[utf8[2] - 0x98];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ac_table_ed9d[utf8[2] - 0x90];
        }
        break;
      case 0x9e :
        if (utf8[2] == 0x88) {
          return "\xed\x9e\x8d";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_e186ad_table_eab0[] = {
  "\xea\xb0\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb0\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb0\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eab1[] = {
  "\xea\xb1\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb1\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eab2[] = {
  "\xea\xb2\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\xae"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eab3[] = {
  "\xea\xb3\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb4\x82"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eab4[] = {
  "\xea\xb4\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb4\xba"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eab5[] = {
  "\xea\xb5\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eab6[] = {
  "\xea\xb6\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\xaa"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eab7[] = {
  "\xea\xb7\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb7\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb7\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eab8[] = {
  "\xea\xb8\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb8\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eab9[] = {
  "\xea\xb9\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\xae"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eaba[] = {
  "\xea\xba\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbb\x82"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eabb[] = {
  "\xea\xbb\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbb\xba"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eabc[] = {
  "\xea\xbc\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eabd[] = {
  "\xea\xbd\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\xaa"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eabe[] = {
  "\xea\xbe\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbe\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbe\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eabf[] = {
  "\xea\xbf\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbf\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eb80[] = {
  "\xeb\x80\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\xae"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eb81[] = {
  "\xeb\x81\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x82\x82"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eb82[] = {
  "\xeb\x82\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x82\xba"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eb83[] = {
  "\xeb\x83\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eb84[] = {
  "\xeb\x84\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\xaa"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eb85[] = {
  "\xeb\x85\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x85\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x85\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eb86[] = {
  "\xeb\x86\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x86\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eb87[] = {
  "\xeb\x87\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\xae"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eb88[] = {
  "\xeb\x88\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x89\x82"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eb89[] = {
  "\xeb\x89\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x89\xba"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eb8a[] = {
  "\xeb\x8a\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eb8b[] = {
  "\xeb\x8b\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\xaa"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eb8c[] = {
  "\xeb\x8c\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8c\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8c\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eb8d[] = {
  "\xeb\x8d\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8d\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eb8e[] = {
  "\xeb\x8e\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\xae"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eb8f[] = {
  "\xeb\x8f\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x90\x82"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eb90[] = {
  "\xeb\x90\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x90\xba"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eb91[] = {
  "\xeb\x91\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eb92[] = {
  "\xeb\x92\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\xaa"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eb93[] = {
  "\xeb\x93\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x93\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x93\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eb94[] = {
  "\xeb\x94\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x94\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eb95[] = {
  "\xeb\x95\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\xae"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eb96[] = {
  "\xeb\x96\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x97\x82"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eb97[] = {
  "\xeb\x97\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x97\xba"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eb98[] = {
  "\xeb\x98\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eb99[] = {
  "\xeb\x99\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\xaa"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eb9a[] = {
  "\xeb\x9a\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9a\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9a\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eb9b[] = {
  "\xeb\x9b\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9b\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eb9c[] = {
  "\xeb\x9c\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\xae"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eb9d[] = {
  "\xeb\x9d\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9e\x82"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eb9e[] = {
  "\xeb\x9e\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9e\xba"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eb9f[] = {
  "\xeb\x9f\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eba0[] = {
  "\xeb\xa0\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\xaa"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eba1[] = {
  "\xeb\xa1\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa1\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa1\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eba2[] = {
  "\xeb\xa2\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa2\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eba3[] = {
  "\xeb\xa3\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\xae"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eba4[] = {
  "\xeb\xa4\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa5\x82"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eba5[] = {
  "\xeb\xa5\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa5\xba"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eba6[] = {
  "\xeb\xa6\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eba7[] = {
  "\xeb\xa7\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\xaa"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eba8[] = {
  "\xeb\xa8\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa8\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa8\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eba9[] = {
  "\xeb\xa9\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa9\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ebaa[] = {
  "\xeb\xaa\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\xae"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ebab[] = {
  "\xeb\xab\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xac\x82"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ebac[] = {
  "\xeb\xac\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xac\xba"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ebad[] = {
  "\xeb\xad\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ebae[] = {
  "\xeb\xae\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\xaa"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ebaf[] = {
  "\xeb\xaf\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaf\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xaf\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ebb0[] = {
  "\xeb\xb0\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb0\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ebb1[] = {
  "\xeb\xb1\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\xae"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ebb2[] = {
  "\xeb\xb2\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb3\x82"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ebb3[] = {
  "\xeb\xb3\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb3\xba"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ebb4[] = {
  "\xeb\xb4\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ebb5[] = {
  "\xeb\xb5\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\xaa"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ebb6[] = {
  "\xeb\xb6\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb6\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb6\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ebb7[] = {
  "\xeb\xb7\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb7\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ebb8[] = {
  "\xeb\xb8\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\xae"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ebb9[] = {
  "\xeb\xb9\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xba\x82"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ebba[] = {
  "\xeb\xba\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xba\xba"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ebbb[] = {
  "\xeb\xbb\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ebbc[] = {
  "\xeb\xbc\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\xaa"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ebbd[] = {
  "\xeb\xbd\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbd\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xbd\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ebbe[] = {
  "\xeb\xbe\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbe\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ebbf[] = {
  "\xeb\xbf\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\xae"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ec80[] = {
  "\xec\x80\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x81\x82"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ec81[] = {
  "\xec\x81\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x81\xba"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ec82[] = {
  "\xec\x82\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ec83[] = {
  "\xec\x83\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\xaa"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ec84[] = {
  "\xec\x84\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x84\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x84\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ec85[] = {
  "\xec\x85\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x85\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ec86[] = {
  "\xec\x86\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\xae"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ec87[] = {
  "\xec\x87\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x88\x82"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ec88[] = {
  "\xec\x88\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x88\xba"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ec89[] = {
  "\xec\x89\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ec8a[] = {
  "\xec\x8a\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\xaa"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ec8b[] = {
  "\xec\x8b\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8b\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8b\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ec8c[] = {
  "\xec\x8c\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8c\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ec8d[] = {
  "\xec\x8d\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\xae"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ec8e[] = {
  "\xec\x8e\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8f\x82"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ec8f[] = {
  "\xec\x8f\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8f\xba"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ec90[] = {
  "\xec\x90\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ec91[] = {
  "\xec\x91\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\xaa"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ec92[] = {
  "\xec\x92\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x92\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x92\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ec93[] = {
  "\xec\x93\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x93\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ec94[] = {
  "\xec\x94\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\xae"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ec95[] = {
  "\xec\x95\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x96\x82"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ec96[] = {
  "\xec\x96\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x96\xba"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ec97[] = {
  "\xec\x97\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ec98[] = {
  "\xec\x98\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\xaa"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ec99[] = {
  "\xec\x99\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x99\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x99\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ec9a[] = {
  "\xec\x9a\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9a\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ec9b[] = {
  "\xec\x9b\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\xae"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ec9c[] = {
  "\xec\x9c\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9d\x82"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ec9d[] = {
  "\xec\x9d\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9d\xba"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ec9e[] = {
  "\xec\x9e\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ec9f[] = {
  "\xec\x9f\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\xaa"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eca0[] = {
  "\xec\xa0\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa0\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa0\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eca1[] = {
  "\xec\xa1\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa1\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eca2[] = {
  "\xec\xa2\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\xae"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eca3[] = {
  "\xec\xa3\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa4\x82"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eca4[] = {
  "\xec\xa4\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa4\xba"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eca5[] = {
  "\xec\xa5\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eca6[] = {
  "\xec\xa6\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\xaa"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eca7[] = {
  "\xec\xa7\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa7\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa7\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eca8[] = {
  "\xec\xa8\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa8\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_eca9[] = {
  "\xec\xa9\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\xae"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ecaa[] = {
  "\xec\xaa\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xab\x82"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ecab[] = {
  "\xec\xab\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xab\xba"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ecac[] = {
  "\xec\xac\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ecad[] = {
  "\xec\xad\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\xaa"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ecae[] = {
  "\xec\xae\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xae\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xae\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ecaf[] = {
  "\xec\xaf\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaf\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ecb0[] = {
  "\xec\xb0\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\xae"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ecb1[] = {
  "\xec\xb1\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb2\x82"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ecb2[] = {
  "\xec\xb2\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb2\xba"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ecb3[] = {
  "\xec\xb3\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ecb4[] = {
  "\xec\xb4\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\xaa"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ecb5[] = {
  "\xec\xb5\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb5\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb5\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ecb6[] = {
  "\xec\xb6\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb6\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ecb7[] = {
  "\xec\xb7\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\xae"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ecb8[] = {
  "\xec\xb8\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb9\x82"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ecb9[] = {
  "\xec\xb9\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb9\xba"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ecba[] = {
  "\xec\xba\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ecbb[] = {
  "\xec\xbb\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\xaa"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ecbc[] = {
  "\xec\xbc\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbc\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbc\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ecbd[] = {
  "\xec\xbd\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbd\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ecbe[] = {
  "\xec\xbe\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\xae"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ecbf[] = {
  "\xec\xbf\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x80\x82"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ed80[] = {
  "\xed\x80\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x80\xba"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ed81[] = {
  "\xed\x81\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ed82[] = {
  "\xed\x82\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\xaa"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ed83[] = {
  "\xed\x83\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x83\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x83\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ed84[] = {
  "\xed\x84\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x84\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ed85[] = {
  "\xed\x85\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\xae"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ed86[] = {
  "\xed\x86\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x87\x82"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ed87[] = {
  "\xed\x87\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x87\xba"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ed88[] = {
  "\xed\x88\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ed89[] = {
  "\xed\x89\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\xaa"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ed8a[] = {
  "\xed\x8a\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8a\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8a\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ed8b[] = {
  "\xed\x8b\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8b\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ed8c[] = {
  "\xed\x8c\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\xae"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ed8d[] = {
  "\xed\x8d\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8e\x82"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ed8e[] = {
  "\xed\x8e\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8e\xba"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ed8f[] = {
  "\xed\x8f\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ed90[] = {
  "\xed\x90\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\xaa"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ed91[] = {
  "\xed\x91\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x91\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x91\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ed92[] = {
  "\xed\x92\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x92\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ed93[] = {
  "\xed\x93\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\xae"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ed94[] = {
  "\xed\x94\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x95\x82"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ed95[] = {
  "\xed\x95\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x95\xba"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ed96[] = {
  "\xed\x96\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ed97[] = {
  "\xed\x97\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\xaa"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ed98[] = {
  "\xed\x98\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x98\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x98\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ed99[] = {
  "\xed\x99\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x99\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ed9a[] = {
  "\xed\x9a\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\xae"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ed9b[] = {
  "\xed\x9b\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x9c\x82"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ed9c[] = {
  "\xed\x9c\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9c\xba"
};

static const char *grn_nfkc50_compose_prefix_e186ad_table_ed9d[] = {
  "\xed\x9d\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\xb2"
};

static inline const char *
grn_nfkc50_compose_prefix_e186ad(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xea :
      switch (utf8[1]) {
      case 0xb0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ad_table_eab0[utf8[2] - 0x80];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ad_table_eab1[utf8[2] - 0x94];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ad_table_eab2[utf8[2] - 0x8c];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ad_table_eab3[utf8[2] - 0x84];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ad_table_eab4[utf8[2] - 0x98];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ad_table_eab5[utf8[2] - 0x90];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ad_table_eab6[utf8[2] - 0x88];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ad_table_eab7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ad_table_eab8[utf8[2] - 0x94];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ad_table_eab9[utf8[2] - 0x8c];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ad_table_eaba[utf8[2] - 0x84];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ad_table_eabb[utf8[2] - 0x98];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ad_table_eabc[utf8[2] - 0x90];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ad_table_eabd[utf8[2] - 0x88];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ad_table_eabe[utf8[2] - 0x80];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ad_table_eabf[utf8[2] - 0x94];
        }
        break;
      default :
        break;
      }
      break;
    case 0xeb :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ad_table_eb80[utf8[2] - 0x8c];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ad_table_eb81[utf8[2] - 0x84];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ad_table_eb82[utf8[2] - 0x98];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ad_table_eb83[utf8[2] - 0x90];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ad_table_eb84[utf8[2] - 0x88];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ad_table_eb85[utf8[2] - 0x80];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ad_table_eb86[utf8[2] - 0x94];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ad_table_eb87[utf8[2] - 0x8c];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ad_table_eb88[utf8[2] - 0x84];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ad_table_eb89[utf8[2] - 0x98];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ad_table_eb8a[utf8[2] - 0x90];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ad_table_eb8b[utf8[2] - 0x88];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ad_table_eb8c[utf8[2] - 0x80];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ad_table_eb8d[utf8[2] - 0x94];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ad_table_eb8e[utf8[2] - 0x8c];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ad_table_eb8f[utf8[2] - 0x84];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ad_table_eb90[utf8[2] - 0x98];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ad_table_eb91[utf8[2] - 0x90];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ad_table_eb92[utf8[2] - 0x88];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ad_table_eb93[utf8[2] - 0x80];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ad_table_eb94[utf8[2] - 0x94];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ad_table_eb95[utf8[2] - 0x8c];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ad_table_eb96[utf8[2] - 0x84];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ad_table_eb97[utf8[2] - 0x98];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ad_table_eb98[utf8[2] - 0x90];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ad_table_eb99[utf8[2] - 0x88];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ad_table_eb9a[utf8[2] - 0x80];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ad_table_eb9b[utf8[2] - 0x94];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ad_table_eb9c[utf8[2] - 0x8c];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ad_table_eb9d[utf8[2] - 0x84];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ad_table_eb9e[utf8[2] - 0x98];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ad_table_eb9f[utf8[2] - 0x90];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ad_table_eba0[utf8[2] - 0x88];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ad_table_eba1[utf8[2] - 0x80];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ad_table_eba2[utf8[2] - 0x94];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ad_table_eba3[utf8[2] - 0x8c];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ad_table_eba4[utf8[2] - 0x84];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ad_table_eba5[utf8[2] - 0x98];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ad_table_eba6[utf8[2] - 0x90];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ad_table_eba7[utf8[2] - 0x88];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ad_table_eba8[utf8[2] - 0x80];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ad_table_eba9[utf8[2] - 0x94];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ad_table_ebaa[utf8[2] - 0x8c];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ad_table_ebab[utf8[2] - 0x84];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ad_table_ebac[utf8[2] - 0x98];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ad_table_ebad[utf8[2] - 0x90];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ad_table_ebae[utf8[2] - 0x88];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ad_table_ebaf[utf8[2] - 0x80];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ad_table_ebb0[utf8[2] - 0x94];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ad_table_ebb1[utf8[2] - 0x8c];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ad_table_ebb2[utf8[2] - 0x84];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ad_table_ebb3[utf8[2] - 0x98];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ad_table_ebb4[utf8[2] - 0x90];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ad_table_ebb5[utf8[2] - 0x88];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ad_table_ebb6[utf8[2] - 0x80];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ad_table_ebb7[utf8[2] - 0x94];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ad_table_ebb8[utf8[2] - 0x8c];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ad_table_ebb9[utf8[2] - 0x84];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ad_table_ebba[utf8[2] - 0x98];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ad_table_ebbb[utf8[2] - 0x90];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ad_table_ebbc[utf8[2] - 0x88];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ad_table_ebbd[utf8[2] - 0x80];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ad_table_ebbe[utf8[2] - 0x94];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ad_table_ebbf[utf8[2] - 0x8c];
        }
        break;
      default :
        break;
      }
      break;
    case 0xec :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ad_table_ec80[utf8[2] - 0x84];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ad_table_ec81[utf8[2] - 0x98];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ad_table_ec82[utf8[2] - 0x90];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ad_table_ec83[utf8[2] - 0x88];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ad_table_ec84[utf8[2] - 0x80];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ad_table_ec85[utf8[2] - 0x94];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ad_table_ec86[utf8[2] - 0x8c];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ad_table_ec87[utf8[2] - 0x84];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ad_table_ec88[utf8[2] - 0x98];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ad_table_ec89[utf8[2] - 0x90];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ad_table_ec8a[utf8[2] - 0x88];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ad_table_ec8b[utf8[2] - 0x80];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ad_table_ec8c[utf8[2] - 0x94];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ad_table_ec8d[utf8[2] - 0x8c];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ad_table_ec8e[utf8[2] - 0x84];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ad_table_ec8f[utf8[2] - 0x98];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ad_table_ec90[utf8[2] - 0x90];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ad_table_ec91[utf8[2] - 0x88];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ad_table_ec92[utf8[2] - 0x80];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ad_table_ec93[utf8[2] - 0x94];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ad_table_ec94[utf8[2] - 0x8c];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ad_table_ec95[utf8[2] - 0x84];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ad_table_ec96[utf8[2] - 0x98];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ad_table_ec97[utf8[2] - 0x90];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ad_table_ec98[utf8[2] - 0x88];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ad_table_ec99[utf8[2] - 0x80];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ad_table_ec9a[utf8[2] - 0x94];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ad_table_ec9b[utf8[2] - 0x8c];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ad_table_ec9c[utf8[2] - 0x84];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ad_table_ec9d[utf8[2] - 0x98];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ad_table_ec9e[utf8[2] - 0x90];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ad_table_ec9f[utf8[2] - 0x88];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ad_table_eca0[utf8[2] - 0x80];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ad_table_eca1[utf8[2] - 0x94];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ad_table_eca2[utf8[2] - 0x8c];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ad_table_eca3[utf8[2] - 0x84];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ad_table_eca4[utf8[2] - 0x98];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ad_table_eca5[utf8[2] - 0x90];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ad_table_eca6[utf8[2] - 0x88];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ad_table_eca7[utf8[2] - 0x80];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ad_table_eca8[utf8[2] - 0x94];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ad_table_eca9[utf8[2] - 0x8c];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ad_table_ecaa[utf8[2] - 0x84];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ad_table_ecab[utf8[2] - 0x98];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ad_table_ecac[utf8[2] - 0x90];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ad_table_ecad[utf8[2] - 0x88];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ad_table_ecae[utf8[2] - 0x80];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ad_table_ecaf[utf8[2] - 0x94];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ad_table_ecb0[utf8[2] - 0x8c];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ad_table_ecb1[utf8[2] - 0x84];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ad_table_ecb2[utf8[2] - 0x98];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ad_table_ecb3[utf8[2] - 0x90];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ad_table_ecb4[utf8[2] - 0x88];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ad_table_ecb5[utf8[2] - 0x80];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ad_table_ecb6[utf8[2] - 0x94];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ad_table_ecb7[utf8[2] - 0x8c];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ad_table_ecb8[utf8[2] - 0x84];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ad_table_ecb9[utf8[2] - 0x98];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ad_table_ecba[utf8[2] - 0x90];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ad_table_ecbb[utf8[2] - 0x88];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ad_table_ecbc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ad_table_ecbd[utf8[2] - 0x94];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ad_table_ecbe[utf8[2] - 0x8c];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ad_table_ecbf[utf8[2] - 0x84];
        }
        break;
      default :
        break;
      }
      break;
    case 0xed :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ad_table_ed80[utf8[2] - 0x98];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ad_table_ed81[utf8[2] - 0x90];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ad_table_ed82[utf8[2] - 0x88];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ad_table_ed83[utf8[2] - 0x80];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ad_table_ed84[utf8[2] - 0x94];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ad_table_ed85[utf8[2] - 0x8c];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ad_table_ed86[utf8[2] - 0x84];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ad_table_ed87[utf8[2] - 0x98];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ad_table_ed88[utf8[2] - 0x90];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ad_table_ed89[utf8[2] - 0x88];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ad_table_ed8a[utf8[2] - 0x80];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ad_table_ed8b[utf8[2] - 0x94];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ad_table_ed8c[utf8[2] - 0x8c];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ad_table_ed8d[utf8[2] - 0x84];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ad_table_ed8e[utf8[2] - 0x98];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ad_table_ed8f[utf8[2] - 0x90];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ad_table_ed90[utf8[2] - 0x88];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ad_table_ed91[utf8[2] - 0x80];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ad_table_ed92[utf8[2] - 0x94];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ad_table_ed93[utf8[2] - 0x8c];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ad_table_ed94[utf8[2] - 0x84];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ad_table_ed95[utf8[2] - 0x98];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ad_table_ed96[utf8[2] - 0x90];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ad_table_ed97[utf8[2] - 0x88];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ad_table_ed98[utf8[2] - 0x80];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ad_table_ed99[utf8[2] - 0x94];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ad_table_ed9a[utf8[2] - 0x8c];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ad_table_ed9b[utf8[2] - 0x84];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ad_table_ed9c[utf8[2] - 0x98];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ad_table_ed9d[utf8[2] - 0x90];
        }
        break;
      case 0x9e :
        if (utf8[2] == 0x88) {
          return "\xed\x9e\x8e";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_e186ae_table_eab0[] = {
  "\xea\xb0\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb0\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb0\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eab1[] = {
  "\xea\xb1\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb1\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eab2[] = {
  "\xea\xb2\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eab3[] = {
  "\xea\xb3\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb4\x83"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eab4[] = {
  "\xea\xb4\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb4\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eab5[] = {
  "\xea\xb5\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eab6[] = {
  "\xea\xb6\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\xab"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eab7[] = {
  "\xea\xb7\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb7\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb7\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eab8[] = {
  "\xea\xb8\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb8\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eab9[] = {
  "\xea\xb9\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eaba[] = {
  "\xea\xba\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbb\x83"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eabb[] = {
  "\xea\xbb\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbb\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eabc[] = {
  "\xea\xbc\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eabd[] = {
  "\xea\xbd\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\xab"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eabe[] = {
  "\xea\xbe\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbe\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbe\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eabf[] = {
  "\xea\xbf\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbf\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eb80[] = {
  "\xeb\x80\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eb81[] = {
  "\xeb\x81\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x82\x83"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eb82[] = {
  "\xeb\x82\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x82\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eb83[] = {
  "\xeb\x83\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eb84[] = {
  "\xeb\x84\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\xab"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eb85[] = {
  "\xeb\x85\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x85\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x85\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eb86[] = {
  "\xeb\x86\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x86\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eb87[] = {
  "\xeb\x87\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eb88[] = {
  "\xeb\x88\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x89\x83"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eb89[] = {
  "\xeb\x89\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x89\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eb8a[] = {
  "\xeb\x8a\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eb8b[] = {
  "\xeb\x8b\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\xab"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eb8c[] = {
  "\xeb\x8c\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8c\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8c\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eb8d[] = {
  "\xeb\x8d\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8d\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eb8e[] = {
  "\xeb\x8e\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eb8f[] = {
  "\xeb\x8f\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x90\x83"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eb90[] = {
  "\xeb\x90\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x90\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eb91[] = {
  "\xeb\x91\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eb92[] = {
  "\xeb\x92\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\xab"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eb93[] = {
  "\xeb\x93\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x93\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x93\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eb94[] = {
  "\xeb\x94\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x94\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eb95[] = {
  "\xeb\x95\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eb96[] = {
  "\xeb\x96\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x97\x83"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eb97[] = {
  "\xeb\x97\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x97\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eb98[] = {
  "\xeb\x98\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eb99[] = {
  "\xeb\x99\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\xab"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eb9a[] = {
  "\xeb\x9a\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9a\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9a\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eb9b[] = {
  "\xeb\x9b\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9b\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eb9c[] = {
  "\xeb\x9c\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eb9d[] = {
  "\xeb\x9d\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9e\x83"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eb9e[] = {
  "\xeb\x9e\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9e\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eb9f[] = {
  "\xeb\x9f\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eba0[] = {
  "\xeb\xa0\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\xab"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eba1[] = {
  "\xeb\xa1\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa1\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa1\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eba2[] = {
  "\xeb\xa2\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa2\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eba3[] = {
  "\xeb\xa3\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eba4[] = {
  "\xeb\xa4\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa5\x83"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eba5[] = {
  "\xeb\xa5\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa5\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eba6[] = {
  "\xeb\xa6\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eba7[] = {
  "\xeb\xa7\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\xab"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eba8[] = {
  "\xeb\xa8\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa8\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa8\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eba9[] = {
  "\xeb\xa9\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa9\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ebaa[] = {
  "\xeb\xaa\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ebab[] = {
  "\xeb\xab\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xac\x83"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ebac[] = {
  "\xeb\xac\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xac\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ebad[] = {
  "\xeb\xad\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ebae[] = {
  "\xeb\xae\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\xab"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ebaf[] = {
  "\xeb\xaf\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaf\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xaf\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ebb0[] = {
  "\xeb\xb0\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb0\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ebb1[] = {
  "\xeb\xb1\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ebb2[] = {
  "\xeb\xb2\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb3\x83"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ebb3[] = {
  "\xeb\xb3\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb3\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ebb4[] = {
  "\xeb\xb4\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ebb5[] = {
  "\xeb\xb5\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\xab"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ebb6[] = {
  "\xeb\xb6\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb6\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb6\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ebb7[] = {
  "\xeb\xb7\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb7\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ebb8[] = {
  "\xeb\xb8\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ebb9[] = {
  "\xeb\xb9\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xba\x83"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ebba[] = {
  "\xeb\xba\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xba\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ebbb[] = {
  "\xeb\xbb\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ebbc[] = {
  "\xeb\xbc\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\xab"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ebbd[] = {
  "\xeb\xbd\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbd\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xbd\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ebbe[] = {
  "\xeb\xbe\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbe\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ebbf[] = {
  "\xeb\xbf\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ec80[] = {
  "\xec\x80\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x81\x83"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ec81[] = {
  "\xec\x81\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x81\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ec82[] = {
  "\xec\x82\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ec83[] = {
  "\xec\x83\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\xab"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ec84[] = {
  "\xec\x84\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x84\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x84\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ec85[] = {
  "\xec\x85\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x85\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ec86[] = {
  "\xec\x86\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ec87[] = {
  "\xec\x87\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x88\x83"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ec88[] = {
  "\xec\x88\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x88\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ec89[] = {
  "\xec\x89\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ec8a[] = {
  "\xec\x8a\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\xab"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ec8b[] = {
  "\xec\x8b\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8b\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8b\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ec8c[] = {
  "\xec\x8c\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8c\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ec8d[] = {
  "\xec\x8d\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ec8e[] = {
  "\xec\x8e\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8f\x83"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ec8f[] = {
  "\xec\x8f\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8f\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ec90[] = {
  "\xec\x90\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ec91[] = {
  "\xec\x91\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\xab"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ec92[] = {
  "\xec\x92\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x92\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x92\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ec93[] = {
  "\xec\x93\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x93\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ec94[] = {
  "\xec\x94\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ec95[] = {
  "\xec\x95\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x96\x83"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ec96[] = {
  "\xec\x96\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x96\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ec97[] = {
  "\xec\x97\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ec98[] = {
  "\xec\x98\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\xab"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ec99[] = {
  "\xec\x99\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x99\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x99\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ec9a[] = {
  "\xec\x9a\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9a\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ec9b[] = {
  "\xec\x9b\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ec9c[] = {
  "\xec\x9c\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9d\x83"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ec9d[] = {
  "\xec\x9d\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9d\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ec9e[] = {
  "\xec\x9e\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ec9f[] = {
  "\xec\x9f\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\xab"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eca0[] = {
  "\xec\xa0\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa0\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa0\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eca1[] = {
  "\xec\xa1\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa1\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eca2[] = {
  "\xec\xa2\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eca3[] = {
  "\xec\xa3\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa4\x83"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eca4[] = {
  "\xec\xa4\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa4\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eca5[] = {
  "\xec\xa5\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eca6[] = {
  "\xec\xa6\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\xab"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eca7[] = {
  "\xec\xa7\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa7\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa7\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eca8[] = {
  "\xec\xa8\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa8\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_eca9[] = {
  "\xec\xa9\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ecaa[] = {
  "\xec\xaa\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xab\x83"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ecab[] = {
  "\xec\xab\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xab\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ecac[] = {
  "\xec\xac\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ecad[] = {
  "\xec\xad\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\xab"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ecae[] = {
  "\xec\xae\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xae\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xae\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ecaf[] = {
  "\xec\xaf\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaf\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ecb0[] = {
  "\xec\xb0\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ecb1[] = {
  "\xec\xb1\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb2\x83"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ecb2[] = {
  "\xec\xb2\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb2\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ecb3[] = {
  "\xec\xb3\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ecb4[] = {
  "\xec\xb4\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\xab"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ecb5[] = {
  "\xec\xb5\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb5\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb5\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ecb6[] = {
  "\xec\xb6\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb6\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ecb7[] = {
  "\xec\xb7\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ecb8[] = {
  "\xec\xb8\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb9\x83"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ecb9[] = {
  "\xec\xb9\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb9\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ecba[] = {
  "\xec\xba\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ecbb[] = {
  "\xec\xbb\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\xab"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ecbc[] = {
  "\xec\xbc\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbc\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbc\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ecbd[] = {
  "\xec\xbd\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbd\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ecbe[] = {
  "\xec\xbe\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ecbf[] = {
  "\xec\xbf\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x80\x83"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ed80[] = {
  "\xed\x80\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x80\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ed81[] = {
  "\xed\x81\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ed82[] = {
  "\xed\x82\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\xab"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ed83[] = {
  "\xed\x83\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x83\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x83\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ed84[] = {
  "\xed\x84\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x84\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ed85[] = {
  "\xed\x85\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ed86[] = {
  "\xed\x86\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x87\x83"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ed87[] = {
  "\xed\x87\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x87\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ed88[] = {
  "\xed\x88\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ed89[] = {
  "\xed\x89\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\xab"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ed8a[] = {
  "\xed\x8a\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8a\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8a\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ed8b[] = {
  "\xed\x8b\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8b\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ed8c[] = {
  "\xed\x8c\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ed8d[] = {
  "\xed\x8d\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8e\x83"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ed8e[] = {
  "\xed\x8e\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8e\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ed8f[] = {
  "\xed\x8f\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ed90[] = {
  "\xed\x90\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\xab"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ed91[] = {
  "\xed\x91\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x91\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x91\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ed92[] = {
  "\xed\x92\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x92\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ed93[] = {
  "\xed\x93\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ed94[] = {
  "\xed\x94\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x95\x83"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ed95[] = {
  "\xed\x95\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x95\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ed96[] = {
  "\xed\x96\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ed97[] = {
  "\xed\x97\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\xab"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ed98[] = {
  "\xed\x98\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x98\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x98\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ed99[] = {
  "\xed\x99\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x99\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ed9a[] = {
  "\xed\x9a\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ed9b[] = {
  "\xed\x9b\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x9c\x83"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ed9c[] = {
  "\xed\x9c\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9c\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186ae_table_ed9d[] = {
  "\xed\x9d\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\xb3"
};

static inline const char *
grn_nfkc50_compose_prefix_e186ae(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xea :
      switch (utf8[1]) {
      case 0xb0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ae_table_eab0[utf8[2] - 0x80];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ae_table_eab1[utf8[2] - 0x94];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ae_table_eab2[utf8[2] - 0x8c];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ae_table_eab3[utf8[2] - 0x84];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ae_table_eab4[utf8[2] - 0x98];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ae_table_eab5[utf8[2] - 0x90];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ae_table_eab6[utf8[2] - 0x88];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ae_table_eab7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ae_table_eab8[utf8[2] - 0x94];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ae_table_eab9[utf8[2] - 0x8c];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ae_table_eaba[utf8[2] - 0x84];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ae_table_eabb[utf8[2] - 0x98];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ae_table_eabc[utf8[2] - 0x90];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ae_table_eabd[utf8[2] - 0x88];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ae_table_eabe[utf8[2] - 0x80];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ae_table_eabf[utf8[2] - 0x94];
        }
        break;
      default :
        break;
      }
      break;
    case 0xeb :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ae_table_eb80[utf8[2] - 0x8c];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ae_table_eb81[utf8[2] - 0x84];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ae_table_eb82[utf8[2] - 0x98];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ae_table_eb83[utf8[2] - 0x90];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ae_table_eb84[utf8[2] - 0x88];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ae_table_eb85[utf8[2] - 0x80];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ae_table_eb86[utf8[2] - 0x94];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ae_table_eb87[utf8[2] - 0x8c];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ae_table_eb88[utf8[2] - 0x84];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ae_table_eb89[utf8[2] - 0x98];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ae_table_eb8a[utf8[2] - 0x90];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ae_table_eb8b[utf8[2] - 0x88];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ae_table_eb8c[utf8[2] - 0x80];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ae_table_eb8d[utf8[2] - 0x94];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ae_table_eb8e[utf8[2] - 0x8c];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ae_table_eb8f[utf8[2] - 0x84];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ae_table_eb90[utf8[2] - 0x98];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ae_table_eb91[utf8[2] - 0x90];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ae_table_eb92[utf8[2] - 0x88];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ae_table_eb93[utf8[2] - 0x80];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ae_table_eb94[utf8[2] - 0x94];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ae_table_eb95[utf8[2] - 0x8c];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ae_table_eb96[utf8[2] - 0x84];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ae_table_eb97[utf8[2] - 0x98];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ae_table_eb98[utf8[2] - 0x90];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ae_table_eb99[utf8[2] - 0x88];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ae_table_eb9a[utf8[2] - 0x80];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ae_table_eb9b[utf8[2] - 0x94];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ae_table_eb9c[utf8[2] - 0x8c];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ae_table_eb9d[utf8[2] - 0x84];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ae_table_eb9e[utf8[2] - 0x98];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ae_table_eb9f[utf8[2] - 0x90];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ae_table_eba0[utf8[2] - 0x88];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ae_table_eba1[utf8[2] - 0x80];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ae_table_eba2[utf8[2] - 0x94];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ae_table_eba3[utf8[2] - 0x8c];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ae_table_eba4[utf8[2] - 0x84];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ae_table_eba5[utf8[2] - 0x98];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ae_table_eba6[utf8[2] - 0x90];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ae_table_eba7[utf8[2] - 0x88];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ae_table_eba8[utf8[2] - 0x80];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ae_table_eba9[utf8[2] - 0x94];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ae_table_ebaa[utf8[2] - 0x8c];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ae_table_ebab[utf8[2] - 0x84];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ae_table_ebac[utf8[2] - 0x98];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ae_table_ebad[utf8[2] - 0x90];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ae_table_ebae[utf8[2] - 0x88];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ae_table_ebaf[utf8[2] - 0x80];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ae_table_ebb0[utf8[2] - 0x94];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ae_table_ebb1[utf8[2] - 0x8c];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ae_table_ebb2[utf8[2] - 0x84];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ae_table_ebb3[utf8[2] - 0x98];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ae_table_ebb4[utf8[2] - 0x90];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ae_table_ebb5[utf8[2] - 0x88];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ae_table_ebb6[utf8[2] - 0x80];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ae_table_ebb7[utf8[2] - 0x94];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ae_table_ebb8[utf8[2] - 0x8c];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ae_table_ebb9[utf8[2] - 0x84];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ae_table_ebba[utf8[2] - 0x98];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ae_table_ebbb[utf8[2] - 0x90];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ae_table_ebbc[utf8[2] - 0x88];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ae_table_ebbd[utf8[2] - 0x80];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ae_table_ebbe[utf8[2] - 0x94];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ae_table_ebbf[utf8[2] - 0x8c];
        }
        break;
      default :
        break;
      }
      break;
    case 0xec :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ae_table_ec80[utf8[2] - 0x84];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ae_table_ec81[utf8[2] - 0x98];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ae_table_ec82[utf8[2] - 0x90];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ae_table_ec83[utf8[2] - 0x88];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ae_table_ec84[utf8[2] - 0x80];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ae_table_ec85[utf8[2] - 0x94];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ae_table_ec86[utf8[2] - 0x8c];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ae_table_ec87[utf8[2] - 0x84];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ae_table_ec88[utf8[2] - 0x98];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ae_table_ec89[utf8[2] - 0x90];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ae_table_ec8a[utf8[2] - 0x88];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ae_table_ec8b[utf8[2] - 0x80];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ae_table_ec8c[utf8[2] - 0x94];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ae_table_ec8d[utf8[2] - 0x8c];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ae_table_ec8e[utf8[2] - 0x84];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ae_table_ec8f[utf8[2] - 0x98];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ae_table_ec90[utf8[2] - 0x90];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ae_table_ec91[utf8[2] - 0x88];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ae_table_ec92[utf8[2] - 0x80];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ae_table_ec93[utf8[2] - 0x94];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ae_table_ec94[utf8[2] - 0x8c];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ae_table_ec95[utf8[2] - 0x84];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ae_table_ec96[utf8[2] - 0x98];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ae_table_ec97[utf8[2] - 0x90];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ae_table_ec98[utf8[2] - 0x88];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ae_table_ec99[utf8[2] - 0x80];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ae_table_ec9a[utf8[2] - 0x94];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ae_table_ec9b[utf8[2] - 0x8c];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ae_table_ec9c[utf8[2] - 0x84];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ae_table_ec9d[utf8[2] - 0x98];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ae_table_ec9e[utf8[2] - 0x90];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ae_table_ec9f[utf8[2] - 0x88];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ae_table_eca0[utf8[2] - 0x80];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ae_table_eca1[utf8[2] - 0x94];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ae_table_eca2[utf8[2] - 0x8c];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ae_table_eca3[utf8[2] - 0x84];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ae_table_eca4[utf8[2] - 0x98];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ae_table_eca5[utf8[2] - 0x90];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ae_table_eca6[utf8[2] - 0x88];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ae_table_eca7[utf8[2] - 0x80];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ae_table_eca8[utf8[2] - 0x94];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ae_table_eca9[utf8[2] - 0x8c];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ae_table_ecaa[utf8[2] - 0x84];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ae_table_ecab[utf8[2] - 0x98];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ae_table_ecac[utf8[2] - 0x90];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ae_table_ecad[utf8[2] - 0x88];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ae_table_ecae[utf8[2] - 0x80];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ae_table_ecaf[utf8[2] - 0x94];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ae_table_ecb0[utf8[2] - 0x8c];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ae_table_ecb1[utf8[2] - 0x84];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ae_table_ecb2[utf8[2] - 0x98];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ae_table_ecb3[utf8[2] - 0x90];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ae_table_ecb4[utf8[2] - 0x88];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ae_table_ecb5[utf8[2] - 0x80];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ae_table_ecb6[utf8[2] - 0x94];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ae_table_ecb7[utf8[2] - 0x8c];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ae_table_ecb8[utf8[2] - 0x84];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ae_table_ecb9[utf8[2] - 0x98];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ae_table_ecba[utf8[2] - 0x90];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ae_table_ecbb[utf8[2] - 0x88];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ae_table_ecbc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ae_table_ecbd[utf8[2] - 0x94];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ae_table_ecbe[utf8[2] - 0x8c];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ae_table_ecbf[utf8[2] - 0x84];
        }
        break;
      default :
        break;
      }
      break;
    case 0xed :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ae_table_ed80[utf8[2] - 0x98];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ae_table_ed81[utf8[2] - 0x90];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ae_table_ed82[utf8[2] - 0x88];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ae_table_ed83[utf8[2] - 0x80];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ae_table_ed84[utf8[2] - 0x94];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ae_table_ed85[utf8[2] - 0x8c];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ae_table_ed86[utf8[2] - 0x84];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ae_table_ed87[utf8[2] - 0x98];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ae_table_ed88[utf8[2] - 0x90];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ae_table_ed89[utf8[2] - 0x88];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ae_table_ed8a[utf8[2] - 0x80];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ae_table_ed8b[utf8[2] - 0x94];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ae_table_ed8c[utf8[2] - 0x8c];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ae_table_ed8d[utf8[2] - 0x84];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ae_table_ed8e[utf8[2] - 0x98];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ae_table_ed8f[utf8[2] - 0x90];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ae_table_ed90[utf8[2] - 0x88];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ae_table_ed91[utf8[2] - 0x80];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ae_table_ed92[utf8[2] - 0x94];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ae_table_ed93[utf8[2] - 0x8c];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ae_table_ed94[utf8[2] - 0x84];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ae_table_ed95[utf8[2] - 0x98];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ae_table_ed96[utf8[2] - 0x90];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ae_table_ed97[utf8[2] - 0x88];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ae_table_ed98[utf8[2] - 0x80];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ae_table_ed99[utf8[2] - 0x94];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ae_table_ed9a[utf8[2] - 0x8c];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ae_table_ed9b[utf8[2] - 0x84];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ae_table_ed9c[utf8[2] - 0x98];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ae_table_ed9d[utf8[2] - 0x90];
        }
        break;
      case 0x9e :
        if (utf8[2] == 0x88) {
          return "\xed\x9e\x8f";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_e186af_table_eab0[] = {
  "\xea\xb0\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb0\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb1\x80"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eab1[] = {
  "\xea\xb1\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb1\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eab2[] = {
  "\xea\xb2\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eab3[] = {
  "\xea\xb3\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb4\x84"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eab4[] = {
  "\xea\xb4\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb4\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eab5[] = {
  "\xea\xb5\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eab6[] = {
  "\xea\xb6\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\xac"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eab7[] = {
  "\xea\xb7\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb7\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb8\x80"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eab8[] = {
  "\xea\xb8\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb8\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eab9[] = {
  "\xea\xb9\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eaba[] = {
  "\xea\xba\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbb\x84"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eabb[] = {
  "\xea\xbb\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbb\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eabc[] = {
  "\xea\xbc\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eabd[] = {
  "\xea\xbd\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\xac"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eabe[] = {
  "\xea\xbe\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbe\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbf\x80"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eabf[] = {
  "\xea\xbf\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbf\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eb80[] = {
  "\xeb\x80\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eb81[] = {
  "\xeb\x81\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x82\x84"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eb82[] = {
  "\xeb\x82\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x82\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eb83[] = {
  "\xeb\x83\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eb84[] = {
  "\xeb\x84\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\xac"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eb85[] = {
  "\xeb\x85\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x85\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x86\x80"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eb86[] = {
  "\xeb\x86\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x86\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eb87[] = {
  "\xeb\x87\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eb88[] = {
  "\xeb\x88\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x89\x84"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eb89[] = {
  "\xeb\x89\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x89\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eb8a[] = {
  "\xeb\x8a\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eb8b[] = {
  "\xeb\x8b\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\xac"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eb8c[] = {
  "\xeb\x8c\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8c\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8d\x80"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eb8d[] = {
  "\xeb\x8d\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8d\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eb8e[] = {
  "\xeb\x8e\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eb8f[] = {
  "\xeb\x8f\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x90\x84"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eb90[] = {
  "\xeb\x90\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x90\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eb91[] = {
  "\xeb\x91\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eb92[] = {
  "\xeb\x92\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\xac"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eb93[] = {
  "\xeb\x93\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x93\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x94\x80"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eb94[] = {
  "\xeb\x94\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x94\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eb95[] = {
  "\xeb\x95\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eb96[] = {
  "\xeb\x96\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x97\x84"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eb97[] = {
  "\xeb\x97\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x97\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eb98[] = {
  "\xeb\x98\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eb99[] = {
  "\xeb\x99\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\xac"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eb9a[] = {
  "\xeb\x9a\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9a\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9b\x80"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eb9b[] = {
  "\xeb\x9b\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9b\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eb9c[] = {
  "\xeb\x9c\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eb9d[] = {
  "\xeb\x9d\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9e\x84"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eb9e[] = {
  "\xeb\x9e\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9e\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eb9f[] = {
  "\xeb\x9f\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eba0[] = {
  "\xeb\xa0\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\xac"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eba1[] = {
  "\xeb\xa1\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa1\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa2\x80"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eba2[] = {
  "\xeb\xa2\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa2\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eba3[] = {
  "\xeb\xa3\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eba4[] = {
  "\xeb\xa4\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa5\x84"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eba5[] = {
  "\xeb\xa5\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa5\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eba6[] = {
  "\xeb\xa6\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eba7[] = {
  "\xeb\xa7\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\xac"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eba8[] = {
  "\xeb\xa8\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa8\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa9\x80"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eba9[] = {
  "\xeb\xa9\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa9\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ebaa[] = {
  "\xeb\xaa\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ebab[] = {
  "\xeb\xab\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xac\x84"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ebac[] = {
  "\xeb\xac\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xac\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ebad[] = {
  "\xeb\xad\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ebae[] = {
  "\xeb\xae\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\xac"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ebaf[] = {
  "\xeb\xaf\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaf\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb0\x80"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ebb0[] = {
  "\xeb\xb0\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb0\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ebb1[] = {
  "\xeb\xb1\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ebb2[] = {
  "\xeb\xb2\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb3\x84"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ebb3[] = {
  "\xeb\xb3\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb3\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ebb4[] = {
  "\xeb\xb4\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ebb5[] = {
  "\xeb\xb5\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\xac"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ebb6[] = {
  "\xeb\xb6\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb6\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb7\x80"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ebb7[] = {
  "\xeb\xb7\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb7\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ebb8[] = {
  "\xeb\xb8\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ebb9[] = {
  "\xeb\xb9\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xba\x84"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ebba[] = {
  "\xeb\xba\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xba\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ebbb[] = {
  "\xeb\xbb\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ebbc[] = {
  "\xeb\xbc\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\xac"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ebbd[] = {
  "\xeb\xbd\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbd\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xbe\x80"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ebbe[] = {
  "\xeb\xbe\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbe\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ebbf[] = {
  "\xeb\xbf\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ec80[] = {
  "\xec\x80\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x81\x84"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ec81[] = {
  "\xec\x81\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x81\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ec82[] = {
  "\xec\x82\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ec83[] = {
  "\xec\x83\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\xac"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ec84[] = {
  "\xec\x84\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x84\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x85\x80"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ec85[] = {
  "\xec\x85\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x85\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ec86[] = {
  "\xec\x86\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ec87[] = {
  "\xec\x87\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x88\x84"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ec88[] = {
  "\xec\x88\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x88\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ec89[] = {
  "\xec\x89\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ec8a[] = {
  "\xec\x8a\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\xac"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ec8b[] = {
  "\xec\x8b\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8b\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8c\x80"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ec8c[] = {
  "\xec\x8c\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8c\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ec8d[] = {
  "\xec\x8d\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ec8e[] = {
  "\xec\x8e\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8f\x84"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ec8f[] = {
  "\xec\x8f\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8f\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ec90[] = {
  "\xec\x90\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ec91[] = {
  "\xec\x91\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\xac"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ec92[] = {
  "\xec\x92\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x92\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x93\x80"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ec93[] = {
  "\xec\x93\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x93\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ec94[] = {
  "\xec\x94\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ec95[] = {
  "\xec\x95\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x96\x84"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ec96[] = {
  "\xec\x96\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x96\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ec97[] = {
  "\xec\x97\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ec98[] = {
  "\xec\x98\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\xac"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ec99[] = {
  "\xec\x99\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x99\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9a\x80"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ec9a[] = {
  "\xec\x9a\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9a\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ec9b[] = {
  "\xec\x9b\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ec9c[] = {
  "\xec\x9c\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9d\x84"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ec9d[] = {
  "\xec\x9d\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9d\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ec9e[] = {
  "\xec\x9e\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ec9f[] = {
  "\xec\x9f\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\xac"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eca0[] = {
  "\xec\xa0\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa0\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa1\x80"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eca1[] = {
  "\xec\xa1\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa1\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eca2[] = {
  "\xec\xa2\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eca3[] = {
  "\xec\xa3\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa4\x84"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eca4[] = {
  "\xec\xa4\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa4\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eca5[] = {
  "\xec\xa5\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eca6[] = {
  "\xec\xa6\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\xac"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eca7[] = {
  "\xec\xa7\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa7\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa8\x80"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eca8[] = {
  "\xec\xa8\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa8\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_eca9[] = {
  "\xec\xa9\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ecaa[] = {
  "\xec\xaa\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xab\x84"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ecab[] = {
  "\xec\xab\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xab\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ecac[] = {
  "\xec\xac\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ecad[] = {
  "\xec\xad\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\xac"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ecae[] = {
  "\xec\xae\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xae\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xaf\x80"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ecaf[] = {
  "\xec\xaf\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaf\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ecb0[] = {
  "\xec\xb0\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ecb1[] = {
  "\xec\xb1\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb2\x84"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ecb2[] = {
  "\xec\xb2\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb2\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ecb3[] = {
  "\xec\xb3\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ecb4[] = {
  "\xec\xb4\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\xac"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ecb5[] = {
  "\xec\xb5\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb5\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb6\x80"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ecb6[] = {
  "\xec\xb6\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb6\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ecb7[] = {
  "\xec\xb7\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ecb8[] = {
  "\xec\xb8\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb9\x84"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ecb9[] = {
  "\xec\xb9\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb9\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ecba[] = {
  "\xec\xba\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ecbb[] = {
  "\xec\xbb\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\xac"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ecbc[] = {
  "\xec\xbc\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbc\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbd\x80"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ecbd[] = {
  "\xec\xbd\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbd\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ecbe[] = {
  "\xec\xbe\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ecbf[] = {
  "\xec\xbf\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x80\x84"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ed80[] = {
  "\xed\x80\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x80\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ed81[] = {
  "\xed\x81\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ed82[] = {
  "\xed\x82\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\xac"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ed83[] = {
  "\xed\x83\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x83\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x84\x80"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ed84[] = {
  "\xed\x84\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x84\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ed85[] = {
  "\xed\x85\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ed86[] = {
  "\xed\x86\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x87\x84"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ed87[] = {
  "\xed\x87\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x87\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ed88[] = {
  "\xed\x88\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ed89[] = {
  "\xed\x89\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\xac"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ed8a[] = {
  "\xed\x8a\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8a\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8b\x80"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ed8b[] = {
  "\xed\x8b\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8b\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ed8c[] = {
  "\xed\x8c\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ed8d[] = {
  "\xed\x8d\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8e\x84"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ed8e[] = {
  "\xed\x8e\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8e\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ed8f[] = {
  "\xed\x8f\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ed90[] = {
  "\xed\x90\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\xac"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ed91[] = {
  "\xed\x91\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x91\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x92\x80"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ed92[] = {
  "\xed\x92\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x92\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ed93[] = {
  "\xed\x93\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ed94[] = {
  "\xed\x94\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x95\x84"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ed95[] = {
  "\xed\x95\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x95\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ed96[] = {
  "\xed\x96\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ed97[] = {
  "\xed\x97\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\xac"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ed98[] = {
  "\xed\x98\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x98\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x99\x80"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ed99[] = {
  "\xed\x99\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x99\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ed9a[] = {
  "\xed\x9a\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ed9b[] = {
  "\xed\x9b\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x9c\x84"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ed9c[] = {
  "\xed\x9c\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9c\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186af_table_ed9d[] = {
  "\xed\x9d\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\xb4"
};

static inline const char *
grn_nfkc50_compose_prefix_e186af(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xea :
      switch (utf8[1]) {
      case 0xb0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186af_table_eab0[utf8[2] - 0x80];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186af_table_eab1[utf8[2] - 0x94];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186af_table_eab2[utf8[2] - 0x8c];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186af_table_eab3[utf8[2] - 0x84];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186af_table_eab4[utf8[2] - 0x98];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186af_table_eab5[utf8[2] - 0x90];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186af_table_eab6[utf8[2] - 0x88];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186af_table_eab7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186af_table_eab8[utf8[2] - 0x94];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186af_table_eab9[utf8[2] - 0x8c];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186af_table_eaba[utf8[2] - 0x84];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186af_table_eabb[utf8[2] - 0x98];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186af_table_eabc[utf8[2] - 0x90];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186af_table_eabd[utf8[2] - 0x88];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186af_table_eabe[utf8[2] - 0x80];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186af_table_eabf[utf8[2] - 0x94];
        }
        break;
      default :
        break;
      }
      break;
    case 0xeb :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186af_table_eb80[utf8[2] - 0x8c];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186af_table_eb81[utf8[2] - 0x84];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186af_table_eb82[utf8[2] - 0x98];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186af_table_eb83[utf8[2] - 0x90];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186af_table_eb84[utf8[2] - 0x88];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186af_table_eb85[utf8[2] - 0x80];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186af_table_eb86[utf8[2] - 0x94];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186af_table_eb87[utf8[2] - 0x8c];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186af_table_eb88[utf8[2] - 0x84];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186af_table_eb89[utf8[2] - 0x98];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186af_table_eb8a[utf8[2] - 0x90];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186af_table_eb8b[utf8[2] - 0x88];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186af_table_eb8c[utf8[2] - 0x80];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186af_table_eb8d[utf8[2] - 0x94];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186af_table_eb8e[utf8[2] - 0x8c];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186af_table_eb8f[utf8[2] - 0x84];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186af_table_eb90[utf8[2] - 0x98];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186af_table_eb91[utf8[2] - 0x90];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186af_table_eb92[utf8[2] - 0x88];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186af_table_eb93[utf8[2] - 0x80];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186af_table_eb94[utf8[2] - 0x94];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186af_table_eb95[utf8[2] - 0x8c];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186af_table_eb96[utf8[2] - 0x84];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186af_table_eb97[utf8[2] - 0x98];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186af_table_eb98[utf8[2] - 0x90];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186af_table_eb99[utf8[2] - 0x88];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186af_table_eb9a[utf8[2] - 0x80];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186af_table_eb9b[utf8[2] - 0x94];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186af_table_eb9c[utf8[2] - 0x8c];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186af_table_eb9d[utf8[2] - 0x84];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186af_table_eb9e[utf8[2] - 0x98];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186af_table_eb9f[utf8[2] - 0x90];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186af_table_eba0[utf8[2] - 0x88];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186af_table_eba1[utf8[2] - 0x80];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186af_table_eba2[utf8[2] - 0x94];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186af_table_eba3[utf8[2] - 0x8c];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186af_table_eba4[utf8[2] - 0x84];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186af_table_eba5[utf8[2] - 0x98];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186af_table_eba6[utf8[2] - 0x90];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186af_table_eba7[utf8[2] - 0x88];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186af_table_eba8[utf8[2] - 0x80];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186af_table_eba9[utf8[2] - 0x94];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186af_table_ebaa[utf8[2] - 0x8c];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186af_table_ebab[utf8[2] - 0x84];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186af_table_ebac[utf8[2] - 0x98];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186af_table_ebad[utf8[2] - 0x90];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186af_table_ebae[utf8[2] - 0x88];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186af_table_ebaf[utf8[2] - 0x80];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186af_table_ebb0[utf8[2] - 0x94];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186af_table_ebb1[utf8[2] - 0x8c];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186af_table_ebb2[utf8[2] - 0x84];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186af_table_ebb3[utf8[2] - 0x98];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186af_table_ebb4[utf8[2] - 0x90];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186af_table_ebb5[utf8[2] - 0x88];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186af_table_ebb6[utf8[2] - 0x80];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186af_table_ebb7[utf8[2] - 0x94];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186af_table_ebb8[utf8[2] - 0x8c];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186af_table_ebb9[utf8[2] - 0x84];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186af_table_ebba[utf8[2] - 0x98];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186af_table_ebbb[utf8[2] - 0x90];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186af_table_ebbc[utf8[2] - 0x88];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186af_table_ebbd[utf8[2] - 0x80];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186af_table_ebbe[utf8[2] - 0x94];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186af_table_ebbf[utf8[2] - 0x8c];
        }
        break;
      default :
        break;
      }
      break;
    case 0xec :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186af_table_ec80[utf8[2] - 0x84];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186af_table_ec81[utf8[2] - 0x98];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186af_table_ec82[utf8[2] - 0x90];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186af_table_ec83[utf8[2] - 0x88];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186af_table_ec84[utf8[2] - 0x80];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186af_table_ec85[utf8[2] - 0x94];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186af_table_ec86[utf8[2] - 0x8c];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186af_table_ec87[utf8[2] - 0x84];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186af_table_ec88[utf8[2] - 0x98];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186af_table_ec89[utf8[2] - 0x90];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186af_table_ec8a[utf8[2] - 0x88];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186af_table_ec8b[utf8[2] - 0x80];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186af_table_ec8c[utf8[2] - 0x94];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186af_table_ec8d[utf8[2] - 0x8c];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186af_table_ec8e[utf8[2] - 0x84];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186af_table_ec8f[utf8[2] - 0x98];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186af_table_ec90[utf8[2] - 0x90];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186af_table_ec91[utf8[2] - 0x88];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186af_table_ec92[utf8[2] - 0x80];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186af_table_ec93[utf8[2] - 0x94];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186af_table_ec94[utf8[2] - 0x8c];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186af_table_ec95[utf8[2] - 0x84];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186af_table_ec96[utf8[2] - 0x98];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186af_table_ec97[utf8[2] - 0x90];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186af_table_ec98[utf8[2] - 0x88];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186af_table_ec99[utf8[2] - 0x80];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186af_table_ec9a[utf8[2] - 0x94];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186af_table_ec9b[utf8[2] - 0x8c];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186af_table_ec9c[utf8[2] - 0x84];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186af_table_ec9d[utf8[2] - 0x98];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186af_table_ec9e[utf8[2] - 0x90];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186af_table_ec9f[utf8[2] - 0x88];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186af_table_eca0[utf8[2] - 0x80];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186af_table_eca1[utf8[2] - 0x94];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186af_table_eca2[utf8[2] - 0x8c];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186af_table_eca3[utf8[2] - 0x84];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186af_table_eca4[utf8[2] - 0x98];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186af_table_eca5[utf8[2] - 0x90];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186af_table_eca6[utf8[2] - 0x88];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186af_table_eca7[utf8[2] - 0x80];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186af_table_eca8[utf8[2] - 0x94];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186af_table_eca9[utf8[2] - 0x8c];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186af_table_ecaa[utf8[2] - 0x84];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186af_table_ecab[utf8[2] - 0x98];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186af_table_ecac[utf8[2] - 0x90];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186af_table_ecad[utf8[2] - 0x88];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186af_table_ecae[utf8[2] - 0x80];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186af_table_ecaf[utf8[2] - 0x94];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186af_table_ecb0[utf8[2] - 0x8c];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186af_table_ecb1[utf8[2] - 0x84];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186af_table_ecb2[utf8[2] - 0x98];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186af_table_ecb3[utf8[2] - 0x90];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186af_table_ecb4[utf8[2] - 0x88];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186af_table_ecb5[utf8[2] - 0x80];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186af_table_ecb6[utf8[2] - 0x94];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186af_table_ecb7[utf8[2] - 0x8c];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186af_table_ecb8[utf8[2] - 0x84];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186af_table_ecb9[utf8[2] - 0x98];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186af_table_ecba[utf8[2] - 0x90];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186af_table_ecbb[utf8[2] - 0x88];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186af_table_ecbc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186af_table_ecbd[utf8[2] - 0x94];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186af_table_ecbe[utf8[2] - 0x8c];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186af_table_ecbf[utf8[2] - 0x84];
        }
        break;
      default :
        break;
      }
      break;
    case 0xed :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186af_table_ed80[utf8[2] - 0x98];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186af_table_ed81[utf8[2] - 0x90];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186af_table_ed82[utf8[2] - 0x88];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186af_table_ed83[utf8[2] - 0x80];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186af_table_ed84[utf8[2] - 0x94];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186af_table_ed85[utf8[2] - 0x8c];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186af_table_ed86[utf8[2] - 0x84];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186af_table_ed87[utf8[2] - 0x98];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186af_table_ed88[utf8[2] - 0x90];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186af_table_ed89[utf8[2] - 0x88];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186af_table_ed8a[utf8[2] - 0x80];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186af_table_ed8b[utf8[2] - 0x94];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186af_table_ed8c[utf8[2] - 0x8c];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186af_table_ed8d[utf8[2] - 0x84];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186af_table_ed8e[utf8[2] - 0x98];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186af_table_ed8f[utf8[2] - 0x90];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186af_table_ed90[utf8[2] - 0x88];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186af_table_ed91[utf8[2] - 0x80];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186af_table_ed92[utf8[2] - 0x94];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186af_table_ed93[utf8[2] - 0x8c];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186af_table_ed94[utf8[2] - 0x84];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186af_table_ed95[utf8[2] - 0x98];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186af_table_ed96[utf8[2] - 0x90];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186af_table_ed97[utf8[2] - 0x88];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186af_table_ed98[utf8[2] - 0x80];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186af_table_ed99[utf8[2] - 0x94];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186af_table_ed9a[utf8[2] - 0x8c];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186af_table_ed9b[utf8[2] - 0x84];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186af_table_ed9c[utf8[2] - 0x98];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186af_table_ed9d[utf8[2] - 0x90];
        }
        break;
      case 0x9e :
        if (utf8[2] == 0x88) {
          return "\xed\x9e\x90";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_e186b0_table_eab0[] = {
  "\xea\xb0\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb0\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb1\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eab1[] = {
  "\xea\xb1\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb1\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eab2[] = {
  "\xea\xb2\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eab3[] = {
  "\xea\xb3\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb4\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eab4[] = {
  "\xea\xb4\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb4\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eab5[] = {
  "\xea\xb5\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eab6[] = {
  "\xea\xb6\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\xad"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eab7[] = {
  "\xea\xb7\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb7\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb8\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eab8[] = {
  "\xea\xb8\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb8\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eab9[] = {
  "\xea\xb9\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eaba[] = {
  "\xea\xba\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbb\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eabb[] = {
  "\xea\xbb\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbb\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eabc[] = {
  "\xea\xbc\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eabd[] = {
  "\xea\xbd\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\xad"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eabe[] = {
  "\xea\xbe\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbe\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbf\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eabf[] = {
  "\xea\xbf\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbf\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eb80[] = {
  "\xeb\x80\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eb81[] = {
  "\xeb\x81\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x82\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eb82[] = {
  "\xeb\x82\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x82\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eb83[] = {
  "\xeb\x83\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eb84[] = {
  "\xeb\x84\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\xad"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eb85[] = {
  "\xeb\x85\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x85\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x86\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eb86[] = {
  "\xeb\x86\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x86\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eb87[] = {
  "\xeb\x87\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eb88[] = {
  "\xeb\x88\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x89\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eb89[] = {
  "\xeb\x89\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x89\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eb8a[] = {
  "\xeb\x8a\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eb8b[] = {
  "\xeb\x8b\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\xad"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eb8c[] = {
  "\xeb\x8c\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8c\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8d\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eb8d[] = {
  "\xeb\x8d\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8d\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eb8e[] = {
  "\xeb\x8e\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eb8f[] = {
  "\xeb\x8f\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x90\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eb90[] = {
  "\xeb\x90\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x90\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eb91[] = {
  "\xeb\x91\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eb92[] = {
  "\xeb\x92\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\xad"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eb93[] = {
  "\xeb\x93\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x93\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x94\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eb94[] = {
  "\xeb\x94\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x94\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eb95[] = {
  "\xeb\x95\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eb96[] = {
  "\xeb\x96\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x97\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eb97[] = {
  "\xeb\x97\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x97\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eb98[] = {
  "\xeb\x98\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eb99[] = {
  "\xeb\x99\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\xad"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eb9a[] = {
  "\xeb\x9a\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9a\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9b\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eb9b[] = {
  "\xeb\x9b\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9b\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eb9c[] = {
  "\xeb\x9c\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eb9d[] = {
  "\xeb\x9d\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9e\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eb9e[] = {
  "\xeb\x9e\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9e\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eb9f[] = {
  "\xeb\x9f\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eba0[] = {
  "\xeb\xa0\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\xad"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eba1[] = {
  "\xeb\xa1\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa1\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa2\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eba2[] = {
  "\xeb\xa2\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa2\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eba3[] = {
  "\xeb\xa3\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eba4[] = {
  "\xeb\xa4\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa5\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eba5[] = {
  "\xeb\xa5\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa5\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eba6[] = {
  "\xeb\xa6\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eba7[] = {
  "\xeb\xa7\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\xad"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eba8[] = {
  "\xeb\xa8\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa8\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa9\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eba9[] = {
  "\xeb\xa9\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa9\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ebaa[] = {
  "\xeb\xaa\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ebab[] = {
  "\xeb\xab\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xac\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ebac[] = {
  "\xeb\xac\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xac\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ebad[] = {
  "\xeb\xad\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ebae[] = {
  "\xeb\xae\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\xad"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ebaf[] = {
  "\xeb\xaf\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaf\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb0\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ebb0[] = {
  "\xeb\xb0\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb0\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ebb1[] = {
  "\xeb\xb1\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ebb2[] = {
  "\xeb\xb2\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb3\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ebb3[] = {
  "\xeb\xb3\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb3\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ebb4[] = {
  "\xeb\xb4\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ebb5[] = {
  "\xeb\xb5\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\xad"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ebb6[] = {
  "\xeb\xb6\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb6\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb7\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ebb7[] = {
  "\xeb\xb7\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb7\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ebb8[] = {
  "\xeb\xb8\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ebb9[] = {
  "\xeb\xb9\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xba\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ebba[] = {
  "\xeb\xba\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xba\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ebbb[] = {
  "\xeb\xbb\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ebbc[] = {
  "\xeb\xbc\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\xad"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ebbd[] = {
  "\xeb\xbd\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbd\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xbe\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ebbe[] = {
  "\xeb\xbe\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbe\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ebbf[] = {
  "\xeb\xbf\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ec80[] = {
  "\xec\x80\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x81\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ec81[] = {
  "\xec\x81\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x81\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ec82[] = {
  "\xec\x82\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ec83[] = {
  "\xec\x83\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\xad"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ec84[] = {
  "\xec\x84\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x84\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x85\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ec85[] = {
  "\xec\x85\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x85\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ec86[] = {
  "\xec\x86\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ec87[] = {
  "\xec\x87\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x88\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ec88[] = {
  "\xec\x88\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x88\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ec89[] = {
  "\xec\x89\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ec8a[] = {
  "\xec\x8a\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\xad"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ec8b[] = {
  "\xec\x8b\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8b\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8c\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ec8c[] = {
  "\xec\x8c\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8c\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ec8d[] = {
  "\xec\x8d\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ec8e[] = {
  "\xec\x8e\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8f\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ec8f[] = {
  "\xec\x8f\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8f\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ec90[] = {
  "\xec\x90\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ec91[] = {
  "\xec\x91\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\xad"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ec92[] = {
  "\xec\x92\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x92\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x93\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ec93[] = {
  "\xec\x93\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x93\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ec94[] = {
  "\xec\x94\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ec95[] = {
  "\xec\x95\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x96\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ec96[] = {
  "\xec\x96\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x96\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ec97[] = {
  "\xec\x97\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ec98[] = {
  "\xec\x98\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\xad"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ec99[] = {
  "\xec\x99\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x99\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9a\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ec9a[] = {
  "\xec\x9a\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9a\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ec9b[] = {
  "\xec\x9b\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ec9c[] = {
  "\xec\x9c\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9d\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ec9d[] = {
  "\xec\x9d\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9d\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ec9e[] = {
  "\xec\x9e\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ec9f[] = {
  "\xec\x9f\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\xad"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eca0[] = {
  "\xec\xa0\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa0\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa1\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eca1[] = {
  "\xec\xa1\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa1\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eca2[] = {
  "\xec\xa2\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eca3[] = {
  "\xec\xa3\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa4\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eca4[] = {
  "\xec\xa4\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa4\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eca5[] = {
  "\xec\xa5\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eca6[] = {
  "\xec\xa6\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\xad"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eca7[] = {
  "\xec\xa7\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa7\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa8\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eca8[] = {
  "\xec\xa8\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa8\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_eca9[] = {
  "\xec\xa9\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ecaa[] = {
  "\xec\xaa\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xab\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ecab[] = {
  "\xec\xab\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xab\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ecac[] = {
  "\xec\xac\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ecad[] = {
  "\xec\xad\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\xad"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ecae[] = {
  "\xec\xae\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xae\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xaf\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ecaf[] = {
  "\xec\xaf\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaf\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ecb0[] = {
  "\xec\xb0\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ecb1[] = {
  "\xec\xb1\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb2\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ecb2[] = {
  "\xec\xb2\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb2\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ecb3[] = {
  "\xec\xb3\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ecb4[] = {
  "\xec\xb4\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\xad"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ecb5[] = {
  "\xec\xb5\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb5\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb6\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ecb6[] = {
  "\xec\xb6\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb6\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ecb7[] = {
  "\xec\xb7\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ecb8[] = {
  "\xec\xb8\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb9\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ecb9[] = {
  "\xec\xb9\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb9\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ecba[] = {
  "\xec\xba\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ecbb[] = {
  "\xec\xbb\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\xad"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ecbc[] = {
  "\xec\xbc\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbc\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbd\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ecbd[] = {
  "\xec\xbd\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbd\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ecbe[] = {
  "\xec\xbe\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ecbf[] = {
  "\xec\xbf\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x80\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ed80[] = {
  "\xed\x80\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x80\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ed81[] = {
  "\xed\x81\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ed82[] = {
  "\xed\x82\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\xad"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ed83[] = {
  "\xed\x83\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x83\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x84\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ed84[] = {
  "\xed\x84\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x84\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ed85[] = {
  "\xed\x85\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ed86[] = {
  "\xed\x86\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x87\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ed87[] = {
  "\xed\x87\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x87\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ed88[] = {
  "\xed\x88\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ed89[] = {
  "\xed\x89\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\xad"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ed8a[] = {
  "\xed\x8a\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8a\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8b\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ed8b[] = {
  "\xed\x8b\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8b\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ed8c[] = {
  "\xed\x8c\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ed8d[] = {
  "\xed\x8d\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8e\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ed8e[] = {
  "\xed\x8e\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8e\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ed8f[] = {
  "\xed\x8f\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ed90[] = {
  "\xed\x90\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\xad"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ed91[] = {
  "\xed\x91\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x91\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x92\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ed92[] = {
  "\xed\x92\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x92\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ed93[] = {
  "\xed\x93\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ed94[] = {
  "\xed\x94\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x95\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ed95[] = {
  "\xed\x95\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x95\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ed96[] = {
  "\xed\x96\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ed97[] = {
  "\xed\x97\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\xad"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ed98[] = {
  "\xed\x98\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x98\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x99\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ed99[] = {
  "\xed\x99\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x99\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ed9a[] = {
  "\xed\x9a\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ed9b[] = {
  "\xed\x9b\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x9c\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ed9c[] = {
  "\xed\x9c\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9c\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b0_table_ed9d[] = {
  "\xed\x9d\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\xb5"
};

static inline const char *
grn_nfkc50_compose_prefix_e186b0(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xea :
      switch (utf8[1]) {
      case 0xb0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b0_table_eab0[utf8[2] - 0x80];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b0_table_eab1[utf8[2] - 0x94];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b0_table_eab2[utf8[2] - 0x8c];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b0_table_eab3[utf8[2] - 0x84];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b0_table_eab4[utf8[2] - 0x98];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b0_table_eab5[utf8[2] - 0x90];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b0_table_eab6[utf8[2] - 0x88];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b0_table_eab7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b0_table_eab8[utf8[2] - 0x94];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b0_table_eab9[utf8[2] - 0x8c];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b0_table_eaba[utf8[2] - 0x84];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b0_table_eabb[utf8[2] - 0x98];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b0_table_eabc[utf8[2] - 0x90];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b0_table_eabd[utf8[2] - 0x88];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b0_table_eabe[utf8[2] - 0x80];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b0_table_eabf[utf8[2] - 0x94];
        }
        break;
      default :
        break;
      }
      break;
    case 0xeb :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b0_table_eb80[utf8[2] - 0x8c];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b0_table_eb81[utf8[2] - 0x84];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b0_table_eb82[utf8[2] - 0x98];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b0_table_eb83[utf8[2] - 0x90];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b0_table_eb84[utf8[2] - 0x88];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b0_table_eb85[utf8[2] - 0x80];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b0_table_eb86[utf8[2] - 0x94];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b0_table_eb87[utf8[2] - 0x8c];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b0_table_eb88[utf8[2] - 0x84];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b0_table_eb89[utf8[2] - 0x98];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b0_table_eb8a[utf8[2] - 0x90];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b0_table_eb8b[utf8[2] - 0x88];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b0_table_eb8c[utf8[2] - 0x80];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b0_table_eb8d[utf8[2] - 0x94];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b0_table_eb8e[utf8[2] - 0x8c];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b0_table_eb8f[utf8[2] - 0x84];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b0_table_eb90[utf8[2] - 0x98];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b0_table_eb91[utf8[2] - 0x90];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b0_table_eb92[utf8[2] - 0x88];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b0_table_eb93[utf8[2] - 0x80];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b0_table_eb94[utf8[2] - 0x94];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b0_table_eb95[utf8[2] - 0x8c];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b0_table_eb96[utf8[2] - 0x84];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b0_table_eb97[utf8[2] - 0x98];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b0_table_eb98[utf8[2] - 0x90];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b0_table_eb99[utf8[2] - 0x88];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b0_table_eb9a[utf8[2] - 0x80];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b0_table_eb9b[utf8[2] - 0x94];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b0_table_eb9c[utf8[2] - 0x8c];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b0_table_eb9d[utf8[2] - 0x84];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b0_table_eb9e[utf8[2] - 0x98];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b0_table_eb9f[utf8[2] - 0x90];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b0_table_eba0[utf8[2] - 0x88];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b0_table_eba1[utf8[2] - 0x80];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b0_table_eba2[utf8[2] - 0x94];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b0_table_eba3[utf8[2] - 0x8c];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b0_table_eba4[utf8[2] - 0x84];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b0_table_eba5[utf8[2] - 0x98];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b0_table_eba6[utf8[2] - 0x90];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b0_table_eba7[utf8[2] - 0x88];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b0_table_eba8[utf8[2] - 0x80];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b0_table_eba9[utf8[2] - 0x94];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b0_table_ebaa[utf8[2] - 0x8c];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b0_table_ebab[utf8[2] - 0x84];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b0_table_ebac[utf8[2] - 0x98];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b0_table_ebad[utf8[2] - 0x90];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b0_table_ebae[utf8[2] - 0x88];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b0_table_ebaf[utf8[2] - 0x80];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b0_table_ebb0[utf8[2] - 0x94];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b0_table_ebb1[utf8[2] - 0x8c];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b0_table_ebb2[utf8[2] - 0x84];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b0_table_ebb3[utf8[2] - 0x98];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b0_table_ebb4[utf8[2] - 0x90];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b0_table_ebb5[utf8[2] - 0x88];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b0_table_ebb6[utf8[2] - 0x80];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b0_table_ebb7[utf8[2] - 0x94];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b0_table_ebb8[utf8[2] - 0x8c];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b0_table_ebb9[utf8[2] - 0x84];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b0_table_ebba[utf8[2] - 0x98];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b0_table_ebbb[utf8[2] - 0x90];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b0_table_ebbc[utf8[2] - 0x88];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b0_table_ebbd[utf8[2] - 0x80];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b0_table_ebbe[utf8[2] - 0x94];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b0_table_ebbf[utf8[2] - 0x8c];
        }
        break;
      default :
        break;
      }
      break;
    case 0xec :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b0_table_ec80[utf8[2] - 0x84];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b0_table_ec81[utf8[2] - 0x98];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b0_table_ec82[utf8[2] - 0x90];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b0_table_ec83[utf8[2] - 0x88];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b0_table_ec84[utf8[2] - 0x80];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b0_table_ec85[utf8[2] - 0x94];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b0_table_ec86[utf8[2] - 0x8c];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b0_table_ec87[utf8[2] - 0x84];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b0_table_ec88[utf8[2] - 0x98];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b0_table_ec89[utf8[2] - 0x90];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b0_table_ec8a[utf8[2] - 0x88];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b0_table_ec8b[utf8[2] - 0x80];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b0_table_ec8c[utf8[2] - 0x94];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b0_table_ec8d[utf8[2] - 0x8c];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b0_table_ec8e[utf8[2] - 0x84];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b0_table_ec8f[utf8[2] - 0x98];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b0_table_ec90[utf8[2] - 0x90];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b0_table_ec91[utf8[2] - 0x88];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b0_table_ec92[utf8[2] - 0x80];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b0_table_ec93[utf8[2] - 0x94];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b0_table_ec94[utf8[2] - 0x8c];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b0_table_ec95[utf8[2] - 0x84];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b0_table_ec96[utf8[2] - 0x98];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b0_table_ec97[utf8[2] - 0x90];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b0_table_ec98[utf8[2] - 0x88];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b0_table_ec99[utf8[2] - 0x80];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b0_table_ec9a[utf8[2] - 0x94];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b0_table_ec9b[utf8[2] - 0x8c];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b0_table_ec9c[utf8[2] - 0x84];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b0_table_ec9d[utf8[2] - 0x98];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b0_table_ec9e[utf8[2] - 0x90];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b0_table_ec9f[utf8[2] - 0x88];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b0_table_eca0[utf8[2] - 0x80];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b0_table_eca1[utf8[2] - 0x94];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b0_table_eca2[utf8[2] - 0x8c];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b0_table_eca3[utf8[2] - 0x84];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b0_table_eca4[utf8[2] - 0x98];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b0_table_eca5[utf8[2] - 0x90];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b0_table_eca6[utf8[2] - 0x88];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b0_table_eca7[utf8[2] - 0x80];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b0_table_eca8[utf8[2] - 0x94];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b0_table_eca9[utf8[2] - 0x8c];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b0_table_ecaa[utf8[2] - 0x84];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b0_table_ecab[utf8[2] - 0x98];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b0_table_ecac[utf8[2] - 0x90];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b0_table_ecad[utf8[2] - 0x88];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b0_table_ecae[utf8[2] - 0x80];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b0_table_ecaf[utf8[2] - 0x94];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b0_table_ecb0[utf8[2] - 0x8c];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b0_table_ecb1[utf8[2] - 0x84];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b0_table_ecb2[utf8[2] - 0x98];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b0_table_ecb3[utf8[2] - 0x90];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b0_table_ecb4[utf8[2] - 0x88];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b0_table_ecb5[utf8[2] - 0x80];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b0_table_ecb6[utf8[2] - 0x94];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b0_table_ecb7[utf8[2] - 0x8c];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b0_table_ecb8[utf8[2] - 0x84];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b0_table_ecb9[utf8[2] - 0x98];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b0_table_ecba[utf8[2] - 0x90];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b0_table_ecbb[utf8[2] - 0x88];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b0_table_ecbc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b0_table_ecbd[utf8[2] - 0x94];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b0_table_ecbe[utf8[2] - 0x8c];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b0_table_ecbf[utf8[2] - 0x84];
        }
        break;
      default :
        break;
      }
      break;
    case 0xed :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b0_table_ed80[utf8[2] - 0x98];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b0_table_ed81[utf8[2] - 0x90];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b0_table_ed82[utf8[2] - 0x88];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b0_table_ed83[utf8[2] - 0x80];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b0_table_ed84[utf8[2] - 0x94];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b0_table_ed85[utf8[2] - 0x8c];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b0_table_ed86[utf8[2] - 0x84];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b0_table_ed87[utf8[2] - 0x98];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b0_table_ed88[utf8[2] - 0x90];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b0_table_ed89[utf8[2] - 0x88];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b0_table_ed8a[utf8[2] - 0x80];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b0_table_ed8b[utf8[2] - 0x94];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b0_table_ed8c[utf8[2] - 0x8c];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b0_table_ed8d[utf8[2] - 0x84];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b0_table_ed8e[utf8[2] - 0x98];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b0_table_ed8f[utf8[2] - 0x90];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b0_table_ed90[utf8[2] - 0x88];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b0_table_ed91[utf8[2] - 0x80];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b0_table_ed92[utf8[2] - 0x94];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b0_table_ed93[utf8[2] - 0x8c];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b0_table_ed94[utf8[2] - 0x84];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b0_table_ed95[utf8[2] - 0x98];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b0_table_ed96[utf8[2] - 0x90];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b0_table_ed97[utf8[2] - 0x88];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b0_table_ed98[utf8[2] - 0x80];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b0_table_ed99[utf8[2] - 0x94];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b0_table_ed9a[utf8[2] - 0x8c];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b0_table_ed9b[utf8[2] - 0x84];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b0_table_ed9c[utf8[2] - 0x98];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b0_table_ed9d[utf8[2] - 0x90];
        }
        break;
      case 0x9e :
        if (utf8[2] == 0x88) {
          return "\xed\x9e\x91";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_e186b1_table_eab0[] = {
  "\xea\xb0\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb0\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb1\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eab1[] = {
  "\xea\xb1\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb1\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eab2[] = {
  "\xea\xb2\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eab3[] = {
  "\xea\xb3\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb4\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eab4[] = {
  "\xea\xb4\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb4\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eab5[] = {
  "\xea\xb5\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eab6[] = {
  "\xea\xb6\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\xae"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eab7[] = {
  "\xea\xb7\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb7\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb8\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eab8[] = {
  "\xea\xb8\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb8\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eab9[] = {
  "\xea\xb9\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eaba[] = {
  "\xea\xba\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbb\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eabb[] = {
  "\xea\xbb\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbb\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eabc[] = {
  "\xea\xbc\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eabd[] = {
  "\xea\xbd\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\xae"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eabe[] = {
  "\xea\xbe\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbe\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbf\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eabf[] = {
  "\xea\xbf\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbf\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eb80[] = {
  "\xeb\x80\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eb81[] = {
  "\xeb\x81\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x82\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eb82[] = {
  "\xeb\x82\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x82\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eb83[] = {
  "\xeb\x83\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eb84[] = {
  "\xeb\x84\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\xae"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eb85[] = {
  "\xeb\x85\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x85\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x86\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eb86[] = {
  "\xeb\x86\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x86\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eb87[] = {
  "\xeb\x87\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eb88[] = {
  "\xeb\x88\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x89\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eb89[] = {
  "\xeb\x89\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x89\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eb8a[] = {
  "\xeb\x8a\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eb8b[] = {
  "\xeb\x8b\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\xae"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eb8c[] = {
  "\xeb\x8c\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8c\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8d\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eb8d[] = {
  "\xeb\x8d\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8d\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eb8e[] = {
  "\xeb\x8e\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eb8f[] = {
  "\xeb\x8f\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x90\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eb90[] = {
  "\xeb\x90\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x90\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eb91[] = {
  "\xeb\x91\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eb92[] = {
  "\xeb\x92\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\xae"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eb93[] = {
  "\xeb\x93\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x93\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x94\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eb94[] = {
  "\xeb\x94\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x94\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eb95[] = {
  "\xeb\x95\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eb96[] = {
  "\xeb\x96\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x97\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eb97[] = {
  "\xeb\x97\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x97\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eb98[] = {
  "\xeb\x98\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eb99[] = {
  "\xeb\x99\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\xae"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eb9a[] = {
  "\xeb\x9a\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9a\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9b\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eb9b[] = {
  "\xeb\x9b\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9b\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eb9c[] = {
  "\xeb\x9c\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eb9d[] = {
  "\xeb\x9d\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9e\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eb9e[] = {
  "\xeb\x9e\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9e\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eb9f[] = {
  "\xeb\x9f\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eba0[] = {
  "\xeb\xa0\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\xae"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eba1[] = {
  "\xeb\xa1\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa1\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa2\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eba2[] = {
  "\xeb\xa2\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa2\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eba3[] = {
  "\xeb\xa3\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eba4[] = {
  "\xeb\xa4\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa5\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eba5[] = {
  "\xeb\xa5\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa5\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eba6[] = {
  "\xeb\xa6\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eba7[] = {
  "\xeb\xa7\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\xae"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eba8[] = {
  "\xeb\xa8\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa8\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa9\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eba9[] = {
  "\xeb\xa9\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa9\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ebaa[] = {
  "\xeb\xaa\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ebab[] = {
  "\xeb\xab\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xac\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ebac[] = {
  "\xeb\xac\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xac\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ebad[] = {
  "\xeb\xad\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ebae[] = {
  "\xeb\xae\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\xae"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ebaf[] = {
  "\xeb\xaf\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaf\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb0\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ebb0[] = {
  "\xeb\xb0\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb0\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ebb1[] = {
  "\xeb\xb1\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ebb2[] = {
  "\xeb\xb2\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb3\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ebb3[] = {
  "\xeb\xb3\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb3\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ebb4[] = {
  "\xeb\xb4\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ebb5[] = {
  "\xeb\xb5\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\xae"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ebb6[] = {
  "\xeb\xb6\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb6\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb7\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ebb7[] = {
  "\xeb\xb7\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb7\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ebb8[] = {
  "\xeb\xb8\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ebb9[] = {
  "\xeb\xb9\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xba\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ebba[] = {
  "\xeb\xba\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xba\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ebbb[] = {
  "\xeb\xbb\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ebbc[] = {
  "\xeb\xbc\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\xae"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ebbd[] = {
  "\xeb\xbd\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbd\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xbe\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ebbe[] = {
  "\xeb\xbe\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbe\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ebbf[] = {
  "\xeb\xbf\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ec80[] = {
  "\xec\x80\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x81\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ec81[] = {
  "\xec\x81\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x81\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ec82[] = {
  "\xec\x82\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ec83[] = {
  "\xec\x83\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\xae"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ec84[] = {
  "\xec\x84\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x84\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x85\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ec85[] = {
  "\xec\x85\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x85\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ec86[] = {
  "\xec\x86\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ec87[] = {
  "\xec\x87\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x88\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ec88[] = {
  "\xec\x88\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x88\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ec89[] = {
  "\xec\x89\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ec8a[] = {
  "\xec\x8a\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\xae"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ec8b[] = {
  "\xec\x8b\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8b\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8c\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ec8c[] = {
  "\xec\x8c\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8c\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ec8d[] = {
  "\xec\x8d\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ec8e[] = {
  "\xec\x8e\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8f\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ec8f[] = {
  "\xec\x8f\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8f\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ec90[] = {
  "\xec\x90\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ec91[] = {
  "\xec\x91\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\xae"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ec92[] = {
  "\xec\x92\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x92\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x93\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ec93[] = {
  "\xec\x93\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x93\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ec94[] = {
  "\xec\x94\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ec95[] = {
  "\xec\x95\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x96\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ec96[] = {
  "\xec\x96\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x96\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ec97[] = {
  "\xec\x97\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ec98[] = {
  "\xec\x98\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\xae"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ec99[] = {
  "\xec\x99\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x99\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9a\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ec9a[] = {
  "\xec\x9a\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9a\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ec9b[] = {
  "\xec\x9b\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ec9c[] = {
  "\xec\x9c\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9d\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ec9d[] = {
  "\xec\x9d\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9d\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ec9e[] = {
  "\xec\x9e\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ec9f[] = {
  "\xec\x9f\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\xae"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eca0[] = {
  "\xec\xa0\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa0\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa1\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eca1[] = {
  "\xec\xa1\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa1\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eca2[] = {
  "\xec\xa2\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eca3[] = {
  "\xec\xa3\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa4\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eca4[] = {
  "\xec\xa4\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa4\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eca5[] = {
  "\xec\xa5\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eca6[] = {
  "\xec\xa6\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\xae"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eca7[] = {
  "\xec\xa7\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa7\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa8\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eca8[] = {
  "\xec\xa8\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa8\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_eca9[] = {
  "\xec\xa9\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ecaa[] = {
  "\xec\xaa\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xab\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ecab[] = {
  "\xec\xab\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xab\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ecac[] = {
  "\xec\xac\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ecad[] = {
  "\xec\xad\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\xae"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ecae[] = {
  "\xec\xae\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xae\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xaf\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ecaf[] = {
  "\xec\xaf\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaf\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ecb0[] = {
  "\xec\xb0\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ecb1[] = {
  "\xec\xb1\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb2\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ecb2[] = {
  "\xec\xb2\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb2\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ecb3[] = {
  "\xec\xb3\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ecb4[] = {
  "\xec\xb4\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\xae"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ecb5[] = {
  "\xec\xb5\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb5\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb6\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ecb6[] = {
  "\xec\xb6\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb6\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ecb7[] = {
  "\xec\xb7\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ecb8[] = {
  "\xec\xb8\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb9\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ecb9[] = {
  "\xec\xb9\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb9\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ecba[] = {
  "\xec\xba\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ecbb[] = {
  "\xec\xbb\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\xae"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ecbc[] = {
  "\xec\xbc\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbc\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbd\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ecbd[] = {
  "\xec\xbd\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbd\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ecbe[] = {
  "\xec\xbe\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ecbf[] = {
  "\xec\xbf\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x80\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ed80[] = {
  "\xed\x80\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x80\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ed81[] = {
  "\xed\x81\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ed82[] = {
  "\xed\x82\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\xae"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ed83[] = {
  "\xed\x83\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x83\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x84\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ed84[] = {
  "\xed\x84\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x84\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ed85[] = {
  "\xed\x85\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ed86[] = {
  "\xed\x86\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x87\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ed87[] = {
  "\xed\x87\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x87\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ed88[] = {
  "\xed\x88\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ed89[] = {
  "\xed\x89\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\xae"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ed8a[] = {
  "\xed\x8a\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8a\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8b\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ed8b[] = {
  "\xed\x8b\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8b\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ed8c[] = {
  "\xed\x8c\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ed8d[] = {
  "\xed\x8d\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8e\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ed8e[] = {
  "\xed\x8e\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8e\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ed8f[] = {
  "\xed\x8f\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ed90[] = {
  "\xed\x90\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\xae"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ed91[] = {
  "\xed\x91\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x91\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x92\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ed92[] = {
  "\xed\x92\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x92\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ed93[] = {
  "\xed\x93\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ed94[] = {
  "\xed\x94\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x95\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ed95[] = {
  "\xed\x95\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x95\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ed96[] = {
  "\xed\x96\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ed97[] = {
  "\xed\x97\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\xae"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ed98[] = {
  "\xed\x98\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x98\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x99\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ed99[] = {
  "\xed\x99\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x99\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ed9a[] = {
  "\xed\x9a\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ed9b[] = {
  "\xed\x9b\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x9c\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ed9c[] = {
  "\xed\x9c\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9c\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b1_table_ed9d[] = {
  "\xed\x9d\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\xb6"
};

static inline const char *
grn_nfkc50_compose_prefix_e186b1(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xea :
      switch (utf8[1]) {
      case 0xb0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b1_table_eab0[utf8[2] - 0x80];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b1_table_eab1[utf8[2] - 0x94];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b1_table_eab2[utf8[2] - 0x8c];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b1_table_eab3[utf8[2] - 0x84];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b1_table_eab4[utf8[2] - 0x98];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b1_table_eab5[utf8[2] - 0x90];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b1_table_eab6[utf8[2] - 0x88];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b1_table_eab7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b1_table_eab8[utf8[2] - 0x94];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b1_table_eab9[utf8[2] - 0x8c];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b1_table_eaba[utf8[2] - 0x84];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b1_table_eabb[utf8[2] - 0x98];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b1_table_eabc[utf8[2] - 0x90];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b1_table_eabd[utf8[2] - 0x88];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b1_table_eabe[utf8[2] - 0x80];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b1_table_eabf[utf8[2] - 0x94];
        }
        break;
      default :
        break;
      }
      break;
    case 0xeb :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b1_table_eb80[utf8[2] - 0x8c];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b1_table_eb81[utf8[2] - 0x84];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b1_table_eb82[utf8[2] - 0x98];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b1_table_eb83[utf8[2] - 0x90];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b1_table_eb84[utf8[2] - 0x88];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b1_table_eb85[utf8[2] - 0x80];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b1_table_eb86[utf8[2] - 0x94];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b1_table_eb87[utf8[2] - 0x8c];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b1_table_eb88[utf8[2] - 0x84];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b1_table_eb89[utf8[2] - 0x98];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b1_table_eb8a[utf8[2] - 0x90];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b1_table_eb8b[utf8[2] - 0x88];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b1_table_eb8c[utf8[2] - 0x80];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b1_table_eb8d[utf8[2] - 0x94];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b1_table_eb8e[utf8[2] - 0x8c];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b1_table_eb8f[utf8[2] - 0x84];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b1_table_eb90[utf8[2] - 0x98];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b1_table_eb91[utf8[2] - 0x90];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b1_table_eb92[utf8[2] - 0x88];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b1_table_eb93[utf8[2] - 0x80];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b1_table_eb94[utf8[2] - 0x94];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b1_table_eb95[utf8[2] - 0x8c];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b1_table_eb96[utf8[2] - 0x84];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b1_table_eb97[utf8[2] - 0x98];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b1_table_eb98[utf8[2] - 0x90];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b1_table_eb99[utf8[2] - 0x88];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b1_table_eb9a[utf8[2] - 0x80];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b1_table_eb9b[utf8[2] - 0x94];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b1_table_eb9c[utf8[2] - 0x8c];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b1_table_eb9d[utf8[2] - 0x84];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b1_table_eb9e[utf8[2] - 0x98];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b1_table_eb9f[utf8[2] - 0x90];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b1_table_eba0[utf8[2] - 0x88];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b1_table_eba1[utf8[2] - 0x80];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b1_table_eba2[utf8[2] - 0x94];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b1_table_eba3[utf8[2] - 0x8c];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b1_table_eba4[utf8[2] - 0x84];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b1_table_eba5[utf8[2] - 0x98];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b1_table_eba6[utf8[2] - 0x90];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b1_table_eba7[utf8[2] - 0x88];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b1_table_eba8[utf8[2] - 0x80];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b1_table_eba9[utf8[2] - 0x94];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b1_table_ebaa[utf8[2] - 0x8c];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b1_table_ebab[utf8[2] - 0x84];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b1_table_ebac[utf8[2] - 0x98];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b1_table_ebad[utf8[2] - 0x90];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b1_table_ebae[utf8[2] - 0x88];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b1_table_ebaf[utf8[2] - 0x80];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b1_table_ebb0[utf8[2] - 0x94];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b1_table_ebb1[utf8[2] - 0x8c];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b1_table_ebb2[utf8[2] - 0x84];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b1_table_ebb3[utf8[2] - 0x98];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b1_table_ebb4[utf8[2] - 0x90];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b1_table_ebb5[utf8[2] - 0x88];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b1_table_ebb6[utf8[2] - 0x80];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b1_table_ebb7[utf8[2] - 0x94];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b1_table_ebb8[utf8[2] - 0x8c];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b1_table_ebb9[utf8[2] - 0x84];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b1_table_ebba[utf8[2] - 0x98];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b1_table_ebbb[utf8[2] - 0x90];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b1_table_ebbc[utf8[2] - 0x88];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b1_table_ebbd[utf8[2] - 0x80];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b1_table_ebbe[utf8[2] - 0x94];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b1_table_ebbf[utf8[2] - 0x8c];
        }
        break;
      default :
        break;
      }
      break;
    case 0xec :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b1_table_ec80[utf8[2] - 0x84];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b1_table_ec81[utf8[2] - 0x98];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b1_table_ec82[utf8[2] - 0x90];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b1_table_ec83[utf8[2] - 0x88];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b1_table_ec84[utf8[2] - 0x80];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b1_table_ec85[utf8[2] - 0x94];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b1_table_ec86[utf8[2] - 0x8c];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b1_table_ec87[utf8[2] - 0x84];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b1_table_ec88[utf8[2] - 0x98];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b1_table_ec89[utf8[2] - 0x90];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b1_table_ec8a[utf8[2] - 0x88];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b1_table_ec8b[utf8[2] - 0x80];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b1_table_ec8c[utf8[2] - 0x94];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b1_table_ec8d[utf8[2] - 0x8c];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b1_table_ec8e[utf8[2] - 0x84];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b1_table_ec8f[utf8[2] - 0x98];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b1_table_ec90[utf8[2] - 0x90];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b1_table_ec91[utf8[2] - 0x88];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b1_table_ec92[utf8[2] - 0x80];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b1_table_ec93[utf8[2] - 0x94];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b1_table_ec94[utf8[2] - 0x8c];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b1_table_ec95[utf8[2] - 0x84];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b1_table_ec96[utf8[2] - 0x98];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b1_table_ec97[utf8[2] - 0x90];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b1_table_ec98[utf8[2] - 0x88];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b1_table_ec99[utf8[2] - 0x80];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b1_table_ec9a[utf8[2] - 0x94];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b1_table_ec9b[utf8[2] - 0x8c];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b1_table_ec9c[utf8[2] - 0x84];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b1_table_ec9d[utf8[2] - 0x98];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b1_table_ec9e[utf8[2] - 0x90];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b1_table_ec9f[utf8[2] - 0x88];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b1_table_eca0[utf8[2] - 0x80];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b1_table_eca1[utf8[2] - 0x94];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b1_table_eca2[utf8[2] - 0x8c];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b1_table_eca3[utf8[2] - 0x84];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b1_table_eca4[utf8[2] - 0x98];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b1_table_eca5[utf8[2] - 0x90];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b1_table_eca6[utf8[2] - 0x88];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b1_table_eca7[utf8[2] - 0x80];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b1_table_eca8[utf8[2] - 0x94];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b1_table_eca9[utf8[2] - 0x8c];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b1_table_ecaa[utf8[2] - 0x84];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b1_table_ecab[utf8[2] - 0x98];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b1_table_ecac[utf8[2] - 0x90];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b1_table_ecad[utf8[2] - 0x88];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b1_table_ecae[utf8[2] - 0x80];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b1_table_ecaf[utf8[2] - 0x94];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b1_table_ecb0[utf8[2] - 0x8c];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b1_table_ecb1[utf8[2] - 0x84];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b1_table_ecb2[utf8[2] - 0x98];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b1_table_ecb3[utf8[2] - 0x90];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b1_table_ecb4[utf8[2] - 0x88];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b1_table_ecb5[utf8[2] - 0x80];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b1_table_ecb6[utf8[2] - 0x94];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b1_table_ecb7[utf8[2] - 0x8c];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b1_table_ecb8[utf8[2] - 0x84];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b1_table_ecb9[utf8[2] - 0x98];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b1_table_ecba[utf8[2] - 0x90];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b1_table_ecbb[utf8[2] - 0x88];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b1_table_ecbc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b1_table_ecbd[utf8[2] - 0x94];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b1_table_ecbe[utf8[2] - 0x8c];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b1_table_ecbf[utf8[2] - 0x84];
        }
        break;
      default :
        break;
      }
      break;
    case 0xed :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b1_table_ed80[utf8[2] - 0x98];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b1_table_ed81[utf8[2] - 0x90];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b1_table_ed82[utf8[2] - 0x88];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b1_table_ed83[utf8[2] - 0x80];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b1_table_ed84[utf8[2] - 0x94];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b1_table_ed85[utf8[2] - 0x8c];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b1_table_ed86[utf8[2] - 0x84];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b1_table_ed87[utf8[2] - 0x98];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b1_table_ed88[utf8[2] - 0x90];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b1_table_ed89[utf8[2] - 0x88];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b1_table_ed8a[utf8[2] - 0x80];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b1_table_ed8b[utf8[2] - 0x94];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b1_table_ed8c[utf8[2] - 0x8c];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b1_table_ed8d[utf8[2] - 0x84];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b1_table_ed8e[utf8[2] - 0x98];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b1_table_ed8f[utf8[2] - 0x90];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b1_table_ed90[utf8[2] - 0x88];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b1_table_ed91[utf8[2] - 0x80];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b1_table_ed92[utf8[2] - 0x94];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b1_table_ed93[utf8[2] - 0x8c];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b1_table_ed94[utf8[2] - 0x84];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b1_table_ed95[utf8[2] - 0x98];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b1_table_ed96[utf8[2] - 0x90];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b1_table_ed97[utf8[2] - 0x88];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b1_table_ed98[utf8[2] - 0x80];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b1_table_ed99[utf8[2] - 0x94];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b1_table_ed9a[utf8[2] - 0x8c];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b1_table_ed9b[utf8[2] - 0x84];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b1_table_ed9c[utf8[2] - 0x98];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b1_table_ed9d[utf8[2] - 0x90];
        }
        break;
      case 0x9e :
        if (utf8[2] == 0x88) {
          return "\xed\x9e\x92";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_e186b2_table_eab0[] = {
  "\xea\xb0\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb0\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb1\x83"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eab1[] = {
  "\xea\xb1\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb1\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eab2[] = {
  "\xea\xb2\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eab3[] = {
  "\xea\xb3\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb4\x87"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eab4[] = {
  "\xea\xb4\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb4\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eab5[] = {
  "\xea\xb5\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eab6[] = {
  "\xea\xb6\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eab7[] = {
  "\xea\xb7\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb7\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb8\x83"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eab8[] = {
  "\xea\xb8\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb8\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eab9[] = {
  "\xea\xb9\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eaba[] = {
  "\xea\xba\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbb\x87"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eabb[] = {
  "\xea\xbb\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbb\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eabc[] = {
  "\xea\xbc\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eabd[] = {
  "\xea\xbd\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eabe[] = {
  "\xea\xbe\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbe\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbf\x83"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eabf[] = {
  "\xea\xbf\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbf\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eb80[] = {
  "\xeb\x80\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eb81[] = {
  "\xeb\x81\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x82\x87"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eb82[] = {
  "\xeb\x82\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x82\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eb83[] = {
  "\xeb\x83\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eb84[] = {
  "\xeb\x84\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eb85[] = {
  "\xeb\x85\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x85\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x86\x83"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eb86[] = {
  "\xeb\x86\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x86\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eb87[] = {
  "\xeb\x87\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eb88[] = {
  "\xeb\x88\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x89\x87"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eb89[] = {
  "\xeb\x89\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x89\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eb8a[] = {
  "\xeb\x8a\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eb8b[] = {
  "\xeb\x8b\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eb8c[] = {
  "\xeb\x8c\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8c\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8d\x83"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eb8d[] = {
  "\xeb\x8d\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8d\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eb8e[] = {
  "\xeb\x8e\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eb8f[] = {
  "\xeb\x8f\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x90\x87"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eb90[] = {
  "\xeb\x90\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x90\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eb91[] = {
  "\xeb\x91\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eb92[] = {
  "\xeb\x92\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eb93[] = {
  "\xeb\x93\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x93\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x94\x83"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eb94[] = {
  "\xeb\x94\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x94\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eb95[] = {
  "\xeb\x95\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eb96[] = {
  "\xeb\x96\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x97\x87"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eb97[] = {
  "\xeb\x97\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x97\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eb98[] = {
  "\xeb\x98\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eb99[] = {
  "\xeb\x99\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eb9a[] = {
  "\xeb\x9a\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9a\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9b\x83"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eb9b[] = {
  "\xeb\x9b\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9b\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eb9c[] = {
  "\xeb\x9c\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eb9d[] = {
  "\xeb\x9d\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9e\x87"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eb9e[] = {
  "\xeb\x9e\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9e\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eb9f[] = {
  "\xeb\x9f\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eba0[] = {
  "\xeb\xa0\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eba1[] = {
  "\xeb\xa1\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa1\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa2\x83"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eba2[] = {
  "\xeb\xa2\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa2\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eba3[] = {
  "\xeb\xa3\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eba4[] = {
  "\xeb\xa4\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa5\x87"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eba5[] = {
  "\xeb\xa5\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa5\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eba6[] = {
  "\xeb\xa6\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eba7[] = {
  "\xeb\xa7\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eba8[] = {
  "\xeb\xa8\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa8\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa9\x83"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eba9[] = {
  "\xeb\xa9\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa9\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ebaa[] = {
  "\xeb\xaa\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ebab[] = {
  "\xeb\xab\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xac\x87"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ebac[] = {
  "\xeb\xac\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xac\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ebad[] = {
  "\xeb\xad\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ebae[] = {
  "\xeb\xae\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ebaf[] = {
  "\xeb\xaf\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaf\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb0\x83"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ebb0[] = {
  "\xeb\xb0\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb0\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ebb1[] = {
  "\xeb\xb1\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ebb2[] = {
  "\xeb\xb2\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb3\x87"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ebb3[] = {
  "\xeb\xb3\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb3\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ebb4[] = {
  "\xeb\xb4\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ebb5[] = {
  "\xeb\xb5\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ebb6[] = {
  "\xeb\xb6\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb6\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb7\x83"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ebb7[] = {
  "\xeb\xb7\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb7\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ebb8[] = {
  "\xeb\xb8\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ebb9[] = {
  "\xeb\xb9\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xba\x87"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ebba[] = {
  "\xeb\xba\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xba\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ebbb[] = {
  "\xeb\xbb\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ebbc[] = {
  "\xeb\xbc\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ebbd[] = {
  "\xeb\xbd\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbd\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xbe\x83"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ebbe[] = {
  "\xeb\xbe\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbe\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ebbf[] = {
  "\xeb\xbf\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ec80[] = {
  "\xec\x80\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x81\x87"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ec81[] = {
  "\xec\x81\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x81\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ec82[] = {
  "\xec\x82\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ec83[] = {
  "\xec\x83\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ec84[] = {
  "\xec\x84\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x84\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x85\x83"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ec85[] = {
  "\xec\x85\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x85\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ec86[] = {
  "\xec\x86\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ec87[] = {
  "\xec\x87\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x88\x87"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ec88[] = {
  "\xec\x88\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x88\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ec89[] = {
  "\xec\x89\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ec8a[] = {
  "\xec\x8a\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ec8b[] = {
  "\xec\x8b\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8b\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8c\x83"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ec8c[] = {
  "\xec\x8c\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8c\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ec8d[] = {
  "\xec\x8d\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ec8e[] = {
  "\xec\x8e\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8f\x87"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ec8f[] = {
  "\xec\x8f\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8f\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ec90[] = {
  "\xec\x90\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ec91[] = {
  "\xec\x91\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ec92[] = {
  "\xec\x92\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x92\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x93\x83"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ec93[] = {
  "\xec\x93\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x93\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ec94[] = {
  "\xec\x94\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ec95[] = {
  "\xec\x95\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x96\x87"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ec96[] = {
  "\xec\x96\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x96\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ec97[] = {
  "\xec\x97\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ec98[] = {
  "\xec\x98\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ec99[] = {
  "\xec\x99\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x99\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9a\x83"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ec9a[] = {
  "\xec\x9a\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9a\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ec9b[] = {
  "\xec\x9b\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ec9c[] = {
  "\xec\x9c\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9d\x87"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ec9d[] = {
  "\xec\x9d\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9d\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ec9e[] = {
  "\xec\x9e\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ec9f[] = {
  "\xec\x9f\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eca0[] = {
  "\xec\xa0\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa0\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa1\x83"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eca1[] = {
  "\xec\xa1\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa1\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eca2[] = {
  "\xec\xa2\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eca3[] = {
  "\xec\xa3\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa4\x87"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eca4[] = {
  "\xec\xa4\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa4\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eca5[] = {
  "\xec\xa5\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eca6[] = {
  "\xec\xa6\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eca7[] = {
  "\xec\xa7\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa7\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa8\x83"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eca8[] = {
  "\xec\xa8\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa8\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_eca9[] = {
  "\xec\xa9\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ecaa[] = {
  "\xec\xaa\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xab\x87"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ecab[] = {
  "\xec\xab\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xab\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ecac[] = {
  "\xec\xac\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ecad[] = {
  "\xec\xad\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ecae[] = {
  "\xec\xae\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xae\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xaf\x83"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ecaf[] = {
  "\xec\xaf\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaf\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ecb0[] = {
  "\xec\xb0\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ecb1[] = {
  "\xec\xb1\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb2\x87"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ecb2[] = {
  "\xec\xb2\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb2\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ecb3[] = {
  "\xec\xb3\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ecb4[] = {
  "\xec\xb4\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ecb5[] = {
  "\xec\xb5\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb5\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb6\x83"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ecb6[] = {
  "\xec\xb6\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb6\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ecb7[] = {
  "\xec\xb7\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ecb8[] = {
  "\xec\xb8\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb9\x87"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ecb9[] = {
  "\xec\xb9\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb9\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ecba[] = {
  "\xec\xba\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ecbb[] = {
  "\xec\xbb\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ecbc[] = {
  "\xec\xbc\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbc\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbd\x83"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ecbd[] = {
  "\xec\xbd\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbd\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ecbe[] = {
  "\xec\xbe\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ecbf[] = {
  "\xec\xbf\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x80\x87"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ed80[] = {
  "\xed\x80\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x80\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ed81[] = {
  "\xed\x81\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ed82[] = {
  "\xed\x82\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ed83[] = {
  "\xed\x83\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x83\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x84\x83"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ed84[] = {
  "\xed\x84\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x84\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ed85[] = {
  "\xed\x85\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ed86[] = {
  "\xed\x86\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x87\x87"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ed87[] = {
  "\xed\x87\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x87\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ed88[] = {
  "\xed\x88\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ed89[] = {
  "\xed\x89\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ed8a[] = {
  "\xed\x8a\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8a\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8b\x83"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ed8b[] = {
  "\xed\x8b\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8b\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ed8c[] = {
  "\xed\x8c\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ed8d[] = {
  "\xed\x8d\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8e\x87"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ed8e[] = {
  "\xed\x8e\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8e\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ed8f[] = {
  "\xed\x8f\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ed90[] = {
  "\xed\x90\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ed91[] = {
  "\xed\x91\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x91\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x92\x83"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ed92[] = {
  "\xed\x92\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x92\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ed93[] = {
  "\xed\x93\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ed94[] = {
  "\xed\x94\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x95\x87"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ed95[] = {
  "\xed\x95\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x95\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ed96[] = {
  "\xed\x96\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ed97[] = {
  "\xed\x97\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\xaf"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ed98[] = {
  "\xed\x98\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x98\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x99\x83"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ed99[] = {
  "\xed\x99\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x99\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ed9a[] = {
  "\xed\x9a\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ed9b[] = {
  "\xed\x9b\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x9c\x87"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ed9c[] = {
  "\xed\x9c\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9c\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186b2_table_ed9d[] = {
  "\xed\x9d\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\xb7"
};

static inline const char *
grn_nfkc50_compose_prefix_e186b2(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xea :
      switch (utf8[1]) {
      case 0xb0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b2_table_eab0[utf8[2] - 0x80];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b2_table_eab1[utf8[2] - 0x94];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b2_table_eab2[utf8[2] - 0x8c];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b2_table_eab3[utf8[2] - 0x84];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b2_table_eab4[utf8[2] - 0x98];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b2_table_eab5[utf8[2] - 0x90];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b2_table_eab6[utf8[2] - 0x88];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b2_table_eab7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b2_table_eab8[utf8[2] - 0x94];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b2_table_eab9[utf8[2] - 0x8c];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b2_table_eaba[utf8[2] - 0x84];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b2_table_eabb[utf8[2] - 0x98];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b2_table_eabc[utf8[2] - 0x90];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b2_table_eabd[utf8[2] - 0x88];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b2_table_eabe[utf8[2] - 0x80];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b2_table_eabf[utf8[2] - 0x94];
        }
        break;
      default :
        break;
      }
      break;
    case 0xeb :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b2_table_eb80[utf8[2] - 0x8c];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b2_table_eb81[utf8[2] - 0x84];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b2_table_eb82[utf8[2] - 0x98];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b2_table_eb83[utf8[2] - 0x90];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b2_table_eb84[utf8[2] - 0x88];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b2_table_eb85[utf8[2] - 0x80];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b2_table_eb86[utf8[2] - 0x94];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b2_table_eb87[utf8[2] - 0x8c];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b2_table_eb88[utf8[2] - 0x84];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b2_table_eb89[utf8[2] - 0x98];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b2_table_eb8a[utf8[2] - 0x90];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b2_table_eb8b[utf8[2] - 0x88];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b2_table_eb8c[utf8[2] - 0x80];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b2_table_eb8d[utf8[2] - 0x94];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b2_table_eb8e[utf8[2] - 0x8c];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b2_table_eb8f[utf8[2] - 0x84];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b2_table_eb90[utf8[2] - 0x98];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b2_table_eb91[utf8[2] - 0x90];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b2_table_eb92[utf8[2] - 0x88];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b2_table_eb93[utf8[2] - 0x80];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b2_table_eb94[utf8[2] - 0x94];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b2_table_eb95[utf8[2] - 0x8c];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b2_table_eb96[utf8[2] - 0x84];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b2_table_eb97[utf8[2] - 0x98];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b2_table_eb98[utf8[2] - 0x90];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b2_table_eb99[utf8[2] - 0x88];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b2_table_eb9a[utf8[2] - 0x80];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b2_table_eb9b[utf8[2] - 0x94];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b2_table_eb9c[utf8[2] - 0x8c];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b2_table_eb9d[utf8[2] - 0x84];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b2_table_eb9e[utf8[2] - 0x98];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b2_table_eb9f[utf8[2] - 0x90];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b2_table_eba0[utf8[2] - 0x88];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b2_table_eba1[utf8[2] - 0x80];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b2_table_eba2[utf8[2] - 0x94];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b2_table_eba3[utf8[2] - 0x8c];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b2_table_eba4[utf8[2] - 0x84];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b2_table_eba5[utf8[2] - 0x98];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b2_table_eba6[utf8[2] - 0x90];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b2_table_eba7[utf8[2] - 0x88];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b2_table_eba8[utf8[2] - 0x80];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b2_table_eba9[utf8[2] - 0x94];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b2_table_ebaa[utf8[2] - 0x8c];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b2_table_ebab[utf8[2] - 0x84];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b2_table_ebac[utf8[2] - 0x98];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b2_table_ebad[utf8[2] - 0x90];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b2_table_ebae[utf8[2] - 0x88];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b2_table_ebaf[utf8[2] - 0x80];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b2_table_ebb0[utf8[2] - 0x94];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b2_table_ebb1[utf8[2] - 0x8c];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b2_table_ebb2[utf8[2] - 0x84];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b2_table_ebb3[utf8[2] - 0x98];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b2_table_ebb4[utf8[2] - 0x90];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b2_table_ebb5[utf8[2] - 0x88];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b2_table_ebb6[utf8[2] - 0x80];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b2_table_ebb7[utf8[2] - 0x94];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b2_table_ebb8[utf8[2] - 0x8c];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b2_table_ebb9[utf8[2] - 0x84];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b2_table_ebba[utf8[2] - 0x98];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b2_table_ebbb[utf8[2] - 0x90];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b2_table_ebbc[utf8[2] - 0x88];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b2_table_ebbd[utf8[2] - 0x80];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b2_table_ebbe[utf8[2] - 0x94];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b2_table_ebbf[utf8[2] - 0x8c];
        }
        break;
      default :
        break;
      }
      break;
    case 0xec :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b2_table_ec80[utf8[2] - 0x84];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b2_table_ec81[utf8[2] - 0x98];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b2_table_ec82[utf8[2] - 0x90];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b2_table_ec83[utf8[2] - 0x88];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b2_table_ec84[utf8[2] - 0x80];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b2_table_ec85[utf8[2] - 0x94];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b2_table_ec86[utf8[2] - 0x8c];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b2_table_ec87[utf8[2] - 0x84];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b2_table_ec88[utf8[2] - 0x98];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b2_table_ec89[utf8[2] - 0x90];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b2_table_ec8a[utf8[2] - 0x88];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b2_table_ec8b[utf8[2] - 0x80];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b2_table_ec8c[utf8[2] - 0x94];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b2_table_ec8d[utf8[2] - 0x8c];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b2_table_ec8e[utf8[2] - 0x84];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b2_table_ec8f[utf8[2] - 0x98];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b2_table_ec90[utf8[2] - 0x90];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b2_table_ec91[utf8[2] - 0x88];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b2_table_ec92[utf8[2] - 0x80];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b2_table_ec93[utf8[2] - 0x94];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b2_table_ec94[utf8[2] - 0x8c];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b2_table_ec95[utf8[2] - 0x84];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b2_table_ec96[utf8[2] - 0x98];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b2_table_ec97[utf8[2] - 0x90];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b2_table_ec98[utf8[2] - 0x88];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b2_table_ec99[utf8[2] - 0x80];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b2_table_ec9a[utf8[2] - 0x94];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b2_table_ec9b[utf8[2] - 0x8c];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b2_table_ec9c[utf8[2] - 0x84];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b2_table_ec9d[utf8[2] - 0x98];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b2_table_ec9e[utf8[2] - 0x90];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b2_table_ec9f[utf8[2] - 0x88];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b2_table_eca0[utf8[2] - 0x80];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b2_table_eca1[utf8[2] - 0x94];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b2_table_eca2[utf8[2] - 0x8c];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b2_table_eca3[utf8[2] - 0x84];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b2_table_eca4[utf8[2] - 0x98];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b2_table_eca5[utf8[2] - 0x90];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b2_table_eca6[utf8[2] - 0x88];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b2_table_eca7[utf8[2] - 0x80];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b2_table_eca8[utf8[2] - 0x94];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b2_table_eca9[utf8[2] - 0x8c];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b2_table_ecaa[utf8[2] - 0x84];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b2_table_ecab[utf8[2] - 0x98];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b2_table_ecac[utf8[2] - 0x90];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b2_table_ecad[utf8[2] - 0x88];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b2_table_ecae[utf8[2] - 0x80];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b2_table_ecaf[utf8[2] - 0x94];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b2_table_ecb0[utf8[2] - 0x8c];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b2_table_ecb1[utf8[2] - 0x84];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b2_table_ecb2[utf8[2] - 0x98];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b2_table_ecb3[utf8[2] - 0x90];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b2_table_ecb4[utf8[2] - 0x88];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b2_table_ecb5[utf8[2] - 0x80];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b2_table_ecb6[utf8[2] - 0x94];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b2_table_ecb7[utf8[2] - 0x8c];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b2_table_ecb8[utf8[2] - 0x84];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b2_table_ecb9[utf8[2] - 0x98];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b2_table_ecba[utf8[2] - 0x90];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b2_table_ecbb[utf8[2] - 0x88];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b2_table_ecbc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b2_table_ecbd[utf8[2] - 0x94];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b2_table_ecbe[utf8[2] - 0x8c];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b2_table_ecbf[utf8[2] - 0x84];
        }
        break;
      default :
        break;
      }
      break;
    case 0xed :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b2_table_ed80[utf8[2] - 0x98];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b2_table_ed81[utf8[2] - 0x90];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b2_table_ed82[utf8[2] - 0x88];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b2_table_ed83[utf8[2] - 0x80];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b2_table_ed84[utf8[2] - 0x94];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b2_table_ed85[utf8[2] - 0x8c];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b2_table_ed86[utf8[2] - 0x84];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b2_table_ed87[utf8[2] - 0x98];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b2_table_ed88[utf8[2] - 0x90];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b2_table_ed89[utf8[2] - 0x88];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b2_table_ed8a[utf8[2] - 0x80];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b2_table_ed8b[utf8[2] - 0x94];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b2_table_ed8c[utf8[2] - 0x8c];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b2_table_ed8d[utf8[2] - 0x84];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b2_table_ed8e[utf8[2] - 0x98];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b2_table_ed8f[utf8[2] - 0x90];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b2_table_ed90[utf8[2] - 0x88];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b2_table_ed91[utf8[2] - 0x80];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b2_table_ed92[utf8[2] - 0x94];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b2_table_ed93[utf8[2] - 0x8c];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b2_table_ed94[utf8[2] - 0x84];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b2_table_ed95[utf8[2] - 0x98];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b2_table_ed96[utf8[2] - 0x90];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b2_table_ed97[utf8[2] - 0x88];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b2_table_ed98[utf8[2] - 0x80];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b2_table_ed99[utf8[2] - 0x94];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b2_table_ed9a[utf8[2] - 0x8c];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b2_table_ed9b[utf8[2] - 0x84];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b2_table_ed9c[utf8[2] - 0x98];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b2_table_ed9d[utf8[2] - 0x90];
        }
        break;
      case 0x9e :
        if (utf8[2] == 0x88) {
          return "\xed\x9e\x93";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_e186b3_table_eab0[] = {
  "\xea\xb0\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb0\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb1\x84"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eab1[] = {
  "\xea\xb1\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb1\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eab2[] = {
  "\xea\xb2\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eab3[] = {
  "\xea\xb3\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb4\x88"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eab4[] = {
  "\xea\xb4\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\x80"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eab5[] = {
  "\xea\xb5\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eab6[] = {
  "\xea\xb6\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eab7[] = {
  "\xea\xb7\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb7\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb8\x84"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eab8[] = {
  "\xea\xb8\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb8\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eab9[] = {
  "\xea\xb9\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eaba[] = {
  "\xea\xba\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbb\x88"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eabb[] = {
  "\xea\xbb\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\x80"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eabc[] = {
  "\xea\xbc\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eabd[] = {
  "\xea\xbd\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eabe[] = {
  "\xea\xbe\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbe\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbf\x84"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eabf[] = {
  "\xea\xbf\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbf\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eb80[] = {
  "\xeb\x80\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eb81[] = {
  "\xeb\x81\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x82\x88"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eb82[] = {
  "\xeb\x82\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\x80"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eb83[] = {
  "\xeb\x83\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eb84[] = {
  "\xeb\x84\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eb85[] = {
  "\xeb\x85\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x85\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x86\x84"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eb86[] = {
  "\xeb\x86\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x86\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eb87[] = {
  "\xeb\x87\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eb88[] = {
  "\xeb\x88\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x89\x88"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eb89[] = {
  "\xeb\x89\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\x80"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eb8a[] = {
  "\xeb\x8a\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eb8b[] = {
  "\xeb\x8b\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eb8c[] = {
  "\xeb\x8c\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8c\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8d\x84"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eb8d[] = {
  "\xeb\x8d\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8d\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eb8e[] = {
  "\xeb\x8e\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eb8f[] = {
  "\xeb\x8f\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x90\x88"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eb90[] = {
  "\xeb\x90\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\x80"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eb91[] = {
  "\xeb\x91\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eb92[] = {
  "\xeb\x92\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eb93[] = {
  "\xeb\x93\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x93\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x94\x84"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eb94[] = {
  "\xeb\x94\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x94\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eb95[] = {
  "\xeb\x95\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eb96[] = {
  "\xeb\x96\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x97\x88"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eb97[] = {
  "\xeb\x97\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\x80"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eb98[] = {
  "\xeb\x98\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eb99[] = {
  "\xeb\x99\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eb9a[] = {
  "\xeb\x9a\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9a\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9b\x84"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eb9b[] = {
  "\xeb\x9b\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9b\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eb9c[] = {
  "\xeb\x9c\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eb9d[] = {
  "\xeb\x9d\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9e\x88"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eb9e[] = {
  "\xeb\x9e\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\x80"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eb9f[] = {
  "\xeb\x9f\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eba0[] = {
  "\xeb\xa0\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eba1[] = {
  "\xeb\xa1\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa1\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa2\x84"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eba2[] = {
  "\xeb\xa2\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa2\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eba3[] = {
  "\xeb\xa3\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eba4[] = {
  "\xeb\xa4\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa5\x88"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eba5[] = {
  "\xeb\xa5\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\x80"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eba6[] = {
  "\xeb\xa6\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eba7[] = {
  "\xeb\xa7\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eba8[] = {
  "\xeb\xa8\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa8\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa9\x84"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eba9[] = {
  "\xeb\xa9\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa9\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ebaa[] = {
  "\xeb\xaa\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ebab[] = {
  "\xeb\xab\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xac\x88"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ebac[] = {
  "\xeb\xac\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\x80"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ebad[] = {
  "\xeb\xad\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ebae[] = {
  "\xeb\xae\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ebaf[] = {
  "\xeb\xaf\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaf\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb0\x84"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ebb0[] = {
  "\xeb\xb0\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb0\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ebb1[] = {
  "\xeb\xb1\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ebb2[] = {
  "\xeb\xb2\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb3\x88"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ebb3[] = {
  "\xeb\xb3\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\x80"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ebb4[] = {
  "\xeb\xb4\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ebb5[] = {
  "\xeb\xb5\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ebb6[] = {
  "\xeb\xb6\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb6\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb7\x84"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ebb7[] = {
  "\xeb\xb7\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb7\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ebb8[] = {
  "\xeb\xb8\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ebb9[] = {
  "\xeb\xb9\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xba\x88"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ebba[] = {
  "\xeb\xba\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\x80"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ebbb[] = {
  "\xeb\xbb\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ebbc[] = {
  "\xeb\xbc\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ebbd[] = {
  "\xeb\xbd\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbd\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xbe\x84"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ebbe[] = {
  "\xeb\xbe\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbe\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ebbf[] = {
  "\xeb\xbf\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ec80[] = {
  "\xec\x80\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x81\x88"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ec81[] = {
  "\xec\x81\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\x80"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ec82[] = {
  "\xec\x82\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ec83[] = {
  "\xec\x83\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ec84[] = {
  "\xec\x84\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x84\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x85\x84"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ec85[] = {
  "\xec\x85\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x85\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ec86[] = {
  "\xec\x86\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ec87[] = {
  "\xec\x87\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x88\x88"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ec88[] = {
  "\xec\x88\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\x80"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ec89[] = {
  "\xec\x89\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ec8a[] = {
  "\xec\x8a\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ec8b[] = {
  "\xec\x8b\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8b\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8c\x84"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ec8c[] = {
  "\xec\x8c\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8c\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ec8d[] = {
  "\xec\x8d\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ec8e[] = {
  "\xec\x8e\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8f\x88"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ec8f[] = {
  "\xec\x8f\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\x80"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ec90[] = {
  "\xec\x90\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ec91[] = {
  "\xec\x91\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ec92[] = {
  "\xec\x92\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x92\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x93\x84"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ec93[] = {
  "\xec\x93\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x93\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ec94[] = {
  "\xec\x94\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ec95[] = {
  "\xec\x95\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x96\x88"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ec96[] = {
  "\xec\x96\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\x80"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ec97[] = {
  "\xec\x97\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ec98[] = {
  "\xec\x98\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ec99[] = {
  "\xec\x99\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x99\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9a\x84"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ec9a[] = {
  "\xec\x9a\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9a\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ec9b[] = {
  "\xec\x9b\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ec9c[] = {
  "\xec\x9c\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9d\x88"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ec9d[] = {
  "\xec\x9d\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\x80"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ec9e[] = {
  "\xec\x9e\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ec9f[] = {
  "\xec\x9f\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eca0[] = {
  "\xec\xa0\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa0\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa1\x84"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eca1[] = {
  "\xec\xa1\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa1\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eca2[] = {
  "\xec\xa2\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eca3[] = {
  "\xec\xa3\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa4\x88"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eca4[] = {
  "\xec\xa4\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\x80"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eca5[] = {
  "\xec\xa5\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eca6[] = {
  "\xec\xa6\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eca7[] = {
  "\xec\xa7\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa7\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa8\x84"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eca8[] = {
  "\xec\xa8\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa8\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_eca9[] = {
  "\xec\xa9\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ecaa[] = {
  "\xec\xaa\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xab\x88"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ecab[] = {
  "\xec\xab\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\x80"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ecac[] = {
  "\xec\xac\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ecad[] = {
  "\xec\xad\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ecae[] = {
  "\xec\xae\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xae\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xaf\x84"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ecaf[] = {
  "\xec\xaf\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaf\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ecb0[] = {
  "\xec\xb0\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ecb1[] = {
  "\xec\xb1\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb2\x88"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ecb2[] = {
  "\xec\xb2\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\x80"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ecb3[] = {
  "\xec\xb3\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ecb4[] = {
  "\xec\xb4\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ecb5[] = {
  "\xec\xb5\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb5\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb6\x84"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ecb6[] = {
  "\xec\xb6\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb6\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ecb7[] = {
  "\xec\xb7\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ecb8[] = {
  "\xec\xb8\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb9\x88"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ecb9[] = {
  "\xec\xb9\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\x80"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ecba[] = {
  "\xec\xba\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ecbb[] = {
  "\xec\xbb\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ecbc[] = {
  "\xec\xbc\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbc\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbd\x84"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ecbd[] = {
  "\xec\xbd\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbd\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ecbe[] = {
  "\xec\xbe\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ecbf[] = {
  "\xec\xbf\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x80\x88"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ed80[] = {
  "\xed\x80\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\x80"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ed81[] = {
  "\xed\x81\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ed82[] = {
  "\xed\x82\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ed83[] = {
  "\xed\x83\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x83\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x84\x84"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ed84[] = {
  "\xed\x84\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x84\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ed85[] = {
  "\xed\x85\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ed86[] = {
  "\xed\x86\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x87\x88"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ed87[] = {
  "\xed\x87\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\x80"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ed88[] = {
  "\xed\x88\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ed89[] = {
  "\xed\x89\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ed8a[] = {
  "\xed\x8a\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8a\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8b\x84"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ed8b[] = {
  "\xed\x8b\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8b\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ed8c[] = {
  "\xed\x8c\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ed8d[] = {
  "\xed\x8d\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8e\x88"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ed8e[] = {
  "\xed\x8e\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\x80"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ed8f[] = {
  "\xed\x8f\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ed90[] = {
  "\xed\x90\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ed91[] = {
  "\xed\x91\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x91\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x92\x84"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ed92[] = {
  "\xed\x92\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x92\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ed93[] = {
  "\xed\x93\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ed94[] = {
  "\xed\x94\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x95\x88"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ed95[] = {
  "\xed\x95\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\x80"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ed96[] = {
  "\xed\x96\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ed97[] = {
  "\xed\x97\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\xb0"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ed98[] = {
  "\xed\x98\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x98\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x99\x84"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ed99[] = {
  "\xed\x99\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x99\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ed9a[] = {
  "\xed\x9a\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ed9b[] = {
  "\xed\x9b\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x9c\x88"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ed9c[] = {
  "\xed\x9c\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\x80"
};

static const char *grn_nfkc50_compose_prefix_e186b3_table_ed9d[] = {
  "\xed\x9d\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\xb8"
};

static inline const char *
grn_nfkc50_compose_prefix_e186b3(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xea :
      switch (utf8[1]) {
      case 0xb0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b3_table_eab0[utf8[2] - 0x80];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b3_table_eab1[utf8[2] - 0x94];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b3_table_eab2[utf8[2] - 0x8c];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b3_table_eab3[utf8[2] - 0x84];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b3_table_eab4[utf8[2] - 0x98];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b3_table_eab5[utf8[2] - 0x90];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b3_table_eab6[utf8[2] - 0x88];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b3_table_eab7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b3_table_eab8[utf8[2] - 0x94];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b3_table_eab9[utf8[2] - 0x8c];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b3_table_eaba[utf8[2] - 0x84];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b3_table_eabb[utf8[2] - 0x98];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b3_table_eabc[utf8[2] - 0x90];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b3_table_eabd[utf8[2] - 0x88];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b3_table_eabe[utf8[2] - 0x80];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b3_table_eabf[utf8[2] - 0x94];
        }
        break;
      default :
        break;
      }
      break;
    case 0xeb :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b3_table_eb80[utf8[2] - 0x8c];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b3_table_eb81[utf8[2] - 0x84];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b3_table_eb82[utf8[2] - 0x98];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b3_table_eb83[utf8[2] - 0x90];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b3_table_eb84[utf8[2] - 0x88];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b3_table_eb85[utf8[2] - 0x80];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b3_table_eb86[utf8[2] - 0x94];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b3_table_eb87[utf8[2] - 0x8c];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b3_table_eb88[utf8[2] - 0x84];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b3_table_eb89[utf8[2] - 0x98];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b3_table_eb8a[utf8[2] - 0x90];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b3_table_eb8b[utf8[2] - 0x88];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b3_table_eb8c[utf8[2] - 0x80];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b3_table_eb8d[utf8[2] - 0x94];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b3_table_eb8e[utf8[2] - 0x8c];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b3_table_eb8f[utf8[2] - 0x84];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b3_table_eb90[utf8[2] - 0x98];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b3_table_eb91[utf8[2] - 0x90];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b3_table_eb92[utf8[2] - 0x88];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b3_table_eb93[utf8[2] - 0x80];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b3_table_eb94[utf8[2] - 0x94];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b3_table_eb95[utf8[2] - 0x8c];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b3_table_eb96[utf8[2] - 0x84];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b3_table_eb97[utf8[2] - 0x98];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b3_table_eb98[utf8[2] - 0x90];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b3_table_eb99[utf8[2] - 0x88];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b3_table_eb9a[utf8[2] - 0x80];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b3_table_eb9b[utf8[2] - 0x94];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b3_table_eb9c[utf8[2] - 0x8c];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b3_table_eb9d[utf8[2] - 0x84];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b3_table_eb9e[utf8[2] - 0x98];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b3_table_eb9f[utf8[2] - 0x90];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b3_table_eba0[utf8[2] - 0x88];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b3_table_eba1[utf8[2] - 0x80];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b3_table_eba2[utf8[2] - 0x94];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b3_table_eba3[utf8[2] - 0x8c];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b3_table_eba4[utf8[2] - 0x84];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b3_table_eba5[utf8[2] - 0x98];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b3_table_eba6[utf8[2] - 0x90];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b3_table_eba7[utf8[2] - 0x88];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b3_table_eba8[utf8[2] - 0x80];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b3_table_eba9[utf8[2] - 0x94];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b3_table_ebaa[utf8[2] - 0x8c];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b3_table_ebab[utf8[2] - 0x84];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b3_table_ebac[utf8[2] - 0x98];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b3_table_ebad[utf8[2] - 0x90];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b3_table_ebae[utf8[2] - 0x88];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b3_table_ebaf[utf8[2] - 0x80];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b3_table_ebb0[utf8[2] - 0x94];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b3_table_ebb1[utf8[2] - 0x8c];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b3_table_ebb2[utf8[2] - 0x84];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b3_table_ebb3[utf8[2] - 0x98];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b3_table_ebb4[utf8[2] - 0x90];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b3_table_ebb5[utf8[2] - 0x88];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b3_table_ebb6[utf8[2] - 0x80];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b3_table_ebb7[utf8[2] - 0x94];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b3_table_ebb8[utf8[2] - 0x8c];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b3_table_ebb9[utf8[2] - 0x84];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b3_table_ebba[utf8[2] - 0x98];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b3_table_ebbb[utf8[2] - 0x90];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b3_table_ebbc[utf8[2] - 0x88];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b3_table_ebbd[utf8[2] - 0x80];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b3_table_ebbe[utf8[2] - 0x94];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b3_table_ebbf[utf8[2] - 0x8c];
        }
        break;
      default :
        break;
      }
      break;
    case 0xec :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b3_table_ec80[utf8[2] - 0x84];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b3_table_ec81[utf8[2] - 0x98];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b3_table_ec82[utf8[2] - 0x90];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b3_table_ec83[utf8[2] - 0x88];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b3_table_ec84[utf8[2] - 0x80];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b3_table_ec85[utf8[2] - 0x94];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b3_table_ec86[utf8[2] - 0x8c];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b3_table_ec87[utf8[2] - 0x84];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b3_table_ec88[utf8[2] - 0x98];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b3_table_ec89[utf8[2] - 0x90];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b3_table_ec8a[utf8[2] - 0x88];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b3_table_ec8b[utf8[2] - 0x80];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b3_table_ec8c[utf8[2] - 0x94];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b3_table_ec8d[utf8[2] - 0x8c];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b3_table_ec8e[utf8[2] - 0x84];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b3_table_ec8f[utf8[2] - 0x98];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b3_table_ec90[utf8[2] - 0x90];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b3_table_ec91[utf8[2] - 0x88];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b3_table_ec92[utf8[2] - 0x80];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b3_table_ec93[utf8[2] - 0x94];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b3_table_ec94[utf8[2] - 0x8c];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b3_table_ec95[utf8[2] - 0x84];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b3_table_ec96[utf8[2] - 0x98];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b3_table_ec97[utf8[2] - 0x90];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b3_table_ec98[utf8[2] - 0x88];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b3_table_ec99[utf8[2] - 0x80];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b3_table_ec9a[utf8[2] - 0x94];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b3_table_ec9b[utf8[2] - 0x8c];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b3_table_ec9c[utf8[2] - 0x84];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b3_table_ec9d[utf8[2] - 0x98];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b3_table_ec9e[utf8[2] - 0x90];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b3_table_ec9f[utf8[2] - 0x88];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b3_table_eca0[utf8[2] - 0x80];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b3_table_eca1[utf8[2] - 0x94];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b3_table_eca2[utf8[2] - 0x8c];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b3_table_eca3[utf8[2] - 0x84];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b3_table_eca4[utf8[2] - 0x98];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b3_table_eca5[utf8[2] - 0x90];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b3_table_eca6[utf8[2] - 0x88];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b3_table_eca7[utf8[2] - 0x80];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b3_table_eca8[utf8[2] - 0x94];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b3_table_eca9[utf8[2] - 0x8c];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b3_table_ecaa[utf8[2] - 0x84];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b3_table_ecab[utf8[2] - 0x98];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b3_table_ecac[utf8[2] - 0x90];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b3_table_ecad[utf8[2] - 0x88];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b3_table_ecae[utf8[2] - 0x80];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b3_table_ecaf[utf8[2] - 0x94];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b3_table_ecb0[utf8[2] - 0x8c];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b3_table_ecb1[utf8[2] - 0x84];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b3_table_ecb2[utf8[2] - 0x98];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b3_table_ecb3[utf8[2] - 0x90];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b3_table_ecb4[utf8[2] - 0x88];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b3_table_ecb5[utf8[2] - 0x80];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b3_table_ecb6[utf8[2] - 0x94];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b3_table_ecb7[utf8[2] - 0x8c];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b3_table_ecb8[utf8[2] - 0x84];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b3_table_ecb9[utf8[2] - 0x98];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b3_table_ecba[utf8[2] - 0x90];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b3_table_ecbb[utf8[2] - 0x88];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b3_table_ecbc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b3_table_ecbd[utf8[2] - 0x94];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b3_table_ecbe[utf8[2] - 0x8c];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b3_table_ecbf[utf8[2] - 0x84];
        }
        break;
      default :
        break;
      }
      break;
    case 0xed :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b3_table_ed80[utf8[2] - 0x98];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b3_table_ed81[utf8[2] - 0x90];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b3_table_ed82[utf8[2] - 0x88];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b3_table_ed83[utf8[2] - 0x80];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b3_table_ed84[utf8[2] - 0x94];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b3_table_ed85[utf8[2] - 0x8c];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b3_table_ed86[utf8[2] - 0x84];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b3_table_ed87[utf8[2] - 0x98];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b3_table_ed88[utf8[2] - 0x90];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b3_table_ed89[utf8[2] - 0x88];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b3_table_ed8a[utf8[2] - 0x80];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b3_table_ed8b[utf8[2] - 0x94];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b3_table_ed8c[utf8[2] - 0x8c];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b3_table_ed8d[utf8[2] - 0x84];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b3_table_ed8e[utf8[2] - 0x98];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b3_table_ed8f[utf8[2] - 0x90];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b3_table_ed90[utf8[2] - 0x88];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b3_table_ed91[utf8[2] - 0x80];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b3_table_ed92[utf8[2] - 0x94];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b3_table_ed93[utf8[2] - 0x8c];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b3_table_ed94[utf8[2] - 0x84];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b3_table_ed95[utf8[2] - 0x98];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b3_table_ed96[utf8[2] - 0x90];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b3_table_ed97[utf8[2] - 0x88];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b3_table_ed98[utf8[2] - 0x80];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b3_table_ed99[utf8[2] - 0x94];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b3_table_ed9a[utf8[2] - 0x8c];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b3_table_ed9b[utf8[2] - 0x84];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b3_table_ed9c[utf8[2] - 0x98];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b3_table_ed9d[utf8[2] - 0x90];
        }
        break;
      case 0x9e :
        if (utf8[2] == 0x88) {
          return "\xed\x9e\x94";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_e186b4_table_eab0[] = {
  "\xea\xb0\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb0\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb1\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eab1[] = {
  "\xea\xb1\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb1\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eab2[] = {
  "\xea\xb2\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eab3[] = {
  "\xea\xb3\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb4\x89"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eab4[] = {
  "\xea\xb4\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eab5[] = {
  "\xea\xb5\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eab6[] = {
  "\xea\xb6\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eab7[] = {
  "\xea\xb7\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb7\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb8\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eab8[] = {
  "\xea\xb8\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb8\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eab9[] = {
  "\xea\xb9\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eaba[] = {
  "\xea\xba\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbb\x89"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eabb[] = {
  "\xea\xbb\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eabc[] = {
  "\xea\xbc\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eabd[] = {
  "\xea\xbd\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eabe[] = {
  "\xea\xbe\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbe\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbf\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eabf[] = {
  "\xea\xbf\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbf\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eb80[] = {
  "\xeb\x80\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eb81[] = {
  "\xeb\x81\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x82\x89"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eb82[] = {
  "\xeb\x82\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eb83[] = {
  "\xeb\x83\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eb84[] = {
  "\xeb\x84\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eb85[] = {
  "\xeb\x85\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x85\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x86\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eb86[] = {
  "\xeb\x86\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x86\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eb87[] = {
  "\xeb\x87\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eb88[] = {
  "\xeb\x88\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x89\x89"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eb89[] = {
  "\xeb\x89\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eb8a[] = {
  "\xeb\x8a\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eb8b[] = {
  "\xeb\x8b\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eb8c[] = {
  "\xeb\x8c\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8c\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8d\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eb8d[] = {
  "\xeb\x8d\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8d\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eb8e[] = {
  "\xeb\x8e\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eb8f[] = {
  "\xeb\x8f\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x90\x89"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eb90[] = {
  "\xeb\x90\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eb91[] = {
  "\xeb\x91\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eb92[] = {
  "\xeb\x92\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eb93[] = {
  "\xeb\x93\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x93\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x94\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eb94[] = {
  "\xeb\x94\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x94\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eb95[] = {
  "\xeb\x95\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eb96[] = {
  "\xeb\x96\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x97\x89"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eb97[] = {
  "\xeb\x97\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eb98[] = {
  "\xeb\x98\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eb99[] = {
  "\xeb\x99\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eb9a[] = {
  "\xeb\x9a\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9a\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9b\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eb9b[] = {
  "\xeb\x9b\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9b\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eb9c[] = {
  "\xeb\x9c\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eb9d[] = {
  "\xeb\x9d\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9e\x89"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eb9e[] = {
  "\xeb\x9e\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eb9f[] = {
  "\xeb\x9f\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eba0[] = {
  "\xeb\xa0\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eba1[] = {
  "\xeb\xa1\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa1\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa2\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eba2[] = {
  "\xeb\xa2\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa2\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eba3[] = {
  "\xeb\xa3\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eba4[] = {
  "\xeb\xa4\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa5\x89"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eba5[] = {
  "\xeb\xa5\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eba6[] = {
  "\xeb\xa6\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eba7[] = {
  "\xeb\xa7\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eba8[] = {
  "\xeb\xa8\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa8\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa9\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eba9[] = {
  "\xeb\xa9\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa9\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ebaa[] = {
  "\xeb\xaa\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ebab[] = {
  "\xeb\xab\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xac\x89"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ebac[] = {
  "\xeb\xac\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ebad[] = {
  "\xeb\xad\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ebae[] = {
  "\xeb\xae\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ebaf[] = {
  "\xeb\xaf\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaf\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb0\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ebb0[] = {
  "\xeb\xb0\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb0\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ebb1[] = {
  "\xeb\xb1\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ebb2[] = {
  "\xeb\xb2\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb3\x89"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ebb3[] = {
  "\xeb\xb3\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ebb4[] = {
  "\xeb\xb4\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ebb5[] = {
  "\xeb\xb5\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ebb6[] = {
  "\xeb\xb6\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb6\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb7\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ebb7[] = {
  "\xeb\xb7\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb7\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ebb8[] = {
  "\xeb\xb8\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ebb9[] = {
  "\xeb\xb9\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xba\x89"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ebba[] = {
  "\xeb\xba\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ebbb[] = {
  "\xeb\xbb\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ebbc[] = {
  "\xeb\xbc\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ebbd[] = {
  "\xeb\xbd\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbd\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xbe\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ebbe[] = {
  "\xeb\xbe\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbe\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ebbf[] = {
  "\xeb\xbf\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ec80[] = {
  "\xec\x80\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x81\x89"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ec81[] = {
  "\xec\x81\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ec82[] = {
  "\xec\x82\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ec83[] = {
  "\xec\x83\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ec84[] = {
  "\xec\x84\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x84\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x85\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ec85[] = {
  "\xec\x85\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x85\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ec86[] = {
  "\xec\x86\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ec87[] = {
  "\xec\x87\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x88\x89"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ec88[] = {
  "\xec\x88\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ec89[] = {
  "\xec\x89\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ec8a[] = {
  "\xec\x8a\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ec8b[] = {
  "\xec\x8b\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8b\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8c\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ec8c[] = {
  "\xec\x8c\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8c\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ec8d[] = {
  "\xec\x8d\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ec8e[] = {
  "\xec\x8e\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8f\x89"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ec8f[] = {
  "\xec\x8f\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ec90[] = {
  "\xec\x90\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ec91[] = {
  "\xec\x91\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ec92[] = {
  "\xec\x92\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x92\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x93\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ec93[] = {
  "\xec\x93\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x93\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ec94[] = {
  "\xec\x94\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ec95[] = {
  "\xec\x95\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x96\x89"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ec96[] = {
  "\xec\x96\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ec97[] = {
  "\xec\x97\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ec98[] = {
  "\xec\x98\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ec99[] = {
  "\xec\x99\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x99\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9a\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ec9a[] = {
  "\xec\x9a\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9a\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ec9b[] = {
  "\xec\x9b\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ec9c[] = {
  "\xec\x9c\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9d\x89"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ec9d[] = {
  "\xec\x9d\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ec9e[] = {
  "\xec\x9e\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ec9f[] = {
  "\xec\x9f\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eca0[] = {
  "\xec\xa0\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa0\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa1\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eca1[] = {
  "\xec\xa1\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa1\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eca2[] = {
  "\xec\xa2\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eca3[] = {
  "\xec\xa3\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa4\x89"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eca4[] = {
  "\xec\xa4\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eca5[] = {
  "\xec\xa5\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eca6[] = {
  "\xec\xa6\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eca7[] = {
  "\xec\xa7\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa7\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa8\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eca8[] = {
  "\xec\xa8\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa8\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_eca9[] = {
  "\xec\xa9\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ecaa[] = {
  "\xec\xaa\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xab\x89"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ecab[] = {
  "\xec\xab\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ecac[] = {
  "\xec\xac\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ecad[] = {
  "\xec\xad\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ecae[] = {
  "\xec\xae\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xae\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xaf\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ecaf[] = {
  "\xec\xaf\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaf\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ecb0[] = {
  "\xec\xb0\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ecb1[] = {
  "\xec\xb1\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb2\x89"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ecb2[] = {
  "\xec\xb2\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ecb3[] = {
  "\xec\xb3\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ecb4[] = {
  "\xec\xb4\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ecb5[] = {
  "\xec\xb5\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb5\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb6\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ecb6[] = {
  "\xec\xb6\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb6\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ecb7[] = {
  "\xec\xb7\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ecb8[] = {
  "\xec\xb8\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb9\x89"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ecb9[] = {
  "\xec\xb9\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ecba[] = {
  "\xec\xba\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ecbb[] = {
  "\xec\xbb\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ecbc[] = {
  "\xec\xbc\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbc\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbd\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ecbd[] = {
  "\xec\xbd\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbd\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ecbe[] = {
  "\xec\xbe\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ecbf[] = {
  "\xec\xbf\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x80\x89"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ed80[] = {
  "\xed\x80\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ed81[] = {
  "\xed\x81\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ed82[] = {
  "\xed\x82\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ed83[] = {
  "\xed\x83\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x83\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x84\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ed84[] = {
  "\xed\x84\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x84\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ed85[] = {
  "\xed\x85\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ed86[] = {
  "\xed\x86\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x87\x89"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ed87[] = {
  "\xed\x87\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ed88[] = {
  "\xed\x88\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ed89[] = {
  "\xed\x89\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ed8a[] = {
  "\xed\x8a\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8a\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8b\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ed8b[] = {
  "\xed\x8b\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8b\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ed8c[] = {
  "\xed\x8c\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ed8d[] = {
  "\xed\x8d\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8e\x89"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ed8e[] = {
  "\xed\x8e\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ed8f[] = {
  "\xed\x8f\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ed90[] = {
  "\xed\x90\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ed91[] = {
  "\xed\x91\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x91\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x92\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ed92[] = {
  "\xed\x92\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x92\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ed93[] = {
  "\xed\x93\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ed94[] = {
  "\xed\x94\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x95\x89"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ed95[] = {
  "\xed\x95\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ed96[] = {
  "\xed\x96\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ed97[] = {
  "\xed\x97\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\xb1"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ed98[] = {
  "\xed\x98\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x98\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x99\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ed99[] = {
  "\xed\x99\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x99\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ed9a[] = {
  "\xed\x9a\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ed9b[] = {
  "\xed\x9b\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x9c\x89"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ed9c[] = {
  "\xed\x9c\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b4_table_ed9d[] = {
  "\xed\x9d\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\xb9"
};

static inline const char *
grn_nfkc50_compose_prefix_e186b4(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xea :
      switch (utf8[1]) {
      case 0xb0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b4_table_eab0[utf8[2] - 0x80];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b4_table_eab1[utf8[2] - 0x94];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b4_table_eab2[utf8[2] - 0x8c];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b4_table_eab3[utf8[2] - 0x84];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b4_table_eab4[utf8[2] - 0x98];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b4_table_eab5[utf8[2] - 0x90];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b4_table_eab6[utf8[2] - 0x88];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b4_table_eab7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b4_table_eab8[utf8[2] - 0x94];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b4_table_eab9[utf8[2] - 0x8c];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b4_table_eaba[utf8[2] - 0x84];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b4_table_eabb[utf8[2] - 0x98];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b4_table_eabc[utf8[2] - 0x90];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b4_table_eabd[utf8[2] - 0x88];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b4_table_eabe[utf8[2] - 0x80];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b4_table_eabf[utf8[2] - 0x94];
        }
        break;
      default :
        break;
      }
      break;
    case 0xeb :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b4_table_eb80[utf8[2] - 0x8c];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b4_table_eb81[utf8[2] - 0x84];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b4_table_eb82[utf8[2] - 0x98];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b4_table_eb83[utf8[2] - 0x90];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b4_table_eb84[utf8[2] - 0x88];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b4_table_eb85[utf8[2] - 0x80];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b4_table_eb86[utf8[2] - 0x94];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b4_table_eb87[utf8[2] - 0x8c];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b4_table_eb88[utf8[2] - 0x84];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b4_table_eb89[utf8[2] - 0x98];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b4_table_eb8a[utf8[2] - 0x90];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b4_table_eb8b[utf8[2] - 0x88];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b4_table_eb8c[utf8[2] - 0x80];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b4_table_eb8d[utf8[2] - 0x94];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b4_table_eb8e[utf8[2] - 0x8c];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b4_table_eb8f[utf8[2] - 0x84];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b4_table_eb90[utf8[2] - 0x98];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b4_table_eb91[utf8[2] - 0x90];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b4_table_eb92[utf8[2] - 0x88];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b4_table_eb93[utf8[2] - 0x80];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b4_table_eb94[utf8[2] - 0x94];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b4_table_eb95[utf8[2] - 0x8c];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b4_table_eb96[utf8[2] - 0x84];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b4_table_eb97[utf8[2] - 0x98];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b4_table_eb98[utf8[2] - 0x90];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b4_table_eb99[utf8[2] - 0x88];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b4_table_eb9a[utf8[2] - 0x80];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b4_table_eb9b[utf8[2] - 0x94];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b4_table_eb9c[utf8[2] - 0x8c];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b4_table_eb9d[utf8[2] - 0x84];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b4_table_eb9e[utf8[2] - 0x98];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b4_table_eb9f[utf8[2] - 0x90];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b4_table_eba0[utf8[2] - 0x88];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b4_table_eba1[utf8[2] - 0x80];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b4_table_eba2[utf8[2] - 0x94];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b4_table_eba3[utf8[2] - 0x8c];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b4_table_eba4[utf8[2] - 0x84];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b4_table_eba5[utf8[2] - 0x98];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b4_table_eba6[utf8[2] - 0x90];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b4_table_eba7[utf8[2] - 0x88];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b4_table_eba8[utf8[2] - 0x80];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b4_table_eba9[utf8[2] - 0x94];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b4_table_ebaa[utf8[2] - 0x8c];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b4_table_ebab[utf8[2] - 0x84];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b4_table_ebac[utf8[2] - 0x98];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b4_table_ebad[utf8[2] - 0x90];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b4_table_ebae[utf8[2] - 0x88];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b4_table_ebaf[utf8[2] - 0x80];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b4_table_ebb0[utf8[2] - 0x94];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b4_table_ebb1[utf8[2] - 0x8c];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b4_table_ebb2[utf8[2] - 0x84];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b4_table_ebb3[utf8[2] - 0x98];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b4_table_ebb4[utf8[2] - 0x90];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b4_table_ebb5[utf8[2] - 0x88];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b4_table_ebb6[utf8[2] - 0x80];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b4_table_ebb7[utf8[2] - 0x94];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b4_table_ebb8[utf8[2] - 0x8c];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b4_table_ebb9[utf8[2] - 0x84];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b4_table_ebba[utf8[2] - 0x98];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b4_table_ebbb[utf8[2] - 0x90];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b4_table_ebbc[utf8[2] - 0x88];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b4_table_ebbd[utf8[2] - 0x80];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b4_table_ebbe[utf8[2] - 0x94];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b4_table_ebbf[utf8[2] - 0x8c];
        }
        break;
      default :
        break;
      }
      break;
    case 0xec :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b4_table_ec80[utf8[2] - 0x84];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b4_table_ec81[utf8[2] - 0x98];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b4_table_ec82[utf8[2] - 0x90];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b4_table_ec83[utf8[2] - 0x88];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b4_table_ec84[utf8[2] - 0x80];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b4_table_ec85[utf8[2] - 0x94];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b4_table_ec86[utf8[2] - 0x8c];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b4_table_ec87[utf8[2] - 0x84];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b4_table_ec88[utf8[2] - 0x98];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b4_table_ec89[utf8[2] - 0x90];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b4_table_ec8a[utf8[2] - 0x88];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b4_table_ec8b[utf8[2] - 0x80];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b4_table_ec8c[utf8[2] - 0x94];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b4_table_ec8d[utf8[2] - 0x8c];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b4_table_ec8e[utf8[2] - 0x84];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b4_table_ec8f[utf8[2] - 0x98];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b4_table_ec90[utf8[2] - 0x90];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b4_table_ec91[utf8[2] - 0x88];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b4_table_ec92[utf8[2] - 0x80];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b4_table_ec93[utf8[2] - 0x94];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b4_table_ec94[utf8[2] - 0x8c];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b4_table_ec95[utf8[2] - 0x84];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b4_table_ec96[utf8[2] - 0x98];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b4_table_ec97[utf8[2] - 0x90];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b4_table_ec98[utf8[2] - 0x88];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b4_table_ec99[utf8[2] - 0x80];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b4_table_ec9a[utf8[2] - 0x94];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b4_table_ec9b[utf8[2] - 0x8c];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b4_table_ec9c[utf8[2] - 0x84];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b4_table_ec9d[utf8[2] - 0x98];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b4_table_ec9e[utf8[2] - 0x90];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b4_table_ec9f[utf8[2] - 0x88];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b4_table_eca0[utf8[2] - 0x80];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b4_table_eca1[utf8[2] - 0x94];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b4_table_eca2[utf8[2] - 0x8c];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b4_table_eca3[utf8[2] - 0x84];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b4_table_eca4[utf8[2] - 0x98];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b4_table_eca5[utf8[2] - 0x90];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b4_table_eca6[utf8[2] - 0x88];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b4_table_eca7[utf8[2] - 0x80];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b4_table_eca8[utf8[2] - 0x94];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b4_table_eca9[utf8[2] - 0x8c];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b4_table_ecaa[utf8[2] - 0x84];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b4_table_ecab[utf8[2] - 0x98];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b4_table_ecac[utf8[2] - 0x90];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b4_table_ecad[utf8[2] - 0x88];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b4_table_ecae[utf8[2] - 0x80];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b4_table_ecaf[utf8[2] - 0x94];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b4_table_ecb0[utf8[2] - 0x8c];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b4_table_ecb1[utf8[2] - 0x84];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b4_table_ecb2[utf8[2] - 0x98];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b4_table_ecb3[utf8[2] - 0x90];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b4_table_ecb4[utf8[2] - 0x88];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b4_table_ecb5[utf8[2] - 0x80];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b4_table_ecb6[utf8[2] - 0x94];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b4_table_ecb7[utf8[2] - 0x8c];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b4_table_ecb8[utf8[2] - 0x84];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b4_table_ecb9[utf8[2] - 0x98];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b4_table_ecba[utf8[2] - 0x90];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b4_table_ecbb[utf8[2] - 0x88];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b4_table_ecbc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b4_table_ecbd[utf8[2] - 0x94];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b4_table_ecbe[utf8[2] - 0x8c];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b4_table_ecbf[utf8[2] - 0x84];
        }
        break;
      default :
        break;
      }
      break;
    case 0xed :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b4_table_ed80[utf8[2] - 0x98];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b4_table_ed81[utf8[2] - 0x90];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b4_table_ed82[utf8[2] - 0x88];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b4_table_ed83[utf8[2] - 0x80];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b4_table_ed84[utf8[2] - 0x94];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b4_table_ed85[utf8[2] - 0x8c];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b4_table_ed86[utf8[2] - 0x84];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b4_table_ed87[utf8[2] - 0x98];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b4_table_ed88[utf8[2] - 0x90];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b4_table_ed89[utf8[2] - 0x88];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b4_table_ed8a[utf8[2] - 0x80];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b4_table_ed8b[utf8[2] - 0x94];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b4_table_ed8c[utf8[2] - 0x8c];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b4_table_ed8d[utf8[2] - 0x84];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b4_table_ed8e[utf8[2] - 0x98];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b4_table_ed8f[utf8[2] - 0x90];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b4_table_ed90[utf8[2] - 0x88];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b4_table_ed91[utf8[2] - 0x80];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b4_table_ed92[utf8[2] - 0x94];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b4_table_ed93[utf8[2] - 0x8c];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b4_table_ed94[utf8[2] - 0x84];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b4_table_ed95[utf8[2] - 0x98];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b4_table_ed96[utf8[2] - 0x90];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b4_table_ed97[utf8[2] - 0x88];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b4_table_ed98[utf8[2] - 0x80];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b4_table_ed99[utf8[2] - 0x94];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b4_table_ed9a[utf8[2] - 0x8c];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b4_table_ed9b[utf8[2] - 0x84];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b4_table_ed9c[utf8[2] - 0x98];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b4_table_ed9d[utf8[2] - 0x90];
        }
        break;
      case 0x9e :
        if (utf8[2] == 0x88) {
          return "\xed\x9e\x95";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_e186b5_table_eab0[] = {
  "\xea\xb0\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb0\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb1\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eab1[] = {
  "\xea\xb1\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb1\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eab2[] = {
  "\xea\xb2\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eab3[] = {
  "\xea\xb3\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb4\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eab4[] = {
  "\xea\xb4\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eab5[] = {
  "\xea\xb5\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eab6[] = {
  "\xea\xb6\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eab7[] = {
  "\xea\xb7\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb7\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb8\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eab8[] = {
  "\xea\xb8\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb8\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eab9[] = {
  "\xea\xb9\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eaba[] = {
  "\xea\xba\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbb\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eabb[] = {
  "\xea\xbb\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eabc[] = {
  "\xea\xbc\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eabd[] = {
  "\xea\xbd\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eabe[] = {
  "\xea\xbe\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbe\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbf\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eabf[] = {
  "\xea\xbf\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbf\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eb80[] = {
  "\xeb\x80\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eb81[] = {
  "\xeb\x81\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x82\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eb82[] = {
  "\xeb\x82\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eb83[] = {
  "\xeb\x83\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eb84[] = {
  "\xeb\x84\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eb85[] = {
  "\xeb\x85\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x85\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x86\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eb86[] = {
  "\xeb\x86\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x86\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eb87[] = {
  "\xeb\x87\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eb88[] = {
  "\xeb\x88\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x89\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eb89[] = {
  "\xeb\x89\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eb8a[] = {
  "\xeb\x8a\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eb8b[] = {
  "\xeb\x8b\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eb8c[] = {
  "\xeb\x8c\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8c\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8d\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eb8d[] = {
  "\xeb\x8d\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8d\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eb8e[] = {
  "\xeb\x8e\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eb8f[] = {
  "\xeb\x8f\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x90\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eb90[] = {
  "\xeb\x90\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eb91[] = {
  "\xeb\x91\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eb92[] = {
  "\xeb\x92\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eb93[] = {
  "\xeb\x93\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x93\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x94\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eb94[] = {
  "\xeb\x94\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x94\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eb95[] = {
  "\xeb\x95\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eb96[] = {
  "\xeb\x96\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x97\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eb97[] = {
  "\xeb\x97\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eb98[] = {
  "\xeb\x98\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eb99[] = {
  "\xeb\x99\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eb9a[] = {
  "\xeb\x9a\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9a\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9b\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eb9b[] = {
  "\xeb\x9b\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9b\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eb9c[] = {
  "\xeb\x9c\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eb9d[] = {
  "\xeb\x9d\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9e\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eb9e[] = {
  "\xeb\x9e\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eb9f[] = {
  "\xeb\x9f\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eba0[] = {
  "\xeb\xa0\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eba1[] = {
  "\xeb\xa1\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa1\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa2\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eba2[] = {
  "\xeb\xa2\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa2\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eba3[] = {
  "\xeb\xa3\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eba4[] = {
  "\xeb\xa4\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa5\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eba5[] = {
  "\xeb\xa5\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eba6[] = {
  "\xeb\xa6\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eba7[] = {
  "\xeb\xa7\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eba8[] = {
  "\xeb\xa8\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa8\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa9\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eba9[] = {
  "\xeb\xa9\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa9\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ebaa[] = {
  "\xeb\xaa\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ebab[] = {
  "\xeb\xab\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xac\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ebac[] = {
  "\xeb\xac\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ebad[] = {
  "\xeb\xad\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ebae[] = {
  "\xeb\xae\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ebaf[] = {
  "\xeb\xaf\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaf\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb0\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ebb0[] = {
  "\xeb\xb0\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb0\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ebb1[] = {
  "\xeb\xb1\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ebb2[] = {
  "\xeb\xb2\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb3\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ebb3[] = {
  "\xeb\xb3\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ebb4[] = {
  "\xeb\xb4\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ebb5[] = {
  "\xeb\xb5\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ebb6[] = {
  "\xeb\xb6\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb6\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb7\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ebb7[] = {
  "\xeb\xb7\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb7\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ebb8[] = {
  "\xeb\xb8\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ebb9[] = {
  "\xeb\xb9\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xba\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ebba[] = {
  "\xeb\xba\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ebbb[] = {
  "\xeb\xbb\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ebbc[] = {
  "\xeb\xbc\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ebbd[] = {
  "\xeb\xbd\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbd\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xbe\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ebbe[] = {
  "\xeb\xbe\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbe\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ebbf[] = {
  "\xeb\xbf\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ec80[] = {
  "\xec\x80\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x81\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ec81[] = {
  "\xec\x81\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ec82[] = {
  "\xec\x82\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ec83[] = {
  "\xec\x83\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ec84[] = {
  "\xec\x84\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x84\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x85\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ec85[] = {
  "\xec\x85\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x85\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ec86[] = {
  "\xec\x86\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ec87[] = {
  "\xec\x87\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x88\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ec88[] = {
  "\xec\x88\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ec89[] = {
  "\xec\x89\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ec8a[] = {
  "\xec\x8a\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ec8b[] = {
  "\xec\x8b\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8b\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8c\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ec8c[] = {
  "\xec\x8c\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8c\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ec8d[] = {
  "\xec\x8d\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ec8e[] = {
  "\xec\x8e\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8f\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ec8f[] = {
  "\xec\x8f\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ec90[] = {
  "\xec\x90\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ec91[] = {
  "\xec\x91\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ec92[] = {
  "\xec\x92\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x92\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x93\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ec93[] = {
  "\xec\x93\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x93\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ec94[] = {
  "\xec\x94\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ec95[] = {
  "\xec\x95\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x96\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ec96[] = {
  "\xec\x96\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ec97[] = {
  "\xec\x97\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ec98[] = {
  "\xec\x98\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ec99[] = {
  "\xec\x99\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x99\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9a\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ec9a[] = {
  "\xec\x9a\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9a\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ec9b[] = {
  "\xec\x9b\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ec9c[] = {
  "\xec\x9c\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9d\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ec9d[] = {
  "\xec\x9d\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ec9e[] = {
  "\xec\x9e\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ec9f[] = {
  "\xec\x9f\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eca0[] = {
  "\xec\xa0\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa0\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa1\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eca1[] = {
  "\xec\xa1\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa1\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eca2[] = {
  "\xec\xa2\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eca3[] = {
  "\xec\xa3\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa4\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eca4[] = {
  "\xec\xa4\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eca5[] = {
  "\xec\xa5\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eca6[] = {
  "\xec\xa6\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eca7[] = {
  "\xec\xa7\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa7\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa8\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eca8[] = {
  "\xec\xa8\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa8\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_eca9[] = {
  "\xec\xa9\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ecaa[] = {
  "\xec\xaa\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xab\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ecab[] = {
  "\xec\xab\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ecac[] = {
  "\xec\xac\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ecad[] = {
  "\xec\xad\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ecae[] = {
  "\xec\xae\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xae\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xaf\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ecaf[] = {
  "\xec\xaf\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaf\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ecb0[] = {
  "\xec\xb0\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ecb1[] = {
  "\xec\xb1\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb2\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ecb2[] = {
  "\xec\xb2\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ecb3[] = {
  "\xec\xb3\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ecb4[] = {
  "\xec\xb4\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ecb5[] = {
  "\xec\xb5\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb5\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb6\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ecb6[] = {
  "\xec\xb6\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb6\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ecb7[] = {
  "\xec\xb7\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ecb8[] = {
  "\xec\xb8\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb9\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ecb9[] = {
  "\xec\xb9\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ecba[] = {
  "\xec\xba\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ecbb[] = {
  "\xec\xbb\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ecbc[] = {
  "\xec\xbc\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbc\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbd\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ecbd[] = {
  "\xec\xbd\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbd\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ecbe[] = {
  "\xec\xbe\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ecbf[] = {
  "\xec\xbf\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x80\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ed80[] = {
  "\xed\x80\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ed81[] = {
  "\xed\x81\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ed82[] = {
  "\xed\x82\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ed83[] = {
  "\xed\x83\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x83\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x84\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ed84[] = {
  "\xed\x84\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x84\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ed85[] = {
  "\xed\x85\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ed86[] = {
  "\xed\x86\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x87\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ed87[] = {
  "\xed\x87\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ed88[] = {
  "\xed\x88\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ed89[] = {
  "\xed\x89\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ed8a[] = {
  "\xed\x8a\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8a\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8b\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ed8b[] = {
  "\xed\x8b\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8b\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ed8c[] = {
  "\xed\x8c\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ed8d[] = {
  "\xed\x8d\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8e\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ed8e[] = {
  "\xed\x8e\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ed8f[] = {
  "\xed\x8f\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ed90[] = {
  "\xed\x90\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ed91[] = {
  "\xed\x91\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x91\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x92\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ed92[] = {
  "\xed\x92\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x92\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ed93[] = {
  "\xed\x93\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ed94[] = {
  "\xed\x94\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x95\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ed95[] = {
  "\xed\x95\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ed96[] = {
  "\xed\x96\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ed97[] = {
  "\xed\x97\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\xb2"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ed98[] = {
  "\xed\x98\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x98\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x99\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ed99[] = {
  "\xed\x99\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x99\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ed9a[] = {
  "\xed\x9a\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ed9b[] = {
  "\xed\x9b\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x9c\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ed9c[] = {
  "\xed\x9c\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b5_table_ed9d[] = {
  "\xed\x9d\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\xba"
};

static inline const char *
grn_nfkc50_compose_prefix_e186b5(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xea :
      switch (utf8[1]) {
      case 0xb0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b5_table_eab0[utf8[2] - 0x80];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b5_table_eab1[utf8[2] - 0x94];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b5_table_eab2[utf8[2] - 0x8c];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b5_table_eab3[utf8[2] - 0x84];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b5_table_eab4[utf8[2] - 0x98];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b5_table_eab5[utf8[2] - 0x90];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b5_table_eab6[utf8[2] - 0x88];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b5_table_eab7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b5_table_eab8[utf8[2] - 0x94];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b5_table_eab9[utf8[2] - 0x8c];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b5_table_eaba[utf8[2] - 0x84];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b5_table_eabb[utf8[2] - 0x98];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b5_table_eabc[utf8[2] - 0x90];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b5_table_eabd[utf8[2] - 0x88];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b5_table_eabe[utf8[2] - 0x80];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b5_table_eabf[utf8[2] - 0x94];
        }
        break;
      default :
        break;
      }
      break;
    case 0xeb :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b5_table_eb80[utf8[2] - 0x8c];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b5_table_eb81[utf8[2] - 0x84];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b5_table_eb82[utf8[2] - 0x98];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b5_table_eb83[utf8[2] - 0x90];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b5_table_eb84[utf8[2] - 0x88];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b5_table_eb85[utf8[2] - 0x80];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b5_table_eb86[utf8[2] - 0x94];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b5_table_eb87[utf8[2] - 0x8c];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b5_table_eb88[utf8[2] - 0x84];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b5_table_eb89[utf8[2] - 0x98];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b5_table_eb8a[utf8[2] - 0x90];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b5_table_eb8b[utf8[2] - 0x88];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b5_table_eb8c[utf8[2] - 0x80];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b5_table_eb8d[utf8[2] - 0x94];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b5_table_eb8e[utf8[2] - 0x8c];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b5_table_eb8f[utf8[2] - 0x84];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b5_table_eb90[utf8[2] - 0x98];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b5_table_eb91[utf8[2] - 0x90];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b5_table_eb92[utf8[2] - 0x88];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b5_table_eb93[utf8[2] - 0x80];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b5_table_eb94[utf8[2] - 0x94];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b5_table_eb95[utf8[2] - 0x8c];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b5_table_eb96[utf8[2] - 0x84];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b5_table_eb97[utf8[2] - 0x98];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b5_table_eb98[utf8[2] - 0x90];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b5_table_eb99[utf8[2] - 0x88];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b5_table_eb9a[utf8[2] - 0x80];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b5_table_eb9b[utf8[2] - 0x94];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b5_table_eb9c[utf8[2] - 0x8c];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b5_table_eb9d[utf8[2] - 0x84];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b5_table_eb9e[utf8[2] - 0x98];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b5_table_eb9f[utf8[2] - 0x90];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b5_table_eba0[utf8[2] - 0x88];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b5_table_eba1[utf8[2] - 0x80];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b5_table_eba2[utf8[2] - 0x94];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b5_table_eba3[utf8[2] - 0x8c];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b5_table_eba4[utf8[2] - 0x84];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b5_table_eba5[utf8[2] - 0x98];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b5_table_eba6[utf8[2] - 0x90];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b5_table_eba7[utf8[2] - 0x88];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b5_table_eba8[utf8[2] - 0x80];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b5_table_eba9[utf8[2] - 0x94];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b5_table_ebaa[utf8[2] - 0x8c];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b5_table_ebab[utf8[2] - 0x84];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b5_table_ebac[utf8[2] - 0x98];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b5_table_ebad[utf8[2] - 0x90];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b5_table_ebae[utf8[2] - 0x88];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b5_table_ebaf[utf8[2] - 0x80];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b5_table_ebb0[utf8[2] - 0x94];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b5_table_ebb1[utf8[2] - 0x8c];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b5_table_ebb2[utf8[2] - 0x84];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b5_table_ebb3[utf8[2] - 0x98];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b5_table_ebb4[utf8[2] - 0x90];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b5_table_ebb5[utf8[2] - 0x88];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b5_table_ebb6[utf8[2] - 0x80];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b5_table_ebb7[utf8[2] - 0x94];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b5_table_ebb8[utf8[2] - 0x8c];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b5_table_ebb9[utf8[2] - 0x84];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b5_table_ebba[utf8[2] - 0x98];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b5_table_ebbb[utf8[2] - 0x90];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b5_table_ebbc[utf8[2] - 0x88];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b5_table_ebbd[utf8[2] - 0x80];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b5_table_ebbe[utf8[2] - 0x94];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b5_table_ebbf[utf8[2] - 0x8c];
        }
        break;
      default :
        break;
      }
      break;
    case 0xec :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b5_table_ec80[utf8[2] - 0x84];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b5_table_ec81[utf8[2] - 0x98];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b5_table_ec82[utf8[2] - 0x90];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b5_table_ec83[utf8[2] - 0x88];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b5_table_ec84[utf8[2] - 0x80];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b5_table_ec85[utf8[2] - 0x94];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b5_table_ec86[utf8[2] - 0x8c];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b5_table_ec87[utf8[2] - 0x84];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b5_table_ec88[utf8[2] - 0x98];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b5_table_ec89[utf8[2] - 0x90];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b5_table_ec8a[utf8[2] - 0x88];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b5_table_ec8b[utf8[2] - 0x80];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b5_table_ec8c[utf8[2] - 0x94];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b5_table_ec8d[utf8[2] - 0x8c];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b5_table_ec8e[utf8[2] - 0x84];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b5_table_ec8f[utf8[2] - 0x98];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b5_table_ec90[utf8[2] - 0x90];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b5_table_ec91[utf8[2] - 0x88];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b5_table_ec92[utf8[2] - 0x80];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b5_table_ec93[utf8[2] - 0x94];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b5_table_ec94[utf8[2] - 0x8c];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b5_table_ec95[utf8[2] - 0x84];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b5_table_ec96[utf8[2] - 0x98];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b5_table_ec97[utf8[2] - 0x90];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b5_table_ec98[utf8[2] - 0x88];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b5_table_ec99[utf8[2] - 0x80];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b5_table_ec9a[utf8[2] - 0x94];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b5_table_ec9b[utf8[2] - 0x8c];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b5_table_ec9c[utf8[2] - 0x84];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b5_table_ec9d[utf8[2] - 0x98];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b5_table_ec9e[utf8[2] - 0x90];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b5_table_ec9f[utf8[2] - 0x88];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b5_table_eca0[utf8[2] - 0x80];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b5_table_eca1[utf8[2] - 0x94];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b5_table_eca2[utf8[2] - 0x8c];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b5_table_eca3[utf8[2] - 0x84];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b5_table_eca4[utf8[2] - 0x98];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b5_table_eca5[utf8[2] - 0x90];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b5_table_eca6[utf8[2] - 0x88];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b5_table_eca7[utf8[2] - 0x80];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b5_table_eca8[utf8[2] - 0x94];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b5_table_eca9[utf8[2] - 0x8c];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b5_table_ecaa[utf8[2] - 0x84];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b5_table_ecab[utf8[2] - 0x98];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b5_table_ecac[utf8[2] - 0x90];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b5_table_ecad[utf8[2] - 0x88];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b5_table_ecae[utf8[2] - 0x80];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b5_table_ecaf[utf8[2] - 0x94];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b5_table_ecb0[utf8[2] - 0x8c];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b5_table_ecb1[utf8[2] - 0x84];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b5_table_ecb2[utf8[2] - 0x98];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b5_table_ecb3[utf8[2] - 0x90];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b5_table_ecb4[utf8[2] - 0x88];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b5_table_ecb5[utf8[2] - 0x80];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b5_table_ecb6[utf8[2] - 0x94];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b5_table_ecb7[utf8[2] - 0x8c];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b5_table_ecb8[utf8[2] - 0x84];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b5_table_ecb9[utf8[2] - 0x98];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b5_table_ecba[utf8[2] - 0x90];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b5_table_ecbb[utf8[2] - 0x88];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b5_table_ecbc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b5_table_ecbd[utf8[2] - 0x94];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b5_table_ecbe[utf8[2] - 0x8c];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b5_table_ecbf[utf8[2] - 0x84];
        }
        break;
      default :
        break;
      }
      break;
    case 0xed :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b5_table_ed80[utf8[2] - 0x98];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b5_table_ed81[utf8[2] - 0x90];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b5_table_ed82[utf8[2] - 0x88];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b5_table_ed83[utf8[2] - 0x80];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b5_table_ed84[utf8[2] - 0x94];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b5_table_ed85[utf8[2] - 0x8c];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b5_table_ed86[utf8[2] - 0x84];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b5_table_ed87[utf8[2] - 0x98];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b5_table_ed88[utf8[2] - 0x90];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b5_table_ed89[utf8[2] - 0x88];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b5_table_ed8a[utf8[2] - 0x80];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b5_table_ed8b[utf8[2] - 0x94];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b5_table_ed8c[utf8[2] - 0x8c];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b5_table_ed8d[utf8[2] - 0x84];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b5_table_ed8e[utf8[2] - 0x98];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b5_table_ed8f[utf8[2] - 0x90];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b5_table_ed90[utf8[2] - 0x88];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b5_table_ed91[utf8[2] - 0x80];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b5_table_ed92[utf8[2] - 0x94];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b5_table_ed93[utf8[2] - 0x8c];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b5_table_ed94[utf8[2] - 0x84];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b5_table_ed95[utf8[2] - 0x98];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b5_table_ed96[utf8[2] - 0x90];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b5_table_ed97[utf8[2] - 0x88];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b5_table_ed98[utf8[2] - 0x80];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b5_table_ed99[utf8[2] - 0x94];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b5_table_ed9a[utf8[2] - 0x8c];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b5_table_ed9b[utf8[2] - 0x84];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b5_table_ed9c[utf8[2] - 0x98];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b5_table_ed9d[utf8[2] - 0x90];
        }
        break;
      case 0x9e :
        if (utf8[2] == 0x88) {
          return "\xed\x9e\x96";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_e186b6_table_eab0[] = {
  "\xea\xb0\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb0\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb1\x87"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eab1[] = {
  "\xea\xb1\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb1\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eab2[] = {
  "\xea\xb2\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eab3[] = {
  "\xea\xb3\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb4\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eab4[] = {
  "\xea\xb4\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\x83"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eab5[] = {
  "\xea\xb5\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eab6[] = {
  "\xea\xb6\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eab7[] = {
  "\xea\xb7\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb7\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb8\x87"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eab8[] = {
  "\xea\xb8\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb8\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eab9[] = {
  "\xea\xb9\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eaba[] = {
  "\xea\xba\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbb\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eabb[] = {
  "\xea\xbb\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\x83"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eabc[] = {
  "\xea\xbc\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eabd[] = {
  "\xea\xbd\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eabe[] = {
  "\xea\xbe\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbe\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbf\x87"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eabf[] = {
  "\xea\xbf\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbf\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eb80[] = {
  "\xeb\x80\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eb81[] = {
  "\xeb\x81\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x82\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eb82[] = {
  "\xeb\x82\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\x83"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eb83[] = {
  "\xeb\x83\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eb84[] = {
  "\xeb\x84\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eb85[] = {
  "\xeb\x85\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x85\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x86\x87"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eb86[] = {
  "\xeb\x86\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x86\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eb87[] = {
  "\xeb\x87\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eb88[] = {
  "\xeb\x88\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x89\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eb89[] = {
  "\xeb\x89\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\x83"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eb8a[] = {
  "\xeb\x8a\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eb8b[] = {
  "\xeb\x8b\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eb8c[] = {
  "\xeb\x8c\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8c\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8d\x87"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eb8d[] = {
  "\xeb\x8d\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8d\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eb8e[] = {
  "\xeb\x8e\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eb8f[] = {
  "\xeb\x8f\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x90\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eb90[] = {
  "\xeb\x90\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\x83"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eb91[] = {
  "\xeb\x91\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eb92[] = {
  "\xeb\x92\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eb93[] = {
  "\xeb\x93\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x93\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x94\x87"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eb94[] = {
  "\xeb\x94\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x94\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eb95[] = {
  "\xeb\x95\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eb96[] = {
  "\xeb\x96\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x97\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eb97[] = {
  "\xeb\x97\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\x83"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eb98[] = {
  "\xeb\x98\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eb99[] = {
  "\xeb\x99\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eb9a[] = {
  "\xeb\x9a\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9a\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9b\x87"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eb9b[] = {
  "\xeb\x9b\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9b\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eb9c[] = {
  "\xeb\x9c\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eb9d[] = {
  "\xeb\x9d\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9e\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eb9e[] = {
  "\xeb\x9e\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\x83"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eb9f[] = {
  "\xeb\x9f\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eba0[] = {
  "\xeb\xa0\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eba1[] = {
  "\xeb\xa1\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa1\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa2\x87"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eba2[] = {
  "\xeb\xa2\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa2\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eba3[] = {
  "\xeb\xa3\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eba4[] = {
  "\xeb\xa4\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa5\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eba5[] = {
  "\xeb\xa5\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\x83"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eba6[] = {
  "\xeb\xa6\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eba7[] = {
  "\xeb\xa7\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eba8[] = {
  "\xeb\xa8\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa8\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa9\x87"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eba9[] = {
  "\xeb\xa9\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa9\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ebaa[] = {
  "\xeb\xaa\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ebab[] = {
  "\xeb\xab\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xac\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ebac[] = {
  "\xeb\xac\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\x83"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ebad[] = {
  "\xeb\xad\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ebae[] = {
  "\xeb\xae\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ebaf[] = {
  "\xeb\xaf\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaf\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb0\x87"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ebb0[] = {
  "\xeb\xb0\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb0\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ebb1[] = {
  "\xeb\xb1\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ebb2[] = {
  "\xeb\xb2\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb3\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ebb3[] = {
  "\xeb\xb3\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\x83"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ebb4[] = {
  "\xeb\xb4\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ebb5[] = {
  "\xeb\xb5\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ebb6[] = {
  "\xeb\xb6\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb6\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb7\x87"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ebb7[] = {
  "\xeb\xb7\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb7\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ebb8[] = {
  "\xeb\xb8\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ebb9[] = {
  "\xeb\xb9\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xba\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ebba[] = {
  "\xeb\xba\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\x83"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ebbb[] = {
  "\xeb\xbb\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ebbc[] = {
  "\xeb\xbc\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ebbd[] = {
  "\xeb\xbd\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbd\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xbe\x87"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ebbe[] = {
  "\xeb\xbe\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbe\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ebbf[] = {
  "\xeb\xbf\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ec80[] = {
  "\xec\x80\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x81\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ec81[] = {
  "\xec\x81\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\x83"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ec82[] = {
  "\xec\x82\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ec83[] = {
  "\xec\x83\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ec84[] = {
  "\xec\x84\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x84\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x85\x87"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ec85[] = {
  "\xec\x85\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x85\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ec86[] = {
  "\xec\x86\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ec87[] = {
  "\xec\x87\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x88\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ec88[] = {
  "\xec\x88\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\x83"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ec89[] = {
  "\xec\x89\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ec8a[] = {
  "\xec\x8a\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ec8b[] = {
  "\xec\x8b\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8b\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8c\x87"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ec8c[] = {
  "\xec\x8c\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8c\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ec8d[] = {
  "\xec\x8d\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ec8e[] = {
  "\xec\x8e\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8f\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ec8f[] = {
  "\xec\x8f\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\x83"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ec90[] = {
  "\xec\x90\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ec91[] = {
  "\xec\x91\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ec92[] = {
  "\xec\x92\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x92\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x93\x87"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ec93[] = {
  "\xec\x93\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x93\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ec94[] = {
  "\xec\x94\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ec95[] = {
  "\xec\x95\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x96\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ec96[] = {
  "\xec\x96\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\x83"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ec97[] = {
  "\xec\x97\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ec98[] = {
  "\xec\x98\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ec99[] = {
  "\xec\x99\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x99\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9a\x87"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ec9a[] = {
  "\xec\x9a\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9a\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ec9b[] = {
  "\xec\x9b\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ec9c[] = {
  "\xec\x9c\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9d\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ec9d[] = {
  "\xec\x9d\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\x83"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ec9e[] = {
  "\xec\x9e\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ec9f[] = {
  "\xec\x9f\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eca0[] = {
  "\xec\xa0\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa0\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa1\x87"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eca1[] = {
  "\xec\xa1\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa1\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eca2[] = {
  "\xec\xa2\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eca3[] = {
  "\xec\xa3\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa4\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eca4[] = {
  "\xec\xa4\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\x83"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eca5[] = {
  "\xec\xa5\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eca6[] = {
  "\xec\xa6\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eca7[] = {
  "\xec\xa7\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa7\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa8\x87"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eca8[] = {
  "\xec\xa8\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa8\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_eca9[] = {
  "\xec\xa9\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ecaa[] = {
  "\xec\xaa\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xab\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ecab[] = {
  "\xec\xab\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\x83"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ecac[] = {
  "\xec\xac\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ecad[] = {
  "\xec\xad\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ecae[] = {
  "\xec\xae\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xae\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xaf\x87"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ecaf[] = {
  "\xec\xaf\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaf\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ecb0[] = {
  "\xec\xb0\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ecb1[] = {
  "\xec\xb1\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb2\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ecb2[] = {
  "\xec\xb2\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\x83"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ecb3[] = {
  "\xec\xb3\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ecb4[] = {
  "\xec\xb4\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ecb5[] = {
  "\xec\xb5\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb5\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb6\x87"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ecb6[] = {
  "\xec\xb6\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb6\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ecb7[] = {
  "\xec\xb7\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ecb8[] = {
  "\xec\xb8\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb9\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ecb9[] = {
  "\xec\xb9\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\x83"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ecba[] = {
  "\xec\xba\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ecbb[] = {
  "\xec\xbb\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ecbc[] = {
  "\xec\xbc\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbc\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbd\x87"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ecbd[] = {
  "\xec\xbd\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbd\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ecbe[] = {
  "\xec\xbe\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ecbf[] = {
  "\xec\xbf\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x80\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ed80[] = {
  "\xed\x80\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\x83"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ed81[] = {
  "\xed\x81\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ed82[] = {
  "\xed\x82\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ed83[] = {
  "\xed\x83\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x83\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x84\x87"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ed84[] = {
  "\xed\x84\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x84\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ed85[] = {
  "\xed\x85\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ed86[] = {
  "\xed\x86\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x87\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ed87[] = {
  "\xed\x87\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\x83"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ed88[] = {
  "\xed\x88\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ed89[] = {
  "\xed\x89\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ed8a[] = {
  "\xed\x8a\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8a\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8b\x87"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ed8b[] = {
  "\xed\x8b\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8b\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ed8c[] = {
  "\xed\x8c\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ed8d[] = {
  "\xed\x8d\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8e\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ed8e[] = {
  "\xed\x8e\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\x83"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ed8f[] = {
  "\xed\x8f\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ed90[] = {
  "\xed\x90\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ed91[] = {
  "\xed\x91\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x91\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x92\x87"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ed92[] = {
  "\xed\x92\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x92\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ed93[] = {
  "\xed\x93\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ed94[] = {
  "\xed\x94\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x95\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ed95[] = {
  "\xed\x95\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\x83"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ed96[] = {
  "\xed\x96\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ed97[] = {
  "\xed\x97\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\xb3"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ed98[] = {
  "\xed\x98\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x98\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x99\x87"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ed99[] = {
  "\xed\x99\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x99\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ed9a[] = {
  "\xed\x9a\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ed9b[] = {
  "\xed\x9b\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x9c\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ed9c[] = {
  "\xed\x9c\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\x83"
};

static const char *grn_nfkc50_compose_prefix_e186b6_table_ed9d[] = {
  "\xed\x9d\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\xbb"
};

static inline const char *
grn_nfkc50_compose_prefix_e186b6(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xea :
      switch (utf8[1]) {
      case 0xb0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b6_table_eab0[utf8[2] - 0x80];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b6_table_eab1[utf8[2] - 0x94];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b6_table_eab2[utf8[2] - 0x8c];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b6_table_eab3[utf8[2] - 0x84];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b6_table_eab4[utf8[2] - 0x98];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b6_table_eab5[utf8[2] - 0x90];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b6_table_eab6[utf8[2] - 0x88];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b6_table_eab7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b6_table_eab8[utf8[2] - 0x94];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b6_table_eab9[utf8[2] - 0x8c];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b6_table_eaba[utf8[2] - 0x84];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b6_table_eabb[utf8[2] - 0x98];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b6_table_eabc[utf8[2] - 0x90];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b6_table_eabd[utf8[2] - 0x88];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b6_table_eabe[utf8[2] - 0x80];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b6_table_eabf[utf8[2] - 0x94];
        }
        break;
      default :
        break;
      }
      break;
    case 0xeb :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b6_table_eb80[utf8[2] - 0x8c];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b6_table_eb81[utf8[2] - 0x84];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b6_table_eb82[utf8[2] - 0x98];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b6_table_eb83[utf8[2] - 0x90];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b6_table_eb84[utf8[2] - 0x88];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b6_table_eb85[utf8[2] - 0x80];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b6_table_eb86[utf8[2] - 0x94];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b6_table_eb87[utf8[2] - 0x8c];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b6_table_eb88[utf8[2] - 0x84];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b6_table_eb89[utf8[2] - 0x98];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b6_table_eb8a[utf8[2] - 0x90];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b6_table_eb8b[utf8[2] - 0x88];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b6_table_eb8c[utf8[2] - 0x80];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b6_table_eb8d[utf8[2] - 0x94];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b6_table_eb8e[utf8[2] - 0x8c];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b6_table_eb8f[utf8[2] - 0x84];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b6_table_eb90[utf8[2] - 0x98];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b6_table_eb91[utf8[2] - 0x90];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b6_table_eb92[utf8[2] - 0x88];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b6_table_eb93[utf8[2] - 0x80];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b6_table_eb94[utf8[2] - 0x94];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b6_table_eb95[utf8[2] - 0x8c];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b6_table_eb96[utf8[2] - 0x84];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b6_table_eb97[utf8[2] - 0x98];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b6_table_eb98[utf8[2] - 0x90];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b6_table_eb99[utf8[2] - 0x88];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b6_table_eb9a[utf8[2] - 0x80];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b6_table_eb9b[utf8[2] - 0x94];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b6_table_eb9c[utf8[2] - 0x8c];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b6_table_eb9d[utf8[2] - 0x84];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b6_table_eb9e[utf8[2] - 0x98];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b6_table_eb9f[utf8[2] - 0x90];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b6_table_eba0[utf8[2] - 0x88];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b6_table_eba1[utf8[2] - 0x80];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b6_table_eba2[utf8[2] - 0x94];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b6_table_eba3[utf8[2] - 0x8c];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b6_table_eba4[utf8[2] - 0x84];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b6_table_eba5[utf8[2] - 0x98];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b6_table_eba6[utf8[2] - 0x90];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b6_table_eba7[utf8[2] - 0x88];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b6_table_eba8[utf8[2] - 0x80];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b6_table_eba9[utf8[2] - 0x94];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b6_table_ebaa[utf8[2] - 0x8c];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b6_table_ebab[utf8[2] - 0x84];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b6_table_ebac[utf8[2] - 0x98];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b6_table_ebad[utf8[2] - 0x90];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b6_table_ebae[utf8[2] - 0x88];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b6_table_ebaf[utf8[2] - 0x80];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b6_table_ebb0[utf8[2] - 0x94];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b6_table_ebb1[utf8[2] - 0x8c];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b6_table_ebb2[utf8[2] - 0x84];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b6_table_ebb3[utf8[2] - 0x98];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b6_table_ebb4[utf8[2] - 0x90];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b6_table_ebb5[utf8[2] - 0x88];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b6_table_ebb6[utf8[2] - 0x80];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b6_table_ebb7[utf8[2] - 0x94];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b6_table_ebb8[utf8[2] - 0x8c];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b6_table_ebb9[utf8[2] - 0x84];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b6_table_ebba[utf8[2] - 0x98];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b6_table_ebbb[utf8[2] - 0x90];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b6_table_ebbc[utf8[2] - 0x88];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b6_table_ebbd[utf8[2] - 0x80];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b6_table_ebbe[utf8[2] - 0x94];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b6_table_ebbf[utf8[2] - 0x8c];
        }
        break;
      default :
        break;
      }
      break;
    case 0xec :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b6_table_ec80[utf8[2] - 0x84];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b6_table_ec81[utf8[2] - 0x98];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b6_table_ec82[utf8[2] - 0x90];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b6_table_ec83[utf8[2] - 0x88];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b6_table_ec84[utf8[2] - 0x80];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b6_table_ec85[utf8[2] - 0x94];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b6_table_ec86[utf8[2] - 0x8c];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b6_table_ec87[utf8[2] - 0x84];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b6_table_ec88[utf8[2] - 0x98];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b6_table_ec89[utf8[2] - 0x90];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b6_table_ec8a[utf8[2] - 0x88];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b6_table_ec8b[utf8[2] - 0x80];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b6_table_ec8c[utf8[2] - 0x94];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b6_table_ec8d[utf8[2] - 0x8c];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b6_table_ec8e[utf8[2] - 0x84];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b6_table_ec8f[utf8[2] - 0x98];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b6_table_ec90[utf8[2] - 0x90];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b6_table_ec91[utf8[2] - 0x88];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b6_table_ec92[utf8[2] - 0x80];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b6_table_ec93[utf8[2] - 0x94];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b6_table_ec94[utf8[2] - 0x8c];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b6_table_ec95[utf8[2] - 0x84];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b6_table_ec96[utf8[2] - 0x98];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b6_table_ec97[utf8[2] - 0x90];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b6_table_ec98[utf8[2] - 0x88];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b6_table_ec99[utf8[2] - 0x80];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b6_table_ec9a[utf8[2] - 0x94];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b6_table_ec9b[utf8[2] - 0x8c];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b6_table_ec9c[utf8[2] - 0x84];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b6_table_ec9d[utf8[2] - 0x98];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b6_table_ec9e[utf8[2] - 0x90];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b6_table_ec9f[utf8[2] - 0x88];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b6_table_eca0[utf8[2] - 0x80];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b6_table_eca1[utf8[2] - 0x94];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b6_table_eca2[utf8[2] - 0x8c];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b6_table_eca3[utf8[2] - 0x84];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b6_table_eca4[utf8[2] - 0x98];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b6_table_eca5[utf8[2] - 0x90];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b6_table_eca6[utf8[2] - 0x88];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b6_table_eca7[utf8[2] - 0x80];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b6_table_eca8[utf8[2] - 0x94];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b6_table_eca9[utf8[2] - 0x8c];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b6_table_ecaa[utf8[2] - 0x84];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b6_table_ecab[utf8[2] - 0x98];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b6_table_ecac[utf8[2] - 0x90];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b6_table_ecad[utf8[2] - 0x88];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b6_table_ecae[utf8[2] - 0x80];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b6_table_ecaf[utf8[2] - 0x94];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b6_table_ecb0[utf8[2] - 0x8c];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b6_table_ecb1[utf8[2] - 0x84];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b6_table_ecb2[utf8[2] - 0x98];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b6_table_ecb3[utf8[2] - 0x90];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b6_table_ecb4[utf8[2] - 0x88];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b6_table_ecb5[utf8[2] - 0x80];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b6_table_ecb6[utf8[2] - 0x94];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b6_table_ecb7[utf8[2] - 0x8c];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b6_table_ecb8[utf8[2] - 0x84];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b6_table_ecb9[utf8[2] - 0x98];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b6_table_ecba[utf8[2] - 0x90];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b6_table_ecbb[utf8[2] - 0x88];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b6_table_ecbc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b6_table_ecbd[utf8[2] - 0x94];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b6_table_ecbe[utf8[2] - 0x8c];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b6_table_ecbf[utf8[2] - 0x84];
        }
        break;
      default :
        break;
      }
      break;
    case 0xed :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b6_table_ed80[utf8[2] - 0x98];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b6_table_ed81[utf8[2] - 0x90];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b6_table_ed82[utf8[2] - 0x88];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b6_table_ed83[utf8[2] - 0x80];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b6_table_ed84[utf8[2] - 0x94];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b6_table_ed85[utf8[2] - 0x8c];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b6_table_ed86[utf8[2] - 0x84];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b6_table_ed87[utf8[2] - 0x98];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b6_table_ed88[utf8[2] - 0x90];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b6_table_ed89[utf8[2] - 0x88];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b6_table_ed8a[utf8[2] - 0x80];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b6_table_ed8b[utf8[2] - 0x94];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b6_table_ed8c[utf8[2] - 0x8c];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b6_table_ed8d[utf8[2] - 0x84];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b6_table_ed8e[utf8[2] - 0x98];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b6_table_ed8f[utf8[2] - 0x90];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b6_table_ed90[utf8[2] - 0x88];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b6_table_ed91[utf8[2] - 0x80];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b6_table_ed92[utf8[2] - 0x94];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b6_table_ed93[utf8[2] - 0x8c];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b6_table_ed94[utf8[2] - 0x84];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b6_table_ed95[utf8[2] - 0x98];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b6_table_ed96[utf8[2] - 0x90];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b6_table_ed97[utf8[2] - 0x88];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b6_table_ed98[utf8[2] - 0x80];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b6_table_ed99[utf8[2] - 0x94];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b6_table_ed9a[utf8[2] - 0x8c];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b6_table_ed9b[utf8[2] - 0x84];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b6_table_ed9c[utf8[2] - 0x98];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b6_table_ed9d[utf8[2] - 0x90];
        }
        break;
      case 0x9e :
        if (utf8[2] == 0x88) {
          return "\xed\x9e\x97";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_e186b7_table_eab0[] = {
  "\xea\xb0\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb0\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb1\x88"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eab1[] = {
  "\xea\xb1\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\x80"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eab2[] = {
  "\xea\xb2\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eab3[] = {
  "\xea\xb3\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb4\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eab4[] = {
  "\xea\xb4\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\x84"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eab5[] = {
  "\xea\xb5\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eab6[] = {
  "\xea\xb6\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eab7[] = {
  "\xea\xb7\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb7\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb8\x88"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eab8[] = {
  "\xea\xb8\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\x80"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eab9[] = {
  "\xea\xb9\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eaba[] = {
  "\xea\xba\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbb\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eabb[] = {
  "\xea\xbb\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\x84"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eabc[] = {
  "\xea\xbc\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eabd[] = {
  "\xea\xbd\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eabe[] = {
  "\xea\xbe\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbe\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbf\x88"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eabf[] = {
  "\xea\xbf\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\x80"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eb80[] = {
  "\xeb\x80\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eb81[] = {
  "\xeb\x81\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x82\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eb82[] = {
  "\xeb\x82\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\x84"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eb83[] = {
  "\xeb\x83\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eb84[] = {
  "\xeb\x84\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eb85[] = {
  "\xeb\x85\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x85\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x86\x88"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eb86[] = {
  "\xeb\x86\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\x80"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eb87[] = {
  "\xeb\x87\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eb88[] = {
  "\xeb\x88\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x89\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eb89[] = {
  "\xeb\x89\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\x84"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eb8a[] = {
  "\xeb\x8a\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eb8b[] = {
  "\xeb\x8b\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eb8c[] = {
  "\xeb\x8c\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8c\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8d\x88"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eb8d[] = {
  "\xeb\x8d\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\x80"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eb8e[] = {
  "\xeb\x8e\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eb8f[] = {
  "\xeb\x8f\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x90\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eb90[] = {
  "\xeb\x90\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\x84"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eb91[] = {
  "\xeb\x91\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eb92[] = {
  "\xeb\x92\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eb93[] = {
  "\xeb\x93\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x93\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x94\x88"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eb94[] = {
  "\xeb\x94\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\x80"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eb95[] = {
  "\xeb\x95\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eb96[] = {
  "\xeb\x96\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x97\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eb97[] = {
  "\xeb\x97\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\x84"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eb98[] = {
  "\xeb\x98\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eb99[] = {
  "\xeb\x99\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eb9a[] = {
  "\xeb\x9a\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9a\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9b\x88"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eb9b[] = {
  "\xeb\x9b\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\x80"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eb9c[] = {
  "\xeb\x9c\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eb9d[] = {
  "\xeb\x9d\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9e\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eb9e[] = {
  "\xeb\x9e\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\x84"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eb9f[] = {
  "\xeb\x9f\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eba0[] = {
  "\xeb\xa0\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eba1[] = {
  "\xeb\xa1\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa1\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa2\x88"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eba2[] = {
  "\xeb\xa2\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\x80"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eba3[] = {
  "\xeb\xa3\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eba4[] = {
  "\xeb\xa4\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa5\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eba5[] = {
  "\xeb\xa5\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\x84"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eba6[] = {
  "\xeb\xa6\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eba7[] = {
  "\xeb\xa7\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eba8[] = {
  "\xeb\xa8\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa8\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa9\x88"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eba9[] = {
  "\xeb\xa9\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\x80"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ebaa[] = {
  "\xeb\xaa\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ebab[] = {
  "\xeb\xab\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xac\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ebac[] = {
  "\xeb\xac\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\x84"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ebad[] = {
  "\xeb\xad\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ebae[] = {
  "\xeb\xae\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ebaf[] = {
  "\xeb\xaf\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaf\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb0\x88"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ebb0[] = {
  "\xeb\xb0\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\x80"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ebb1[] = {
  "\xeb\xb1\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ebb2[] = {
  "\xeb\xb2\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb3\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ebb3[] = {
  "\xeb\xb3\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\x84"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ebb4[] = {
  "\xeb\xb4\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ebb5[] = {
  "\xeb\xb5\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ebb6[] = {
  "\xeb\xb6\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb6\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb7\x88"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ebb7[] = {
  "\xeb\xb7\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\x80"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ebb8[] = {
  "\xeb\xb8\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ebb9[] = {
  "\xeb\xb9\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xba\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ebba[] = {
  "\xeb\xba\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\x84"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ebbb[] = {
  "\xeb\xbb\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ebbc[] = {
  "\xeb\xbc\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ebbd[] = {
  "\xeb\xbd\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbd\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xbe\x88"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ebbe[] = {
  "\xeb\xbe\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\x80"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ebbf[] = {
  "\xeb\xbf\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ec80[] = {
  "\xec\x80\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x81\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ec81[] = {
  "\xec\x81\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\x84"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ec82[] = {
  "\xec\x82\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ec83[] = {
  "\xec\x83\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ec84[] = {
  "\xec\x84\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x84\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x85\x88"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ec85[] = {
  "\xec\x85\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\x80"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ec86[] = {
  "\xec\x86\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ec87[] = {
  "\xec\x87\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x88\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ec88[] = {
  "\xec\x88\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\x84"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ec89[] = {
  "\xec\x89\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ec8a[] = {
  "\xec\x8a\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ec8b[] = {
  "\xec\x8b\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8b\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8c\x88"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ec8c[] = {
  "\xec\x8c\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\x80"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ec8d[] = {
  "\xec\x8d\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ec8e[] = {
  "\xec\x8e\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8f\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ec8f[] = {
  "\xec\x8f\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\x84"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ec90[] = {
  "\xec\x90\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ec91[] = {
  "\xec\x91\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ec92[] = {
  "\xec\x92\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x92\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x93\x88"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ec93[] = {
  "\xec\x93\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\x80"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ec94[] = {
  "\xec\x94\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ec95[] = {
  "\xec\x95\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x96\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ec96[] = {
  "\xec\x96\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\x84"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ec97[] = {
  "\xec\x97\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ec98[] = {
  "\xec\x98\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ec99[] = {
  "\xec\x99\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x99\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9a\x88"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ec9a[] = {
  "\xec\x9a\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\x80"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ec9b[] = {
  "\xec\x9b\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ec9c[] = {
  "\xec\x9c\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9d\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ec9d[] = {
  "\xec\x9d\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\x84"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ec9e[] = {
  "\xec\x9e\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ec9f[] = {
  "\xec\x9f\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eca0[] = {
  "\xec\xa0\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa0\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa1\x88"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eca1[] = {
  "\xec\xa1\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\x80"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eca2[] = {
  "\xec\xa2\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eca3[] = {
  "\xec\xa3\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa4\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eca4[] = {
  "\xec\xa4\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\x84"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eca5[] = {
  "\xec\xa5\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eca6[] = {
  "\xec\xa6\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eca7[] = {
  "\xec\xa7\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa7\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa8\x88"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eca8[] = {
  "\xec\xa8\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\x80"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_eca9[] = {
  "\xec\xa9\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ecaa[] = {
  "\xec\xaa\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xab\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ecab[] = {
  "\xec\xab\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\x84"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ecac[] = {
  "\xec\xac\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ecad[] = {
  "\xec\xad\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ecae[] = {
  "\xec\xae\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xae\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xaf\x88"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ecaf[] = {
  "\xec\xaf\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\x80"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ecb0[] = {
  "\xec\xb0\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ecb1[] = {
  "\xec\xb1\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb2\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ecb2[] = {
  "\xec\xb2\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\x84"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ecb3[] = {
  "\xec\xb3\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ecb4[] = {
  "\xec\xb4\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ecb5[] = {
  "\xec\xb5\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb5\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb6\x88"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ecb6[] = {
  "\xec\xb6\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\x80"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ecb7[] = {
  "\xec\xb7\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ecb8[] = {
  "\xec\xb8\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb9\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ecb9[] = {
  "\xec\xb9\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\x84"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ecba[] = {
  "\xec\xba\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ecbb[] = {
  "\xec\xbb\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ecbc[] = {
  "\xec\xbc\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbc\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbd\x88"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ecbd[] = {
  "\xec\xbd\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\x80"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ecbe[] = {
  "\xec\xbe\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ecbf[] = {
  "\xec\xbf\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x80\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ed80[] = {
  "\xed\x80\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\x84"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ed81[] = {
  "\xed\x81\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ed82[] = {
  "\xed\x82\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ed83[] = {
  "\xed\x83\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x83\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x84\x88"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ed84[] = {
  "\xed\x84\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\x80"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ed85[] = {
  "\xed\x85\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ed86[] = {
  "\xed\x86\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x87\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ed87[] = {
  "\xed\x87\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\x84"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ed88[] = {
  "\xed\x88\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ed89[] = {
  "\xed\x89\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ed8a[] = {
  "\xed\x8a\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8a\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8b\x88"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ed8b[] = {
  "\xed\x8b\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\x80"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ed8c[] = {
  "\xed\x8c\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ed8d[] = {
  "\xed\x8d\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8e\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ed8e[] = {
  "\xed\x8e\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\x84"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ed8f[] = {
  "\xed\x8f\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ed90[] = {
  "\xed\x90\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ed91[] = {
  "\xed\x91\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x91\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x92\x88"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ed92[] = {
  "\xed\x92\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\x80"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ed93[] = {
  "\xed\x93\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ed94[] = {
  "\xed\x94\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x95\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ed95[] = {
  "\xed\x95\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\x84"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ed96[] = {
  "\xed\x96\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ed97[] = {
  "\xed\x97\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\xb4"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ed98[] = {
  "\xed\x98\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x98\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x99\x88"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ed99[] = {
  "\xed\x99\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\x80"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ed9a[] = {
  "\xed\x9a\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ed9b[] = {
  "\xed\x9b\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x9c\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ed9c[] = {
  "\xed\x9c\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\x84"
};

static const char *grn_nfkc50_compose_prefix_e186b7_table_ed9d[] = {
  "\xed\x9d\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\xbc"
};

static inline const char *
grn_nfkc50_compose_prefix_e186b7(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xea :
      switch (utf8[1]) {
      case 0xb0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b7_table_eab0[utf8[2] - 0x80];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b7_table_eab1[utf8[2] - 0x94];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b7_table_eab2[utf8[2] - 0x8c];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b7_table_eab3[utf8[2] - 0x84];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b7_table_eab4[utf8[2] - 0x98];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b7_table_eab5[utf8[2] - 0x90];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b7_table_eab6[utf8[2] - 0x88];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b7_table_eab7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b7_table_eab8[utf8[2] - 0x94];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b7_table_eab9[utf8[2] - 0x8c];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b7_table_eaba[utf8[2] - 0x84];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b7_table_eabb[utf8[2] - 0x98];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b7_table_eabc[utf8[2] - 0x90];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b7_table_eabd[utf8[2] - 0x88];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b7_table_eabe[utf8[2] - 0x80];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b7_table_eabf[utf8[2] - 0x94];
        }
        break;
      default :
        break;
      }
      break;
    case 0xeb :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b7_table_eb80[utf8[2] - 0x8c];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b7_table_eb81[utf8[2] - 0x84];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b7_table_eb82[utf8[2] - 0x98];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b7_table_eb83[utf8[2] - 0x90];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b7_table_eb84[utf8[2] - 0x88];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b7_table_eb85[utf8[2] - 0x80];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b7_table_eb86[utf8[2] - 0x94];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b7_table_eb87[utf8[2] - 0x8c];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b7_table_eb88[utf8[2] - 0x84];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b7_table_eb89[utf8[2] - 0x98];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b7_table_eb8a[utf8[2] - 0x90];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b7_table_eb8b[utf8[2] - 0x88];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b7_table_eb8c[utf8[2] - 0x80];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b7_table_eb8d[utf8[2] - 0x94];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b7_table_eb8e[utf8[2] - 0x8c];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b7_table_eb8f[utf8[2] - 0x84];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b7_table_eb90[utf8[2] - 0x98];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b7_table_eb91[utf8[2] - 0x90];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b7_table_eb92[utf8[2] - 0x88];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b7_table_eb93[utf8[2] - 0x80];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b7_table_eb94[utf8[2] - 0x94];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b7_table_eb95[utf8[2] - 0x8c];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b7_table_eb96[utf8[2] - 0x84];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b7_table_eb97[utf8[2] - 0x98];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b7_table_eb98[utf8[2] - 0x90];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b7_table_eb99[utf8[2] - 0x88];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b7_table_eb9a[utf8[2] - 0x80];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b7_table_eb9b[utf8[2] - 0x94];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b7_table_eb9c[utf8[2] - 0x8c];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b7_table_eb9d[utf8[2] - 0x84];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b7_table_eb9e[utf8[2] - 0x98];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b7_table_eb9f[utf8[2] - 0x90];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b7_table_eba0[utf8[2] - 0x88];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b7_table_eba1[utf8[2] - 0x80];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b7_table_eba2[utf8[2] - 0x94];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b7_table_eba3[utf8[2] - 0x8c];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b7_table_eba4[utf8[2] - 0x84];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b7_table_eba5[utf8[2] - 0x98];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b7_table_eba6[utf8[2] - 0x90];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b7_table_eba7[utf8[2] - 0x88];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b7_table_eba8[utf8[2] - 0x80];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b7_table_eba9[utf8[2] - 0x94];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b7_table_ebaa[utf8[2] - 0x8c];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b7_table_ebab[utf8[2] - 0x84];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b7_table_ebac[utf8[2] - 0x98];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b7_table_ebad[utf8[2] - 0x90];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b7_table_ebae[utf8[2] - 0x88];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b7_table_ebaf[utf8[2] - 0x80];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b7_table_ebb0[utf8[2] - 0x94];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b7_table_ebb1[utf8[2] - 0x8c];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b7_table_ebb2[utf8[2] - 0x84];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b7_table_ebb3[utf8[2] - 0x98];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b7_table_ebb4[utf8[2] - 0x90];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b7_table_ebb5[utf8[2] - 0x88];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b7_table_ebb6[utf8[2] - 0x80];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b7_table_ebb7[utf8[2] - 0x94];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b7_table_ebb8[utf8[2] - 0x8c];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b7_table_ebb9[utf8[2] - 0x84];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b7_table_ebba[utf8[2] - 0x98];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b7_table_ebbb[utf8[2] - 0x90];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b7_table_ebbc[utf8[2] - 0x88];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b7_table_ebbd[utf8[2] - 0x80];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b7_table_ebbe[utf8[2] - 0x94];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b7_table_ebbf[utf8[2] - 0x8c];
        }
        break;
      default :
        break;
      }
      break;
    case 0xec :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b7_table_ec80[utf8[2] - 0x84];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b7_table_ec81[utf8[2] - 0x98];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b7_table_ec82[utf8[2] - 0x90];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b7_table_ec83[utf8[2] - 0x88];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b7_table_ec84[utf8[2] - 0x80];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b7_table_ec85[utf8[2] - 0x94];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b7_table_ec86[utf8[2] - 0x8c];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b7_table_ec87[utf8[2] - 0x84];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b7_table_ec88[utf8[2] - 0x98];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b7_table_ec89[utf8[2] - 0x90];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b7_table_ec8a[utf8[2] - 0x88];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b7_table_ec8b[utf8[2] - 0x80];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b7_table_ec8c[utf8[2] - 0x94];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b7_table_ec8d[utf8[2] - 0x8c];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b7_table_ec8e[utf8[2] - 0x84];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b7_table_ec8f[utf8[2] - 0x98];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b7_table_ec90[utf8[2] - 0x90];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b7_table_ec91[utf8[2] - 0x88];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b7_table_ec92[utf8[2] - 0x80];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b7_table_ec93[utf8[2] - 0x94];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b7_table_ec94[utf8[2] - 0x8c];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b7_table_ec95[utf8[2] - 0x84];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b7_table_ec96[utf8[2] - 0x98];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b7_table_ec97[utf8[2] - 0x90];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b7_table_ec98[utf8[2] - 0x88];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b7_table_ec99[utf8[2] - 0x80];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b7_table_ec9a[utf8[2] - 0x94];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b7_table_ec9b[utf8[2] - 0x8c];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b7_table_ec9c[utf8[2] - 0x84];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b7_table_ec9d[utf8[2] - 0x98];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b7_table_ec9e[utf8[2] - 0x90];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b7_table_ec9f[utf8[2] - 0x88];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b7_table_eca0[utf8[2] - 0x80];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b7_table_eca1[utf8[2] - 0x94];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b7_table_eca2[utf8[2] - 0x8c];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b7_table_eca3[utf8[2] - 0x84];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b7_table_eca4[utf8[2] - 0x98];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b7_table_eca5[utf8[2] - 0x90];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b7_table_eca6[utf8[2] - 0x88];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b7_table_eca7[utf8[2] - 0x80];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b7_table_eca8[utf8[2] - 0x94];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b7_table_eca9[utf8[2] - 0x8c];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b7_table_ecaa[utf8[2] - 0x84];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b7_table_ecab[utf8[2] - 0x98];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b7_table_ecac[utf8[2] - 0x90];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b7_table_ecad[utf8[2] - 0x88];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b7_table_ecae[utf8[2] - 0x80];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b7_table_ecaf[utf8[2] - 0x94];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b7_table_ecb0[utf8[2] - 0x8c];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b7_table_ecb1[utf8[2] - 0x84];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b7_table_ecb2[utf8[2] - 0x98];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b7_table_ecb3[utf8[2] - 0x90];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b7_table_ecb4[utf8[2] - 0x88];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b7_table_ecb5[utf8[2] - 0x80];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b7_table_ecb6[utf8[2] - 0x94];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b7_table_ecb7[utf8[2] - 0x8c];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b7_table_ecb8[utf8[2] - 0x84];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b7_table_ecb9[utf8[2] - 0x98];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b7_table_ecba[utf8[2] - 0x90];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b7_table_ecbb[utf8[2] - 0x88];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b7_table_ecbc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b7_table_ecbd[utf8[2] - 0x94];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b7_table_ecbe[utf8[2] - 0x8c];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b7_table_ecbf[utf8[2] - 0x84];
        }
        break;
      default :
        break;
      }
      break;
    case 0xed :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b7_table_ed80[utf8[2] - 0x98];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b7_table_ed81[utf8[2] - 0x90];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b7_table_ed82[utf8[2] - 0x88];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b7_table_ed83[utf8[2] - 0x80];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b7_table_ed84[utf8[2] - 0x94];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b7_table_ed85[utf8[2] - 0x8c];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b7_table_ed86[utf8[2] - 0x84];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b7_table_ed87[utf8[2] - 0x98];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b7_table_ed88[utf8[2] - 0x90];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b7_table_ed89[utf8[2] - 0x88];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b7_table_ed8a[utf8[2] - 0x80];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b7_table_ed8b[utf8[2] - 0x94];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b7_table_ed8c[utf8[2] - 0x8c];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b7_table_ed8d[utf8[2] - 0x84];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b7_table_ed8e[utf8[2] - 0x98];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b7_table_ed8f[utf8[2] - 0x90];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b7_table_ed90[utf8[2] - 0x88];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b7_table_ed91[utf8[2] - 0x80];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b7_table_ed92[utf8[2] - 0x94];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b7_table_ed93[utf8[2] - 0x8c];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b7_table_ed94[utf8[2] - 0x84];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b7_table_ed95[utf8[2] - 0x98];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b7_table_ed96[utf8[2] - 0x90];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b7_table_ed97[utf8[2] - 0x88];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b7_table_ed98[utf8[2] - 0x80];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b7_table_ed99[utf8[2] - 0x94];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b7_table_ed9a[utf8[2] - 0x8c];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b7_table_ed9b[utf8[2] - 0x84];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b7_table_ed9c[utf8[2] - 0x98];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b7_table_ed9d[utf8[2] - 0x90];
        }
        break;
      case 0x9e :
        if (utf8[2] == 0x88) {
          return "\xed\x9e\x98";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_e186b8_table_eab0[] = {
  "\xea\xb0\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb0\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb1\x89"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eab1[] = {
  "\xea\xb1\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eab2[] = {
  "\xea\xb2\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eab3[] = {
  "\xea\xb3\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb4\x8d"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eab4[] = {
  "\xea\xb4\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eab5[] = {
  "\xea\xb5\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eab6[] = {
  "\xea\xb6\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eab7[] = {
  "\xea\xb7\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb7\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb8\x89"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eab8[] = {
  "\xea\xb8\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eab9[] = {
  "\xea\xb9\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eaba[] = {
  "\xea\xba\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbb\x8d"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eabb[] = {
  "\xea\xbb\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eabc[] = {
  "\xea\xbc\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eabd[] = {
  "\xea\xbd\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eabe[] = {
  "\xea\xbe\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbe\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbf\x89"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eabf[] = {
  "\xea\xbf\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eb80[] = {
  "\xeb\x80\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eb81[] = {
  "\xeb\x81\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x82\x8d"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eb82[] = {
  "\xeb\x82\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eb83[] = {
  "\xeb\x83\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eb84[] = {
  "\xeb\x84\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eb85[] = {
  "\xeb\x85\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x85\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x86\x89"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eb86[] = {
  "\xeb\x86\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eb87[] = {
  "\xeb\x87\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eb88[] = {
  "\xeb\x88\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x89\x8d"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eb89[] = {
  "\xeb\x89\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eb8a[] = {
  "\xeb\x8a\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eb8b[] = {
  "\xeb\x8b\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eb8c[] = {
  "\xeb\x8c\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8c\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8d\x89"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eb8d[] = {
  "\xeb\x8d\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eb8e[] = {
  "\xeb\x8e\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eb8f[] = {
  "\xeb\x8f\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x90\x8d"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eb90[] = {
  "\xeb\x90\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eb91[] = {
  "\xeb\x91\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eb92[] = {
  "\xeb\x92\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eb93[] = {
  "\xeb\x93\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x93\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x94\x89"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eb94[] = {
  "\xeb\x94\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eb95[] = {
  "\xeb\x95\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eb96[] = {
  "\xeb\x96\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x97\x8d"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eb97[] = {
  "\xeb\x97\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eb98[] = {
  "\xeb\x98\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eb99[] = {
  "\xeb\x99\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eb9a[] = {
  "\xeb\x9a\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9a\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9b\x89"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eb9b[] = {
  "\xeb\x9b\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eb9c[] = {
  "\xeb\x9c\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eb9d[] = {
  "\xeb\x9d\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9e\x8d"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eb9e[] = {
  "\xeb\x9e\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eb9f[] = {
  "\xeb\x9f\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eba0[] = {
  "\xeb\xa0\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eba1[] = {
  "\xeb\xa1\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa1\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa2\x89"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eba2[] = {
  "\xeb\xa2\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eba3[] = {
  "\xeb\xa3\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eba4[] = {
  "\xeb\xa4\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa5\x8d"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eba5[] = {
  "\xeb\xa5\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eba6[] = {
  "\xeb\xa6\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eba7[] = {
  "\xeb\xa7\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eba8[] = {
  "\xeb\xa8\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa8\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa9\x89"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eba9[] = {
  "\xeb\xa9\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ebaa[] = {
  "\xeb\xaa\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ebab[] = {
  "\xeb\xab\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xac\x8d"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ebac[] = {
  "\xeb\xac\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ebad[] = {
  "\xeb\xad\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ebae[] = {
  "\xeb\xae\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ebaf[] = {
  "\xeb\xaf\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaf\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb0\x89"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ebb0[] = {
  "\xeb\xb0\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ebb1[] = {
  "\xeb\xb1\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ebb2[] = {
  "\xeb\xb2\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb3\x8d"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ebb3[] = {
  "\xeb\xb3\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ebb4[] = {
  "\xeb\xb4\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ebb5[] = {
  "\xeb\xb5\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ebb6[] = {
  "\xeb\xb6\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb6\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb7\x89"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ebb7[] = {
  "\xeb\xb7\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ebb8[] = {
  "\xeb\xb8\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ebb9[] = {
  "\xeb\xb9\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xba\x8d"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ebba[] = {
  "\xeb\xba\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ebbb[] = {
  "\xeb\xbb\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ebbc[] = {
  "\xeb\xbc\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ebbd[] = {
  "\xeb\xbd\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbd\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xbe\x89"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ebbe[] = {
  "\xeb\xbe\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ebbf[] = {
  "\xeb\xbf\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ec80[] = {
  "\xec\x80\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x81\x8d"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ec81[] = {
  "\xec\x81\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ec82[] = {
  "\xec\x82\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ec83[] = {
  "\xec\x83\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ec84[] = {
  "\xec\x84\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x84\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x85\x89"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ec85[] = {
  "\xec\x85\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ec86[] = {
  "\xec\x86\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ec87[] = {
  "\xec\x87\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x88\x8d"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ec88[] = {
  "\xec\x88\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ec89[] = {
  "\xec\x89\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ec8a[] = {
  "\xec\x8a\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ec8b[] = {
  "\xec\x8b\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8b\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8c\x89"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ec8c[] = {
  "\xec\x8c\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ec8d[] = {
  "\xec\x8d\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ec8e[] = {
  "\xec\x8e\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8f\x8d"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ec8f[] = {
  "\xec\x8f\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ec90[] = {
  "\xec\x90\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ec91[] = {
  "\xec\x91\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ec92[] = {
  "\xec\x92\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x92\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x93\x89"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ec93[] = {
  "\xec\x93\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ec94[] = {
  "\xec\x94\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ec95[] = {
  "\xec\x95\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x96\x8d"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ec96[] = {
  "\xec\x96\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ec97[] = {
  "\xec\x97\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ec98[] = {
  "\xec\x98\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ec99[] = {
  "\xec\x99\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x99\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9a\x89"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ec9a[] = {
  "\xec\x9a\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ec9b[] = {
  "\xec\x9b\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ec9c[] = {
  "\xec\x9c\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9d\x8d"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ec9d[] = {
  "\xec\x9d\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ec9e[] = {
  "\xec\x9e\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ec9f[] = {
  "\xec\x9f\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eca0[] = {
  "\xec\xa0\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa0\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa1\x89"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eca1[] = {
  "\xec\xa1\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eca2[] = {
  "\xec\xa2\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eca3[] = {
  "\xec\xa3\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa4\x8d"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eca4[] = {
  "\xec\xa4\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eca5[] = {
  "\xec\xa5\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eca6[] = {
  "\xec\xa6\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eca7[] = {
  "\xec\xa7\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa7\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa8\x89"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eca8[] = {
  "\xec\xa8\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_eca9[] = {
  "\xec\xa9\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ecaa[] = {
  "\xec\xaa\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xab\x8d"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ecab[] = {
  "\xec\xab\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ecac[] = {
  "\xec\xac\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ecad[] = {
  "\xec\xad\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ecae[] = {
  "\xec\xae\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xae\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xaf\x89"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ecaf[] = {
  "\xec\xaf\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ecb0[] = {
  "\xec\xb0\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ecb1[] = {
  "\xec\xb1\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb2\x8d"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ecb2[] = {
  "\xec\xb2\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ecb3[] = {
  "\xec\xb3\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ecb4[] = {
  "\xec\xb4\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ecb5[] = {
  "\xec\xb5\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb5\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb6\x89"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ecb6[] = {
  "\xec\xb6\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ecb7[] = {
  "\xec\xb7\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ecb8[] = {
  "\xec\xb8\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb9\x8d"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ecb9[] = {
  "\xec\xb9\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ecba[] = {
  "\xec\xba\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ecbb[] = {
  "\xec\xbb\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ecbc[] = {
  "\xec\xbc\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbc\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbd\x89"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ecbd[] = {
  "\xec\xbd\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ecbe[] = {
  "\xec\xbe\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ecbf[] = {
  "\xec\xbf\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x80\x8d"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ed80[] = {
  "\xed\x80\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ed81[] = {
  "\xed\x81\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ed82[] = {
  "\xed\x82\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ed83[] = {
  "\xed\x83\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x83\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x84\x89"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ed84[] = {
  "\xed\x84\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ed85[] = {
  "\xed\x85\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ed86[] = {
  "\xed\x86\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x87\x8d"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ed87[] = {
  "\xed\x87\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ed88[] = {
  "\xed\x88\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ed89[] = {
  "\xed\x89\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ed8a[] = {
  "\xed\x8a\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8a\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8b\x89"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ed8b[] = {
  "\xed\x8b\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ed8c[] = {
  "\xed\x8c\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ed8d[] = {
  "\xed\x8d\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8e\x8d"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ed8e[] = {
  "\xed\x8e\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ed8f[] = {
  "\xed\x8f\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ed90[] = {
  "\xed\x90\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ed91[] = {
  "\xed\x91\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x91\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x92\x89"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ed92[] = {
  "\xed\x92\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ed93[] = {
  "\xed\x93\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ed94[] = {
  "\xed\x94\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x95\x8d"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ed95[] = {
  "\xed\x95\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ed96[] = {
  "\xed\x96\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ed97[] = {
  "\xed\x97\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\xb5"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ed98[] = {
  "\xed\x98\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x98\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x99\x89"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ed99[] = {
  "\xed\x99\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\x81"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ed9a[] = {
  "\xed\x9a\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ed9b[] = {
  "\xed\x9b\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x9c\x8d"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ed9c[] = {
  "\xed\x9c\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\x85"
};

static const char *grn_nfkc50_compose_prefix_e186b8_table_ed9d[] = {
  "\xed\x9d\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\xbd"
};

static inline const char *
grn_nfkc50_compose_prefix_e186b8(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xea :
      switch (utf8[1]) {
      case 0xb0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b8_table_eab0[utf8[2] - 0x80];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b8_table_eab1[utf8[2] - 0x94];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b8_table_eab2[utf8[2] - 0x8c];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b8_table_eab3[utf8[2] - 0x84];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b8_table_eab4[utf8[2] - 0x98];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b8_table_eab5[utf8[2] - 0x90];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b8_table_eab6[utf8[2] - 0x88];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b8_table_eab7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b8_table_eab8[utf8[2] - 0x94];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b8_table_eab9[utf8[2] - 0x8c];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b8_table_eaba[utf8[2] - 0x84];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b8_table_eabb[utf8[2] - 0x98];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b8_table_eabc[utf8[2] - 0x90];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b8_table_eabd[utf8[2] - 0x88];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b8_table_eabe[utf8[2] - 0x80];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b8_table_eabf[utf8[2] - 0x94];
        }
        break;
      default :
        break;
      }
      break;
    case 0xeb :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b8_table_eb80[utf8[2] - 0x8c];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b8_table_eb81[utf8[2] - 0x84];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b8_table_eb82[utf8[2] - 0x98];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b8_table_eb83[utf8[2] - 0x90];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b8_table_eb84[utf8[2] - 0x88];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b8_table_eb85[utf8[2] - 0x80];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b8_table_eb86[utf8[2] - 0x94];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b8_table_eb87[utf8[2] - 0x8c];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b8_table_eb88[utf8[2] - 0x84];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b8_table_eb89[utf8[2] - 0x98];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b8_table_eb8a[utf8[2] - 0x90];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b8_table_eb8b[utf8[2] - 0x88];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b8_table_eb8c[utf8[2] - 0x80];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b8_table_eb8d[utf8[2] - 0x94];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b8_table_eb8e[utf8[2] - 0x8c];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b8_table_eb8f[utf8[2] - 0x84];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b8_table_eb90[utf8[2] - 0x98];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b8_table_eb91[utf8[2] - 0x90];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b8_table_eb92[utf8[2] - 0x88];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b8_table_eb93[utf8[2] - 0x80];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b8_table_eb94[utf8[2] - 0x94];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b8_table_eb95[utf8[2] - 0x8c];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b8_table_eb96[utf8[2] - 0x84];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b8_table_eb97[utf8[2] - 0x98];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b8_table_eb98[utf8[2] - 0x90];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b8_table_eb99[utf8[2] - 0x88];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b8_table_eb9a[utf8[2] - 0x80];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b8_table_eb9b[utf8[2] - 0x94];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b8_table_eb9c[utf8[2] - 0x8c];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b8_table_eb9d[utf8[2] - 0x84];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b8_table_eb9e[utf8[2] - 0x98];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b8_table_eb9f[utf8[2] - 0x90];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b8_table_eba0[utf8[2] - 0x88];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b8_table_eba1[utf8[2] - 0x80];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b8_table_eba2[utf8[2] - 0x94];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b8_table_eba3[utf8[2] - 0x8c];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b8_table_eba4[utf8[2] - 0x84];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b8_table_eba5[utf8[2] - 0x98];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b8_table_eba6[utf8[2] - 0x90];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b8_table_eba7[utf8[2] - 0x88];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b8_table_eba8[utf8[2] - 0x80];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b8_table_eba9[utf8[2] - 0x94];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b8_table_ebaa[utf8[2] - 0x8c];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b8_table_ebab[utf8[2] - 0x84];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b8_table_ebac[utf8[2] - 0x98];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b8_table_ebad[utf8[2] - 0x90];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b8_table_ebae[utf8[2] - 0x88];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b8_table_ebaf[utf8[2] - 0x80];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b8_table_ebb0[utf8[2] - 0x94];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b8_table_ebb1[utf8[2] - 0x8c];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b8_table_ebb2[utf8[2] - 0x84];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b8_table_ebb3[utf8[2] - 0x98];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b8_table_ebb4[utf8[2] - 0x90];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b8_table_ebb5[utf8[2] - 0x88];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b8_table_ebb6[utf8[2] - 0x80];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b8_table_ebb7[utf8[2] - 0x94];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b8_table_ebb8[utf8[2] - 0x8c];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b8_table_ebb9[utf8[2] - 0x84];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b8_table_ebba[utf8[2] - 0x98];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b8_table_ebbb[utf8[2] - 0x90];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b8_table_ebbc[utf8[2] - 0x88];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b8_table_ebbd[utf8[2] - 0x80];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b8_table_ebbe[utf8[2] - 0x94];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b8_table_ebbf[utf8[2] - 0x8c];
        }
        break;
      default :
        break;
      }
      break;
    case 0xec :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b8_table_ec80[utf8[2] - 0x84];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b8_table_ec81[utf8[2] - 0x98];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b8_table_ec82[utf8[2] - 0x90];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b8_table_ec83[utf8[2] - 0x88];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b8_table_ec84[utf8[2] - 0x80];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b8_table_ec85[utf8[2] - 0x94];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b8_table_ec86[utf8[2] - 0x8c];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b8_table_ec87[utf8[2] - 0x84];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b8_table_ec88[utf8[2] - 0x98];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b8_table_ec89[utf8[2] - 0x90];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b8_table_ec8a[utf8[2] - 0x88];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b8_table_ec8b[utf8[2] - 0x80];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b8_table_ec8c[utf8[2] - 0x94];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b8_table_ec8d[utf8[2] - 0x8c];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b8_table_ec8e[utf8[2] - 0x84];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b8_table_ec8f[utf8[2] - 0x98];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b8_table_ec90[utf8[2] - 0x90];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b8_table_ec91[utf8[2] - 0x88];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b8_table_ec92[utf8[2] - 0x80];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b8_table_ec93[utf8[2] - 0x94];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b8_table_ec94[utf8[2] - 0x8c];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b8_table_ec95[utf8[2] - 0x84];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b8_table_ec96[utf8[2] - 0x98];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b8_table_ec97[utf8[2] - 0x90];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b8_table_ec98[utf8[2] - 0x88];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b8_table_ec99[utf8[2] - 0x80];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b8_table_ec9a[utf8[2] - 0x94];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b8_table_ec9b[utf8[2] - 0x8c];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b8_table_ec9c[utf8[2] - 0x84];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b8_table_ec9d[utf8[2] - 0x98];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b8_table_ec9e[utf8[2] - 0x90];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b8_table_ec9f[utf8[2] - 0x88];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b8_table_eca0[utf8[2] - 0x80];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b8_table_eca1[utf8[2] - 0x94];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b8_table_eca2[utf8[2] - 0x8c];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b8_table_eca3[utf8[2] - 0x84];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b8_table_eca4[utf8[2] - 0x98];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b8_table_eca5[utf8[2] - 0x90];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b8_table_eca6[utf8[2] - 0x88];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b8_table_eca7[utf8[2] - 0x80];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b8_table_eca8[utf8[2] - 0x94];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b8_table_eca9[utf8[2] - 0x8c];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b8_table_ecaa[utf8[2] - 0x84];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b8_table_ecab[utf8[2] - 0x98];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b8_table_ecac[utf8[2] - 0x90];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b8_table_ecad[utf8[2] - 0x88];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b8_table_ecae[utf8[2] - 0x80];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b8_table_ecaf[utf8[2] - 0x94];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b8_table_ecb0[utf8[2] - 0x8c];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b8_table_ecb1[utf8[2] - 0x84];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b8_table_ecb2[utf8[2] - 0x98];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b8_table_ecb3[utf8[2] - 0x90];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b8_table_ecb4[utf8[2] - 0x88];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b8_table_ecb5[utf8[2] - 0x80];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b8_table_ecb6[utf8[2] - 0x94];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b8_table_ecb7[utf8[2] - 0x8c];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b8_table_ecb8[utf8[2] - 0x84];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b8_table_ecb9[utf8[2] - 0x98];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b8_table_ecba[utf8[2] - 0x90];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b8_table_ecbb[utf8[2] - 0x88];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b8_table_ecbc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b8_table_ecbd[utf8[2] - 0x94];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b8_table_ecbe[utf8[2] - 0x8c];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b8_table_ecbf[utf8[2] - 0x84];
        }
        break;
      default :
        break;
      }
      break;
    case 0xed :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b8_table_ed80[utf8[2] - 0x98];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b8_table_ed81[utf8[2] - 0x90];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b8_table_ed82[utf8[2] - 0x88];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b8_table_ed83[utf8[2] - 0x80];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b8_table_ed84[utf8[2] - 0x94];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b8_table_ed85[utf8[2] - 0x8c];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b8_table_ed86[utf8[2] - 0x84];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b8_table_ed87[utf8[2] - 0x98];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b8_table_ed88[utf8[2] - 0x90];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b8_table_ed89[utf8[2] - 0x88];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b8_table_ed8a[utf8[2] - 0x80];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b8_table_ed8b[utf8[2] - 0x94];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b8_table_ed8c[utf8[2] - 0x8c];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b8_table_ed8d[utf8[2] - 0x84];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b8_table_ed8e[utf8[2] - 0x98];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b8_table_ed8f[utf8[2] - 0x90];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b8_table_ed90[utf8[2] - 0x88];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b8_table_ed91[utf8[2] - 0x80];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b8_table_ed92[utf8[2] - 0x94];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b8_table_ed93[utf8[2] - 0x8c];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b8_table_ed94[utf8[2] - 0x84];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b8_table_ed95[utf8[2] - 0x98];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b8_table_ed96[utf8[2] - 0x90];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b8_table_ed97[utf8[2] - 0x88];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b8_table_ed98[utf8[2] - 0x80];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b8_table_ed99[utf8[2] - 0x94];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b8_table_ed9a[utf8[2] - 0x8c];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b8_table_ed9b[utf8[2] - 0x84];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b8_table_ed9c[utf8[2] - 0x98];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b8_table_ed9d[utf8[2] - 0x90];
        }
        break;
      case 0x9e :
        if (utf8[2] == 0x88) {
          return "\xed\x9e\x99";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_e186b9_table_eab0[] = {
  "\xea\xb0\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb0\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb1\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eab1[] = {
  "\xea\xb1\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eab2[] = {
  "\xea\xb2\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eab3[] = {
  "\xea\xb3\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb4\x8e"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eab4[] = {
  "\xea\xb4\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eab5[] = {
  "\xea\xb5\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eab6[] = {
  "\xea\xb6\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eab7[] = {
  "\xea\xb7\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb7\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb8\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eab8[] = {
  "\xea\xb8\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eab9[] = {
  "\xea\xb9\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eaba[] = {
  "\xea\xba\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbb\x8e"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eabb[] = {
  "\xea\xbb\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eabc[] = {
  "\xea\xbc\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eabd[] = {
  "\xea\xbd\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eabe[] = {
  "\xea\xbe\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbe\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbf\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eabf[] = {
  "\xea\xbf\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eb80[] = {
  "\xeb\x80\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eb81[] = {
  "\xeb\x81\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x82\x8e"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eb82[] = {
  "\xeb\x82\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eb83[] = {
  "\xeb\x83\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eb84[] = {
  "\xeb\x84\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eb85[] = {
  "\xeb\x85\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x85\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x86\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eb86[] = {
  "\xeb\x86\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eb87[] = {
  "\xeb\x87\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eb88[] = {
  "\xeb\x88\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x89\x8e"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eb89[] = {
  "\xeb\x89\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eb8a[] = {
  "\xeb\x8a\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eb8b[] = {
  "\xeb\x8b\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eb8c[] = {
  "\xeb\x8c\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8c\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8d\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eb8d[] = {
  "\xeb\x8d\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eb8e[] = {
  "\xeb\x8e\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eb8f[] = {
  "\xeb\x8f\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x90\x8e"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eb90[] = {
  "\xeb\x90\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eb91[] = {
  "\xeb\x91\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eb92[] = {
  "\xeb\x92\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eb93[] = {
  "\xeb\x93\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x93\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x94\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eb94[] = {
  "\xeb\x94\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eb95[] = {
  "\xeb\x95\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eb96[] = {
  "\xeb\x96\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x97\x8e"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eb97[] = {
  "\xeb\x97\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eb98[] = {
  "\xeb\x98\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eb99[] = {
  "\xeb\x99\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eb9a[] = {
  "\xeb\x9a\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9a\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9b\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eb9b[] = {
  "\xeb\x9b\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eb9c[] = {
  "\xeb\x9c\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eb9d[] = {
  "\xeb\x9d\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9e\x8e"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eb9e[] = {
  "\xeb\x9e\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eb9f[] = {
  "\xeb\x9f\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eba0[] = {
  "\xeb\xa0\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eba1[] = {
  "\xeb\xa1\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa1\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa2\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eba2[] = {
  "\xeb\xa2\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eba3[] = {
  "\xeb\xa3\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eba4[] = {
  "\xeb\xa4\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa5\x8e"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eba5[] = {
  "\xeb\xa5\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eba6[] = {
  "\xeb\xa6\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eba7[] = {
  "\xeb\xa7\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eba8[] = {
  "\xeb\xa8\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa8\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa9\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eba9[] = {
  "\xeb\xa9\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ebaa[] = {
  "\xeb\xaa\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ebab[] = {
  "\xeb\xab\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xac\x8e"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ebac[] = {
  "\xeb\xac\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ebad[] = {
  "\xeb\xad\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ebae[] = {
  "\xeb\xae\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ebaf[] = {
  "\xeb\xaf\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaf\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb0\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ebb0[] = {
  "\xeb\xb0\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ebb1[] = {
  "\xeb\xb1\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ebb2[] = {
  "\xeb\xb2\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb3\x8e"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ebb3[] = {
  "\xeb\xb3\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ebb4[] = {
  "\xeb\xb4\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ebb5[] = {
  "\xeb\xb5\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ebb6[] = {
  "\xeb\xb6\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb6\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb7\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ebb7[] = {
  "\xeb\xb7\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ebb8[] = {
  "\xeb\xb8\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ebb9[] = {
  "\xeb\xb9\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xba\x8e"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ebba[] = {
  "\xeb\xba\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ebbb[] = {
  "\xeb\xbb\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ebbc[] = {
  "\xeb\xbc\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ebbd[] = {
  "\xeb\xbd\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbd\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xbe\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ebbe[] = {
  "\xeb\xbe\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ebbf[] = {
  "\xeb\xbf\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ec80[] = {
  "\xec\x80\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x81\x8e"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ec81[] = {
  "\xec\x81\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ec82[] = {
  "\xec\x82\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ec83[] = {
  "\xec\x83\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ec84[] = {
  "\xec\x84\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x84\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x85\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ec85[] = {
  "\xec\x85\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ec86[] = {
  "\xec\x86\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ec87[] = {
  "\xec\x87\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x88\x8e"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ec88[] = {
  "\xec\x88\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ec89[] = {
  "\xec\x89\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ec8a[] = {
  "\xec\x8a\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ec8b[] = {
  "\xec\x8b\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8b\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8c\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ec8c[] = {
  "\xec\x8c\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ec8d[] = {
  "\xec\x8d\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ec8e[] = {
  "\xec\x8e\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8f\x8e"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ec8f[] = {
  "\xec\x8f\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ec90[] = {
  "\xec\x90\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ec91[] = {
  "\xec\x91\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ec92[] = {
  "\xec\x92\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x92\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x93\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ec93[] = {
  "\xec\x93\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ec94[] = {
  "\xec\x94\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ec95[] = {
  "\xec\x95\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x96\x8e"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ec96[] = {
  "\xec\x96\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ec97[] = {
  "\xec\x97\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ec98[] = {
  "\xec\x98\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ec99[] = {
  "\xec\x99\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x99\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9a\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ec9a[] = {
  "\xec\x9a\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ec9b[] = {
  "\xec\x9b\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ec9c[] = {
  "\xec\x9c\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9d\x8e"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ec9d[] = {
  "\xec\x9d\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ec9e[] = {
  "\xec\x9e\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ec9f[] = {
  "\xec\x9f\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eca0[] = {
  "\xec\xa0\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa0\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa1\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eca1[] = {
  "\xec\xa1\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eca2[] = {
  "\xec\xa2\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eca3[] = {
  "\xec\xa3\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa4\x8e"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eca4[] = {
  "\xec\xa4\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eca5[] = {
  "\xec\xa5\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eca6[] = {
  "\xec\xa6\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eca7[] = {
  "\xec\xa7\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa7\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa8\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eca8[] = {
  "\xec\xa8\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_eca9[] = {
  "\xec\xa9\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ecaa[] = {
  "\xec\xaa\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xab\x8e"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ecab[] = {
  "\xec\xab\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ecac[] = {
  "\xec\xac\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ecad[] = {
  "\xec\xad\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ecae[] = {
  "\xec\xae\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xae\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xaf\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ecaf[] = {
  "\xec\xaf\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ecb0[] = {
  "\xec\xb0\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ecb1[] = {
  "\xec\xb1\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb2\x8e"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ecb2[] = {
  "\xec\xb2\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ecb3[] = {
  "\xec\xb3\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ecb4[] = {
  "\xec\xb4\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ecb5[] = {
  "\xec\xb5\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb5\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb6\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ecb6[] = {
  "\xec\xb6\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ecb7[] = {
  "\xec\xb7\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ecb8[] = {
  "\xec\xb8\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb9\x8e"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ecb9[] = {
  "\xec\xb9\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ecba[] = {
  "\xec\xba\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ecbb[] = {
  "\xec\xbb\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ecbc[] = {
  "\xec\xbc\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbc\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbd\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ecbd[] = {
  "\xec\xbd\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ecbe[] = {
  "\xec\xbe\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ecbf[] = {
  "\xec\xbf\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x80\x8e"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ed80[] = {
  "\xed\x80\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ed81[] = {
  "\xed\x81\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ed82[] = {
  "\xed\x82\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ed83[] = {
  "\xed\x83\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x83\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x84\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ed84[] = {
  "\xed\x84\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ed85[] = {
  "\xed\x85\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ed86[] = {
  "\xed\x86\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x87\x8e"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ed87[] = {
  "\xed\x87\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ed88[] = {
  "\xed\x88\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ed89[] = {
  "\xed\x89\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ed8a[] = {
  "\xed\x8a\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8a\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8b\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ed8b[] = {
  "\xed\x8b\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ed8c[] = {
  "\xed\x8c\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ed8d[] = {
  "\xed\x8d\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8e\x8e"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ed8e[] = {
  "\xed\x8e\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ed8f[] = {
  "\xed\x8f\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ed90[] = {
  "\xed\x90\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ed91[] = {
  "\xed\x91\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x91\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x92\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ed92[] = {
  "\xed\x92\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ed93[] = {
  "\xed\x93\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ed94[] = {
  "\xed\x94\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x95\x8e"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ed95[] = {
  "\xed\x95\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ed96[] = {
  "\xed\x96\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ed97[] = {
  "\xed\x97\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\xb6"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ed98[] = {
  "\xed\x98\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x98\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x99\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ed99[] = {
  "\xed\x99\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\x82"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ed9a[] = {
  "\xed\x9a\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\xba"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ed9b[] = {
  "\xed\x9b\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x9c\x8e"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ed9c[] = {
  "\xed\x9c\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\x86"
};

static const char *grn_nfkc50_compose_prefix_e186b9_table_ed9d[] = {
  "\xed\x9d\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\xbe"
};

static inline const char *
grn_nfkc50_compose_prefix_e186b9(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xea :
      switch (utf8[1]) {
      case 0xb0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b9_table_eab0[utf8[2] - 0x80];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b9_table_eab1[utf8[2] - 0x94];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b9_table_eab2[utf8[2] - 0x8c];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b9_table_eab3[utf8[2] - 0x84];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b9_table_eab4[utf8[2] - 0x98];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b9_table_eab5[utf8[2] - 0x90];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b9_table_eab6[utf8[2] - 0x88];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b9_table_eab7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b9_table_eab8[utf8[2] - 0x94];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b9_table_eab9[utf8[2] - 0x8c];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b9_table_eaba[utf8[2] - 0x84];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b9_table_eabb[utf8[2] - 0x98];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b9_table_eabc[utf8[2] - 0x90];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b9_table_eabd[utf8[2] - 0x88];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b9_table_eabe[utf8[2] - 0x80];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b9_table_eabf[utf8[2] - 0x94];
        }
        break;
      default :
        break;
      }
      break;
    case 0xeb :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b9_table_eb80[utf8[2] - 0x8c];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b9_table_eb81[utf8[2] - 0x84];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b9_table_eb82[utf8[2] - 0x98];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b9_table_eb83[utf8[2] - 0x90];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b9_table_eb84[utf8[2] - 0x88];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b9_table_eb85[utf8[2] - 0x80];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b9_table_eb86[utf8[2] - 0x94];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b9_table_eb87[utf8[2] - 0x8c];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b9_table_eb88[utf8[2] - 0x84];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b9_table_eb89[utf8[2] - 0x98];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b9_table_eb8a[utf8[2] - 0x90];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b9_table_eb8b[utf8[2] - 0x88];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b9_table_eb8c[utf8[2] - 0x80];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b9_table_eb8d[utf8[2] - 0x94];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b9_table_eb8e[utf8[2] - 0x8c];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b9_table_eb8f[utf8[2] - 0x84];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b9_table_eb90[utf8[2] - 0x98];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b9_table_eb91[utf8[2] - 0x90];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b9_table_eb92[utf8[2] - 0x88];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b9_table_eb93[utf8[2] - 0x80];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b9_table_eb94[utf8[2] - 0x94];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b9_table_eb95[utf8[2] - 0x8c];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b9_table_eb96[utf8[2] - 0x84];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b9_table_eb97[utf8[2] - 0x98];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b9_table_eb98[utf8[2] - 0x90];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b9_table_eb99[utf8[2] - 0x88];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b9_table_eb9a[utf8[2] - 0x80];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b9_table_eb9b[utf8[2] - 0x94];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b9_table_eb9c[utf8[2] - 0x8c];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b9_table_eb9d[utf8[2] - 0x84];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b9_table_eb9e[utf8[2] - 0x98];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b9_table_eb9f[utf8[2] - 0x90];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b9_table_eba0[utf8[2] - 0x88];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b9_table_eba1[utf8[2] - 0x80];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b9_table_eba2[utf8[2] - 0x94];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b9_table_eba3[utf8[2] - 0x8c];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b9_table_eba4[utf8[2] - 0x84];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b9_table_eba5[utf8[2] - 0x98];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b9_table_eba6[utf8[2] - 0x90];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b9_table_eba7[utf8[2] - 0x88];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b9_table_eba8[utf8[2] - 0x80];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b9_table_eba9[utf8[2] - 0x94];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b9_table_ebaa[utf8[2] - 0x8c];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b9_table_ebab[utf8[2] - 0x84];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b9_table_ebac[utf8[2] - 0x98];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b9_table_ebad[utf8[2] - 0x90];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b9_table_ebae[utf8[2] - 0x88];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b9_table_ebaf[utf8[2] - 0x80];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b9_table_ebb0[utf8[2] - 0x94];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b9_table_ebb1[utf8[2] - 0x8c];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b9_table_ebb2[utf8[2] - 0x84];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b9_table_ebb3[utf8[2] - 0x98];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b9_table_ebb4[utf8[2] - 0x90];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b9_table_ebb5[utf8[2] - 0x88];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b9_table_ebb6[utf8[2] - 0x80];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b9_table_ebb7[utf8[2] - 0x94];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b9_table_ebb8[utf8[2] - 0x8c];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b9_table_ebb9[utf8[2] - 0x84];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b9_table_ebba[utf8[2] - 0x98];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b9_table_ebbb[utf8[2] - 0x90];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b9_table_ebbc[utf8[2] - 0x88];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b9_table_ebbd[utf8[2] - 0x80];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b9_table_ebbe[utf8[2] - 0x94];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b9_table_ebbf[utf8[2] - 0x8c];
        }
        break;
      default :
        break;
      }
      break;
    case 0xec :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b9_table_ec80[utf8[2] - 0x84];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b9_table_ec81[utf8[2] - 0x98];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b9_table_ec82[utf8[2] - 0x90];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b9_table_ec83[utf8[2] - 0x88];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b9_table_ec84[utf8[2] - 0x80];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b9_table_ec85[utf8[2] - 0x94];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b9_table_ec86[utf8[2] - 0x8c];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b9_table_ec87[utf8[2] - 0x84];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b9_table_ec88[utf8[2] - 0x98];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b9_table_ec89[utf8[2] - 0x90];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b9_table_ec8a[utf8[2] - 0x88];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b9_table_ec8b[utf8[2] - 0x80];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b9_table_ec8c[utf8[2] - 0x94];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b9_table_ec8d[utf8[2] - 0x8c];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b9_table_ec8e[utf8[2] - 0x84];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b9_table_ec8f[utf8[2] - 0x98];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b9_table_ec90[utf8[2] - 0x90];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b9_table_ec91[utf8[2] - 0x88];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b9_table_ec92[utf8[2] - 0x80];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b9_table_ec93[utf8[2] - 0x94];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b9_table_ec94[utf8[2] - 0x8c];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b9_table_ec95[utf8[2] - 0x84];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b9_table_ec96[utf8[2] - 0x98];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b9_table_ec97[utf8[2] - 0x90];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b9_table_ec98[utf8[2] - 0x88];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b9_table_ec99[utf8[2] - 0x80];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b9_table_ec9a[utf8[2] - 0x94];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b9_table_ec9b[utf8[2] - 0x8c];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b9_table_ec9c[utf8[2] - 0x84];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b9_table_ec9d[utf8[2] - 0x98];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b9_table_ec9e[utf8[2] - 0x90];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b9_table_ec9f[utf8[2] - 0x88];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b9_table_eca0[utf8[2] - 0x80];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b9_table_eca1[utf8[2] - 0x94];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b9_table_eca2[utf8[2] - 0x8c];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b9_table_eca3[utf8[2] - 0x84];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b9_table_eca4[utf8[2] - 0x98];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b9_table_eca5[utf8[2] - 0x90];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b9_table_eca6[utf8[2] - 0x88];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b9_table_eca7[utf8[2] - 0x80];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b9_table_eca8[utf8[2] - 0x94];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b9_table_eca9[utf8[2] - 0x8c];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b9_table_ecaa[utf8[2] - 0x84];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b9_table_ecab[utf8[2] - 0x98];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b9_table_ecac[utf8[2] - 0x90];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b9_table_ecad[utf8[2] - 0x88];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b9_table_ecae[utf8[2] - 0x80];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b9_table_ecaf[utf8[2] - 0x94];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b9_table_ecb0[utf8[2] - 0x8c];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b9_table_ecb1[utf8[2] - 0x84];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b9_table_ecb2[utf8[2] - 0x98];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b9_table_ecb3[utf8[2] - 0x90];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b9_table_ecb4[utf8[2] - 0x88];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b9_table_ecb5[utf8[2] - 0x80];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b9_table_ecb6[utf8[2] - 0x94];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b9_table_ecb7[utf8[2] - 0x8c];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b9_table_ecb8[utf8[2] - 0x84];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b9_table_ecb9[utf8[2] - 0x98];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b9_table_ecba[utf8[2] - 0x90];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b9_table_ecbb[utf8[2] - 0x88];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b9_table_ecbc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b9_table_ecbd[utf8[2] - 0x94];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b9_table_ecbe[utf8[2] - 0x8c];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b9_table_ecbf[utf8[2] - 0x84];
        }
        break;
      default :
        break;
      }
      break;
    case 0xed :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b9_table_ed80[utf8[2] - 0x98];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b9_table_ed81[utf8[2] - 0x90];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b9_table_ed82[utf8[2] - 0x88];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b9_table_ed83[utf8[2] - 0x80];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b9_table_ed84[utf8[2] - 0x94];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b9_table_ed85[utf8[2] - 0x8c];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b9_table_ed86[utf8[2] - 0x84];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b9_table_ed87[utf8[2] - 0x98];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b9_table_ed88[utf8[2] - 0x90];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b9_table_ed89[utf8[2] - 0x88];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b9_table_ed8a[utf8[2] - 0x80];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b9_table_ed8b[utf8[2] - 0x94];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b9_table_ed8c[utf8[2] - 0x8c];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b9_table_ed8d[utf8[2] - 0x84];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b9_table_ed8e[utf8[2] - 0x98];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b9_table_ed8f[utf8[2] - 0x90];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b9_table_ed90[utf8[2] - 0x88];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b9_table_ed91[utf8[2] - 0x80];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b9_table_ed92[utf8[2] - 0x94];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b9_table_ed93[utf8[2] - 0x8c];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b9_table_ed94[utf8[2] - 0x84];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b9_table_ed95[utf8[2] - 0x98];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b9_table_ed96[utf8[2] - 0x90];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186b9_table_ed97[utf8[2] - 0x88];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186b9_table_ed98[utf8[2] - 0x80];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186b9_table_ed99[utf8[2] - 0x94];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186b9_table_ed9a[utf8[2] - 0x8c];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186b9_table_ed9b[utf8[2] - 0x84];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186b9_table_ed9c[utf8[2] - 0x98];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186b9_table_ed9d[utf8[2] - 0x90];
        }
        break;
      case 0x9e :
        if (utf8[2] == 0x88) {
          return "\xed\x9e\x9a";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_e186ba_table_eab0[] = {
  "\xea\xb0\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb0\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb1\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eab1[] = {
  "\xea\xb1\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\x83"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eab2[] = {
  "\xea\xb2\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eab3[] = {
  "\xea\xb3\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb4\x8f"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eab4[] = {
  "\xea\xb4\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\x87"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eab5[] = {
  "\xea\xb5\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eab6[] = {
  "\xea\xb6\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eab7[] = {
  "\xea\xb7\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb7\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb8\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eab8[] = {
  "\xea\xb8\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\x83"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eab9[] = {
  "\xea\xb9\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eaba[] = {
  "\xea\xba\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbb\x8f"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eabb[] = {
  "\xea\xbb\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\x87"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eabc[] = {
  "\xea\xbc\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eabd[] = {
  "\xea\xbd\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eabe[] = {
  "\xea\xbe\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbe\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbf\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eabf[] = {
  "\xea\xbf\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\x83"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eb80[] = {
  "\xeb\x80\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eb81[] = {
  "\xeb\x81\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x82\x8f"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eb82[] = {
  "\xeb\x82\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\x87"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eb83[] = {
  "\xeb\x83\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eb84[] = {
  "\xeb\x84\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eb85[] = {
  "\xeb\x85\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x85\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x86\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eb86[] = {
  "\xeb\x86\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\x83"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eb87[] = {
  "\xeb\x87\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eb88[] = {
  "\xeb\x88\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x89\x8f"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eb89[] = {
  "\xeb\x89\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\x87"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eb8a[] = {
  "\xeb\x8a\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eb8b[] = {
  "\xeb\x8b\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eb8c[] = {
  "\xeb\x8c\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8c\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8d\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eb8d[] = {
  "\xeb\x8d\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\x83"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eb8e[] = {
  "\xeb\x8e\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eb8f[] = {
  "\xeb\x8f\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x90\x8f"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eb90[] = {
  "\xeb\x90\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\x87"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eb91[] = {
  "\xeb\x91\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eb92[] = {
  "\xeb\x92\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eb93[] = {
  "\xeb\x93\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x93\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x94\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eb94[] = {
  "\xeb\x94\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\x83"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eb95[] = {
  "\xeb\x95\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eb96[] = {
  "\xeb\x96\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x97\x8f"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eb97[] = {
  "\xeb\x97\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\x87"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eb98[] = {
  "\xeb\x98\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eb99[] = {
  "\xeb\x99\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eb9a[] = {
  "\xeb\x9a\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9a\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9b\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eb9b[] = {
  "\xeb\x9b\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\x83"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eb9c[] = {
  "\xeb\x9c\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eb9d[] = {
  "\xeb\x9d\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9e\x8f"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eb9e[] = {
  "\xeb\x9e\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\x87"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eb9f[] = {
  "\xeb\x9f\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eba0[] = {
  "\xeb\xa0\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eba1[] = {
  "\xeb\xa1\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa1\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa2\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eba2[] = {
  "\xeb\xa2\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\x83"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eba3[] = {
  "\xeb\xa3\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eba4[] = {
  "\xeb\xa4\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa5\x8f"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eba5[] = {
  "\xeb\xa5\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\x87"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eba6[] = {
  "\xeb\xa6\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eba7[] = {
  "\xeb\xa7\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eba8[] = {
  "\xeb\xa8\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa8\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa9\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eba9[] = {
  "\xeb\xa9\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\x83"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ebaa[] = {
  "\xeb\xaa\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ebab[] = {
  "\xeb\xab\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xac\x8f"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ebac[] = {
  "\xeb\xac\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\x87"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ebad[] = {
  "\xeb\xad\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ebae[] = {
  "\xeb\xae\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ebaf[] = {
  "\xeb\xaf\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaf\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb0\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ebb0[] = {
  "\xeb\xb0\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\x83"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ebb1[] = {
  "\xeb\xb1\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ebb2[] = {
  "\xeb\xb2\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb3\x8f"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ebb3[] = {
  "\xeb\xb3\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\x87"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ebb4[] = {
  "\xeb\xb4\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ebb5[] = {
  "\xeb\xb5\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ebb6[] = {
  "\xeb\xb6\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb6\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb7\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ebb7[] = {
  "\xeb\xb7\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\x83"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ebb8[] = {
  "\xeb\xb8\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ebb9[] = {
  "\xeb\xb9\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xba\x8f"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ebba[] = {
  "\xeb\xba\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\x87"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ebbb[] = {
  "\xeb\xbb\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ebbc[] = {
  "\xeb\xbc\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ebbd[] = {
  "\xeb\xbd\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbd\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xbe\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ebbe[] = {
  "\xeb\xbe\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\x83"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ebbf[] = {
  "\xeb\xbf\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ec80[] = {
  "\xec\x80\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x81\x8f"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ec81[] = {
  "\xec\x81\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\x87"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ec82[] = {
  "\xec\x82\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ec83[] = {
  "\xec\x83\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ec84[] = {
  "\xec\x84\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x84\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x85\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ec85[] = {
  "\xec\x85\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\x83"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ec86[] = {
  "\xec\x86\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ec87[] = {
  "\xec\x87\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x88\x8f"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ec88[] = {
  "\xec\x88\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\x87"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ec89[] = {
  "\xec\x89\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ec8a[] = {
  "\xec\x8a\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ec8b[] = {
  "\xec\x8b\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8b\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8c\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ec8c[] = {
  "\xec\x8c\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\x83"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ec8d[] = {
  "\xec\x8d\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ec8e[] = {
  "\xec\x8e\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8f\x8f"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ec8f[] = {
  "\xec\x8f\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\x87"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ec90[] = {
  "\xec\x90\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ec91[] = {
  "\xec\x91\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ec92[] = {
  "\xec\x92\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x92\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x93\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ec93[] = {
  "\xec\x93\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\x83"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ec94[] = {
  "\xec\x94\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ec95[] = {
  "\xec\x95\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x96\x8f"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ec96[] = {
  "\xec\x96\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\x87"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ec97[] = {
  "\xec\x97\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ec98[] = {
  "\xec\x98\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ec99[] = {
  "\xec\x99\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x99\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9a\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ec9a[] = {
  "\xec\x9a\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\x83"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ec9b[] = {
  "\xec\x9b\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ec9c[] = {
  "\xec\x9c\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9d\x8f"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ec9d[] = {
  "\xec\x9d\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\x87"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ec9e[] = {
  "\xec\x9e\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ec9f[] = {
  "\xec\x9f\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eca0[] = {
  "\xec\xa0\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa0\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa1\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eca1[] = {
  "\xec\xa1\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\x83"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eca2[] = {
  "\xec\xa2\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eca3[] = {
  "\xec\xa3\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa4\x8f"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eca4[] = {
  "\xec\xa4\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\x87"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eca5[] = {
  "\xec\xa5\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eca6[] = {
  "\xec\xa6\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eca7[] = {
  "\xec\xa7\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa7\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa8\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eca8[] = {
  "\xec\xa8\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\x83"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_eca9[] = {
  "\xec\xa9\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ecaa[] = {
  "\xec\xaa\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xab\x8f"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ecab[] = {
  "\xec\xab\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\x87"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ecac[] = {
  "\xec\xac\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ecad[] = {
  "\xec\xad\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ecae[] = {
  "\xec\xae\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xae\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xaf\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ecaf[] = {
  "\xec\xaf\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\x83"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ecb0[] = {
  "\xec\xb0\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ecb1[] = {
  "\xec\xb1\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb2\x8f"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ecb2[] = {
  "\xec\xb2\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\x87"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ecb3[] = {
  "\xec\xb3\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ecb4[] = {
  "\xec\xb4\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ecb5[] = {
  "\xec\xb5\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb5\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb6\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ecb6[] = {
  "\xec\xb6\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\x83"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ecb7[] = {
  "\xec\xb7\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ecb8[] = {
  "\xec\xb8\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb9\x8f"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ecb9[] = {
  "\xec\xb9\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\x87"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ecba[] = {
  "\xec\xba\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ecbb[] = {
  "\xec\xbb\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ecbc[] = {
  "\xec\xbc\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbc\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbd\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ecbd[] = {
  "\xec\xbd\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\x83"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ecbe[] = {
  "\xec\xbe\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ecbf[] = {
  "\xec\xbf\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x80\x8f"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ed80[] = {
  "\xed\x80\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\x87"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ed81[] = {
  "\xed\x81\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ed82[] = {
  "\xed\x82\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ed83[] = {
  "\xed\x83\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x83\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x84\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ed84[] = {
  "\xed\x84\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\x83"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ed85[] = {
  "\xed\x85\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ed86[] = {
  "\xed\x86\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x87\x8f"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ed87[] = {
  "\xed\x87\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\x87"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ed88[] = {
  "\xed\x88\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ed89[] = {
  "\xed\x89\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ed8a[] = {
  "\xed\x8a\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8a\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8b\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ed8b[] = {
  "\xed\x8b\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\x83"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ed8c[] = {
  "\xed\x8c\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ed8d[] = {
  "\xed\x8d\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8e\x8f"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ed8e[] = {
  "\xed\x8e\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\x87"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ed8f[] = {
  "\xed\x8f\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ed90[] = {
  "\xed\x90\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ed91[] = {
  "\xed\x91\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x91\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x92\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ed92[] = {
  "\xed\x92\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\x83"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ed93[] = {
  "\xed\x93\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ed94[] = {
  "\xed\x94\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x95\x8f"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ed95[] = {
  "\xed\x95\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\x87"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ed96[] = {
  "\xed\x96\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ed97[] = {
  "\xed\x97\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\xb7"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ed98[] = {
  "\xed\x98\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x98\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x99\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ed99[] = {
  "\xed\x99\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\x83"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ed9a[] = {
  "\xed\x9a\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ed9b[] = {
  "\xed\x9b\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x9c\x8f"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ed9c[] = {
  "\xed\x9c\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\x87"
};

static const char *grn_nfkc50_compose_prefix_e186ba_table_ed9d[] = {
  "\xed\x9d\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\xbf"
};

static inline const char *
grn_nfkc50_compose_prefix_e186ba(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xea :
      switch (utf8[1]) {
      case 0xb0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ba_table_eab0[utf8[2] - 0x80];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ba_table_eab1[utf8[2] - 0x94];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ba_table_eab2[utf8[2] - 0x8c];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ba_table_eab3[utf8[2] - 0x84];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ba_table_eab4[utf8[2] - 0x98];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ba_table_eab5[utf8[2] - 0x90];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ba_table_eab6[utf8[2] - 0x88];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ba_table_eab7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ba_table_eab8[utf8[2] - 0x94];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ba_table_eab9[utf8[2] - 0x8c];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ba_table_eaba[utf8[2] - 0x84];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ba_table_eabb[utf8[2] - 0x98];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ba_table_eabc[utf8[2] - 0x90];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ba_table_eabd[utf8[2] - 0x88];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ba_table_eabe[utf8[2] - 0x80];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ba_table_eabf[utf8[2] - 0x94];
        }
        break;
      default :
        break;
      }
      break;
    case 0xeb :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ba_table_eb80[utf8[2] - 0x8c];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ba_table_eb81[utf8[2] - 0x84];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ba_table_eb82[utf8[2] - 0x98];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ba_table_eb83[utf8[2] - 0x90];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ba_table_eb84[utf8[2] - 0x88];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ba_table_eb85[utf8[2] - 0x80];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ba_table_eb86[utf8[2] - 0x94];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ba_table_eb87[utf8[2] - 0x8c];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ba_table_eb88[utf8[2] - 0x84];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ba_table_eb89[utf8[2] - 0x98];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ba_table_eb8a[utf8[2] - 0x90];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ba_table_eb8b[utf8[2] - 0x88];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ba_table_eb8c[utf8[2] - 0x80];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ba_table_eb8d[utf8[2] - 0x94];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ba_table_eb8e[utf8[2] - 0x8c];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ba_table_eb8f[utf8[2] - 0x84];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ba_table_eb90[utf8[2] - 0x98];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ba_table_eb91[utf8[2] - 0x90];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ba_table_eb92[utf8[2] - 0x88];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ba_table_eb93[utf8[2] - 0x80];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ba_table_eb94[utf8[2] - 0x94];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ba_table_eb95[utf8[2] - 0x8c];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ba_table_eb96[utf8[2] - 0x84];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ba_table_eb97[utf8[2] - 0x98];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ba_table_eb98[utf8[2] - 0x90];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ba_table_eb99[utf8[2] - 0x88];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ba_table_eb9a[utf8[2] - 0x80];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ba_table_eb9b[utf8[2] - 0x94];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ba_table_eb9c[utf8[2] - 0x8c];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ba_table_eb9d[utf8[2] - 0x84];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ba_table_eb9e[utf8[2] - 0x98];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ba_table_eb9f[utf8[2] - 0x90];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ba_table_eba0[utf8[2] - 0x88];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ba_table_eba1[utf8[2] - 0x80];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ba_table_eba2[utf8[2] - 0x94];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ba_table_eba3[utf8[2] - 0x8c];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ba_table_eba4[utf8[2] - 0x84];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ba_table_eba5[utf8[2] - 0x98];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ba_table_eba6[utf8[2] - 0x90];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ba_table_eba7[utf8[2] - 0x88];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ba_table_eba8[utf8[2] - 0x80];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ba_table_eba9[utf8[2] - 0x94];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ba_table_ebaa[utf8[2] - 0x8c];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ba_table_ebab[utf8[2] - 0x84];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ba_table_ebac[utf8[2] - 0x98];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ba_table_ebad[utf8[2] - 0x90];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ba_table_ebae[utf8[2] - 0x88];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ba_table_ebaf[utf8[2] - 0x80];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ba_table_ebb0[utf8[2] - 0x94];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ba_table_ebb1[utf8[2] - 0x8c];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ba_table_ebb2[utf8[2] - 0x84];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ba_table_ebb3[utf8[2] - 0x98];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ba_table_ebb4[utf8[2] - 0x90];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ba_table_ebb5[utf8[2] - 0x88];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ba_table_ebb6[utf8[2] - 0x80];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ba_table_ebb7[utf8[2] - 0x94];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ba_table_ebb8[utf8[2] - 0x8c];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ba_table_ebb9[utf8[2] - 0x84];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ba_table_ebba[utf8[2] - 0x98];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ba_table_ebbb[utf8[2] - 0x90];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ba_table_ebbc[utf8[2] - 0x88];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ba_table_ebbd[utf8[2] - 0x80];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ba_table_ebbe[utf8[2] - 0x94];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ba_table_ebbf[utf8[2] - 0x8c];
        }
        break;
      default :
        break;
      }
      break;
    case 0xec :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ba_table_ec80[utf8[2] - 0x84];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ba_table_ec81[utf8[2] - 0x98];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ba_table_ec82[utf8[2] - 0x90];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ba_table_ec83[utf8[2] - 0x88];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ba_table_ec84[utf8[2] - 0x80];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ba_table_ec85[utf8[2] - 0x94];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ba_table_ec86[utf8[2] - 0x8c];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ba_table_ec87[utf8[2] - 0x84];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ba_table_ec88[utf8[2] - 0x98];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ba_table_ec89[utf8[2] - 0x90];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ba_table_ec8a[utf8[2] - 0x88];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ba_table_ec8b[utf8[2] - 0x80];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ba_table_ec8c[utf8[2] - 0x94];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ba_table_ec8d[utf8[2] - 0x8c];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ba_table_ec8e[utf8[2] - 0x84];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ba_table_ec8f[utf8[2] - 0x98];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ba_table_ec90[utf8[2] - 0x90];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ba_table_ec91[utf8[2] - 0x88];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ba_table_ec92[utf8[2] - 0x80];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ba_table_ec93[utf8[2] - 0x94];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ba_table_ec94[utf8[2] - 0x8c];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ba_table_ec95[utf8[2] - 0x84];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ba_table_ec96[utf8[2] - 0x98];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ba_table_ec97[utf8[2] - 0x90];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ba_table_ec98[utf8[2] - 0x88];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ba_table_ec99[utf8[2] - 0x80];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ba_table_ec9a[utf8[2] - 0x94];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ba_table_ec9b[utf8[2] - 0x8c];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ba_table_ec9c[utf8[2] - 0x84];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ba_table_ec9d[utf8[2] - 0x98];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ba_table_ec9e[utf8[2] - 0x90];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ba_table_ec9f[utf8[2] - 0x88];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ba_table_eca0[utf8[2] - 0x80];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ba_table_eca1[utf8[2] - 0x94];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ba_table_eca2[utf8[2] - 0x8c];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ba_table_eca3[utf8[2] - 0x84];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ba_table_eca4[utf8[2] - 0x98];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ba_table_eca5[utf8[2] - 0x90];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ba_table_eca6[utf8[2] - 0x88];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ba_table_eca7[utf8[2] - 0x80];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ba_table_eca8[utf8[2] - 0x94];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ba_table_eca9[utf8[2] - 0x8c];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ba_table_ecaa[utf8[2] - 0x84];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ba_table_ecab[utf8[2] - 0x98];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ba_table_ecac[utf8[2] - 0x90];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ba_table_ecad[utf8[2] - 0x88];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ba_table_ecae[utf8[2] - 0x80];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ba_table_ecaf[utf8[2] - 0x94];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ba_table_ecb0[utf8[2] - 0x8c];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ba_table_ecb1[utf8[2] - 0x84];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ba_table_ecb2[utf8[2] - 0x98];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ba_table_ecb3[utf8[2] - 0x90];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ba_table_ecb4[utf8[2] - 0x88];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ba_table_ecb5[utf8[2] - 0x80];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ba_table_ecb6[utf8[2] - 0x94];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ba_table_ecb7[utf8[2] - 0x8c];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ba_table_ecb8[utf8[2] - 0x84];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ba_table_ecb9[utf8[2] - 0x98];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ba_table_ecba[utf8[2] - 0x90];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ba_table_ecbb[utf8[2] - 0x88];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ba_table_ecbc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ba_table_ecbd[utf8[2] - 0x94];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ba_table_ecbe[utf8[2] - 0x8c];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ba_table_ecbf[utf8[2] - 0x84];
        }
        break;
      default :
        break;
      }
      break;
    case 0xed :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ba_table_ed80[utf8[2] - 0x98];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ba_table_ed81[utf8[2] - 0x90];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ba_table_ed82[utf8[2] - 0x88];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ba_table_ed83[utf8[2] - 0x80];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ba_table_ed84[utf8[2] - 0x94];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ba_table_ed85[utf8[2] - 0x8c];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ba_table_ed86[utf8[2] - 0x84];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ba_table_ed87[utf8[2] - 0x98];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ba_table_ed88[utf8[2] - 0x90];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ba_table_ed89[utf8[2] - 0x88];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ba_table_ed8a[utf8[2] - 0x80];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ba_table_ed8b[utf8[2] - 0x94];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ba_table_ed8c[utf8[2] - 0x8c];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ba_table_ed8d[utf8[2] - 0x84];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ba_table_ed8e[utf8[2] - 0x98];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ba_table_ed8f[utf8[2] - 0x90];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ba_table_ed90[utf8[2] - 0x88];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ba_table_ed91[utf8[2] - 0x80];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ba_table_ed92[utf8[2] - 0x94];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ba_table_ed93[utf8[2] - 0x8c];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ba_table_ed94[utf8[2] - 0x84];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ba_table_ed95[utf8[2] - 0x98];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ba_table_ed96[utf8[2] - 0x90];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186ba_table_ed97[utf8[2] - 0x88];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186ba_table_ed98[utf8[2] - 0x80];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186ba_table_ed99[utf8[2] - 0x94];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186ba_table_ed9a[utf8[2] - 0x8c];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186ba_table_ed9b[utf8[2] - 0x84];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186ba_table_ed9c[utf8[2] - 0x98];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186ba_table_ed9d[utf8[2] - 0x90];
        }
        break;
      case 0x9e :
        if (utf8[2] == 0x88) {
          return "\xed\x9e\x9b";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_e186bb_table_eab0[] = {
  "\xea\xb0\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb0\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb1\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eab1[] = {
  "\xea\xb1\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\x84"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eab2[] = {
  "\xea\xb2\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eab3[] = {
  "\xea\xb3\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb4\x90"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eab4[] = {
  "\xea\xb4\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\x88"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eab5[] = {
  "\xea\xb5\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\x80"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eab6[] = {
  "\xea\xb6\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eab7[] = {
  "\xea\xb7\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb7\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb8\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eab8[] = {
  "\xea\xb8\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\x84"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eab9[] = {
  "\xea\xb9\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eaba[] = {
  "\xea\xba\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbb\x90"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eabb[] = {
  "\xea\xbb\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\x88"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eabc[] = {
  "\xea\xbc\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\x80"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eabd[] = {
  "\xea\xbd\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eabe[] = {
  "\xea\xbe\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbe\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbf\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eabf[] = {
  "\xea\xbf\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\x84"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eb80[] = {
  "\xeb\x80\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eb81[] = {
  "\xeb\x81\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x82\x90"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eb82[] = {
  "\xeb\x82\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\x88"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eb83[] = {
  "\xeb\x83\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\x80"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eb84[] = {
  "\xeb\x84\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eb85[] = {
  "\xeb\x85\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x85\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x86\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eb86[] = {
  "\xeb\x86\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\x84"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eb87[] = {
  "\xeb\x87\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eb88[] = {
  "\xeb\x88\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x89\x90"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eb89[] = {
  "\xeb\x89\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\x88"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eb8a[] = {
  "\xeb\x8a\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\x80"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eb8b[] = {
  "\xeb\x8b\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eb8c[] = {
  "\xeb\x8c\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8c\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8d\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eb8d[] = {
  "\xeb\x8d\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\x84"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eb8e[] = {
  "\xeb\x8e\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eb8f[] = {
  "\xeb\x8f\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x90\x90"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eb90[] = {
  "\xeb\x90\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\x88"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eb91[] = {
  "\xeb\x91\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\x80"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eb92[] = {
  "\xeb\x92\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eb93[] = {
  "\xeb\x93\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x93\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x94\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eb94[] = {
  "\xeb\x94\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\x84"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eb95[] = {
  "\xeb\x95\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eb96[] = {
  "\xeb\x96\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x97\x90"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eb97[] = {
  "\xeb\x97\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\x88"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eb98[] = {
  "\xeb\x98\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\x80"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eb99[] = {
  "\xeb\x99\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eb9a[] = {
  "\xeb\x9a\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9a\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9b\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eb9b[] = {
  "\xeb\x9b\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\x84"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eb9c[] = {
  "\xeb\x9c\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eb9d[] = {
  "\xeb\x9d\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9e\x90"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eb9e[] = {
  "\xeb\x9e\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\x88"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eb9f[] = {
  "\xeb\x9f\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\x80"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eba0[] = {
  "\xeb\xa0\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eba1[] = {
  "\xeb\xa1\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa1\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa2\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eba2[] = {
  "\xeb\xa2\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\x84"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eba3[] = {
  "\xeb\xa3\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eba4[] = {
  "\xeb\xa4\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa5\x90"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eba5[] = {
  "\xeb\xa5\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\x88"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eba6[] = {
  "\xeb\xa6\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\x80"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eba7[] = {
  "\xeb\xa7\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eba8[] = {
  "\xeb\xa8\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa8\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa9\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eba9[] = {
  "\xeb\xa9\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\x84"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ebaa[] = {
  "\xeb\xaa\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ebab[] = {
  "\xeb\xab\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xac\x90"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ebac[] = {
  "\xeb\xac\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\x88"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ebad[] = {
  "\xeb\xad\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\x80"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ebae[] = {
  "\xeb\xae\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ebaf[] = {
  "\xeb\xaf\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaf\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb0\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ebb0[] = {
  "\xeb\xb0\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\x84"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ebb1[] = {
  "\xeb\xb1\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ebb2[] = {
  "\xeb\xb2\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb3\x90"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ebb3[] = {
  "\xeb\xb3\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\x88"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ebb4[] = {
  "\xeb\xb4\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\x80"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ebb5[] = {
  "\xeb\xb5\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ebb6[] = {
  "\xeb\xb6\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb6\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb7\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ebb7[] = {
  "\xeb\xb7\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\x84"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ebb8[] = {
  "\xeb\xb8\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ebb9[] = {
  "\xeb\xb9\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xba\x90"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ebba[] = {
  "\xeb\xba\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\x88"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ebbb[] = {
  "\xeb\xbb\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\x80"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ebbc[] = {
  "\xeb\xbc\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ebbd[] = {
  "\xeb\xbd\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbd\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xbe\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ebbe[] = {
  "\xeb\xbe\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\x84"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ebbf[] = {
  "\xeb\xbf\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ec80[] = {
  "\xec\x80\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x81\x90"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ec81[] = {
  "\xec\x81\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\x88"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ec82[] = {
  "\xec\x82\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\x80"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ec83[] = {
  "\xec\x83\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ec84[] = {
  "\xec\x84\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x84\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x85\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ec85[] = {
  "\xec\x85\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\x84"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ec86[] = {
  "\xec\x86\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ec87[] = {
  "\xec\x87\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x88\x90"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ec88[] = {
  "\xec\x88\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\x88"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ec89[] = {
  "\xec\x89\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\x80"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ec8a[] = {
  "\xec\x8a\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ec8b[] = {
  "\xec\x8b\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8b\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8c\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ec8c[] = {
  "\xec\x8c\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\x84"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ec8d[] = {
  "\xec\x8d\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ec8e[] = {
  "\xec\x8e\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8f\x90"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ec8f[] = {
  "\xec\x8f\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\x88"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ec90[] = {
  "\xec\x90\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\x80"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ec91[] = {
  "\xec\x91\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ec92[] = {
  "\xec\x92\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x92\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x93\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ec93[] = {
  "\xec\x93\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\x84"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ec94[] = {
  "\xec\x94\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ec95[] = {
  "\xec\x95\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x96\x90"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ec96[] = {
  "\xec\x96\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\x88"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ec97[] = {
  "\xec\x97\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\x80"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ec98[] = {
  "\xec\x98\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ec99[] = {
  "\xec\x99\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x99\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9a\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ec9a[] = {
  "\xec\x9a\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\x84"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ec9b[] = {
  "\xec\x9b\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ec9c[] = {
  "\xec\x9c\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9d\x90"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ec9d[] = {
  "\xec\x9d\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\x88"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ec9e[] = {
  "\xec\x9e\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\x80"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ec9f[] = {
  "\xec\x9f\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eca0[] = {
  "\xec\xa0\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa0\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa1\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eca1[] = {
  "\xec\xa1\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\x84"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eca2[] = {
  "\xec\xa2\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eca3[] = {
  "\xec\xa3\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa4\x90"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eca4[] = {
  "\xec\xa4\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\x88"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eca5[] = {
  "\xec\xa5\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\x80"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eca6[] = {
  "\xec\xa6\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eca7[] = {
  "\xec\xa7\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa7\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa8\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eca8[] = {
  "\xec\xa8\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\x84"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_eca9[] = {
  "\xec\xa9\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ecaa[] = {
  "\xec\xaa\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xab\x90"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ecab[] = {
  "\xec\xab\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\x88"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ecac[] = {
  "\xec\xac\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\x80"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ecad[] = {
  "\xec\xad\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ecae[] = {
  "\xec\xae\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xae\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xaf\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ecaf[] = {
  "\xec\xaf\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\x84"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ecb0[] = {
  "\xec\xb0\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ecb1[] = {
  "\xec\xb1\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb2\x90"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ecb2[] = {
  "\xec\xb2\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\x88"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ecb3[] = {
  "\xec\xb3\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\x80"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ecb4[] = {
  "\xec\xb4\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ecb5[] = {
  "\xec\xb5\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb5\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb6\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ecb6[] = {
  "\xec\xb6\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\x84"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ecb7[] = {
  "\xec\xb7\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ecb8[] = {
  "\xec\xb8\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb9\x90"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ecb9[] = {
  "\xec\xb9\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\x88"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ecba[] = {
  "\xec\xba\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\x80"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ecbb[] = {
  "\xec\xbb\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ecbc[] = {
  "\xec\xbc\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbc\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbd\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ecbd[] = {
  "\xec\xbd\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\x84"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ecbe[] = {
  "\xec\xbe\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ecbf[] = {
  "\xec\xbf\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x80\x90"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ed80[] = {
  "\xed\x80\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\x88"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ed81[] = {
  "\xed\x81\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\x80"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ed82[] = {
  "\xed\x82\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ed83[] = {
  "\xed\x83\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x83\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x84\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ed84[] = {
  "\xed\x84\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\x84"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ed85[] = {
  "\xed\x85\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ed86[] = {
  "\xed\x86\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x87\x90"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ed87[] = {
  "\xed\x87\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\x88"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ed88[] = {
  "\xed\x88\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\x80"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ed89[] = {
  "\xed\x89\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ed8a[] = {
  "\xed\x8a\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8a\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8b\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ed8b[] = {
  "\xed\x8b\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\x84"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ed8c[] = {
  "\xed\x8c\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ed8d[] = {
  "\xed\x8d\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8e\x90"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ed8e[] = {
  "\xed\x8e\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\x88"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ed8f[] = {
  "\xed\x8f\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\x80"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ed90[] = {
  "\xed\x90\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ed91[] = {
  "\xed\x91\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x91\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x92\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ed92[] = {
  "\xed\x92\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\x84"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ed93[] = {
  "\xed\x93\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ed94[] = {
  "\xed\x94\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x95\x90"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ed95[] = {
  "\xed\x95\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\x88"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ed96[] = {
  "\xed\x96\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\x80"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ed97[] = {
  "\xed\x97\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\xb8"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ed98[] = {
  "\xed\x98\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x98\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x99\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ed99[] = {
  "\xed\x99\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\x84"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ed9a[] = {
  "\xed\x9a\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ed9b[] = {
  "\xed\x9b\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x9c\x90"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ed9c[] = {
  "\xed\x9c\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\x88"
};

static const char *grn_nfkc50_compose_prefix_e186bb_table_ed9d[] = {
  "\xed\x9d\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9e\x80"
};

static inline const char *
grn_nfkc50_compose_prefix_e186bb(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xea :
      switch (utf8[1]) {
      case 0xb0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bb_table_eab0[utf8[2] - 0x80];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bb_table_eab1[utf8[2] - 0x94];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bb_table_eab2[utf8[2] - 0x8c];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bb_table_eab3[utf8[2] - 0x84];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bb_table_eab4[utf8[2] - 0x98];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bb_table_eab5[utf8[2] - 0x90];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bb_table_eab6[utf8[2] - 0x88];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bb_table_eab7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bb_table_eab8[utf8[2] - 0x94];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bb_table_eab9[utf8[2] - 0x8c];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bb_table_eaba[utf8[2] - 0x84];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bb_table_eabb[utf8[2] - 0x98];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bb_table_eabc[utf8[2] - 0x90];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bb_table_eabd[utf8[2] - 0x88];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bb_table_eabe[utf8[2] - 0x80];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bb_table_eabf[utf8[2] - 0x94];
        }
        break;
      default :
        break;
      }
      break;
    case 0xeb :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bb_table_eb80[utf8[2] - 0x8c];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bb_table_eb81[utf8[2] - 0x84];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bb_table_eb82[utf8[2] - 0x98];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bb_table_eb83[utf8[2] - 0x90];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bb_table_eb84[utf8[2] - 0x88];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bb_table_eb85[utf8[2] - 0x80];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bb_table_eb86[utf8[2] - 0x94];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bb_table_eb87[utf8[2] - 0x8c];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bb_table_eb88[utf8[2] - 0x84];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bb_table_eb89[utf8[2] - 0x98];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bb_table_eb8a[utf8[2] - 0x90];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bb_table_eb8b[utf8[2] - 0x88];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bb_table_eb8c[utf8[2] - 0x80];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bb_table_eb8d[utf8[2] - 0x94];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bb_table_eb8e[utf8[2] - 0x8c];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bb_table_eb8f[utf8[2] - 0x84];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bb_table_eb90[utf8[2] - 0x98];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bb_table_eb91[utf8[2] - 0x90];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bb_table_eb92[utf8[2] - 0x88];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bb_table_eb93[utf8[2] - 0x80];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bb_table_eb94[utf8[2] - 0x94];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bb_table_eb95[utf8[2] - 0x8c];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bb_table_eb96[utf8[2] - 0x84];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bb_table_eb97[utf8[2] - 0x98];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bb_table_eb98[utf8[2] - 0x90];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bb_table_eb99[utf8[2] - 0x88];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bb_table_eb9a[utf8[2] - 0x80];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bb_table_eb9b[utf8[2] - 0x94];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bb_table_eb9c[utf8[2] - 0x8c];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bb_table_eb9d[utf8[2] - 0x84];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bb_table_eb9e[utf8[2] - 0x98];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bb_table_eb9f[utf8[2] - 0x90];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bb_table_eba0[utf8[2] - 0x88];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bb_table_eba1[utf8[2] - 0x80];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bb_table_eba2[utf8[2] - 0x94];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bb_table_eba3[utf8[2] - 0x8c];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bb_table_eba4[utf8[2] - 0x84];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bb_table_eba5[utf8[2] - 0x98];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bb_table_eba6[utf8[2] - 0x90];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bb_table_eba7[utf8[2] - 0x88];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bb_table_eba8[utf8[2] - 0x80];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bb_table_eba9[utf8[2] - 0x94];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bb_table_ebaa[utf8[2] - 0x8c];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bb_table_ebab[utf8[2] - 0x84];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bb_table_ebac[utf8[2] - 0x98];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bb_table_ebad[utf8[2] - 0x90];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bb_table_ebae[utf8[2] - 0x88];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bb_table_ebaf[utf8[2] - 0x80];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bb_table_ebb0[utf8[2] - 0x94];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bb_table_ebb1[utf8[2] - 0x8c];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bb_table_ebb2[utf8[2] - 0x84];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bb_table_ebb3[utf8[2] - 0x98];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bb_table_ebb4[utf8[2] - 0x90];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bb_table_ebb5[utf8[2] - 0x88];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bb_table_ebb6[utf8[2] - 0x80];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bb_table_ebb7[utf8[2] - 0x94];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bb_table_ebb8[utf8[2] - 0x8c];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bb_table_ebb9[utf8[2] - 0x84];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bb_table_ebba[utf8[2] - 0x98];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bb_table_ebbb[utf8[2] - 0x90];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bb_table_ebbc[utf8[2] - 0x88];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bb_table_ebbd[utf8[2] - 0x80];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bb_table_ebbe[utf8[2] - 0x94];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bb_table_ebbf[utf8[2] - 0x8c];
        }
        break;
      default :
        break;
      }
      break;
    case 0xec :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bb_table_ec80[utf8[2] - 0x84];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bb_table_ec81[utf8[2] - 0x98];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bb_table_ec82[utf8[2] - 0x90];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bb_table_ec83[utf8[2] - 0x88];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bb_table_ec84[utf8[2] - 0x80];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bb_table_ec85[utf8[2] - 0x94];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bb_table_ec86[utf8[2] - 0x8c];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bb_table_ec87[utf8[2] - 0x84];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bb_table_ec88[utf8[2] - 0x98];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bb_table_ec89[utf8[2] - 0x90];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bb_table_ec8a[utf8[2] - 0x88];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bb_table_ec8b[utf8[2] - 0x80];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bb_table_ec8c[utf8[2] - 0x94];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bb_table_ec8d[utf8[2] - 0x8c];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bb_table_ec8e[utf8[2] - 0x84];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bb_table_ec8f[utf8[2] - 0x98];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bb_table_ec90[utf8[2] - 0x90];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bb_table_ec91[utf8[2] - 0x88];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bb_table_ec92[utf8[2] - 0x80];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bb_table_ec93[utf8[2] - 0x94];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bb_table_ec94[utf8[2] - 0x8c];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bb_table_ec95[utf8[2] - 0x84];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bb_table_ec96[utf8[2] - 0x98];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bb_table_ec97[utf8[2] - 0x90];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bb_table_ec98[utf8[2] - 0x88];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bb_table_ec99[utf8[2] - 0x80];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bb_table_ec9a[utf8[2] - 0x94];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bb_table_ec9b[utf8[2] - 0x8c];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bb_table_ec9c[utf8[2] - 0x84];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bb_table_ec9d[utf8[2] - 0x98];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bb_table_ec9e[utf8[2] - 0x90];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bb_table_ec9f[utf8[2] - 0x88];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bb_table_eca0[utf8[2] - 0x80];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bb_table_eca1[utf8[2] - 0x94];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bb_table_eca2[utf8[2] - 0x8c];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bb_table_eca3[utf8[2] - 0x84];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bb_table_eca4[utf8[2] - 0x98];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bb_table_eca5[utf8[2] - 0x90];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bb_table_eca6[utf8[2] - 0x88];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bb_table_eca7[utf8[2] - 0x80];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bb_table_eca8[utf8[2] - 0x94];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bb_table_eca9[utf8[2] - 0x8c];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bb_table_ecaa[utf8[2] - 0x84];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bb_table_ecab[utf8[2] - 0x98];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bb_table_ecac[utf8[2] - 0x90];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bb_table_ecad[utf8[2] - 0x88];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bb_table_ecae[utf8[2] - 0x80];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bb_table_ecaf[utf8[2] - 0x94];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bb_table_ecb0[utf8[2] - 0x8c];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bb_table_ecb1[utf8[2] - 0x84];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bb_table_ecb2[utf8[2] - 0x98];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bb_table_ecb3[utf8[2] - 0x90];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bb_table_ecb4[utf8[2] - 0x88];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bb_table_ecb5[utf8[2] - 0x80];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bb_table_ecb6[utf8[2] - 0x94];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bb_table_ecb7[utf8[2] - 0x8c];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bb_table_ecb8[utf8[2] - 0x84];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bb_table_ecb9[utf8[2] - 0x98];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bb_table_ecba[utf8[2] - 0x90];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bb_table_ecbb[utf8[2] - 0x88];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bb_table_ecbc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bb_table_ecbd[utf8[2] - 0x94];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bb_table_ecbe[utf8[2] - 0x8c];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bb_table_ecbf[utf8[2] - 0x84];
        }
        break;
      default :
        break;
      }
      break;
    case 0xed :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bb_table_ed80[utf8[2] - 0x98];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bb_table_ed81[utf8[2] - 0x90];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bb_table_ed82[utf8[2] - 0x88];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bb_table_ed83[utf8[2] - 0x80];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bb_table_ed84[utf8[2] - 0x94];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bb_table_ed85[utf8[2] - 0x8c];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bb_table_ed86[utf8[2] - 0x84];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bb_table_ed87[utf8[2] - 0x98];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bb_table_ed88[utf8[2] - 0x90];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bb_table_ed89[utf8[2] - 0x88];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bb_table_ed8a[utf8[2] - 0x80];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bb_table_ed8b[utf8[2] - 0x94];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bb_table_ed8c[utf8[2] - 0x8c];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bb_table_ed8d[utf8[2] - 0x84];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bb_table_ed8e[utf8[2] - 0x98];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bb_table_ed8f[utf8[2] - 0x90];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bb_table_ed90[utf8[2] - 0x88];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bb_table_ed91[utf8[2] - 0x80];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bb_table_ed92[utf8[2] - 0x94];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bb_table_ed93[utf8[2] - 0x8c];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bb_table_ed94[utf8[2] - 0x84];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bb_table_ed95[utf8[2] - 0x98];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bb_table_ed96[utf8[2] - 0x90];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bb_table_ed97[utf8[2] - 0x88];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bb_table_ed98[utf8[2] - 0x80];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bb_table_ed99[utf8[2] - 0x94];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bb_table_ed9a[utf8[2] - 0x8c];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bb_table_ed9b[utf8[2] - 0x84];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bb_table_ed9c[utf8[2] - 0x98];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bb_table_ed9d[utf8[2] - 0x90];
        }
        break;
      case 0x9e :
        if (utf8[2] == 0x88) {
          return "\xed\x9e\x9c";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_e186bc_table_eab0[] = {
  "\xea\xb0\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb0\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb1\x8d"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eab1[] = {
  "\xea\xb1\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\x85"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eab2[] = {
  "\xea\xb2\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eab3[] = {
  "\xea\xb3\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb4\x91"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eab4[] = {
  "\xea\xb4\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\x89"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eab5[] = {
  "\xea\xb5\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\x81"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eab6[] = {
  "\xea\xb6\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eab7[] = {
  "\xea\xb7\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb7\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb8\x8d"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eab8[] = {
  "\xea\xb8\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\x85"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eab9[] = {
  "\xea\xb9\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eaba[] = {
  "\xea\xba\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbb\x91"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eabb[] = {
  "\xea\xbb\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\x89"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eabc[] = {
  "\xea\xbc\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\x81"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eabd[] = {
  "\xea\xbd\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eabe[] = {
  "\xea\xbe\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbe\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbf\x8d"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eabf[] = {
  "\xea\xbf\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\x85"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eb80[] = {
  "\xeb\x80\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eb81[] = {
  "\xeb\x81\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x82\x91"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eb82[] = {
  "\xeb\x82\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\x89"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eb83[] = {
  "\xeb\x83\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\x81"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eb84[] = {
  "\xeb\x84\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eb85[] = {
  "\xeb\x85\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x85\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x86\x8d"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eb86[] = {
  "\xeb\x86\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\x85"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eb87[] = {
  "\xeb\x87\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eb88[] = {
  "\xeb\x88\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x89\x91"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eb89[] = {
  "\xeb\x89\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\x89"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eb8a[] = {
  "\xeb\x8a\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\x81"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eb8b[] = {
  "\xeb\x8b\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eb8c[] = {
  "\xeb\x8c\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8c\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8d\x8d"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eb8d[] = {
  "\xeb\x8d\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\x85"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eb8e[] = {
  "\xeb\x8e\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eb8f[] = {
  "\xeb\x8f\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x90\x91"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eb90[] = {
  "\xeb\x90\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\x89"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eb91[] = {
  "\xeb\x91\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\x81"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eb92[] = {
  "\xeb\x92\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eb93[] = {
  "\xeb\x93\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x93\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x94\x8d"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eb94[] = {
  "\xeb\x94\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\x85"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eb95[] = {
  "\xeb\x95\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eb96[] = {
  "\xeb\x96\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x97\x91"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eb97[] = {
  "\xeb\x97\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\x89"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eb98[] = {
  "\xeb\x98\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\x81"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eb99[] = {
  "\xeb\x99\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eb9a[] = {
  "\xeb\x9a\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9a\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9b\x8d"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eb9b[] = {
  "\xeb\x9b\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\x85"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eb9c[] = {
  "\xeb\x9c\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eb9d[] = {
  "\xeb\x9d\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9e\x91"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eb9e[] = {
  "\xeb\x9e\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\x89"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eb9f[] = {
  "\xeb\x9f\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\x81"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eba0[] = {
  "\xeb\xa0\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eba1[] = {
  "\xeb\xa1\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa1\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa2\x8d"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eba2[] = {
  "\xeb\xa2\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\x85"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eba3[] = {
  "\xeb\xa3\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eba4[] = {
  "\xeb\xa4\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa5\x91"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eba5[] = {
  "\xeb\xa5\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\x89"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eba6[] = {
  "\xeb\xa6\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\x81"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eba7[] = {
  "\xeb\xa7\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eba8[] = {
  "\xeb\xa8\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa8\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa9\x8d"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eba9[] = {
  "\xeb\xa9\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\x85"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ebaa[] = {
  "\xeb\xaa\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ebab[] = {
  "\xeb\xab\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xac\x91"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ebac[] = {
  "\xeb\xac\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\x89"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ebad[] = {
  "\xeb\xad\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\x81"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ebae[] = {
  "\xeb\xae\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ebaf[] = {
  "\xeb\xaf\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaf\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb0\x8d"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ebb0[] = {
  "\xeb\xb0\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\x85"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ebb1[] = {
  "\xeb\xb1\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ebb2[] = {
  "\xeb\xb2\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb3\x91"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ebb3[] = {
  "\xeb\xb3\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\x89"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ebb4[] = {
  "\xeb\xb4\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\x81"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ebb5[] = {
  "\xeb\xb5\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ebb6[] = {
  "\xeb\xb6\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb6\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb7\x8d"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ebb7[] = {
  "\xeb\xb7\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\x85"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ebb8[] = {
  "\xeb\xb8\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ebb9[] = {
  "\xeb\xb9\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xba\x91"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ebba[] = {
  "\xeb\xba\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\x89"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ebbb[] = {
  "\xeb\xbb\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\x81"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ebbc[] = {
  "\xeb\xbc\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ebbd[] = {
  "\xeb\xbd\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbd\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xbe\x8d"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ebbe[] = {
  "\xeb\xbe\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\x85"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ebbf[] = {
  "\xeb\xbf\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ec80[] = {
  "\xec\x80\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x81\x91"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ec81[] = {
  "\xec\x81\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\x89"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ec82[] = {
  "\xec\x82\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\x81"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ec83[] = {
  "\xec\x83\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ec84[] = {
  "\xec\x84\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x84\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x85\x8d"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ec85[] = {
  "\xec\x85\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\x85"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ec86[] = {
  "\xec\x86\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ec87[] = {
  "\xec\x87\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x88\x91"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ec88[] = {
  "\xec\x88\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\x89"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ec89[] = {
  "\xec\x89\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\x81"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ec8a[] = {
  "\xec\x8a\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ec8b[] = {
  "\xec\x8b\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8b\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8c\x8d"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ec8c[] = {
  "\xec\x8c\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\x85"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ec8d[] = {
  "\xec\x8d\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ec8e[] = {
  "\xec\x8e\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8f\x91"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ec8f[] = {
  "\xec\x8f\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\x89"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ec90[] = {
  "\xec\x90\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\x81"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ec91[] = {
  "\xec\x91\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ec92[] = {
  "\xec\x92\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x92\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x93\x8d"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ec93[] = {
  "\xec\x93\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\x85"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ec94[] = {
  "\xec\x94\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ec95[] = {
  "\xec\x95\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x96\x91"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ec96[] = {
  "\xec\x96\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\x89"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ec97[] = {
  "\xec\x97\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\x81"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ec98[] = {
  "\xec\x98\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ec99[] = {
  "\xec\x99\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x99\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9a\x8d"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ec9a[] = {
  "\xec\x9a\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\x85"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ec9b[] = {
  "\xec\x9b\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ec9c[] = {
  "\xec\x9c\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9d\x91"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ec9d[] = {
  "\xec\x9d\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\x89"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ec9e[] = {
  "\xec\x9e\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\x81"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ec9f[] = {
  "\xec\x9f\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eca0[] = {
  "\xec\xa0\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa0\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa1\x8d"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eca1[] = {
  "\xec\xa1\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\x85"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eca2[] = {
  "\xec\xa2\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eca3[] = {
  "\xec\xa3\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa4\x91"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eca4[] = {
  "\xec\xa4\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\x89"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eca5[] = {
  "\xec\xa5\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\x81"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eca6[] = {
  "\xec\xa6\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eca7[] = {
  "\xec\xa7\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa7\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa8\x8d"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eca8[] = {
  "\xec\xa8\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\x85"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_eca9[] = {
  "\xec\xa9\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ecaa[] = {
  "\xec\xaa\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xab\x91"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ecab[] = {
  "\xec\xab\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\x89"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ecac[] = {
  "\xec\xac\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\x81"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ecad[] = {
  "\xec\xad\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ecae[] = {
  "\xec\xae\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xae\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xaf\x8d"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ecaf[] = {
  "\xec\xaf\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\x85"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ecb0[] = {
  "\xec\xb0\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ecb1[] = {
  "\xec\xb1\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb2\x91"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ecb2[] = {
  "\xec\xb2\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\x89"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ecb3[] = {
  "\xec\xb3\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\x81"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ecb4[] = {
  "\xec\xb4\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ecb5[] = {
  "\xec\xb5\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb5\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb6\x8d"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ecb6[] = {
  "\xec\xb6\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\x85"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ecb7[] = {
  "\xec\xb7\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ecb8[] = {
  "\xec\xb8\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb9\x91"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ecb9[] = {
  "\xec\xb9\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\x89"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ecba[] = {
  "\xec\xba\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\x81"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ecbb[] = {
  "\xec\xbb\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ecbc[] = {
  "\xec\xbc\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbc\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbd\x8d"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ecbd[] = {
  "\xec\xbd\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\x85"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ecbe[] = {
  "\xec\xbe\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ecbf[] = {
  "\xec\xbf\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x80\x91"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ed80[] = {
  "\xed\x80\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\x89"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ed81[] = {
  "\xed\x81\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\x81"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ed82[] = {
  "\xed\x82\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ed83[] = {
  "\xed\x83\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x83\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x84\x8d"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ed84[] = {
  "\xed\x84\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\x85"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ed85[] = {
  "\xed\x85\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ed86[] = {
  "\xed\x86\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x87\x91"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ed87[] = {
  "\xed\x87\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\x89"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ed88[] = {
  "\xed\x88\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\x81"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ed89[] = {
  "\xed\x89\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ed8a[] = {
  "\xed\x8a\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8a\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8b\x8d"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ed8b[] = {
  "\xed\x8b\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\x85"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ed8c[] = {
  "\xed\x8c\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ed8d[] = {
  "\xed\x8d\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8e\x91"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ed8e[] = {
  "\xed\x8e\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\x89"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ed8f[] = {
  "\xed\x8f\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\x81"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ed90[] = {
  "\xed\x90\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ed91[] = {
  "\xed\x91\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x91\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x92\x8d"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ed92[] = {
  "\xed\x92\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\x85"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ed93[] = {
  "\xed\x93\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ed94[] = {
  "\xed\x94\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x95\x91"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ed95[] = {
  "\xed\x95\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\x89"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ed96[] = {
  "\xed\x96\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\x81"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ed97[] = {
  "\xed\x97\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\xb9"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ed98[] = {
  "\xed\x98\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x98\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x99\x8d"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ed99[] = {
  "\xed\x99\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\x85"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ed9a[] = {
  "\xed\x9a\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\xbd"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ed9b[] = {
  "\xed\x9b\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x9c\x91"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ed9c[] = {
  "\xed\x9c\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\x89"
};

static const char *grn_nfkc50_compose_prefix_e186bc_table_ed9d[] = {
  "\xed\x9d\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9e\x81"
};

static inline const char *
grn_nfkc50_compose_prefix_e186bc(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xea :
      switch (utf8[1]) {
      case 0xb0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bc_table_eab0[utf8[2] - 0x80];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bc_table_eab1[utf8[2] - 0x94];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bc_table_eab2[utf8[2] - 0x8c];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bc_table_eab3[utf8[2] - 0x84];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bc_table_eab4[utf8[2] - 0x98];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bc_table_eab5[utf8[2] - 0x90];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bc_table_eab6[utf8[2] - 0x88];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bc_table_eab7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bc_table_eab8[utf8[2] - 0x94];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bc_table_eab9[utf8[2] - 0x8c];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bc_table_eaba[utf8[2] - 0x84];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bc_table_eabb[utf8[2] - 0x98];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bc_table_eabc[utf8[2] - 0x90];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bc_table_eabd[utf8[2] - 0x88];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bc_table_eabe[utf8[2] - 0x80];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bc_table_eabf[utf8[2] - 0x94];
        }
        break;
      default :
        break;
      }
      break;
    case 0xeb :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bc_table_eb80[utf8[2] - 0x8c];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bc_table_eb81[utf8[2] - 0x84];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bc_table_eb82[utf8[2] - 0x98];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bc_table_eb83[utf8[2] - 0x90];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bc_table_eb84[utf8[2] - 0x88];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bc_table_eb85[utf8[2] - 0x80];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bc_table_eb86[utf8[2] - 0x94];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bc_table_eb87[utf8[2] - 0x8c];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bc_table_eb88[utf8[2] - 0x84];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bc_table_eb89[utf8[2] - 0x98];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bc_table_eb8a[utf8[2] - 0x90];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bc_table_eb8b[utf8[2] - 0x88];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bc_table_eb8c[utf8[2] - 0x80];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bc_table_eb8d[utf8[2] - 0x94];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bc_table_eb8e[utf8[2] - 0x8c];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bc_table_eb8f[utf8[2] - 0x84];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bc_table_eb90[utf8[2] - 0x98];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bc_table_eb91[utf8[2] - 0x90];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bc_table_eb92[utf8[2] - 0x88];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bc_table_eb93[utf8[2] - 0x80];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bc_table_eb94[utf8[2] - 0x94];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bc_table_eb95[utf8[2] - 0x8c];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bc_table_eb96[utf8[2] - 0x84];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bc_table_eb97[utf8[2] - 0x98];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bc_table_eb98[utf8[2] - 0x90];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bc_table_eb99[utf8[2] - 0x88];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bc_table_eb9a[utf8[2] - 0x80];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bc_table_eb9b[utf8[2] - 0x94];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bc_table_eb9c[utf8[2] - 0x8c];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bc_table_eb9d[utf8[2] - 0x84];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bc_table_eb9e[utf8[2] - 0x98];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bc_table_eb9f[utf8[2] - 0x90];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bc_table_eba0[utf8[2] - 0x88];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bc_table_eba1[utf8[2] - 0x80];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bc_table_eba2[utf8[2] - 0x94];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bc_table_eba3[utf8[2] - 0x8c];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bc_table_eba4[utf8[2] - 0x84];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bc_table_eba5[utf8[2] - 0x98];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bc_table_eba6[utf8[2] - 0x90];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bc_table_eba7[utf8[2] - 0x88];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bc_table_eba8[utf8[2] - 0x80];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bc_table_eba9[utf8[2] - 0x94];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bc_table_ebaa[utf8[2] - 0x8c];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bc_table_ebab[utf8[2] - 0x84];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bc_table_ebac[utf8[2] - 0x98];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bc_table_ebad[utf8[2] - 0x90];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bc_table_ebae[utf8[2] - 0x88];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bc_table_ebaf[utf8[2] - 0x80];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bc_table_ebb0[utf8[2] - 0x94];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bc_table_ebb1[utf8[2] - 0x8c];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bc_table_ebb2[utf8[2] - 0x84];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bc_table_ebb3[utf8[2] - 0x98];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bc_table_ebb4[utf8[2] - 0x90];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bc_table_ebb5[utf8[2] - 0x88];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bc_table_ebb6[utf8[2] - 0x80];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bc_table_ebb7[utf8[2] - 0x94];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bc_table_ebb8[utf8[2] - 0x8c];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bc_table_ebb9[utf8[2] - 0x84];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bc_table_ebba[utf8[2] - 0x98];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bc_table_ebbb[utf8[2] - 0x90];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bc_table_ebbc[utf8[2] - 0x88];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bc_table_ebbd[utf8[2] - 0x80];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bc_table_ebbe[utf8[2] - 0x94];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bc_table_ebbf[utf8[2] - 0x8c];
        }
        break;
      default :
        break;
      }
      break;
    case 0xec :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bc_table_ec80[utf8[2] - 0x84];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bc_table_ec81[utf8[2] - 0x98];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bc_table_ec82[utf8[2] - 0x90];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bc_table_ec83[utf8[2] - 0x88];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bc_table_ec84[utf8[2] - 0x80];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bc_table_ec85[utf8[2] - 0x94];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bc_table_ec86[utf8[2] - 0x8c];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bc_table_ec87[utf8[2] - 0x84];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bc_table_ec88[utf8[2] - 0x98];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bc_table_ec89[utf8[2] - 0x90];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bc_table_ec8a[utf8[2] - 0x88];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bc_table_ec8b[utf8[2] - 0x80];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bc_table_ec8c[utf8[2] - 0x94];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bc_table_ec8d[utf8[2] - 0x8c];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bc_table_ec8e[utf8[2] - 0x84];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bc_table_ec8f[utf8[2] - 0x98];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bc_table_ec90[utf8[2] - 0x90];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bc_table_ec91[utf8[2] - 0x88];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bc_table_ec92[utf8[2] - 0x80];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bc_table_ec93[utf8[2] - 0x94];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bc_table_ec94[utf8[2] - 0x8c];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bc_table_ec95[utf8[2] - 0x84];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bc_table_ec96[utf8[2] - 0x98];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bc_table_ec97[utf8[2] - 0x90];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bc_table_ec98[utf8[2] - 0x88];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bc_table_ec99[utf8[2] - 0x80];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bc_table_ec9a[utf8[2] - 0x94];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bc_table_ec9b[utf8[2] - 0x8c];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bc_table_ec9c[utf8[2] - 0x84];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bc_table_ec9d[utf8[2] - 0x98];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bc_table_ec9e[utf8[2] - 0x90];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bc_table_ec9f[utf8[2] - 0x88];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bc_table_eca0[utf8[2] - 0x80];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bc_table_eca1[utf8[2] - 0x94];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bc_table_eca2[utf8[2] - 0x8c];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bc_table_eca3[utf8[2] - 0x84];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bc_table_eca4[utf8[2] - 0x98];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bc_table_eca5[utf8[2] - 0x90];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bc_table_eca6[utf8[2] - 0x88];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bc_table_eca7[utf8[2] - 0x80];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bc_table_eca8[utf8[2] - 0x94];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bc_table_eca9[utf8[2] - 0x8c];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bc_table_ecaa[utf8[2] - 0x84];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bc_table_ecab[utf8[2] - 0x98];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bc_table_ecac[utf8[2] - 0x90];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bc_table_ecad[utf8[2] - 0x88];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bc_table_ecae[utf8[2] - 0x80];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bc_table_ecaf[utf8[2] - 0x94];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bc_table_ecb0[utf8[2] - 0x8c];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bc_table_ecb1[utf8[2] - 0x84];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bc_table_ecb2[utf8[2] - 0x98];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bc_table_ecb3[utf8[2] - 0x90];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bc_table_ecb4[utf8[2] - 0x88];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bc_table_ecb5[utf8[2] - 0x80];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bc_table_ecb6[utf8[2] - 0x94];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bc_table_ecb7[utf8[2] - 0x8c];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bc_table_ecb8[utf8[2] - 0x84];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bc_table_ecb9[utf8[2] - 0x98];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bc_table_ecba[utf8[2] - 0x90];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bc_table_ecbb[utf8[2] - 0x88];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bc_table_ecbc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bc_table_ecbd[utf8[2] - 0x94];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bc_table_ecbe[utf8[2] - 0x8c];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bc_table_ecbf[utf8[2] - 0x84];
        }
        break;
      default :
        break;
      }
      break;
    case 0xed :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bc_table_ed80[utf8[2] - 0x98];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bc_table_ed81[utf8[2] - 0x90];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bc_table_ed82[utf8[2] - 0x88];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bc_table_ed83[utf8[2] - 0x80];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bc_table_ed84[utf8[2] - 0x94];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bc_table_ed85[utf8[2] - 0x8c];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bc_table_ed86[utf8[2] - 0x84];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bc_table_ed87[utf8[2] - 0x98];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bc_table_ed88[utf8[2] - 0x90];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bc_table_ed89[utf8[2] - 0x88];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bc_table_ed8a[utf8[2] - 0x80];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bc_table_ed8b[utf8[2] - 0x94];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bc_table_ed8c[utf8[2] - 0x8c];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bc_table_ed8d[utf8[2] - 0x84];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bc_table_ed8e[utf8[2] - 0x98];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bc_table_ed8f[utf8[2] - 0x90];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bc_table_ed90[utf8[2] - 0x88];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bc_table_ed91[utf8[2] - 0x80];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bc_table_ed92[utf8[2] - 0x94];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bc_table_ed93[utf8[2] - 0x8c];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bc_table_ed94[utf8[2] - 0x84];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bc_table_ed95[utf8[2] - 0x98];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bc_table_ed96[utf8[2] - 0x90];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bc_table_ed97[utf8[2] - 0x88];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bc_table_ed98[utf8[2] - 0x80];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bc_table_ed99[utf8[2] - 0x94];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bc_table_ed9a[utf8[2] - 0x8c];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bc_table_ed9b[utf8[2] - 0x84];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bc_table_ed9c[utf8[2] - 0x98];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bc_table_ed9d[utf8[2] - 0x90];
        }
        break;
      case 0x9e :
        if (utf8[2] == 0x88) {
          return "\xed\x9e\x9d";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_e186bd_table_eab0[] = {
  "\xea\xb0\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb0\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb1\x8e"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eab1[] = {
  "\xea\xb1\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\x86"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eab2[] = {
  "\xea\xb2\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eab3[] = {
  "\xea\xb3\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb4\x92"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eab4[] = {
  "\xea\xb4\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eab5[] = {
  "\xea\xb5\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\x82"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eab6[] = {
  "\xea\xb6\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\xba"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eab7[] = {
  "\xea\xb7\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb7\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb8\x8e"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eab8[] = {
  "\xea\xb8\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\x86"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eab9[] = {
  "\xea\xb9\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eaba[] = {
  "\xea\xba\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbb\x92"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eabb[] = {
  "\xea\xbb\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eabc[] = {
  "\xea\xbc\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\x82"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eabd[] = {
  "\xea\xbd\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\xba"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eabe[] = {
  "\xea\xbe\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbe\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbf\x8e"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eabf[] = {
  "\xea\xbf\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\x86"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eb80[] = {
  "\xeb\x80\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eb81[] = {
  "\xeb\x81\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x82\x92"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eb82[] = {
  "\xeb\x82\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eb83[] = {
  "\xeb\x83\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\x82"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eb84[] = {
  "\xeb\x84\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\xba"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eb85[] = {
  "\xeb\x85\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x85\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x86\x8e"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eb86[] = {
  "\xeb\x86\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\x86"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eb87[] = {
  "\xeb\x87\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eb88[] = {
  "\xeb\x88\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x89\x92"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eb89[] = {
  "\xeb\x89\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eb8a[] = {
  "\xeb\x8a\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\x82"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eb8b[] = {
  "\xeb\x8b\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\xba"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eb8c[] = {
  "\xeb\x8c\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8c\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8d\x8e"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eb8d[] = {
  "\xeb\x8d\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\x86"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eb8e[] = {
  "\xeb\x8e\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eb8f[] = {
  "\xeb\x8f\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x90\x92"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eb90[] = {
  "\xeb\x90\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eb91[] = {
  "\xeb\x91\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\x82"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eb92[] = {
  "\xeb\x92\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\xba"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eb93[] = {
  "\xeb\x93\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x93\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x94\x8e"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eb94[] = {
  "\xeb\x94\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\x86"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eb95[] = {
  "\xeb\x95\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eb96[] = {
  "\xeb\x96\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x97\x92"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eb97[] = {
  "\xeb\x97\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eb98[] = {
  "\xeb\x98\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\x82"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eb99[] = {
  "\xeb\x99\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\xba"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eb9a[] = {
  "\xeb\x9a\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9a\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9b\x8e"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eb9b[] = {
  "\xeb\x9b\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\x86"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eb9c[] = {
  "\xeb\x9c\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eb9d[] = {
  "\xeb\x9d\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9e\x92"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eb9e[] = {
  "\xeb\x9e\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eb9f[] = {
  "\xeb\x9f\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\x82"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eba0[] = {
  "\xeb\xa0\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\xba"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eba1[] = {
  "\xeb\xa1\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa1\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa2\x8e"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eba2[] = {
  "\xeb\xa2\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\x86"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eba3[] = {
  "\xeb\xa3\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eba4[] = {
  "\xeb\xa4\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa5\x92"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eba5[] = {
  "\xeb\xa5\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eba6[] = {
  "\xeb\xa6\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\x82"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eba7[] = {
  "\xeb\xa7\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\xba"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eba8[] = {
  "\xeb\xa8\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa8\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa9\x8e"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eba9[] = {
  "\xeb\xa9\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\x86"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ebaa[] = {
  "\xeb\xaa\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ebab[] = {
  "\xeb\xab\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xac\x92"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ebac[] = {
  "\xeb\xac\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ebad[] = {
  "\xeb\xad\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\x82"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ebae[] = {
  "\xeb\xae\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\xba"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ebaf[] = {
  "\xeb\xaf\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaf\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb0\x8e"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ebb0[] = {
  "\xeb\xb0\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\x86"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ebb1[] = {
  "\xeb\xb1\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ebb2[] = {
  "\xeb\xb2\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb3\x92"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ebb3[] = {
  "\xeb\xb3\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ebb4[] = {
  "\xeb\xb4\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\x82"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ebb5[] = {
  "\xeb\xb5\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\xba"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ebb6[] = {
  "\xeb\xb6\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb6\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb7\x8e"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ebb7[] = {
  "\xeb\xb7\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\x86"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ebb8[] = {
  "\xeb\xb8\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ebb9[] = {
  "\xeb\xb9\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xba\x92"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ebba[] = {
  "\xeb\xba\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ebbb[] = {
  "\xeb\xbb\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\x82"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ebbc[] = {
  "\xeb\xbc\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\xba"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ebbd[] = {
  "\xeb\xbd\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbd\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xbe\x8e"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ebbe[] = {
  "\xeb\xbe\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\x86"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ebbf[] = {
  "\xeb\xbf\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ec80[] = {
  "\xec\x80\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x81\x92"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ec81[] = {
  "\xec\x81\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ec82[] = {
  "\xec\x82\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\x82"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ec83[] = {
  "\xec\x83\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\xba"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ec84[] = {
  "\xec\x84\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x84\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x85\x8e"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ec85[] = {
  "\xec\x85\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\x86"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ec86[] = {
  "\xec\x86\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ec87[] = {
  "\xec\x87\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x88\x92"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ec88[] = {
  "\xec\x88\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ec89[] = {
  "\xec\x89\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\x82"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ec8a[] = {
  "\xec\x8a\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\xba"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ec8b[] = {
  "\xec\x8b\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8b\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8c\x8e"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ec8c[] = {
  "\xec\x8c\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\x86"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ec8d[] = {
  "\xec\x8d\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ec8e[] = {
  "\xec\x8e\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8f\x92"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ec8f[] = {
  "\xec\x8f\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ec90[] = {
  "\xec\x90\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\x82"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ec91[] = {
  "\xec\x91\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\xba"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ec92[] = {
  "\xec\x92\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x92\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x93\x8e"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ec93[] = {
  "\xec\x93\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\x86"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ec94[] = {
  "\xec\x94\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ec95[] = {
  "\xec\x95\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x96\x92"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ec96[] = {
  "\xec\x96\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ec97[] = {
  "\xec\x97\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\x82"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ec98[] = {
  "\xec\x98\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\xba"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ec99[] = {
  "\xec\x99\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x99\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9a\x8e"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ec9a[] = {
  "\xec\x9a\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\x86"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ec9b[] = {
  "\xec\x9b\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ec9c[] = {
  "\xec\x9c\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9d\x92"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ec9d[] = {
  "\xec\x9d\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ec9e[] = {
  "\xec\x9e\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\x82"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ec9f[] = {
  "\xec\x9f\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\xba"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eca0[] = {
  "\xec\xa0\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa0\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa1\x8e"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eca1[] = {
  "\xec\xa1\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\x86"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eca2[] = {
  "\xec\xa2\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eca3[] = {
  "\xec\xa3\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa4\x92"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eca4[] = {
  "\xec\xa4\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eca5[] = {
  "\xec\xa5\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\x82"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eca6[] = {
  "\xec\xa6\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\xba"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eca7[] = {
  "\xec\xa7\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa7\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa8\x8e"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eca8[] = {
  "\xec\xa8\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\x86"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_eca9[] = {
  "\xec\xa9\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ecaa[] = {
  "\xec\xaa\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xab\x92"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ecab[] = {
  "\xec\xab\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ecac[] = {
  "\xec\xac\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\x82"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ecad[] = {
  "\xec\xad\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\xba"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ecae[] = {
  "\xec\xae\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xae\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xaf\x8e"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ecaf[] = {
  "\xec\xaf\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\x86"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ecb0[] = {
  "\xec\xb0\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ecb1[] = {
  "\xec\xb1\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb2\x92"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ecb2[] = {
  "\xec\xb2\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ecb3[] = {
  "\xec\xb3\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\x82"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ecb4[] = {
  "\xec\xb4\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\xba"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ecb5[] = {
  "\xec\xb5\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb5\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb6\x8e"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ecb6[] = {
  "\xec\xb6\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\x86"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ecb7[] = {
  "\xec\xb7\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ecb8[] = {
  "\xec\xb8\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb9\x92"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ecb9[] = {
  "\xec\xb9\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ecba[] = {
  "\xec\xba\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\x82"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ecbb[] = {
  "\xec\xbb\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\xba"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ecbc[] = {
  "\xec\xbc\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbc\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbd\x8e"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ecbd[] = {
  "\xec\xbd\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\x86"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ecbe[] = {
  "\xec\xbe\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ecbf[] = {
  "\xec\xbf\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x80\x92"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ed80[] = {
  "\xed\x80\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ed81[] = {
  "\xed\x81\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\x82"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ed82[] = {
  "\xed\x82\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\xba"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ed83[] = {
  "\xed\x83\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x83\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x84\x8e"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ed84[] = {
  "\xed\x84\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\x86"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ed85[] = {
  "\xed\x85\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ed86[] = {
  "\xed\x86\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x87\x92"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ed87[] = {
  "\xed\x87\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ed88[] = {
  "\xed\x88\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\x82"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ed89[] = {
  "\xed\x89\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\xba"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ed8a[] = {
  "\xed\x8a\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8a\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8b\x8e"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ed8b[] = {
  "\xed\x8b\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\x86"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ed8c[] = {
  "\xed\x8c\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ed8d[] = {
  "\xed\x8d\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8e\x92"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ed8e[] = {
  "\xed\x8e\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ed8f[] = {
  "\xed\x8f\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\x82"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ed90[] = {
  "\xed\x90\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\xba"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ed91[] = {
  "\xed\x91\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x91\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x92\x8e"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ed92[] = {
  "\xed\x92\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\x86"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ed93[] = {
  "\xed\x93\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ed94[] = {
  "\xed\x94\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x95\x92"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ed95[] = {
  "\xed\x95\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ed96[] = {
  "\xed\x96\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\x82"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ed97[] = {
  "\xed\x97\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\xba"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ed98[] = {
  "\xed\x98\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x98\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x99\x8e"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ed99[] = {
  "\xed\x99\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\x86"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ed9a[] = {
  "\xed\x9a\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\xbe"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ed9b[] = {
  "\xed\x9b\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x9c\x92"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ed9c[] = {
  "\xed\x9c\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\x8a"
};

static const char *grn_nfkc50_compose_prefix_e186bd_table_ed9d[] = {
  "\xed\x9d\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9e\x82"
};

static inline const char *
grn_nfkc50_compose_prefix_e186bd(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xea :
      switch (utf8[1]) {
      case 0xb0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bd_table_eab0[utf8[2] - 0x80];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bd_table_eab1[utf8[2] - 0x94];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bd_table_eab2[utf8[2] - 0x8c];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bd_table_eab3[utf8[2] - 0x84];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bd_table_eab4[utf8[2] - 0x98];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bd_table_eab5[utf8[2] - 0x90];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bd_table_eab6[utf8[2] - 0x88];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bd_table_eab7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bd_table_eab8[utf8[2] - 0x94];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bd_table_eab9[utf8[2] - 0x8c];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bd_table_eaba[utf8[2] - 0x84];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bd_table_eabb[utf8[2] - 0x98];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bd_table_eabc[utf8[2] - 0x90];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bd_table_eabd[utf8[2] - 0x88];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bd_table_eabe[utf8[2] - 0x80];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bd_table_eabf[utf8[2] - 0x94];
        }
        break;
      default :
        break;
      }
      break;
    case 0xeb :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bd_table_eb80[utf8[2] - 0x8c];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bd_table_eb81[utf8[2] - 0x84];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bd_table_eb82[utf8[2] - 0x98];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bd_table_eb83[utf8[2] - 0x90];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bd_table_eb84[utf8[2] - 0x88];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bd_table_eb85[utf8[2] - 0x80];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bd_table_eb86[utf8[2] - 0x94];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bd_table_eb87[utf8[2] - 0x8c];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bd_table_eb88[utf8[2] - 0x84];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bd_table_eb89[utf8[2] - 0x98];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bd_table_eb8a[utf8[2] - 0x90];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bd_table_eb8b[utf8[2] - 0x88];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bd_table_eb8c[utf8[2] - 0x80];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bd_table_eb8d[utf8[2] - 0x94];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bd_table_eb8e[utf8[2] - 0x8c];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bd_table_eb8f[utf8[2] - 0x84];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bd_table_eb90[utf8[2] - 0x98];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bd_table_eb91[utf8[2] - 0x90];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bd_table_eb92[utf8[2] - 0x88];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bd_table_eb93[utf8[2] - 0x80];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bd_table_eb94[utf8[2] - 0x94];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bd_table_eb95[utf8[2] - 0x8c];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bd_table_eb96[utf8[2] - 0x84];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bd_table_eb97[utf8[2] - 0x98];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bd_table_eb98[utf8[2] - 0x90];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bd_table_eb99[utf8[2] - 0x88];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bd_table_eb9a[utf8[2] - 0x80];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bd_table_eb9b[utf8[2] - 0x94];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bd_table_eb9c[utf8[2] - 0x8c];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bd_table_eb9d[utf8[2] - 0x84];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bd_table_eb9e[utf8[2] - 0x98];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bd_table_eb9f[utf8[2] - 0x90];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bd_table_eba0[utf8[2] - 0x88];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bd_table_eba1[utf8[2] - 0x80];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bd_table_eba2[utf8[2] - 0x94];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bd_table_eba3[utf8[2] - 0x8c];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bd_table_eba4[utf8[2] - 0x84];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bd_table_eba5[utf8[2] - 0x98];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bd_table_eba6[utf8[2] - 0x90];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bd_table_eba7[utf8[2] - 0x88];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bd_table_eba8[utf8[2] - 0x80];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bd_table_eba9[utf8[2] - 0x94];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bd_table_ebaa[utf8[2] - 0x8c];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bd_table_ebab[utf8[2] - 0x84];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bd_table_ebac[utf8[2] - 0x98];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bd_table_ebad[utf8[2] - 0x90];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bd_table_ebae[utf8[2] - 0x88];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bd_table_ebaf[utf8[2] - 0x80];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bd_table_ebb0[utf8[2] - 0x94];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bd_table_ebb1[utf8[2] - 0x8c];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bd_table_ebb2[utf8[2] - 0x84];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bd_table_ebb3[utf8[2] - 0x98];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bd_table_ebb4[utf8[2] - 0x90];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bd_table_ebb5[utf8[2] - 0x88];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bd_table_ebb6[utf8[2] - 0x80];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bd_table_ebb7[utf8[2] - 0x94];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bd_table_ebb8[utf8[2] - 0x8c];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bd_table_ebb9[utf8[2] - 0x84];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bd_table_ebba[utf8[2] - 0x98];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bd_table_ebbb[utf8[2] - 0x90];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bd_table_ebbc[utf8[2] - 0x88];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bd_table_ebbd[utf8[2] - 0x80];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bd_table_ebbe[utf8[2] - 0x94];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bd_table_ebbf[utf8[2] - 0x8c];
        }
        break;
      default :
        break;
      }
      break;
    case 0xec :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bd_table_ec80[utf8[2] - 0x84];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bd_table_ec81[utf8[2] - 0x98];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bd_table_ec82[utf8[2] - 0x90];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bd_table_ec83[utf8[2] - 0x88];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bd_table_ec84[utf8[2] - 0x80];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bd_table_ec85[utf8[2] - 0x94];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bd_table_ec86[utf8[2] - 0x8c];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bd_table_ec87[utf8[2] - 0x84];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bd_table_ec88[utf8[2] - 0x98];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bd_table_ec89[utf8[2] - 0x90];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bd_table_ec8a[utf8[2] - 0x88];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bd_table_ec8b[utf8[2] - 0x80];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bd_table_ec8c[utf8[2] - 0x94];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bd_table_ec8d[utf8[2] - 0x8c];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bd_table_ec8e[utf8[2] - 0x84];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bd_table_ec8f[utf8[2] - 0x98];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bd_table_ec90[utf8[2] - 0x90];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bd_table_ec91[utf8[2] - 0x88];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bd_table_ec92[utf8[2] - 0x80];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bd_table_ec93[utf8[2] - 0x94];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bd_table_ec94[utf8[2] - 0x8c];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bd_table_ec95[utf8[2] - 0x84];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bd_table_ec96[utf8[2] - 0x98];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bd_table_ec97[utf8[2] - 0x90];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bd_table_ec98[utf8[2] - 0x88];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bd_table_ec99[utf8[2] - 0x80];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bd_table_ec9a[utf8[2] - 0x94];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bd_table_ec9b[utf8[2] - 0x8c];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bd_table_ec9c[utf8[2] - 0x84];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bd_table_ec9d[utf8[2] - 0x98];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bd_table_ec9e[utf8[2] - 0x90];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bd_table_ec9f[utf8[2] - 0x88];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bd_table_eca0[utf8[2] - 0x80];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bd_table_eca1[utf8[2] - 0x94];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bd_table_eca2[utf8[2] - 0x8c];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bd_table_eca3[utf8[2] - 0x84];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bd_table_eca4[utf8[2] - 0x98];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bd_table_eca5[utf8[2] - 0x90];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bd_table_eca6[utf8[2] - 0x88];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bd_table_eca7[utf8[2] - 0x80];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bd_table_eca8[utf8[2] - 0x94];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bd_table_eca9[utf8[2] - 0x8c];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bd_table_ecaa[utf8[2] - 0x84];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bd_table_ecab[utf8[2] - 0x98];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bd_table_ecac[utf8[2] - 0x90];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bd_table_ecad[utf8[2] - 0x88];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bd_table_ecae[utf8[2] - 0x80];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bd_table_ecaf[utf8[2] - 0x94];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bd_table_ecb0[utf8[2] - 0x8c];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bd_table_ecb1[utf8[2] - 0x84];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bd_table_ecb2[utf8[2] - 0x98];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bd_table_ecb3[utf8[2] - 0x90];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bd_table_ecb4[utf8[2] - 0x88];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bd_table_ecb5[utf8[2] - 0x80];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bd_table_ecb6[utf8[2] - 0x94];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bd_table_ecb7[utf8[2] - 0x8c];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bd_table_ecb8[utf8[2] - 0x84];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bd_table_ecb9[utf8[2] - 0x98];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bd_table_ecba[utf8[2] - 0x90];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bd_table_ecbb[utf8[2] - 0x88];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bd_table_ecbc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bd_table_ecbd[utf8[2] - 0x94];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bd_table_ecbe[utf8[2] - 0x8c];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bd_table_ecbf[utf8[2] - 0x84];
        }
        break;
      default :
        break;
      }
      break;
    case 0xed :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bd_table_ed80[utf8[2] - 0x98];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bd_table_ed81[utf8[2] - 0x90];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bd_table_ed82[utf8[2] - 0x88];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bd_table_ed83[utf8[2] - 0x80];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bd_table_ed84[utf8[2] - 0x94];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bd_table_ed85[utf8[2] - 0x8c];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bd_table_ed86[utf8[2] - 0x84];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bd_table_ed87[utf8[2] - 0x98];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bd_table_ed88[utf8[2] - 0x90];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bd_table_ed89[utf8[2] - 0x88];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bd_table_ed8a[utf8[2] - 0x80];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bd_table_ed8b[utf8[2] - 0x94];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bd_table_ed8c[utf8[2] - 0x8c];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bd_table_ed8d[utf8[2] - 0x84];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bd_table_ed8e[utf8[2] - 0x98];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bd_table_ed8f[utf8[2] - 0x90];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bd_table_ed90[utf8[2] - 0x88];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bd_table_ed91[utf8[2] - 0x80];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bd_table_ed92[utf8[2] - 0x94];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bd_table_ed93[utf8[2] - 0x8c];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bd_table_ed94[utf8[2] - 0x84];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bd_table_ed95[utf8[2] - 0x98];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bd_table_ed96[utf8[2] - 0x90];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bd_table_ed97[utf8[2] - 0x88];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bd_table_ed98[utf8[2] - 0x80];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bd_table_ed99[utf8[2] - 0x94];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bd_table_ed9a[utf8[2] - 0x8c];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bd_table_ed9b[utf8[2] - 0x84];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bd_table_ed9c[utf8[2] - 0x98];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bd_table_ed9d[utf8[2] - 0x90];
        }
        break;
      case 0x9e :
        if (utf8[2] == 0x88) {
          return "\xed\x9e\x9e";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_e186be_table_eab0[] = {
  "\xea\xb0\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb0\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb1\x8f"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eab1[] = {
  "\xea\xb1\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\x87"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eab2[] = {
  "\xea\xb2\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eab3[] = {
  "\xea\xb3\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb4\x93"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eab4[] = {
  "\xea\xb4\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eab5[] = {
  "\xea\xb5\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\x83"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eab6[] = {
  "\xea\xb6\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eab7[] = {
  "\xea\xb7\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb7\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb8\x8f"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eab8[] = {
  "\xea\xb8\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\x87"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eab9[] = {
  "\xea\xb9\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eaba[] = {
  "\xea\xba\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbb\x93"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eabb[] = {
  "\xea\xbb\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eabc[] = {
  "\xea\xbc\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\x83"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eabd[] = {
  "\xea\xbd\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eabe[] = {
  "\xea\xbe\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbe\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbf\x8f"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eabf[] = {
  "\xea\xbf\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\x87"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eb80[] = {
  "\xeb\x80\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eb81[] = {
  "\xeb\x81\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x82\x93"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eb82[] = {
  "\xeb\x82\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eb83[] = {
  "\xeb\x83\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\x83"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eb84[] = {
  "\xeb\x84\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eb85[] = {
  "\xeb\x85\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x85\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x86\x8f"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eb86[] = {
  "\xeb\x86\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\x87"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eb87[] = {
  "\xeb\x87\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eb88[] = {
  "\xeb\x88\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x89\x93"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eb89[] = {
  "\xeb\x89\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eb8a[] = {
  "\xeb\x8a\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\x83"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eb8b[] = {
  "\xeb\x8b\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eb8c[] = {
  "\xeb\x8c\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8c\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8d\x8f"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eb8d[] = {
  "\xeb\x8d\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\x87"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eb8e[] = {
  "\xeb\x8e\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eb8f[] = {
  "\xeb\x8f\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x90\x93"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eb90[] = {
  "\xeb\x90\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eb91[] = {
  "\xeb\x91\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\x83"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eb92[] = {
  "\xeb\x92\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eb93[] = {
  "\xeb\x93\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x93\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x94\x8f"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eb94[] = {
  "\xeb\x94\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\x87"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eb95[] = {
  "\xeb\x95\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eb96[] = {
  "\xeb\x96\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x97\x93"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eb97[] = {
  "\xeb\x97\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eb98[] = {
  "\xeb\x98\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\x83"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eb99[] = {
  "\xeb\x99\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eb9a[] = {
  "\xeb\x9a\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9a\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9b\x8f"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eb9b[] = {
  "\xeb\x9b\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\x87"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eb9c[] = {
  "\xeb\x9c\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eb9d[] = {
  "\xeb\x9d\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9e\x93"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eb9e[] = {
  "\xeb\x9e\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eb9f[] = {
  "\xeb\x9f\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\x83"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eba0[] = {
  "\xeb\xa0\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eba1[] = {
  "\xeb\xa1\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa1\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa2\x8f"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eba2[] = {
  "\xeb\xa2\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\x87"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eba3[] = {
  "\xeb\xa3\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eba4[] = {
  "\xeb\xa4\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa5\x93"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eba5[] = {
  "\xeb\xa5\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eba6[] = {
  "\xeb\xa6\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\x83"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eba7[] = {
  "\xeb\xa7\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eba8[] = {
  "\xeb\xa8\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa8\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa9\x8f"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eba9[] = {
  "\xeb\xa9\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\x87"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ebaa[] = {
  "\xeb\xaa\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ebab[] = {
  "\xeb\xab\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xac\x93"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ebac[] = {
  "\xeb\xac\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ebad[] = {
  "\xeb\xad\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\x83"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ebae[] = {
  "\xeb\xae\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ebaf[] = {
  "\xeb\xaf\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaf\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb0\x8f"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ebb0[] = {
  "\xeb\xb0\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\x87"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ebb1[] = {
  "\xeb\xb1\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ebb2[] = {
  "\xeb\xb2\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb3\x93"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ebb3[] = {
  "\xeb\xb3\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ebb4[] = {
  "\xeb\xb4\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\x83"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ebb5[] = {
  "\xeb\xb5\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ebb6[] = {
  "\xeb\xb6\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb6\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb7\x8f"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ebb7[] = {
  "\xeb\xb7\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\x87"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ebb8[] = {
  "\xeb\xb8\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ebb9[] = {
  "\xeb\xb9\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xba\x93"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ebba[] = {
  "\xeb\xba\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ebbb[] = {
  "\xeb\xbb\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\x83"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ebbc[] = {
  "\xeb\xbc\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ebbd[] = {
  "\xeb\xbd\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbd\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xbe\x8f"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ebbe[] = {
  "\xeb\xbe\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\x87"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ebbf[] = {
  "\xeb\xbf\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ec80[] = {
  "\xec\x80\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x81\x93"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ec81[] = {
  "\xec\x81\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ec82[] = {
  "\xec\x82\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\x83"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ec83[] = {
  "\xec\x83\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ec84[] = {
  "\xec\x84\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x84\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x85\x8f"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ec85[] = {
  "\xec\x85\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\x87"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ec86[] = {
  "\xec\x86\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ec87[] = {
  "\xec\x87\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x88\x93"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ec88[] = {
  "\xec\x88\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ec89[] = {
  "\xec\x89\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\x83"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ec8a[] = {
  "\xec\x8a\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ec8b[] = {
  "\xec\x8b\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8b\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8c\x8f"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ec8c[] = {
  "\xec\x8c\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\x87"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ec8d[] = {
  "\xec\x8d\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ec8e[] = {
  "\xec\x8e\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8f\x93"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ec8f[] = {
  "\xec\x8f\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ec90[] = {
  "\xec\x90\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\x83"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ec91[] = {
  "\xec\x91\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ec92[] = {
  "\xec\x92\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x92\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x93\x8f"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ec93[] = {
  "\xec\x93\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\x87"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ec94[] = {
  "\xec\x94\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ec95[] = {
  "\xec\x95\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x96\x93"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ec96[] = {
  "\xec\x96\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ec97[] = {
  "\xec\x97\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\x83"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ec98[] = {
  "\xec\x98\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ec99[] = {
  "\xec\x99\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x99\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9a\x8f"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ec9a[] = {
  "\xec\x9a\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\x87"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ec9b[] = {
  "\xec\x9b\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ec9c[] = {
  "\xec\x9c\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9d\x93"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ec9d[] = {
  "\xec\x9d\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ec9e[] = {
  "\xec\x9e\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\x83"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ec9f[] = {
  "\xec\x9f\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eca0[] = {
  "\xec\xa0\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa0\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa1\x8f"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eca1[] = {
  "\xec\xa1\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\x87"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eca2[] = {
  "\xec\xa2\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eca3[] = {
  "\xec\xa3\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa4\x93"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eca4[] = {
  "\xec\xa4\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eca5[] = {
  "\xec\xa5\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\x83"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eca6[] = {
  "\xec\xa6\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eca7[] = {
  "\xec\xa7\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa7\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa8\x8f"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eca8[] = {
  "\xec\xa8\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\x87"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_eca9[] = {
  "\xec\xa9\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ecaa[] = {
  "\xec\xaa\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xab\x93"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ecab[] = {
  "\xec\xab\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ecac[] = {
  "\xec\xac\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\x83"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ecad[] = {
  "\xec\xad\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ecae[] = {
  "\xec\xae\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xae\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xaf\x8f"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ecaf[] = {
  "\xec\xaf\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\x87"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ecb0[] = {
  "\xec\xb0\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ecb1[] = {
  "\xec\xb1\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb2\x93"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ecb2[] = {
  "\xec\xb2\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ecb3[] = {
  "\xec\xb3\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\x83"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ecb4[] = {
  "\xec\xb4\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ecb5[] = {
  "\xec\xb5\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb5\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb6\x8f"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ecb6[] = {
  "\xec\xb6\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\x87"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ecb7[] = {
  "\xec\xb7\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ecb8[] = {
  "\xec\xb8\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb9\x93"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ecb9[] = {
  "\xec\xb9\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ecba[] = {
  "\xec\xba\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\x83"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ecbb[] = {
  "\xec\xbb\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ecbc[] = {
  "\xec\xbc\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbc\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbd\x8f"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ecbd[] = {
  "\xec\xbd\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\x87"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ecbe[] = {
  "\xec\xbe\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ecbf[] = {
  "\xec\xbf\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x80\x93"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ed80[] = {
  "\xed\x80\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ed81[] = {
  "\xed\x81\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\x83"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ed82[] = {
  "\xed\x82\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ed83[] = {
  "\xed\x83\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x83\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x84\x8f"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ed84[] = {
  "\xed\x84\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\x87"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ed85[] = {
  "\xed\x85\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ed86[] = {
  "\xed\x86\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x87\x93"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ed87[] = {
  "\xed\x87\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ed88[] = {
  "\xed\x88\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\x83"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ed89[] = {
  "\xed\x89\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ed8a[] = {
  "\xed\x8a\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8a\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8b\x8f"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ed8b[] = {
  "\xed\x8b\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\x87"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ed8c[] = {
  "\xed\x8c\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ed8d[] = {
  "\xed\x8d\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8e\x93"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ed8e[] = {
  "\xed\x8e\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ed8f[] = {
  "\xed\x8f\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\x83"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ed90[] = {
  "\xed\x90\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ed91[] = {
  "\xed\x91\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x91\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x92\x8f"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ed92[] = {
  "\xed\x92\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\x87"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ed93[] = {
  "\xed\x93\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ed94[] = {
  "\xed\x94\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x95\x93"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ed95[] = {
  "\xed\x95\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ed96[] = {
  "\xed\x96\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\x83"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ed97[] = {
  "\xed\x97\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\xbb"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ed98[] = {
  "\xed\x98\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x98\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x99\x8f"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ed99[] = {
  "\xed\x99\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\x87"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ed9a[] = {
  "\xed\x9a\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\xbf"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ed9b[] = {
  "\xed\x9b\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x9c\x93"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ed9c[] = {
  "\xed\x9c\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\x8b"
};

static const char *grn_nfkc50_compose_prefix_e186be_table_ed9d[] = {
  "\xed\x9d\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9e\x83"
};

static inline const char *
grn_nfkc50_compose_prefix_e186be(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xea :
      switch (utf8[1]) {
      case 0xb0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186be_table_eab0[utf8[2] - 0x80];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186be_table_eab1[utf8[2] - 0x94];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186be_table_eab2[utf8[2] - 0x8c];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186be_table_eab3[utf8[2] - 0x84];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186be_table_eab4[utf8[2] - 0x98];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186be_table_eab5[utf8[2] - 0x90];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186be_table_eab6[utf8[2] - 0x88];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186be_table_eab7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186be_table_eab8[utf8[2] - 0x94];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186be_table_eab9[utf8[2] - 0x8c];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186be_table_eaba[utf8[2] - 0x84];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186be_table_eabb[utf8[2] - 0x98];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186be_table_eabc[utf8[2] - 0x90];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186be_table_eabd[utf8[2] - 0x88];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186be_table_eabe[utf8[2] - 0x80];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186be_table_eabf[utf8[2] - 0x94];
        }
        break;
      default :
        break;
      }
      break;
    case 0xeb :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186be_table_eb80[utf8[2] - 0x8c];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186be_table_eb81[utf8[2] - 0x84];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186be_table_eb82[utf8[2] - 0x98];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186be_table_eb83[utf8[2] - 0x90];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186be_table_eb84[utf8[2] - 0x88];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186be_table_eb85[utf8[2] - 0x80];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186be_table_eb86[utf8[2] - 0x94];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186be_table_eb87[utf8[2] - 0x8c];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186be_table_eb88[utf8[2] - 0x84];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186be_table_eb89[utf8[2] - 0x98];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186be_table_eb8a[utf8[2] - 0x90];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186be_table_eb8b[utf8[2] - 0x88];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186be_table_eb8c[utf8[2] - 0x80];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186be_table_eb8d[utf8[2] - 0x94];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186be_table_eb8e[utf8[2] - 0x8c];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186be_table_eb8f[utf8[2] - 0x84];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186be_table_eb90[utf8[2] - 0x98];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186be_table_eb91[utf8[2] - 0x90];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186be_table_eb92[utf8[2] - 0x88];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186be_table_eb93[utf8[2] - 0x80];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186be_table_eb94[utf8[2] - 0x94];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186be_table_eb95[utf8[2] - 0x8c];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186be_table_eb96[utf8[2] - 0x84];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186be_table_eb97[utf8[2] - 0x98];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186be_table_eb98[utf8[2] - 0x90];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186be_table_eb99[utf8[2] - 0x88];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186be_table_eb9a[utf8[2] - 0x80];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186be_table_eb9b[utf8[2] - 0x94];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186be_table_eb9c[utf8[2] - 0x8c];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186be_table_eb9d[utf8[2] - 0x84];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186be_table_eb9e[utf8[2] - 0x98];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186be_table_eb9f[utf8[2] - 0x90];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186be_table_eba0[utf8[2] - 0x88];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186be_table_eba1[utf8[2] - 0x80];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186be_table_eba2[utf8[2] - 0x94];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186be_table_eba3[utf8[2] - 0x8c];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186be_table_eba4[utf8[2] - 0x84];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186be_table_eba5[utf8[2] - 0x98];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186be_table_eba6[utf8[2] - 0x90];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186be_table_eba7[utf8[2] - 0x88];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186be_table_eba8[utf8[2] - 0x80];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186be_table_eba9[utf8[2] - 0x94];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186be_table_ebaa[utf8[2] - 0x8c];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186be_table_ebab[utf8[2] - 0x84];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186be_table_ebac[utf8[2] - 0x98];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186be_table_ebad[utf8[2] - 0x90];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186be_table_ebae[utf8[2] - 0x88];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186be_table_ebaf[utf8[2] - 0x80];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186be_table_ebb0[utf8[2] - 0x94];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186be_table_ebb1[utf8[2] - 0x8c];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186be_table_ebb2[utf8[2] - 0x84];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186be_table_ebb3[utf8[2] - 0x98];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186be_table_ebb4[utf8[2] - 0x90];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186be_table_ebb5[utf8[2] - 0x88];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186be_table_ebb6[utf8[2] - 0x80];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186be_table_ebb7[utf8[2] - 0x94];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186be_table_ebb8[utf8[2] - 0x8c];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186be_table_ebb9[utf8[2] - 0x84];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186be_table_ebba[utf8[2] - 0x98];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186be_table_ebbb[utf8[2] - 0x90];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186be_table_ebbc[utf8[2] - 0x88];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186be_table_ebbd[utf8[2] - 0x80];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186be_table_ebbe[utf8[2] - 0x94];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186be_table_ebbf[utf8[2] - 0x8c];
        }
        break;
      default :
        break;
      }
      break;
    case 0xec :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186be_table_ec80[utf8[2] - 0x84];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186be_table_ec81[utf8[2] - 0x98];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186be_table_ec82[utf8[2] - 0x90];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186be_table_ec83[utf8[2] - 0x88];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186be_table_ec84[utf8[2] - 0x80];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186be_table_ec85[utf8[2] - 0x94];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186be_table_ec86[utf8[2] - 0x8c];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186be_table_ec87[utf8[2] - 0x84];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186be_table_ec88[utf8[2] - 0x98];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186be_table_ec89[utf8[2] - 0x90];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186be_table_ec8a[utf8[2] - 0x88];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186be_table_ec8b[utf8[2] - 0x80];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186be_table_ec8c[utf8[2] - 0x94];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186be_table_ec8d[utf8[2] - 0x8c];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186be_table_ec8e[utf8[2] - 0x84];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186be_table_ec8f[utf8[2] - 0x98];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186be_table_ec90[utf8[2] - 0x90];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186be_table_ec91[utf8[2] - 0x88];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186be_table_ec92[utf8[2] - 0x80];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186be_table_ec93[utf8[2] - 0x94];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186be_table_ec94[utf8[2] - 0x8c];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186be_table_ec95[utf8[2] - 0x84];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186be_table_ec96[utf8[2] - 0x98];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186be_table_ec97[utf8[2] - 0x90];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186be_table_ec98[utf8[2] - 0x88];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186be_table_ec99[utf8[2] - 0x80];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186be_table_ec9a[utf8[2] - 0x94];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186be_table_ec9b[utf8[2] - 0x8c];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186be_table_ec9c[utf8[2] - 0x84];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186be_table_ec9d[utf8[2] - 0x98];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186be_table_ec9e[utf8[2] - 0x90];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186be_table_ec9f[utf8[2] - 0x88];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186be_table_eca0[utf8[2] - 0x80];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186be_table_eca1[utf8[2] - 0x94];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186be_table_eca2[utf8[2] - 0x8c];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186be_table_eca3[utf8[2] - 0x84];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186be_table_eca4[utf8[2] - 0x98];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186be_table_eca5[utf8[2] - 0x90];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186be_table_eca6[utf8[2] - 0x88];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186be_table_eca7[utf8[2] - 0x80];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186be_table_eca8[utf8[2] - 0x94];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186be_table_eca9[utf8[2] - 0x8c];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186be_table_ecaa[utf8[2] - 0x84];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186be_table_ecab[utf8[2] - 0x98];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186be_table_ecac[utf8[2] - 0x90];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186be_table_ecad[utf8[2] - 0x88];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186be_table_ecae[utf8[2] - 0x80];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186be_table_ecaf[utf8[2] - 0x94];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186be_table_ecb0[utf8[2] - 0x8c];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186be_table_ecb1[utf8[2] - 0x84];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186be_table_ecb2[utf8[2] - 0x98];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186be_table_ecb3[utf8[2] - 0x90];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186be_table_ecb4[utf8[2] - 0x88];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186be_table_ecb5[utf8[2] - 0x80];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186be_table_ecb6[utf8[2] - 0x94];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186be_table_ecb7[utf8[2] - 0x8c];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186be_table_ecb8[utf8[2] - 0x84];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186be_table_ecb9[utf8[2] - 0x98];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186be_table_ecba[utf8[2] - 0x90];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186be_table_ecbb[utf8[2] - 0x88];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186be_table_ecbc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186be_table_ecbd[utf8[2] - 0x94];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186be_table_ecbe[utf8[2] - 0x8c];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186be_table_ecbf[utf8[2] - 0x84];
        }
        break;
      default :
        break;
      }
      break;
    case 0xed :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186be_table_ed80[utf8[2] - 0x98];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186be_table_ed81[utf8[2] - 0x90];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186be_table_ed82[utf8[2] - 0x88];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186be_table_ed83[utf8[2] - 0x80];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186be_table_ed84[utf8[2] - 0x94];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186be_table_ed85[utf8[2] - 0x8c];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186be_table_ed86[utf8[2] - 0x84];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186be_table_ed87[utf8[2] - 0x98];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186be_table_ed88[utf8[2] - 0x90];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186be_table_ed89[utf8[2] - 0x88];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186be_table_ed8a[utf8[2] - 0x80];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186be_table_ed8b[utf8[2] - 0x94];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186be_table_ed8c[utf8[2] - 0x8c];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186be_table_ed8d[utf8[2] - 0x84];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186be_table_ed8e[utf8[2] - 0x98];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186be_table_ed8f[utf8[2] - 0x90];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186be_table_ed90[utf8[2] - 0x88];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186be_table_ed91[utf8[2] - 0x80];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186be_table_ed92[utf8[2] - 0x94];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186be_table_ed93[utf8[2] - 0x8c];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186be_table_ed94[utf8[2] - 0x84];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186be_table_ed95[utf8[2] - 0x98];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186be_table_ed96[utf8[2] - 0x90];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186be_table_ed97[utf8[2] - 0x88];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186be_table_ed98[utf8[2] - 0x80];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186be_table_ed99[utf8[2] - 0x94];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186be_table_ed9a[utf8[2] - 0x8c];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186be_table_ed9b[utf8[2] - 0x84];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186be_table_ed9c[utf8[2] - 0x98];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186be_table_ed9d[utf8[2] - 0x90];
        }
        break;
      case 0x9e :
        if (utf8[2] == 0x88) {
          return "\xed\x9e\x9f";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_e186bf_table_eab0[] = {
  "\xea\xb0\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb0\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb1\x90"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eab1[] = {
  "\xea\xb1\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\x88"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eab2[] = {
  "\xea\xb2\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\x80"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eab3[] = {
  "\xea\xb3\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\xb8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb4\x94"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eab4[] = {
  "\xea\xb4\xb0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eab5[] = {
  "\xea\xb5\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\x84"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eab6[] = {
  "\xea\xb6\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eab7[] = {
  "\xea\xb7\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb7\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb8\x90"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eab8[] = {
  "\xea\xb8\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\x88"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eab9[] = {
  "\xea\xb9\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\x80"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eaba[] = {
  "\xea\xba\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\xb8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbb\x94"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eabb[] = {
  "\xea\xbb\xb0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eabc[] = {
  "\xea\xbc\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\x84"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eabd[] = {
  "\xea\xbd\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eabe[] = {
  "\xea\xbe\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbe\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbf\x90"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eabf[] = {
  "\xea\xbf\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\x88"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eb80[] = {
  "\xeb\x80\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\x80"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eb81[] = {
  "\xeb\x81\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\xb8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x82\x94"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eb82[] = {
  "\xeb\x82\xb0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eb83[] = {
  "\xeb\x83\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\x84"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eb84[] = {
  "\xeb\x84\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eb85[] = {
  "\xeb\x85\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x85\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x86\x90"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eb86[] = {
  "\xeb\x86\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\x88"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eb87[] = {
  "\xeb\x87\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\x80"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eb88[] = {
  "\xeb\x88\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\xb8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x89\x94"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eb89[] = {
  "\xeb\x89\xb0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eb8a[] = {
  "\xeb\x8a\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\x84"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eb8b[] = {
  "\xeb\x8b\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eb8c[] = {
  "\xeb\x8c\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8c\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8d\x90"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eb8d[] = {
  "\xeb\x8d\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\x88"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eb8e[] = {
  "\xeb\x8e\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\x80"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eb8f[] = {
  "\xeb\x8f\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\xb8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x90\x94"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eb90[] = {
  "\xeb\x90\xb0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eb91[] = {
  "\xeb\x91\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\x84"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eb92[] = {
  "\xeb\x92\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eb93[] = {
  "\xeb\x93\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x93\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x94\x90"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eb94[] = {
  "\xeb\x94\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\x88"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eb95[] = {
  "\xeb\x95\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\x80"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eb96[] = {
  "\xeb\x96\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\xb8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x97\x94"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eb97[] = {
  "\xeb\x97\xb0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eb98[] = {
  "\xeb\x98\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\x84"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eb99[] = {
  "\xeb\x99\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eb9a[] = {
  "\xeb\x9a\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9a\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9b\x90"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eb9b[] = {
  "\xeb\x9b\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\x88"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eb9c[] = {
  "\xeb\x9c\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\x80"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eb9d[] = {
  "\xeb\x9d\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\xb8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9e\x94"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eb9e[] = {
  "\xeb\x9e\xb0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eb9f[] = {
  "\xeb\x9f\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\x84"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eba0[] = {
  "\xeb\xa0\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eba1[] = {
  "\xeb\xa1\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa1\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa2\x90"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eba2[] = {
  "\xeb\xa2\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\x88"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eba3[] = {
  "\xeb\xa3\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\x80"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eba4[] = {
  "\xeb\xa4\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\xb8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa5\x94"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eba5[] = {
  "\xeb\xa5\xb0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eba6[] = {
  "\xeb\xa6\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\x84"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eba7[] = {
  "\xeb\xa7\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eba8[] = {
  "\xeb\xa8\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa8\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa9\x90"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eba9[] = {
  "\xeb\xa9\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\x88"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ebaa[] = {
  "\xeb\xaa\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\x80"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ebab[] = {
  "\xeb\xab\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\xb8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xac\x94"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ebac[] = {
  "\xeb\xac\xb0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ebad[] = {
  "\xeb\xad\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\x84"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ebae[] = {
  "\xeb\xae\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ebaf[] = {
  "\xeb\xaf\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaf\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb0\x90"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ebb0[] = {
  "\xeb\xb0\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\x88"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ebb1[] = {
  "\xeb\xb1\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\x80"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ebb2[] = {
  "\xeb\xb2\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\xb8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb3\x94"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ebb3[] = {
  "\xeb\xb3\xb0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ebb4[] = {
  "\xeb\xb4\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\x84"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ebb5[] = {
  "\xeb\xb5\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ebb6[] = {
  "\xeb\xb6\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb6\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb7\x90"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ebb7[] = {
  "\xeb\xb7\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\x88"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ebb8[] = {
  "\xeb\xb8\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\x80"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ebb9[] = {
  "\xeb\xb9\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\xb8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xba\x94"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ebba[] = {
  "\xeb\xba\xb0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ebbb[] = {
  "\xeb\xbb\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\x84"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ebbc[] = {
  "\xeb\xbc\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ebbd[] = {
  "\xeb\xbd\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbd\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xbe\x90"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ebbe[] = {
  "\xeb\xbe\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\x88"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ebbf[] = {
  "\xeb\xbf\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\x80"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ec80[] = {
  "\xec\x80\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\xb8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x81\x94"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ec81[] = {
  "\xec\x81\xb0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ec82[] = {
  "\xec\x82\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\x84"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ec83[] = {
  "\xec\x83\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ec84[] = {
  "\xec\x84\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x84\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x85\x90"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ec85[] = {
  "\xec\x85\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\x88"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ec86[] = {
  "\xec\x86\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\x80"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ec87[] = {
  "\xec\x87\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\xb8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x88\x94"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ec88[] = {
  "\xec\x88\xb0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ec89[] = {
  "\xec\x89\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\x84"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ec8a[] = {
  "\xec\x8a\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ec8b[] = {
  "\xec\x8b\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8b\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8c\x90"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ec8c[] = {
  "\xec\x8c\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\x88"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ec8d[] = {
  "\xec\x8d\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\x80"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ec8e[] = {
  "\xec\x8e\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\xb8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8f\x94"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ec8f[] = {
  "\xec\x8f\xb0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ec90[] = {
  "\xec\x90\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\x84"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ec91[] = {
  "\xec\x91\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ec92[] = {
  "\xec\x92\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x92\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x93\x90"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ec93[] = {
  "\xec\x93\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\x88"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ec94[] = {
  "\xec\x94\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\x80"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ec95[] = {
  "\xec\x95\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\xb8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x96\x94"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ec96[] = {
  "\xec\x96\xb0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ec97[] = {
  "\xec\x97\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\x84"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ec98[] = {
  "\xec\x98\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ec99[] = {
  "\xec\x99\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x99\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9a\x90"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ec9a[] = {
  "\xec\x9a\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\x88"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ec9b[] = {
  "\xec\x9b\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\x80"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ec9c[] = {
  "\xec\x9c\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\xb8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9d\x94"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ec9d[] = {
  "\xec\x9d\xb0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ec9e[] = {
  "\xec\x9e\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\x84"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ec9f[] = {
  "\xec\x9f\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eca0[] = {
  "\xec\xa0\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa0\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa1\x90"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eca1[] = {
  "\xec\xa1\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\x88"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eca2[] = {
  "\xec\xa2\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\x80"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eca3[] = {
  "\xec\xa3\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\xb8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa4\x94"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eca4[] = {
  "\xec\xa4\xb0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eca5[] = {
  "\xec\xa5\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\x84"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eca6[] = {
  "\xec\xa6\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eca7[] = {
  "\xec\xa7\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa7\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa8\x90"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eca8[] = {
  "\xec\xa8\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\x88"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_eca9[] = {
  "\xec\xa9\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\x80"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ecaa[] = {
  "\xec\xaa\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\xb8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xab\x94"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ecab[] = {
  "\xec\xab\xb0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ecac[] = {
  "\xec\xac\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\x84"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ecad[] = {
  "\xec\xad\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ecae[] = {
  "\xec\xae\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xae\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xaf\x90"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ecaf[] = {
  "\xec\xaf\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\x88"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ecb0[] = {
  "\xec\xb0\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\x80"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ecb1[] = {
  "\xec\xb1\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\xb8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb2\x94"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ecb2[] = {
  "\xec\xb2\xb0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ecb3[] = {
  "\xec\xb3\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\x84"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ecb4[] = {
  "\xec\xb4\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ecb5[] = {
  "\xec\xb5\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb5\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb6\x90"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ecb6[] = {
  "\xec\xb6\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\x88"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ecb7[] = {
  "\xec\xb7\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\x80"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ecb8[] = {
  "\xec\xb8\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\xb8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb9\x94"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ecb9[] = {
  "\xec\xb9\xb0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ecba[] = {
  "\xec\xba\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\x84"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ecbb[] = {
  "\xec\xbb\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ecbc[] = {
  "\xec\xbc\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbc\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbd\x90"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ecbd[] = {
  "\xec\xbd\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\x88"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ecbe[] = {
  "\xec\xbe\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\x80"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ecbf[] = {
  "\xec\xbf\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\xb8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x80\x94"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ed80[] = {
  "\xed\x80\xb0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ed81[] = {
  "\xed\x81\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\x84"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ed82[] = {
  "\xed\x82\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ed83[] = {
  "\xed\x83\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x83\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x84\x90"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ed84[] = {
  "\xed\x84\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\x88"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ed85[] = {
  "\xed\x85\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\x80"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ed86[] = {
  "\xed\x86\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\xb8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x87\x94"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ed87[] = {
  "\xed\x87\xb0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ed88[] = {
  "\xed\x88\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\x84"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ed89[] = {
  "\xed\x89\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ed8a[] = {
  "\xed\x8a\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8a\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8b\x90"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ed8b[] = {
  "\xed\x8b\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\x88"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ed8c[] = {
  "\xed\x8c\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\x80"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ed8d[] = {
  "\xed\x8d\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\xb8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8e\x94"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ed8e[] = {
  "\xed\x8e\xb0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ed8f[] = {
  "\xed\x8f\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\x84"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ed90[] = {
  "\xed\x90\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ed91[] = {
  "\xed\x91\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x91\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x92\x90"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ed92[] = {
  "\xed\x92\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\x88"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ed93[] = {
  "\xed\x93\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\x80"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ed94[] = {
  "\xed\x94\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\xb8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x95\x94"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ed95[] = {
  "\xed\x95\xb0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ed96[] = {
  "\xed\x96\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\x84"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ed97[] = {
  "\xed\x97\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\xbc"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ed98[] = {
  "\xed\x98\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x98\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x99\x90"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ed99[] = {
  "\xed\x99\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\x88"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ed9a[] = {
  "\xed\x9a\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\x80"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ed9b[] = {
  "\xed\x9b\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\xb8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x9c\x94"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ed9c[] = {
  "\xed\x9c\xb0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\x8c"
};

static const char *grn_nfkc50_compose_prefix_e186bf_table_ed9d[] = {
  "\xed\x9d\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9e\x84"
};

static inline const char *
grn_nfkc50_compose_prefix_e186bf(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xea :
      switch (utf8[1]) {
      case 0xb0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bf_table_eab0[utf8[2] - 0x80];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bf_table_eab1[utf8[2] - 0x94];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bf_table_eab2[utf8[2] - 0x8c];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bf_table_eab3[utf8[2] - 0x84];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bf_table_eab4[utf8[2] - 0x98];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bf_table_eab5[utf8[2] - 0x90];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bf_table_eab6[utf8[2] - 0x88];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bf_table_eab7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bf_table_eab8[utf8[2] - 0x94];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bf_table_eab9[utf8[2] - 0x8c];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bf_table_eaba[utf8[2] - 0x84];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bf_table_eabb[utf8[2] - 0x98];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bf_table_eabc[utf8[2] - 0x90];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bf_table_eabd[utf8[2] - 0x88];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bf_table_eabe[utf8[2] - 0x80];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bf_table_eabf[utf8[2] - 0x94];
        }
        break;
      default :
        break;
      }
      break;
    case 0xeb :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bf_table_eb80[utf8[2] - 0x8c];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bf_table_eb81[utf8[2] - 0x84];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bf_table_eb82[utf8[2] - 0x98];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bf_table_eb83[utf8[2] - 0x90];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bf_table_eb84[utf8[2] - 0x88];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bf_table_eb85[utf8[2] - 0x80];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bf_table_eb86[utf8[2] - 0x94];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bf_table_eb87[utf8[2] - 0x8c];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bf_table_eb88[utf8[2] - 0x84];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bf_table_eb89[utf8[2] - 0x98];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bf_table_eb8a[utf8[2] - 0x90];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bf_table_eb8b[utf8[2] - 0x88];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bf_table_eb8c[utf8[2] - 0x80];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bf_table_eb8d[utf8[2] - 0x94];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bf_table_eb8e[utf8[2] - 0x8c];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bf_table_eb8f[utf8[2] - 0x84];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bf_table_eb90[utf8[2] - 0x98];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bf_table_eb91[utf8[2] - 0x90];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bf_table_eb92[utf8[2] - 0x88];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bf_table_eb93[utf8[2] - 0x80];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bf_table_eb94[utf8[2] - 0x94];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bf_table_eb95[utf8[2] - 0x8c];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bf_table_eb96[utf8[2] - 0x84];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bf_table_eb97[utf8[2] - 0x98];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bf_table_eb98[utf8[2] - 0x90];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bf_table_eb99[utf8[2] - 0x88];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bf_table_eb9a[utf8[2] - 0x80];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bf_table_eb9b[utf8[2] - 0x94];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bf_table_eb9c[utf8[2] - 0x8c];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bf_table_eb9d[utf8[2] - 0x84];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bf_table_eb9e[utf8[2] - 0x98];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bf_table_eb9f[utf8[2] - 0x90];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bf_table_eba0[utf8[2] - 0x88];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bf_table_eba1[utf8[2] - 0x80];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bf_table_eba2[utf8[2] - 0x94];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bf_table_eba3[utf8[2] - 0x8c];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bf_table_eba4[utf8[2] - 0x84];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bf_table_eba5[utf8[2] - 0x98];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bf_table_eba6[utf8[2] - 0x90];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bf_table_eba7[utf8[2] - 0x88];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bf_table_eba8[utf8[2] - 0x80];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bf_table_eba9[utf8[2] - 0x94];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bf_table_ebaa[utf8[2] - 0x8c];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bf_table_ebab[utf8[2] - 0x84];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bf_table_ebac[utf8[2] - 0x98];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bf_table_ebad[utf8[2] - 0x90];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bf_table_ebae[utf8[2] - 0x88];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bf_table_ebaf[utf8[2] - 0x80];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bf_table_ebb0[utf8[2] - 0x94];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bf_table_ebb1[utf8[2] - 0x8c];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bf_table_ebb2[utf8[2] - 0x84];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bf_table_ebb3[utf8[2] - 0x98];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bf_table_ebb4[utf8[2] - 0x90];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bf_table_ebb5[utf8[2] - 0x88];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bf_table_ebb6[utf8[2] - 0x80];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bf_table_ebb7[utf8[2] - 0x94];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bf_table_ebb8[utf8[2] - 0x8c];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bf_table_ebb9[utf8[2] - 0x84];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bf_table_ebba[utf8[2] - 0x98];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bf_table_ebbb[utf8[2] - 0x90];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bf_table_ebbc[utf8[2] - 0x88];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bf_table_ebbd[utf8[2] - 0x80];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bf_table_ebbe[utf8[2] - 0x94];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bf_table_ebbf[utf8[2] - 0x8c];
        }
        break;
      default :
        break;
      }
      break;
    case 0xec :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bf_table_ec80[utf8[2] - 0x84];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bf_table_ec81[utf8[2] - 0x98];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bf_table_ec82[utf8[2] - 0x90];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bf_table_ec83[utf8[2] - 0x88];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bf_table_ec84[utf8[2] - 0x80];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bf_table_ec85[utf8[2] - 0x94];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bf_table_ec86[utf8[2] - 0x8c];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bf_table_ec87[utf8[2] - 0x84];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bf_table_ec88[utf8[2] - 0x98];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bf_table_ec89[utf8[2] - 0x90];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bf_table_ec8a[utf8[2] - 0x88];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bf_table_ec8b[utf8[2] - 0x80];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bf_table_ec8c[utf8[2] - 0x94];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bf_table_ec8d[utf8[2] - 0x8c];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bf_table_ec8e[utf8[2] - 0x84];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bf_table_ec8f[utf8[2] - 0x98];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bf_table_ec90[utf8[2] - 0x90];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bf_table_ec91[utf8[2] - 0x88];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bf_table_ec92[utf8[2] - 0x80];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bf_table_ec93[utf8[2] - 0x94];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bf_table_ec94[utf8[2] - 0x8c];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bf_table_ec95[utf8[2] - 0x84];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bf_table_ec96[utf8[2] - 0x98];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bf_table_ec97[utf8[2] - 0x90];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bf_table_ec98[utf8[2] - 0x88];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bf_table_ec99[utf8[2] - 0x80];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bf_table_ec9a[utf8[2] - 0x94];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bf_table_ec9b[utf8[2] - 0x8c];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bf_table_ec9c[utf8[2] - 0x84];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bf_table_ec9d[utf8[2] - 0x98];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bf_table_ec9e[utf8[2] - 0x90];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bf_table_ec9f[utf8[2] - 0x88];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bf_table_eca0[utf8[2] - 0x80];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bf_table_eca1[utf8[2] - 0x94];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bf_table_eca2[utf8[2] - 0x8c];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bf_table_eca3[utf8[2] - 0x84];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bf_table_eca4[utf8[2] - 0x98];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bf_table_eca5[utf8[2] - 0x90];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bf_table_eca6[utf8[2] - 0x88];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bf_table_eca7[utf8[2] - 0x80];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bf_table_eca8[utf8[2] - 0x94];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bf_table_eca9[utf8[2] - 0x8c];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bf_table_ecaa[utf8[2] - 0x84];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bf_table_ecab[utf8[2] - 0x98];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bf_table_ecac[utf8[2] - 0x90];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bf_table_ecad[utf8[2] - 0x88];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bf_table_ecae[utf8[2] - 0x80];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bf_table_ecaf[utf8[2] - 0x94];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bf_table_ecb0[utf8[2] - 0x8c];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bf_table_ecb1[utf8[2] - 0x84];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bf_table_ecb2[utf8[2] - 0x98];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bf_table_ecb3[utf8[2] - 0x90];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bf_table_ecb4[utf8[2] - 0x88];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bf_table_ecb5[utf8[2] - 0x80];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bf_table_ecb6[utf8[2] - 0x94];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bf_table_ecb7[utf8[2] - 0x8c];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bf_table_ecb8[utf8[2] - 0x84];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bf_table_ecb9[utf8[2] - 0x98];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bf_table_ecba[utf8[2] - 0x90];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bf_table_ecbb[utf8[2] - 0x88];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bf_table_ecbc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bf_table_ecbd[utf8[2] - 0x94];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bf_table_ecbe[utf8[2] - 0x8c];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bf_table_ecbf[utf8[2] - 0x84];
        }
        break;
      default :
        break;
      }
      break;
    case 0xed :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bf_table_ed80[utf8[2] - 0x98];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bf_table_ed81[utf8[2] - 0x90];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bf_table_ed82[utf8[2] - 0x88];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bf_table_ed83[utf8[2] - 0x80];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bf_table_ed84[utf8[2] - 0x94];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bf_table_ed85[utf8[2] - 0x8c];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bf_table_ed86[utf8[2] - 0x84];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bf_table_ed87[utf8[2] - 0x98];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bf_table_ed88[utf8[2] - 0x90];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bf_table_ed89[utf8[2] - 0x88];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bf_table_ed8a[utf8[2] - 0x80];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bf_table_ed8b[utf8[2] - 0x94];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bf_table_ed8c[utf8[2] - 0x8c];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bf_table_ed8d[utf8[2] - 0x84];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bf_table_ed8e[utf8[2] - 0x98];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bf_table_ed8f[utf8[2] - 0x90];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bf_table_ed90[utf8[2] - 0x88];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bf_table_ed91[utf8[2] - 0x80];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bf_table_ed92[utf8[2] - 0x94];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bf_table_ed93[utf8[2] - 0x8c];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bf_table_ed94[utf8[2] - 0x84];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bf_table_ed95[utf8[2] - 0x98];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bf_table_ed96[utf8[2] - 0x90];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e186bf_table_ed97[utf8[2] - 0x88];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e186bf_table_ed98[utf8[2] - 0x80];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e186bf_table_ed99[utf8[2] - 0x94];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e186bf_table_ed9a[utf8[2] - 0x8c];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e186bf_table_ed9b[utf8[2] - 0x84];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e186bf_table_ed9c[utf8[2] - 0x98];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e186bf_table_ed9d[utf8[2] - 0x90];
        }
        break;
      case 0x9e :
        if (utf8[2] == 0x88) {
          return "\xed\x9e\xa0";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_e18780_table_eab0[] = {
  "\xea\xb0\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb0\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb1\x91"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eab1[] = {
  "\xea\xb1\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\x89"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eab2[] = {
  "\xea\xb2\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\x81"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eab3[] = {
  "\xea\xb3\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\xb9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb4\x95"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eab4[] = {
  "\xea\xb4\xb1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\x8d"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eab5[] = {
  "\xea\xb5\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\x85"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eab6[] = {
  "\xea\xb6\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\xbd"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eab7[] = {
  "\xea\xb7\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb7\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb8\x91"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eab8[] = {
  "\xea\xb8\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\x89"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eab9[] = {
  "\xea\xb9\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\x81"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eaba[] = {
  "\xea\xba\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\xb9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbb\x95"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eabb[] = {
  "\xea\xbb\xb1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\x8d"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eabc[] = {
  "\xea\xbc\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\x85"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eabd[] = {
  "\xea\xbd\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\xbd"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eabe[] = {
  "\xea\xbe\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbe\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbf\x91"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eabf[] = {
  "\xea\xbf\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\x89"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eb80[] = {
  "\xeb\x80\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\x81"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eb81[] = {
  "\xeb\x81\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\xb9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x82\x95"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eb82[] = {
  "\xeb\x82\xb1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\x8d"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eb83[] = {
  "\xeb\x83\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\x85"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eb84[] = {
  "\xeb\x84\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\xbd"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eb85[] = {
  "\xeb\x85\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x85\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x86\x91"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eb86[] = {
  "\xeb\x86\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\x89"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eb87[] = {
  "\xeb\x87\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\x81"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eb88[] = {
  "\xeb\x88\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\xb9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x89\x95"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eb89[] = {
  "\xeb\x89\xb1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\x8d"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eb8a[] = {
  "\xeb\x8a\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\x85"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eb8b[] = {
  "\xeb\x8b\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\xbd"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eb8c[] = {
  "\xeb\x8c\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8c\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8d\x91"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eb8d[] = {
  "\xeb\x8d\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\x89"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eb8e[] = {
  "\xeb\x8e\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\x81"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eb8f[] = {
  "\xeb\x8f\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\xb9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x90\x95"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eb90[] = {
  "\xeb\x90\xb1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\x8d"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eb91[] = {
  "\xeb\x91\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\x85"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eb92[] = {
  "\xeb\x92\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\xbd"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eb93[] = {
  "\xeb\x93\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x93\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x94\x91"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eb94[] = {
  "\xeb\x94\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\x89"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eb95[] = {
  "\xeb\x95\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\x81"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eb96[] = {
  "\xeb\x96\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\xb9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x97\x95"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eb97[] = {
  "\xeb\x97\xb1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\x8d"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eb98[] = {
  "\xeb\x98\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\x85"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eb99[] = {
  "\xeb\x99\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\xbd"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eb9a[] = {
  "\xeb\x9a\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9a\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9b\x91"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eb9b[] = {
  "\xeb\x9b\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\x89"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eb9c[] = {
  "\xeb\x9c\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\x81"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eb9d[] = {
  "\xeb\x9d\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\xb9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9e\x95"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eb9e[] = {
  "\xeb\x9e\xb1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\x8d"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eb9f[] = {
  "\xeb\x9f\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\x85"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eba0[] = {
  "\xeb\xa0\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\xbd"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eba1[] = {
  "\xeb\xa1\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa1\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa2\x91"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eba2[] = {
  "\xeb\xa2\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\x89"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eba3[] = {
  "\xeb\xa3\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\x81"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eba4[] = {
  "\xeb\xa4\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\xb9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa5\x95"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eba5[] = {
  "\xeb\xa5\xb1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\x8d"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eba6[] = {
  "\xeb\xa6\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\x85"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eba7[] = {
  "\xeb\xa7\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\xbd"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eba8[] = {
  "\xeb\xa8\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa8\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa9\x91"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eba9[] = {
  "\xeb\xa9\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\x89"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ebaa[] = {
  "\xeb\xaa\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\x81"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ebab[] = {
  "\xeb\xab\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\xb9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xac\x95"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ebac[] = {
  "\xeb\xac\xb1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\x8d"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ebad[] = {
  "\xeb\xad\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\x85"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ebae[] = {
  "\xeb\xae\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\xbd"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ebaf[] = {
  "\xeb\xaf\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaf\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb0\x91"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ebb0[] = {
  "\xeb\xb0\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\x89"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ebb1[] = {
  "\xeb\xb1\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\x81"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ebb2[] = {
  "\xeb\xb2\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\xb9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb3\x95"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ebb3[] = {
  "\xeb\xb3\xb1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\x8d"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ebb4[] = {
  "\xeb\xb4\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\x85"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ebb5[] = {
  "\xeb\xb5\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\xbd"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ebb6[] = {
  "\xeb\xb6\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb6\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb7\x91"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ebb7[] = {
  "\xeb\xb7\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\x89"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ebb8[] = {
  "\xeb\xb8\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\x81"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ebb9[] = {
  "\xeb\xb9\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\xb9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xba\x95"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ebba[] = {
  "\xeb\xba\xb1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\x8d"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ebbb[] = {
  "\xeb\xbb\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\x85"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ebbc[] = {
  "\xeb\xbc\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\xbd"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ebbd[] = {
  "\xeb\xbd\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbd\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xbe\x91"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ebbe[] = {
  "\xeb\xbe\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\x89"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ebbf[] = {
  "\xeb\xbf\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\x81"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ec80[] = {
  "\xec\x80\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\xb9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x81\x95"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ec81[] = {
  "\xec\x81\xb1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\x8d"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ec82[] = {
  "\xec\x82\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\x85"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ec83[] = {
  "\xec\x83\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\xbd"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ec84[] = {
  "\xec\x84\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x84\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x85\x91"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ec85[] = {
  "\xec\x85\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\x89"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ec86[] = {
  "\xec\x86\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\x81"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ec87[] = {
  "\xec\x87\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\xb9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x88\x95"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ec88[] = {
  "\xec\x88\xb1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\x8d"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ec89[] = {
  "\xec\x89\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\x85"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ec8a[] = {
  "\xec\x8a\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\xbd"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ec8b[] = {
  "\xec\x8b\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8b\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8c\x91"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ec8c[] = {
  "\xec\x8c\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\x89"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ec8d[] = {
  "\xec\x8d\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\x81"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ec8e[] = {
  "\xec\x8e\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\xb9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8f\x95"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ec8f[] = {
  "\xec\x8f\xb1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\x8d"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ec90[] = {
  "\xec\x90\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\x85"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ec91[] = {
  "\xec\x91\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\xbd"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ec92[] = {
  "\xec\x92\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x92\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x93\x91"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ec93[] = {
  "\xec\x93\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\x89"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ec94[] = {
  "\xec\x94\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\x81"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ec95[] = {
  "\xec\x95\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\xb9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x96\x95"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ec96[] = {
  "\xec\x96\xb1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\x8d"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ec97[] = {
  "\xec\x97\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\x85"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ec98[] = {
  "\xec\x98\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\xbd"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ec99[] = {
  "\xec\x99\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x99\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9a\x91"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ec9a[] = {
  "\xec\x9a\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\x89"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ec9b[] = {
  "\xec\x9b\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\x81"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ec9c[] = {
  "\xec\x9c\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\xb9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9d\x95"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ec9d[] = {
  "\xec\x9d\xb1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\x8d"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ec9e[] = {
  "\xec\x9e\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\x85"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ec9f[] = {
  "\xec\x9f\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\xbd"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eca0[] = {
  "\xec\xa0\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa0\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa1\x91"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eca1[] = {
  "\xec\xa1\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\x89"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eca2[] = {
  "\xec\xa2\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\x81"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eca3[] = {
  "\xec\xa3\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\xb9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa4\x95"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eca4[] = {
  "\xec\xa4\xb1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\x8d"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eca5[] = {
  "\xec\xa5\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\x85"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eca6[] = {
  "\xec\xa6\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\xbd"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eca7[] = {
  "\xec\xa7\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa7\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa8\x91"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eca8[] = {
  "\xec\xa8\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\x89"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_eca9[] = {
  "\xec\xa9\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\x81"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ecaa[] = {
  "\xec\xaa\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\xb9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xab\x95"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ecab[] = {
  "\xec\xab\xb1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\x8d"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ecac[] = {
  "\xec\xac\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\x85"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ecad[] = {
  "\xec\xad\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\xbd"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ecae[] = {
  "\xec\xae\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xae\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xaf\x91"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ecaf[] = {
  "\xec\xaf\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\x89"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ecb0[] = {
  "\xec\xb0\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\x81"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ecb1[] = {
  "\xec\xb1\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\xb9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb2\x95"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ecb2[] = {
  "\xec\xb2\xb1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\x8d"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ecb3[] = {
  "\xec\xb3\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\x85"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ecb4[] = {
  "\xec\xb4\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\xbd"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ecb5[] = {
  "\xec\xb5\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb5\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb6\x91"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ecb6[] = {
  "\xec\xb6\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\x89"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ecb7[] = {
  "\xec\xb7\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\x81"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ecb8[] = {
  "\xec\xb8\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\xb9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb9\x95"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ecb9[] = {
  "\xec\xb9\xb1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\x8d"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ecba[] = {
  "\xec\xba\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\x85"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ecbb[] = {
  "\xec\xbb\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\xbd"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ecbc[] = {
  "\xec\xbc\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbc\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbd\x91"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ecbd[] = {
  "\xec\xbd\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\x89"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ecbe[] = {
  "\xec\xbe\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\x81"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ecbf[] = {
  "\xec\xbf\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\xb9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x80\x95"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ed80[] = {
  "\xed\x80\xb1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\x8d"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ed81[] = {
  "\xed\x81\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\x85"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ed82[] = {
  "\xed\x82\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\xbd"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ed83[] = {
  "\xed\x83\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x83\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x84\x91"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ed84[] = {
  "\xed\x84\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\x89"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ed85[] = {
  "\xed\x85\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\x81"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ed86[] = {
  "\xed\x86\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\xb9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x87\x95"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ed87[] = {
  "\xed\x87\xb1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\x8d"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ed88[] = {
  "\xed\x88\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\x85"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ed89[] = {
  "\xed\x89\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\xbd"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ed8a[] = {
  "\xed\x8a\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8a\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8b\x91"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ed8b[] = {
  "\xed\x8b\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\x89"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ed8c[] = {
  "\xed\x8c\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\x81"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ed8d[] = {
  "\xed\x8d\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\xb9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8e\x95"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ed8e[] = {
  "\xed\x8e\xb1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\x8d"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ed8f[] = {
  "\xed\x8f\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\x85"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ed90[] = {
  "\xed\x90\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\xbd"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ed91[] = {
  "\xed\x91\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x91\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x92\x91"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ed92[] = {
  "\xed\x92\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\x89"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ed93[] = {
  "\xed\x93\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\x81"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ed94[] = {
  "\xed\x94\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\xb9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x95\x95"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ed95[] = {
  "\xed\x95\xb1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\x8d"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ed96[] = {
  "\xed\x96\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\x85"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ed97[] = {
  "\xed\x97\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\xbd"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ed98[] = {
  "\xed\x98\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x98\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x99\x91"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ed99[] = {
  "\xed\x99\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\x89"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ed9a[] = {
  "\xed\x9a\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\x81"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ed9b[] = {
  "\xed\x9b\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\xb9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x9c\x95"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ed9c[] = {
  "\xed\x9c\xb1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\x8d"
};

static const char *grn_nfkc50_compose_prefix_e18780_table_ed9d[] = {
  "\xed\x9d\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9e\x85"
};

static inline const char *
grn_nfkc50_compose_prefix_e18780(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xea :
      switch (utf8[1]) {
      case 0xb0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18780_table_eab0[utf8[2] - 0x80];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18780_table_eab1[utf8[2] - 0x94];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18780_table_eab2[utf8[2] - 0x8c];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18780_table_eab3[utf8[2] - 0x84];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18780_table_eab4[utf8[2] - 0x98];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18780_table_eab5[utf8[2] - 0x90];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18780_table_eab6[utf8[2] - 0x88];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18780_table_eab7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18780_table_eab8[utf8[2] - 0x94];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18780_table_eab9[utf8[2] - 0x8c];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18780_table_eaba[utf8[2] - 0x84];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18780_table_eabb[utf8[2] - 0x98];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18780_table_eabc[utf8[2] - 0x90];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18780_table_eabd[utf8[2] - 0x88];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18780_table_eabe[utf8[2] - 0x80];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18780_table_eabf[utf8[2] - 0x94];
        }
        break;
      default :
        break;
      }
      break;
    case 0xeb :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18780_table_eb80[utf8[2] - 0x8c];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18780_table_eb81[utf8[2] - 0x84];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18780_table_eb82[utf8[2] - 0x98];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18780_table_eb83[utf8[2] - 0x90];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18780_table_eb84[utf8[2] - 0x88];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18780_table_eb85[utf8[2] - 0x80];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18780_table_eb86[utf8[2] - 0x94];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18780_table_eb87[utf8[2] - 0x8c];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18780_table_eb88[utf8[2] - 0x84];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18780_table_eb89[utf8[2] - 0x98];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18780_table_eb8a[utf8[2] - 0x90];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18780_table_eb8b[utf8[2] - 0x88];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18780_table_eb8c[utf8[2] - 0x80];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18780_table_eb8d[utf8[2] - 0x94];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18780_table_eb8e[utf8[2] - 0x8c];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18780_table_eb8f[utf8[2] - 0x84];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18780_table_eb90[utf8[2] - 0x98];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18780_table_eb91[utf8[2] - 0x90];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18780_table_eb92[utf8[2] - 0x88];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18780_table_eb93[utf8[2] - 0x80];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18780_table_eb94[utf8[2] - 0x94];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18780_table_eb95[utf8[2] - 0x8c];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18780_table_eb96[utf8[2] - 0x84];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18780_table_eb97[utf8[2] - 0x98];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18780_table_eb98[utf8[2] - 0x90];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18780_table_eb99[utf8[2] - 0x88];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18780_table_eb9a[utf8[2] - 0x80];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18780_table_eb9b[utf8[2] - 0x94];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18780_table_eb9c[utf8[2] - 0x8c];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18780_table_eb9d[utf8[2] - 0x84];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18780_table_eb9e[utf8[2] - 0x98];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18780_table_eb9f[utf8[2] - 0x90];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18780_table_eba0[utf8[2] - 0x88];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18780_table_eba1[utf8[2] - 0x80];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18780_table_eba2[utf8[2] - 0x94];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18780_table_eba3[utf8[2] - 0x8c];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18780_table_eba4[utf8[2] - 0x84];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18780_table_eba5[utf8[2] - 0x98];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18780_table_eba6[utf8[2] - 0x90];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18780_table_eba7[utf8[2] - 0x88];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18780_table_eba8[utf8[2] - 0x80];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18780_table_eba9[utf8[2] - 0x94];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18780_table_ebaa[utf8[2] - 0x8c];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18780_table_ebab[utf8[2] - 0x84];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18780_table_ebac[utf8[2] - 0x98];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18780_table_ebad[utf8[2] - 0x90];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18780_table_ebae[utf8[2] - 0x88];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18780_table_ebaf[utf8[2] - 0x80];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18780_table_ebb0[utf8[2] - 0x94];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18780_table_ebb1[utf8[2] - 0x8c];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18780_table_ebb2[utf8[2] - 0x84];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18780_table_ebb3[utf8[2] - 0x98];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18780_table_ebb4[utf8[2] - 0x90];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18780_table_ebb5[utf8[2] - 0x88];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18780_table_ebb6[utf8[2] - 0x80];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18780_table_ebb7[utf8[2] - 0x94];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18780_table_ebb8[utf8[2] - 0x8c];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18780_table_ebb9[utf8[2] - 0x84];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18780_table_ebba[utf8[2] - 0x98];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18780_table_ebbb[utf8[2] - 0x90];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18780_table_ebbc[utf8[2] - 0x88];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18780_table_ebbd[utf8[2] - 0x80];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18780_table_ebbe[utf8[2] - 0x94];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18780_table_ebbf[utf8[2] - 0x8c];
        }
        break;
      default :
        break;
      }
      break;
    case 0xec :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18780_table_ec80[utf8[2] - 0x84];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18780_table_ec81[utf8[2] - 0x98];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18780_table_ec82[utf8[2] - 0x90];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18780_table_ec83[utf8[2] - 0x88];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18780_table_ec84[utf8[2] - 0x80];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18780_table_ec85[utf8[2] - 0x94];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18780_table_ec86[utf8[2] - 0x8c];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18780_table_ec87[utf8[2] - 0x84];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18780_table_ec88[utf8[2] - 0x98];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18780_table_ec89[utf8[2] - 0x90];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18780_table_ec8a[utf8[2] - 0x88];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18780_table_ec8b[utf8[2] - 0x80];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18780_table_ec8c[utf8[2] - 0x94];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18780_table_ec8d[utf8[2] - 0x8c];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18780_table_ec8e[utf8[2] - 0x84];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18780_table_ec8f[utf8[2] - 0x98];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18780_table_ec90[utf8[2] - 0x90];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18780_table_ec91[utf8[2] - 0x88];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18780_table_ec92[utf8[2] - 0x80];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18780_table_ec93[utf8[2] - 0x94];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18780_table_ec94[utf8[2] - 0x8c];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18780_table_ec95[utf8[2] - 0x84];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18780_table_ec96[utf8[2] - 0x98];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18780_table_ec97[utf8[2] - 0x90];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18780_table_ec98[utf8[2] - 0x88];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18780_table_ec99[utf8[2] - 0x80];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18780_table_ec9a[utf8[2] - 0x94];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18780_table_ec9b[utf8[2] - 0x8c];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18780_table_ec9c[utf8[2] - 0x84];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18780_table_ec9d[utf8[2] - 0x98];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18780_table_ec9e[utf8[2] - 0x90];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18780_table_ec9f[utf8[2] - 0x88];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18780_table_eca0[utf8[2] - 0x80];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18780_table_eca1[utf8[2] - 0x94];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18780_table_eca2[utf8[2] - 0x8c];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18780_table_eca3[utf8[2] - 0x84];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18780_table_eca4[utf8[2] - 0x98];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18780_table_eca5[utf8[2] - 0x90];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18780_table_eca6[utf8[2] - 0x88];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18780_table_eca7[utf8[2] - 0x80];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18780_table_eca8[utf8[2] - 0x94];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18780_table_eca9[utf8[2] - 0x8c];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18780_table_ecaa[utf8[2] - 0x84];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18780_table_ecab[utf8[2] - 0x98];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18780_table_ecac[utf8[2] - 0x90];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18780_table_ecad[utf8[2] - 0x88];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18780_table_ecae[utf8[2] - 0x80];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18780_table_ecaf[utf8[2] - 0x94];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18780_table_ecb0[utf8[2] - 0x8c];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18780_table_ecb1[utf8[2] - 0x84];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18780_table_ecb2[utf8[2] - 0x98];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18780_table_ecb3[utf8[2] - 0x90];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18780_table_ecb4[utf8[2] - 0x88];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18780_table_ecb5[utf8[2] - 0x80];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18780_table_ecb6[utf8[2] - 0x94];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18780_table_ecb7[utf8[2] - 0x8c];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18780_table_ecb8[utf8[2] - 0x84];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18780_table_ecb9[utf8[2] - 0x98];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18780_table_ecba[utf8[2] - 0x90];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18780_table_ecbb[utf8[2] - 0x88];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18780_table_ecbc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18780_table_ecbd[utf8[2] - 0x94];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18780_table_ecbe[utf8[2] - 0x8c];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18780_table_ecbf[utf8[2] - 0x84];
        }
        break;
      default :
        break;
      }
      break;
    case 0xed :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18780_table_ed80[utf8[2] - 0x98];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18780_table_ed81[utf8[2] - 0x90];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18780_table_ed82[utf8[2] - 0x88];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18780_table_ed83[utf8[2] - 0x80];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18780_table_ed84[utf8[2] - 0x94];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18780_table_ed85[utf8[2] - 0x8c];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18780_table_ed86[utf8[2] - 0x84];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18780_table_ed87[utf8[2] - 0x98];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18780_table_ed88[utf8[2] - 0x90];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18780_table_ed89[utf8[2] - 0x88];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18780_table_ed8a[utf8[2] - 0x80];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18780_table_ed8b[utf8[2] - 0x94];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18780_table_ed8c[utf8[2] - 0x8c];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18780_table_ed8d[utf8[2] - 0x84];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18780_table_ed8e[utf8[2] - 0x98];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18780_table_ed8f[utf8[2] - 0x90];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18780_table_ed90[utf8[2] - 0x88];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18780_table_ed91[utf8[2] - 0x80];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18780_table_ed92[utf8[2] - 0x94];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18780_table_ed93[utf8[2] - 0x8c];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18780_table_ed94[utf8[2] - 0x84];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18780_table_ed95[utf8[2] - 0x98];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18780_table_ed96[utf8[2] - 0x90];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18780_table_ed97[utf8[2] - 0x88];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18780_table_ed98[utf8[2] - 0x80];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18780_table_ed99[utf8[2] - 0x94];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18780_table_ed9a[utf8[2] - 0x8c];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18780_table_ed9b[utf8[2] - 0x84];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18780_table_ed9c[utf8[2] - 0x98];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18780_table_ed9d[utf8[2] - 0x90];
        }
        break;
      case 0x9e :
        if (utf8[2] == 0x88) {
          return "\xed\x9e\xa1";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_e18781_table_eab0[] = {
  "\xea\xb0\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb0\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb1\x92"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eab1[] = {
  "\xea\xb1\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\x8a"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eab2[] = {
  "\xea\xb2\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\x82"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eab3[] = {
  "\xea\xb3\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\xba", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb4\x96"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eab4[] = {
  "\xea\xb4\xb2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\x8e"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eab5[] = {
  "\xea\xb5\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\x86"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eab6[] = {
  "\xea\xb6\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\xbe"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eab7[] = {
  "\xea\xb7\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb7\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb8\x92"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eab8[] = {
  "\xea\xb8\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\x8a"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eab9[] = {
  "\xea\xb9\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\x82"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eaba[] = {
  "\xea\xba\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\xba", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbb\x96"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eabb[] = {
  "\xea\xbb\xb2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\x8e"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eabc[] = {
  "\xea\xbc\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\x86"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eabd[] = {
  "\xea\xbd\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\xbe"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eabe[] = {
  "\xea\xbe\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbe\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbf\x92"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eabf[] = {
  "\xea\xbf\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\x8a"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eb80[] = {
  "\xeb\x80\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\x82"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eb81[] = {
  "\xeb\x81\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\xba", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x82\x96"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eb82[] = {
  "\xeb\x82\xb2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\x8e"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eb83[] = {
  "\xeb\x83\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\x86"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eb84[] = {
  "\xeb\x84\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\xbe"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eb85[] = {
  "\xeb\x85\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x85\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x86\x92"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eb86[] = {
  "\xeb\x86\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\x8a"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eb87[] = {
  "\xeb\x87\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\x82"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eb88[] = {
  "\xeb\x88\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\xba", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x89\x96"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eb89[] = {
  "\xeb\x89\xb2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\x8e"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eb8a[] = {
  "\xeb\x8a\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\x86"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eb8b[] = {
  "\xeb\x8b\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\xbe"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eb8c[] = {
  "\xeb\x8c\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8c\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8d\x92"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eb8d[] = {
  "\xeb\x8d\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\x8a"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eb8e[] = {
  "\xeb\x8e\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\x82"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eb8f[] = {
  "\xeb\x8f\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\xba", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x90\x96"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eb90[] = {
  "\xeb\x90\xb2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\x8e"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eb91[] = {
  "\xeb\x91\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\x86"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eb92[] = {
  "\xeb\x92\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\xbe"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eb93[] = {
  "\xeb\x93\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x93\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x94\x92"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eb94[] = {
  "\xeb\x94\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\x8a"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eb95[] = {
  "\xeb\x95\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\x82"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eb96[] = {
  "\xeb\x96\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\xba", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x97\x96"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eb97[] = {
  "\xeb\x97\xb2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\x8e"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eb98[] = {
  "\xeb\x98\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\x86"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eb99[] = {
  "\xeb\x99\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\xbe"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eb9a[] = {
  "\xeb\x9a\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9a\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9b\x92"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eb9b[] = {
  "\xeb\x9b\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\x8a"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eb9c[] = {
  "\xeb\x9c\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\x82"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eb9d[] = {
  "\xeb\x9d\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\xba", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9e\x96"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eb9e[] = {
  "\xeb\x9e\xb2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\x8e"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eb9f[] = {
  "\xeb\x9f\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\x86"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eba0[] = {
  "\xeb\xa0\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\xbe"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eba1[] = {
  "\xeb\xa1\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa1\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa2\x92"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eba2[] = {
  "\xeb\xa2\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\x8a"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eba3[] = {
  "\xeb\xa3\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\x82"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eba4[] = {
  "\xeb\xa4\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\xba", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa5\x96"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eba5[] = {
  "\xeb\xa5\xb2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\x8e"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eba6[] = {
  "\xeb\xa6\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\x86"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eba7[] = {
  "\xeb\xa7\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\xbe"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eba8[] = {
  "\xeb\xa8\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa8\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa9\x92"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eba9[] = {
  "\xeb\xa9\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\x8a"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ebaa[] = {
  "\xeb\xaa\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\x82"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ebab[] = {
  "\xeb\xab\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\xba", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xac\x96"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ebac[] = {
  "\xeb\xac\xb2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\x8e"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ebad[] = {
  "\xeb\xad\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\x86"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ebae[] = {
  "\xeb\xae\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\xbe"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ebaf[] = {
  "\xeb\xaf\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaf\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb0\x92"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ebb0[] = {
  "\xeb\xb0\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\x8a"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ebb1[] = {
  "\xeb\xb1\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\x82"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ebb2[] = {
  "\xeb\xb2\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\xba", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb3\x96"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ebb3[] = {
  "\xeb\xb3\xb2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\x8e"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ebb4[] = {
  "\xeb\xb4\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\x86"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ebb5[] = {
  "\xeb\xb5\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\xbe"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ebb6[] = {
  "\xeb\xb6\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb6\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb7\x92"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ebb7[] = {
  "\xeb\xb7\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\x8a"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ebb8[] = {
  "\xeb\xb8\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\x82"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ebb9[] = {
  "\xeb\xb9\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\xba", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xba\x96"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ebba[] = {
  "\xeb\xba\xb2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\x8e"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ebbb[] = {
  "\xeb\xbb\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\x86"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ebbc[] = {
  "\xeb\xbc\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\xbe"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ebbd[] = {
  "\xeb\xbd\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbd\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xbe\x92"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ebbe[] = {
  "\xeb\xbe\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\x8a"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ebbf[] = {
  "\xeb\xbf\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\x82"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ec80[] = {
  "\xec\x80\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\xba", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x81\x96"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ec81[] = {
  "\xec\x81\xb2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\x8e"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ec82[] = {
  "\xec\x82\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\x86"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ec83[] = {
  "\xec\x83\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\xbe"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ec84[] = {
  "\xec\x84\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x84\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x85\x92"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ec85[] = {
  "\xec\x85\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\x8a"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ec86[] = {
  "\xec\x86\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\x82"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ec87[] = {
  "\xec\x87\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\xba", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x88\x96"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ec88[] = {
  "\xec\x88\xb2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\x8e"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ec89[] = {
  "\xec\x89\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\x86"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ec8a[] = {
  "\xec\x8a\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\xbe"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ec8b[] = {
  "\xec\x8b\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8b\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8c\x92"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ec8c[] = {
  "\xec\x8c\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\x8a"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ec8d[] = {
  "\xec\x8d\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\x82"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ec8e[] = {
  "\xec\x8e\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\xba", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8f\x96"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ec8f[] = {
  "\xec\x8f\xb2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\x8e"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ec90[] = {
  "\xec\x90\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\x86"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ec91[] = {
  "\xec\x91\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\xbe"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ec92[] = {
  "\xec\x92\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x92\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x93\x92"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ec93[] = {
  "\xec\x93\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\x8a"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ec94[] = {
  "\xec\x94\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\x82"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ec95[] = {
  "\xec\x95\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\xba", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x96\x96"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ec96[] = {
  "\xec\x96\xb2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\x8e"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ec97[] = {
  "\xec\x97\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\x86"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ec98[] = {
  "\xec\x98\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\xbe"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ec99[] = {
  "\xec\x99\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x99\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9a\x92"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ec9a[] = {
  "\xec\x9a\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\x8a"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ec9b[] = {
  "\xec\x9b\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\x82"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ec9c[] = {
  "\xec\x9c\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\xba", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9d\x96"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ec9d[] = {
  "\xec\x9d\xb2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\x8e"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ec9e[] = {
  "\xec\x9e\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\x86"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ec9f[] = {
  "\xec\x9f\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\xbe"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eca0[] = {
  "\xec\xa0\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa0\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa1\x92"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eca1[] = {
  "\xec\xa1\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\x8a"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eca2[] = {
  "\xec\xa2\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\x82"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eca3[] = {
  "\xec\xa3\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\xba", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa4\x96"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eca4[] = {
  "\xec\xa4\xb2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\x8e"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eca5[] = {
  "\xec\xa5\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\x86"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eca6[] = {
  "\xec\xa6\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\xbe"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eca7[] = {
  "\xec\xa7\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa7\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa8\x92"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eca8[] = {
  "\xec\xa8\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\x8a"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_eca9[] = {
  "\xec\xa9\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\x82"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ecaa[] = {
  "\xec\xaa\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\xba", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xab\x96"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ecab[] = {
  "\xec\xab\xb2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\x8e"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ecac[] = {
  "\xec\xac\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\x86"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ecad[] = {
  "\xec\xad\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\xbe"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ecae[] = {
  "\xec\xae\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xae\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xaf\x92"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ecaf[] = {
  "\xec\xaf\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\x8a"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ecb0[] = {
  "\xec\xb0\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\x82"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ecb1[] = {
  "\xec\xb1\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\xba", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb2\x96"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ecb2[] = {
  "\xec\xb2\xb2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\x8e"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ecb3[] = {
  "\xec\xb3\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\x86"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ecb4[] = {
  "\xec\xb4\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\xbe"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ecb5[] = {
  "\xec\xb5\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb5\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb6\x92"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ecb6[] = {
  "\xec\xb6\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\x8a"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ecb7[] = {
  "\xec\xb7\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\x82"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ecb8[] = {
  "\xec\xb8\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\xba", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb9\x96"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ecb9[] = {
  "\xec\xb9\xb2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\x8e"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ecba[] = {
  "\xec\xba\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\x86"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ecbb[] = {
  "\xec\xbb\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\xbe"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ecbc[] = {
  "\xec\xbc\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbc\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbd\x92"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ecbd[] = {
  "\xec\xbd\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\x8a"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ecbe[] = {
  "\xec\xbe\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\x82"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ecbf[] = {
  "\xec\xbf\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\xba", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x80\x96"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ed80[] = {
  "\xed\x80\xb2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\x8e"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ed81[] = {
  "\xed\x81\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\x86"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ed82[] = {
  "\xed\x82\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\xbe"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ed83[] = {
  "\xed\x83\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x83\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x84\x92"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ed84[] = {
  "\xed\x84\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\x8a"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ed85[] = {
  "\xed\x85\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\x82"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ed86[] = {
  "\xed\x86\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\xba", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x87\x96"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ed87[] = {
  "\xed\x87\xb2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\x8e"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ed88[] = {
  "\xed\x88\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\x86"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ed89[] = {
  "\xed\x89\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\xbe"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ed8a[] = {
  "\xed\x8a\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8a\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8b\x92"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ed8b[] = {
  "\xed\x8b\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\x8a"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ed8c[] = {
  "\xed\x8c\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\x82"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ed8d[] = {
  "\xed\x8d\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\xba", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8e\x96"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ed8e[] = {
  "\xed\x8e\xb2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\x8e"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ed8f[] = {
  "\xed\x8f\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\x86"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ed90[] = {
  "\xed\x90\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\xbe"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ed91[] = {
  "\xed\x91\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x91\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x92\x92"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ed92[] = {
  "\xed\x92\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\x8a"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ed93[] = {
  "\xed\x93\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\x82"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ed94[] = {
  "\xed\x94\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\xba", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x95\x96"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ed95[] = {
  "\xed\x95\xb2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\x8e"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ed96[] = {
  "\xed\x96\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\x86"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ed97[] = {
  "\xed\x97\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\xbe"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ed98[] = {
  "\xed\x98\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x98\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x99\x92"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ed99[] = {
  "\xed\x99\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\x8a"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ed9a[] = {
  "\xed\x9a\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\x82"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ed9b[] = {
  "\xed\x9b\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\xba", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x9c\x96"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ed9c[] = {
  "\xed\x9c\xb2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\x8e"
};

static const char *grn_nfkc50_compose_prefix_e18781_table_ed9d[] = {
  "\xed\x9d\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9e\x86"
};

static inline const char *
grn_nfkc50_compose_prefix_e18781(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xea :
      switch (utf8[1]) {
      case 0xb0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18781_table_eab0[utf8[2] - 0x80];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18781_table_eab1[utf8[2] - 0x94];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18781_table_eab2[utf8[2] - 0x8c];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18781_table_eab3[utf8[2] - 0x84];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18781_table_eab4[utf8[2] - 0x98];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18781_table_eab5[utf8[2] - 0x90];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18781_table_eab6[utf8[2] - 0x88];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18781_table_eab7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18781_table_eab8[utf8[2] - 0x94];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18781_table_eab9[utf8[2] - 0x8c];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18781_table_eaba[utf8[2] - 0x84];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18781_table_eabb[utf8[2] - 0x98];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18781_table_eabc[utf8[2] - 0x90];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18781_table_eabd[utf8[2] - 0x88];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18781_table_eabe[utf8[2] - 0x80];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18781_table_eabf[utf8[2] - 0x94];
        }
        break;
      default :
        break;
      }
      break;
    case 0xeb :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18781_table_eb80[utf8[2] - 0x8c];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18781_table_eb81[utf8[2] - 0x84];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18781_table_eb82[utf8[2] - 0x98];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18781_table_eb83[utf8[2] - 0x90];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18781_table_eb84[utf8[2] - 0x88];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18781_table_eb85[utf8[2] - 0x80];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18781_table_eb86[utf8[2] - 0x94];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18781_table_eb87[utf8[2] - 0x8c];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18781_table_eb88[utf8[2] - 0x84];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18781_table_eb89[utf8[2] - 0x98];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18781_table_eb8a[utf8[2] - 0x90];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18781_table_eb8b[utf8[2] - 0x88];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18781_table_eb8c[utf8[2] - 0x80];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18781_table_eb8d[utf8[2] - 0x94];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18781_table_eb8e[utf8[2] - 0x8c];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18781_table_eb8f[utf8[2] - 0x84];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18781_table_eb90[utf8[2] - 0x98];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18781_table_eb91[utf8[2] - 0x90];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18781_table_eb92[utf8[2] - 0x88];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18781_table_eb93[utf8[2] - 0x80];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18781_table_eb94[utf8[2] - 0x94];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18781_table_eb95[utf8[2] - 0x8c];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18781_table_eb96[utf8[2] - 0x84];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18781_table_eb97[utf8[2] - 0x98];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18781_table_eb98[utf8[2] - 0x90];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18781_table_eb99[utf8[2] - 0x88];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18781_table_eb9a[utf8[2] - 0x80];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18781_table_eb9b[utf8[2] - 0x94];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18781_table_eb9c[utf8[2] - 0x8c];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18781_table_eb9d[utf8[2] - 0x84];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18781_table_eb9e[utf8[2] - 0x98];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18781_table_eb9f[utf8[2] - 0x90];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18781_table_eba0[utf8[2] - 0x88];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18781_table_eba1[utf8[2] - 0x80];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18781_table_eba2[utf8[2] - 0x94];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18781_table_eba3[utf8[2] - 0x8c];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18781_table_eba4[utf8[2] - 0x84];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18781_table_eba5[utf8[2] - 0x98];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18781_table_eba6[utf8[2] - 0x90];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18781_table_eba7[utf8[2] - 0x88];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18781_table_eba8[utf8[2] - 0x80];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18781_table_eba9[utf8[2] - 0x94];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18781_table_ebaa[utf8[2] - 0x8c];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18781_table_ebab[utf8[2] - 0x84];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18781_table_ebac[utf8[2] - 0x98];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18781_table_ebad[utf8[2] - 0x90];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18781_table_ebae[utf8[2] - 0x88];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18781_table_ebaf[utf8[2] - 0x80];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18781_table_ebb0[utf8[2] - 0x94];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18781_table_ebb1[utf8[2] - 0x8c];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18781_table_ebb2[utf8[2] - 0x84];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18781_table_ebb3[utf8[2] - 0x98];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18781_table_ebb4[utf8[2] - 0x90];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18781_table_ebb5[utf8[2] - 0x88];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18781_table_ebb6[utf8[2] - 0x80];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18781_table_ebb7[utf8[2] - 0x94];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18781_table_ebb8[utf8[2] - 0x8c];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18781_table_ebb9[utf8[2] - 0x84];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18781_table_ebba[utf8[2] - 0x98];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18781_table_ebbb[utf8[2] - 0x90];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18781_table_ebbc[utf8[2] - 0x88];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18781_table_ebbd[utf8[2] - 0x80];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18781_table_ebbe[utf8[2] - 0x94];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18781_table_ebbf[utf8[2] - 0x8c];
        }
        break;
      default :
        break;
      }
      break;
    case 0xec :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18781_table_ec80[utf8[2] - 0x84];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18781_table_ec81[utf8[2] - 0x98];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18781_table_ec82[utf8[2] - 0x90];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18781_table_ec83[utf8[2] - 0x88];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18781_table_ec84[utf8[2] - 0x80];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18781_table_ec85[utf8[2] - 0x94];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18781_table_ec86[utf8[2] - 0x8c];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18781_table_ec87[utf8[2] - 0x84];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18781_table_ec88[utf8[2] - 0x98];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18781_table_ec89[utf8[2] - 0x90];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18781_table_ec8a[utf8[2] - 0x88];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18781_table_ec8b[utf8[2] - 0x80];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18781_table_ec8c[utf8[2] - 0x94];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18781_table_ec8d[utf8[2] - 0x8c];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18781_table_ec8e[utf8[2] - 0x84];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18781_table_ec8f[utf8[2] - 0x98];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18781_table_ec90[utf8[2] - 0x90];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18781_table_ec91[utf8[2] - 0x88];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18781_table_ec92[utf8[2] - 0x80];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18781_table_ec93[utf8[2] - 0x94];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18781_table_ec94[utf8[2] - 0x8c];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18781_table_ec95[utf8[2] - 0x84];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18781_table_ec96[utf8[2] - 0x98];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18781_table_ec97[utf8[2] - 0x90];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18781_table_ec98[utf8[2] - 0x88];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18781_table_ec99[utf8[2] - 0x80];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18781_table_ec9a[utf8[2] - 0x94];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18781_table_ec9b[utf8[2] - 0x8c];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18781_table_ec9c[utf8[2] - 0x84];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18781_table_ec9d[utf8[2] - 0x98];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18781_table_ec9e[utf8[2] - 0x90];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18781_table_ec9f[utf8[2] - 0x88];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18781_table_eca0[utf8[2] - 0x80];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18781_table_eca1[utf8[2] - 0x94];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18781_table_eca2[utf8[2] - 0x8c];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18781_table_eca3[utf8[2] - 0x84];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18781_table_eca4[utf8[2] - 0x98];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18781_table_eca5[utf8[2] - 0x90];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18781_table_eca6[utf8[2] - 0x88];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18781_table_eca7[utf8[2] - 0x80];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18781_table_eca8[utf8[2] - 0x94];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18781_table_eca9[utf8[2] - 0x8c];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18781_table_ecaa[utf8[2] - 0x84];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18781_table_ecab[utf8[2] - 0x98];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18781_table_ecac[utf8[2] - 0x90];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18781_table_ecad[utf8[2] - 0x88];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18781_table_ecae[utf8[2] - 0x80];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18781_table_ecaf[utf8[2] - 0x94];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18781_table_ecb0[utf8[2] - 0x8c];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18781_table_ecb1[utf8[2] - 0x84];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18781_table_ecb2[utf8[2] - 0x98];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18781_table_ecb3[utf8[2] - 0x90];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18781_table_ecb4[utf8[2] - 0x88];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18781_table_ecb5[utf8[2] - 0x80];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18781_table_ecb6[utf8[2] - 0x94];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18781_table_ecb7[utf8[2] - 0x8c];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18781_table_ecb8[utf8[2] - 0x84];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18781_table_ecb9[utf8[2] - 0x98];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18781_table_ecba[utf8[2] - 0x90];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18781_table_ecbb[utf8[2] - 0x88];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18781_table_ecbc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18781_table_ecbd[utf8[2] - 0x94];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18781_table_ecbe[utf8[2] - 0x8c];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18781_table_ecbf[utf8[2] - 0x84];
        }
        break;
      default :
        break;
      }
      break;
    case 0xed :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18781_table_ed80[utf8[2] - 0x98];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18781_table_ed81[utf8[2] - 0x90];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18781_table_ed82[utf8[2] - 0x88];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18781_table_ed83[utf8[2] - 0x80];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18781_table_ed84[utf8[2] - 0x94];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18781_table_ed85[utf8[2] - 0x8c];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18781_table_ed86[utf8[2] - 0x84];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18781_table_ed87[utf8[2] - 0x98];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18781_table_ed88[utf8[2] - 0x90];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18781_table_ed89[utf8[2] - 0x88];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18781_table_ed8a[utf8[2] - 0x80];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18781_table_ed8b[utf8[2] - 0x94];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18781_table_ed8c[utf8[2] - 0x8c];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18781_table_ed8d[utf8[2] - 0x84];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18781_table_ed8e[utf8[2] - 0x98];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18781_table_ed8f[utf8[2] - 0x90];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18781_table_ed90[utf8[2] - 0x88];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18781_table_ed91[utf8[2] - 0x80];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18781_table_ed92[utf8[2] - 0x94];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18781_table_ed93[utf8[2] - 0x8c];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18781_table_ed94[utf8[2] - 0x84];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18781_table_ed95[utf8[2] - 0x98];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18781_table_ed96[utf8[2] - 0x90];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18781_table_ed97[utf8[2] - 0x88];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18781_table_ed98[utf8[2] - 0x80];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18781_table_ed99[utf8[2] - 0x94];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18781_table_ed9a[utf8[2] - 0x8c];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18781_table_ed9b[utf8[2] - 0x84];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18781_table_ed9c[utf8[2] - 0x98];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18781_table_ed9d[utf8[2] - 0x90];
        }
        break;
      case 0x9e :
        if (utf8[2] == 0x88) {
          return "\xed\x9e\xa2";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_e18782_table_eab0[] = {
  "\xea\xb0\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb0\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb1\x93"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eab1[] = {
  "\xea\xb1\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\x8b"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eab2[] = {
  "\xea\xb2\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\x83"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eab3[] = {
  "\xea\xb3\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\xbb", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb4\x97"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eab4[] = {
  "\xea\xb4\xb3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\x8f"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eab5[] = {
  "\xea\xb5\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\x87"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eab6[] = {
  "\xea\xb6\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\xbf"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eab7[] = {
  "\xea\xb7\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb7\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb8\x93"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eab8[] = {
  "\xea\xb8\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\x8b"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eab9[] = {
  "\xea\xb9\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\x83"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eaba[] = {
  "\xea\xba\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\xbb", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbb\x97"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eabb[] = {
  "\xea\xbb\xb3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\x8f"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eabc[] = {
  "\xea\xbc\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\x87"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eabd[] = {
  "\xea\xbd\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\xbf"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eabe[] = {
  "\xea\xbe\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbe\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbf\x93"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eabf[] = {
  "\xea\xbf\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\x8b"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eb80[] = {
  "\xeb\x80\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\x83"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eb81[] = {
  "\xeb\x81\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\xbb", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x82\x97"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eb82[] = {
  "\xeb\x82\xb3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\x8f"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eb83[] = {
  "\xeb\x83\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\x87"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eb84[] = {
  "\xeb\x84\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\xbf"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eb85[] = {
  "\xeb\x85\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x85\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x86\x93"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eb86[] = {
  "\xeb\x86\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\x8b"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eb87[] = {
  "\xeb\x87\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\x83"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eb88[] = {
  "\xeb\x88\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\xbb", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x89\x97"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eb89[] = {
  "\xeb\x89\xb3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\x8f"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eb8a[] = {
  "\xeb\x8a\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\x87"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eb8b[] = {
  "\xeb\x8b\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\xbf"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eb8c[] = {
  "\xeb\x8c\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8c\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8d\x93"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eb8d[] = {
  "\xeb\x8d\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\x8b"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eb8e[] = {
  "\xeb\x8e\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\x83"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eb8f[] = {
  "\xeb\x8f\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\xbb", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x90\x97"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eb90[] = {
  "\xeb\x90\xb3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\x8f"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eb91[] = {
  "\xeb\x91\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\x87"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eb92[] = {
  "\xeb\x92\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\xbf"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eb93[] = {
  "\xeb\x93\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x93\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x94\x93"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eb94[] = {
  "\xeb\x94\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\x8b"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eb95[] = {
  "\xeb\x95\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\x83"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eb96[] = {
  "\xeb\x96\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\xbb", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x97\x97"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eb97[] = {
  "\xeb\x97\xb3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\x8f"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eb98[] = {
  "\xeb\x98\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\x87"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eb99[] = {
  "\xeb\x99\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\xbf"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eb9a[] = {
  "\xeb\x9a\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9a\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9b\x93"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eb9b[] = {
  "\xeb\x9b\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\x8b"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eb9c[] = {
  "\xeb\x9c\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\x83"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eb9d[] = {
  "\xeb\x9d\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\xbb", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9e\x97"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eb9e[] = {
  "\xeb\x9e\xb3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\x8f"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eb9f[] = {
  "\xeb\x9f\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\x87"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eba0[] = {
  "\xeb\xa0\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\xbf"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eba1[] = {
  "\xeb\xa1\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa1\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa2\x93"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eba2[] = {
  "\xeb\xa2\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\x8b"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eba3[] = {
  "\xeb\xa3\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\x83"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eba4[] = {
  "\xeb\xa4\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\xbb", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa5\x97"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eba5[] = {
  "\xeb\xa5\xb3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\x8f"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eba6[] = {
  "\xeb\xa6\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\x87"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eba7[] = {
  "\xeb\xa7\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\xbf"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eba8[] = {
  "\xeb\xa8\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa8\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa9\x93"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eba9[] = {
  "\xeb\xa9\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\x8b"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ebaa[] = {
  "\xeb\xaa\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\x83"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ebab[] = {
  "\xeb\xab\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\xbb", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xac\x97"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ebac[] = {
  "\xeb\xac\xb3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\x8f"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ebad[] = {
  "\xeb\xad\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\x87"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ebae[] = {
  "\xeb\xae\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\xbf"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ebaf[] = {
  "\xeb\xaf\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaf\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb0\x93"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ebb0[] = {
  "\xeb\xb0\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\x8b"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ebb1[] = {
  "\xeb\xb1\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\x83"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ebb2[] = {
  "\xeb\xb2\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\xbb", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb3\x97"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ebb3[] = {
  "\xeb\xb3\xb3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\x8f"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ebb4[] = {
  "\xeb\xb4\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\x87"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ebb5[] = {
  "\xeb\xb5\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\xbf"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ebb6[] = {
  "\xeb\xb6\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb6\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb7\x93"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ebb7[] = {
  "\xeb\xb7\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\x8b"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ebb8[] = {
  "\xeb\xb8\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\x83"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ebb9[] = {
  "\xeb\xb9\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\xbb", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xba\x97"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ebba[] = {
  "\xeb\xba\xb3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\x8f"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ebbb[] = {
  "\xeb\xbb\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\x87"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ebbc[] = {
  "\xeb\xbc\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\xbf"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ebbd[] = {
  "\xeb\xbd\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbd\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xbe\x93"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ebbe[] = {
  "\xeb\xbe\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\x8b"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ebbf[] = {
  "\xeb\xbf\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\x83"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ec80[] = {
  "\xec\x80\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\xbb", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x81\x97"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ec81[] = {
  "\xec\x81\xb3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\x8f"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ec82[] = {
  "\xec\x82\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\x87"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ec83[] = {
  "\xec\x83\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\xbf"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ec84[] = {
  "\xec\x84\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x84\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x85\x93"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ec85[] = {
  "\xec\x85\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\x8b"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ec86[] = {
  "\xec\x86\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\x83"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ec87[] = {
  "\xec\x87\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\xbb", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x88\x97"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ec88[] = {
  "\xec\x88\xb3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\x8f"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ec89[] = {
  "\xec\x89\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\x87"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ec8a[] = {
  "\xec\x8a\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\xbf"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ec8b[] = {
  "\xec\x8b\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8b\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8c\x93"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ec8c[] = {
  "\xec\x8c\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\x8b"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ec8d[] = {
  "\xec\x8d\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\x83"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ec8e[] = {
  "\xec\x8e\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\xbb", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8f\x97"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ec8f[] = {
  "\xec\x8f\xb3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\x8f"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ec90[] = {
  "\xec\x90\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\x87"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ec91[] = {
  "\xec\x91\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\xbf"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ec92[] = {
  "\xec\x92\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x92\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x93\x93"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ec93[] = {
  "\xec\x93\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\x8b"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ec94[] = {
  "\xec\x94\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\x83"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ec95[] = {
  "\xec\x95\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\xbb", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x96\x97"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ec96[] = {
  "\xec\x96\xb3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\x8f"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ec97[] = {
  "\xec\x97\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\x87"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ec98[] = {
  "\xec\x98\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\xbf"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ec99[] = {
  "\xec\x99\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x99\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9a\x93"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ec9a[] = {
  "\xec\x9a\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\x8b"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ec9b[] = {
  "\xec\x9b\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\x83"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ec9c[] = {
  "\xec\x9c\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\xbb", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9d\x97"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ec9d[] = {
  "\xec\x9d\xb3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\x8f"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ec9e[] = {
  "\xec\x9e\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\x87"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ec9f[] = {
  "\xec\x9f\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\xbf"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eca0[] = {
  "\xec\xa0\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa0\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa1\x93"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eca1[] = {
  "\xec\xa1\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\x8b"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eca2[] = {
  "\xec\xa2\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\x83"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eca3[] = {
  "\xec\xa3\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\xbb", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa4\x97"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eca4[] = {
  "\xec\xa4\xb3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\x8f"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eca5[] = {
  "\xec\xa5\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\x87"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eca6[] = {
  "\xec\xa6\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\xbf"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eca7[] = {
  "\xec\xa7\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa7\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa8\x93"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eca8[] = {
  "\xec\xa8\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\x8b"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_eca9[] = {
  "\xec\xa9\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\x83"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ecaa[] = {
  "\xec\xaa\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\xbb", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xab\x97"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ecab[] = {
  "\xec\xab\xb3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\x8f"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ecac[] = {
  "\xec\xac\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\x87"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ecad[] = {
  "\xec\xad\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\xbf"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ecae[] = {
  "\xec\xae\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xae\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xaf\x93"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ecaf[] = {
  "\xec\xaf\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\x8b"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ecb0[] = {
  "\xec\xb0\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\x83"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ecb1[] = {
  "\xec\xb1\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\xbb", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb2\x97"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ecb2[] = {
  "\xec\xb2\xb3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\x8f"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ecb3[] = {
  "\xec\xb3\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\x87"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ecb4[] = {
  "\xec\xb4\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\xbf"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ecb5[] = {
  "\xec\xb5\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb5\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb6\x93"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ecb6[] = {
  "\xec\xb6\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\x8b"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ecb7[] = {
  "\xec\xb7\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\x83"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ecb8[] = {
  "\xec\xb8\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\xbb", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb9\x97"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ecb9[] = {
  "\xec\xb9\xb3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\x8f"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ecba[] = {
  "\xec\xba\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\x87"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ecbb[] = {
  "\xec\xbb\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\xbf"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ecbc[] = {
  "\xec\xbc\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbc\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbd\x93"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ecbd[] = {
  "\xec\xbd\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\x8b"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ecbe[] = {
  "\xec\xbe\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\x83"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ecbf[] = {
  "\xec\xbf\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\xbb", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x80\x97"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ed80[] = {
  "\xed\x80\xb3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\x8f"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ed81[] = {
  "\xed\x81\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\x87"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ed82[] = {
  "\xed\x82\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\xbf"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ed83[] = {
  "\xed\x83\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x83\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x84\x93"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ed84[] = {
  "\xed\x84\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\x8b"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ed85[] = {
  "\xed\x85\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\x83"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ed86[] = {
  "\xed\x86\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\xbb", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x87\x97"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ed87[] = {
  "\xed\x87\xb3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\x8f"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ed88[] = {
  "\xed\x88\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\x87"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ed89[] = {
  "\xed\x89\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\xbf"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ed8a[] = {
  "\xed\x8a\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8a\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8b\x93"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ed8b[] = {
  "\xed\x8b\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\x8b"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ed8c[] = {
  "\xed\x8c\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\x83"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ed8d[] = {
  "\xed\x8d\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\xbb", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8e\x97"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ed8e[] = {
  "\xed\x8e\xb3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\x8f"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ed8f[] = {
  "\xed\x8f\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\x87"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ed90[] = {
  "\xed\x90\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\xbf"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ed91[] = {
  "\xed\x91\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x91\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x92\x93"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ed92[] = {
  "\xed\x92\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\x8b"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ed93[] = {
  "\xed\x93\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\x83"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ed94[] = {
  "\xed\x94\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\xbb", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x95\x97"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ed95[] = {
  "\xed\x95\xb3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\x8f"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ed96[] = {
  "\xed\x96\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\x87"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ed97[] = {
  "\xed\x97\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\xbf"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ed98[] = {
  "\xed\x98\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x98\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x99\x93"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ed99[] = {
  "\xed\x99\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\x8b"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ed9a[] = {
  "\xed\x9a\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\x83"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ed9b[] = {
  "\xed\x9b\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\xbb", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x9c\x97"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ed9c[] = {
  "\xed\x9c\xb3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\x8f"
};

static const char *grn_nfkc50_compose_prefix_e18782_table_ed9d[] = {
  "\xed\x9d\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9e\x87"
};

static inline const char *
grn_nfkc50_compose_prefix_e18782(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xea :
      switch (utf8[1]) {
      case 0xb0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18782_table_eab0[utf8[2] - 0x80];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18782_table_eab1[utf8[2] - 0x94];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18782_table_eab2[utf8[2] - 0x8c];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18782_table_eab3[utf8[2] - 0x84];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18782_table_eab4[utf8[2] - 0x98];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18782_table_eab5[utf8[2] - 0x90];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18782_table_eab6[utf8[2] - 0x88];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18782_table_eab7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18782_table_eab8[utf8[2] - 0x94];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18782_table_eab9[utf8[2] - 0x8c];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18782_table_eaba[utf8[2] - 0x84];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18782_table_eabb[utf8[2] - 0x98];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18782_table_eabc[utf8[2] - 0x90];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18782_table_eabd[utf8[2] - 0x88];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18782_table_eabe[utf8[2] - 0x80];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18782_table_eabf[utf8[2] - 0x94];
        }
        break;
      default :
        break;
      }
      break;
    case 0xeb :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18782_table_eb80[utf8[2] - 0x8c];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18782_table_eb81[utf8[2] - 0x84];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18782_table_eb82[utf8[2] - 0x98];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18782_table_eb83[utf8[2] - 0x90];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18782_table_eb84[utf8[2] - 0x88];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18782_table_eb85[utf8[2] - 0x80];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18782_table_eb86[utf8[2] - 0x94];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18782_table_eb87[utf8[2] - 0x8c];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18782_table_eb88[utf8[2] - 0x84];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18782_table_eb89[utf8[2] - 0x98];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18782_table_eb8a[utf8[2] - 0x90];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18782_table_eb8b[utf8[2] - 0x88];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18782_table_eb8c[utf8[2] - 0x80];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18782_table_eb8d[utf8[2] - 0x94];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18782_table_eb8e[utf8[2] - 0x8c];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18782_table_eb8f[utf8[2] - 0x84];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18782_table_eb90[utf8[2] - 0x98];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18782_table_eb91[utf8[2] - 0x90];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18782_table_eb92[utf8[2] - 0x88];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18782_table_eb93[utf8[2] - 0x80];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18782_table_eb94[utf8[2] - 0x94];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18782_table_eb95[utf8[2] - 0x8c];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18782_table_eb96[utf8[2] - 0x84];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18782_table_eb97[utf8[2] - 0x98];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18782_table_eb98[utf8[2] - 0x90];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18782_table_eb99[utf8[2] - 0x88];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18782_table_eb9a[utf8[2] - 0x80];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18782_table_eb9b[utf8[2] - 0x94];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18782_table_eb9c[utf8[2] - 0x8c];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18782_table_eb9d[utf8[2] - 0x84];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18782_table_eb9e[utf8[2] - 0x98];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18782_table_eb9f[utf8[2] - 0x90];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18782_table_eba0[utf8[2] - 0x88];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18782_table_eba1[utf8[2] - 0x80];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18782_table_eba2[utf8[2] - 0x94];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18782_table_eba3[utf8[2] - 0x8c];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18782_table_eba4[utf8[2] - 0x84];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18782_table_eba5[utf8[2] - 0x98];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18782_table_eba6[utf8[2] - 0x90];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18782_table_eba7[utf8[2] - 0x88];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18782_table_eba8[utf8[2] - 0x80];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18782_table_eba9[utf8[2] - 0x94];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18782_table_ebaa[utf8[2] - 0x8c];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18782_table_ebab[utf8[2] - 0x84];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18782_table_ebac[utf8[2] - 0x98];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18782_table_ebad[utf8[2] - 0x90];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18782_table_ebae[utf8[2] - 0x88];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18782_table_ebaf[utf8[2] - 0x80];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18782_table_ebb0[utf8[2] - 0x94];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18782_table_ebb1[utf8[2] - 0x8c];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18782_table_ebb2[utf8[2] - 0x84];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18782_table_ebb3[utf8[2] - 0x98];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18782_table_ebb4[utf8[2] - 0x90];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18782_table_ebb5[utf8[2] - 0x88];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18782_table_ebb6[utf8[2] - 0x80];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18782_table_ebb7[utf8[2] - 0x94];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18782_table_ebb8[utf8[2] - 0x8c];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18782_table_ebb9[utf8[2] - 0x84];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18782_table_ebba[utf8[2] - 0x98];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18782_table_ebbb[utf8[2] - 0x90];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18782_table_ebbc[utf8[2] - 0x88];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18782_table_ebbd[utf8[2] - 0x80];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18782_table_ebbe[utf8[2] - 0x94];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18782_table_ebbf[utf8[2] - 0x8c];
        }
        break;
      default :
        break;
      }
      break;
    case 0xec :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18782_table_ec80[utf8[2] - 0x84];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18782_table_ec81[utf8[2] - 0x98];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18782_table_ec82[utf8[2] - 0x90];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18782_table_ec83[utf8[2] - 0x88];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18782_table_ec84[utf8[2] - 0x80];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18782_table_ec85[utf8[2] - 0x94];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18782_table_ec86[utf8[2] - 0x8c];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18782_table_ec87[utf8[2] - 0x84];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18782_table_ec88[utf8[2] - 0x98];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18782_table_ec89[utf8[2] - 0x90];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18782_table_ec8a[utf8[2] - 0x88];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18782_table_ec8b[utf8[2] - 0x80];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18782_table_ec8c[utf8[2] - 0x94];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18782_table_ec8d[utf8[2] - 0x8c];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18782_table_ec8e[utf8[2] - 0x84];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18782_table_ec8f[utf8[2] - 0x98];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18782_table_ec90[utf8[2] - 0x90];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18782_table_ec91[utf8[2] - 0x88];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18782_table_ec92[utf8[2] - 0x80];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18782_table_ec93[utf8[2] - 0x94];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18782_table_ec94[utf8[2] - 0x8c];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18782_table_ec95[utf8[2] - 0x84];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18782_table_ec96[utf8[2] - 0x98];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18782_table_ec97[utf8[2] - 0x90];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18782_table_ec98[utf8[2] - 0x88];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18782_table_ec99[utf8[2] - 0x80];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18782_table_ec9a[utf8[2] - 0x94];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18782_table_ec9b[utf8[2] - 0x8c];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18782_table_ec9c[utf8[2] - 0x84];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18782_table_ec9d[utf8[2] - 0x98];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18782_table_ec9e[utf8[2] - 0x90];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18782_table_ec9f[utf8[2] - 0x88];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18782_table_eca0[utf8[2] - 0x80];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18782_table_eca1[utf8[2] - 0x94];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18782_table_eca2[utf8[2] - 0x8c];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18782_table_eca3[utf8[2] - 0x84];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18782_table_eca4[utf8[2] - 0x98];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18782_table_eca5[utf8[2] - 0x90];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18782_table_eca6[utf8[2] - 0x88];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18782_table_eca7[utf8[2] - 0x80];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18782_table_eca8[utf8[2] - 0x94];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18782_table_eca9[utf8[2] - 0x8c];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18782_table_ecaa[utf8[2] - 0x84];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18782_table_ecab[utf8[2] - 0x98];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18782_table_ecac[utf8[2] - 0x90];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18782_table_ecad[utf8[2] - 0x88];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18782_table_ecae[utf8[2] - 0x80];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18782_table_ecaf[utf8[2] - 0x94];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18782_table_ecb0[utf8[2] - 0x8c];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18782_table_ecb1[utf8[2] - 0x84];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18782_table_ecb2[utf8[2] - 0x98];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18782_table_ecb3[utf8[2] - 0x90];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18782_table_ecb4[utf8[2] - 0x88];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18782_table_ecb5[utf8[2] - 0x80];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18782_table_ecb6[utf8[2] - 0x94];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18782_table_ecb7[utf8[2] - 0x8c];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18782_table_ecb8[utf8[2] - 0x84];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18782_table_ecb9[utf8[2] - 0x98];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18782_table_ecba[utf8[2] - 0x90];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18782_table_ecbb[utf8[2] - 0x88];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18782_table_ecbc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18782_table_ecbd[utf8[2] - 0x94];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18782_table_ecbe[utf8[2] - 0x8c];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18782_table_ecbf[utf8[2] - 0x84];
        }
        break;
      default :
        break;
      }
      break;
    case 0xed :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18782_table_ed80[utf8[2] - 0x98];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18782_table_ed81[utf8[2] - 0x90];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18782_table_ed82[utf8[2] - 0x88];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18782_table_ed83[utf8[2] - 0x80];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18782_table_ed84[utf8[2] - 0x94];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18782_table_ed85[utf8[2] - 0x8c];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18782_table_ed86[utf8[2] - 0x84];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18782_table_ed87[utf8[2] - 0x98];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18782_table_ed88[utf8[2] - 0x90];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18782_table_ed89[utf8[2] - 0x88];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18782_table_ed8a[utf8[2] - 0x80];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18782_table_ed8b[utf8[2] - 0x94];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18782_table_ed8c[utf8[2] - 0x8c];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18782_table_ed8d[utf8[2] - 0x84];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18782_table_ed8e[utf8[2] - 0x98];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18782_table_ed8f[utf8[2] - 0x90];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18782_table_ed90[utf8[2] - 0x88];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18782_table_ed91[utf8[2] - 0x80];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18782_table_ed92[utf8[2] - 0x94];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18782_table_ed93[utf8[2] - 0x8c];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18782_table_ed94[utf8[2] - 0x84];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18782_table_ed95[utf8[2] - 0x98];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18782_table_ed96[utf8[2] - 0x90];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc50_compose_prefix_e18782_table_ed97[utf8[2] - 0x88];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc50_compose_prefix_e18782_table_ed98[utf8[2] - 0x80];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc50_compose_prefix_e18782_table_ed99[utf8[2] - 0x94];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc50_compose_prefix_e18782_table_ed9a[utf8[2] - 0x8c];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc50_compose_prefix_e18782_table_ed9b[utf8[2] - 0x84];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc50_compose_prefix_e18782_table_ed9c[utf8[2] - 0x98];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc50_compose_prefix_e18782_table_ed9d[utf8[2] - 0x90];
        }
        break;
      case 0x9e :
        if (utf8[2] == 0x88) {
          return "\xed\x9e\xa3";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_e185a2_table_e184[] = {
  "\xea\xb0\x9c", "\xea\xb9\xa8", "\xeb\x82\xb4", "\xeb\x8c\x80", "\xeb\x95\x8c", "\xeb\x9e\x98", "\xeb\xa7\xa4", "\xeb\xb0\xb0",
  "\xeb\xb9\xbc", "\xec\x83\x88", "\xec\x8c\x94", "\xec\x95\xa0", "\xec\x9e\xac", "\xec\xa7\xb8", "\xec\xb1\x84", "\xec\xba\x90",
  "\xed\x83\x9c", "\xed\x8c\xa8", "\xed\x95\xb4"
};

static inline const char *
grn_nfkc50_compose_prefix_e185a2(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe1 :
      switch (utf8[1]) {
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x92) {
          return grn_nfkc50_compose_prefix_e185a2_table_e184[utf8[2] - 0x80];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_e185a3_table_e184[] = {
  "\xea\xb0\xb8", "\xea\xba\x84", "\xeb\x83\x90", "\xeb\x8c\x9c", "\xeb\x95\xa8", "\xeb\x9e\xb4", "\xeb\xa8\x80", "\xeb\xb1\x8c",
  "\xeb\xba\x98", "\xec\x83\xa4", "\xec\x8c\xb0", "\xec\x95\xbc", "\xec\x9f\x88", "\xec\xa8\x94", "\xec\xb1\xa0", "\xec\xba\xac",
  "\xed\x83\xb8", "\xed\x8d\x84", "\xed\x96\x90"
};

static inline const char *
grn_nfkc50_compose_prefix_e185a3(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe1 :
      switch (utf8[1]) {
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x92) {
          return grn_nfkc50_compose_prefix_e185a3_table_e184[utf8[2] - 0x80];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_e185a4_table_e184[] = {
  "\xea\xb1\x94", "\xea\xba\xa0", "\xeb\x83\xac", "\xeb\x8c\xb8", "\xeb\x96\x84", "\xeb\x9f\x90", "\xeb\xa8\x9c", "\xeb\xb1\xa8",
  "\xeb\xba\xb4", "\xec\x84\x80", "\xec\x8d\x8c", "\xec\x96\x98", "\xec\x9f\xa4", "\xec\xa8\xb0", "\xec\xb1\xbc", "\xec\xbb\x88",
  "\xed\x84\x94", "\xed\x8d\xa0", "\xed\x96\xac"
};

static inline const char *
grn_nfkc50_compose_prefix_e185a4(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe1 :
      switch (utf8[1]) {
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x92) {
          return grn_nfkc50_compose_prefix_e185a4_table_e184[utf8[2] - 0x80];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_e185a5_table_e184[] = {
  "\xea\xb1\xb0", "\xea\xba\xbc", "\xeb\x84\x88", "\xeb\x8d\x94", "\xeb\x96\xa0", "\xeb\x9f\xac", "\xeb\xa8\xb8", "\xeb\xb2\x84",
  "\xeb\xbb\x90", "\xec\x84\x9c", "\xec\x8d\xa8", "\xec\x96\xb4", "\xec\xa0\x80", "\xec\xa9\x8c", "\xec\xb2\x98", "\xec\xbb\xa4",
  "\xed\x84\xb0", "\xed\x8d\xbc", "\xed\x97\x88"
};

static inline const char *
grn_nfkc50_compose_prefix_e185a5(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe1 :
      switch (utf8[1]) {
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x92) {
          return grn_nfkc50_compose_prefix_e185a5_table_e184[utf8[2] - 0x80];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_e185a6_table_e184[] = {
  "\xea\xb2\x8c", "\xea\xbb\x98", "\xeb\x84\xa4", "\xeb\x8d\xb0", "\xeb\x96\xbc", "\xeb\xa0\x88", "\xeb\xa9\x94", "\xeb\xb2\xa0",
  "\xeb\xbb\xac", "\xec\x84\xb8", "\xec\x8e\x84", "\xec\x97\x90", "\xec\xa0\x9c", "\xec\xa9\xa8", "\xec\xb2\xb4", "\xec\xbc\x80",
  "\xed\x85\x8c", "\xed\x8e\x98", "\xed\x97\xa4"
};

static inline const char *
grn_nfkc50_compose_prefix_e185a6(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe1 :
      switch (utf8[1]) {
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x92) {
          return grn_nfkc50_compose_prefix_e185a6_table_e184[utf8[2] - 0x80];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_e185a7_table_e184[] = {
  "\xea\xb2\xa8", "\xea\xbb\xb4", "\xeb\x85\x80", "\xeb\x8e\x8c", "\xeb\x97\x98", "\xeb\xa0\xa4", "\xeb\xa9\xb0", "\xeb\xb2\xbc",
  "\xeb\xbc\x88", "\xec\x85\x94", "\xec\x8e\xa0", "\xec\x97\xac", "\xec\xa0\xb8", "\xec\xaa\x84", "\xec\xb3\x90", "\xec\xbc\x9c",
  "\xed\x85\xa8", "\xed\x8e\xb4", "\xed\x98\x80"
};

static inline const char *
grn_nfkc50_compose_prefix_e185a7(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe1 :
      switch (utf8[1]) {
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x92) {
          return grn_nfkc50_compose_prefix_e185a7_table_e184[utf8[2] - 0x80];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_e185a8_table_e184[] = {
  "\xea\xb3\x84", "\xea\xbc\x90", "\xeb\x85\x9c", "\xeb\x8e\xa8", "\xeb\x97\xb4", "\xeb\xa1\x80", "\xeb\xaa\x8c", "\xeb\xb3\x98",
  "\xeb\xbc\xa4", "\xec\x85\xb0", "\xec\x8e\xbc", "\xec\x98\x88", "\xec\xa1\x94", "\xec\xaa\xa0", "\xec\xb3\xac", "\xec\xbc\xb8",
  "\xed\x86\x84", "\xed\x8f\x90", "\xed\x98\x9c"
};

static inline const char *
grn_nfkc50_compose_prefix_e185a8(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe1 :
      switch (utf8[1]) {
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x92) {
          return grn_nfkc50_compose_prefix_e185a8_table_e184[utf8[2] - 0x80];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_e185a9_table_e184[] = {
  "\xea\xb3\xa0", "\xea\xbc\xac", "\xeb\x85\xb8", "\xeb\x8f\x84", "\xeb\x98\x90", "\xeb\xa1\x9c", "\xeb\xaa\xa8", "\xeb\xb3\xb4",
  "\xeb\xbd\x80", "\xec\x86\x8c", "\xec\x8f\x98", "\xec\x98\xa4", "\xec\xa1\xb0", "\xec\xaa\xbc", "\xec\xb4\x88", "\xec\xbd\x94",
  "\xed\x86\xa0", "\xed\x8f\xac", "\xed\x98\xb8"
};

static inline const char *
grn_nfkc50_compose_prefix_e185a9(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe1 :
      switch (utf8[1]) {
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x92) {
          return grn_nfkc50_compose_prefix_e185a9_table_e184[utf8[2] - 0x80];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_e185aa_table_e184[] = {
  "\xea\xb3\xbc", "\xea\xbd\x88", "\xeb\x86\x94", "\xeb\x8f\xa0", "\xeb\x98\xac", "\xeb\xa1\xb8", "\xeb\xab\x84", "\xeb\xb4\x90",
  "\xeb\xbd\x9c", "\xec\x86\xa8", "\xec\x8f\xb4", "\xec\x99\x80", "\xec\xa2\x8c", "\xec\xab\x98", "\xec\xb4\xa4", "\xec\xbd\xb0",
  "\xed\x86\xbc", "\xed\x90\x88", "\xed\x99\x94"
};

static inline const char *
grn_nfkc50_compose_prefix_e185aa(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe1 :
      switch (utf8[1]) {
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x92) {
          return grn_nfkc50_compose_prefix_e185aa_table_e184[utf8[2] - 0x80];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_e185ab_table_e184[] = {
  "\xea\xb4\x98", "\xea\xbd\xa4", "\xeb\x86\xb0", "\xeb\x8f\xbc", "\xeb\x99\x88", "\xeb\xa2\x94", "\xeb\xab\xa0", "\xeb\xb4\xac",
  "\xeb\xbd\xb8", "\xec\x87\x84", "\xec\x90\x90", "\xec\x99\x9c", "\xec\xa2\xa8", "\xec\xab\xb4", "\xec\xb5\x80", "\xec\xbe\x8c",
  "\xed\x87\x98", "\xed\x90\xa4", "\xed\x99\xb0"
};

static inline const char *
grn_nfkc50_compose_prefix_e185ab(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe1 :
      switch (utf8[1]) {
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x92) {
          return grn_nfkc50_compose_prefix_e185ab_table_e184[utf8[2] - 0x80];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_e185ac_table_e184[] = {
  "\xea\xb4\xb4", "\xea\xbe\x80", "\xeb\x87\x8c", "\xeb\x90\x98", "\xeb\x99\xa4", "\xeb\xa2\xb0", "\xeb\xab\xbc", "\xeb\xb5\x88",
  "\xeb\xbe\x94", "\xec\x87\xa0", "\xec\x90\xac", "\xec\x99\xb8", "\xec\xa3\x84", "\xec\xac\x90", "\xec\xb5\x9c", "\xec\xbe\xa8",
  "\xed\x87\xb4", "\xed\x91\x80", "\xed\x9a\x8c"
};

static inline const char *
grn_nfkc50_compose_prefix_e185ac(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe1 :
      switch (utf8[1]) {
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x92) {
          return grn_nfkc50_compose_prefix_e185ac_table_e184[utf8[2] - 0x80];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_e185ad_table_e184[] = {
  "\xea\xb5\x90", "\xea\xbe\x9c", "\xeb\x87\xa8", "\xeb\x90\xb4", "\xeb\x9a\x80", "\xeb\xa3\x8c", "\xeb\xac\x98", "\xeb\xb5\xa4",
  "\xeb\xbe\xb0", "\xec\x87\xbc", "\xec\x91\x88", "\xec\x9a\x94", "\xec\xa3\xa0", "\xec\xac\xac", "\xec\xb5\xb8", "\xec\xbf\x84",
  "\xed\x88\x90", "\xed\x91\x9c", "\xed\x9a\xa8"
};

static inline const char *
grn_nfkc50_compose_prefix_e185ad(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe1 :
      switch (utf8[1]) {
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x92) {
          return grn_nfkc50_compose_prefix_e185ad_table_e184[utf8[2] - 0x80];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_e185ae_table_e184[] = {
  "\xea\xb5\xac", "\xea\xbe\xb8", "\xeb\x88\x84", "\xeb\x91\x90", "\xeb\x9a\x9c", "\xeb\xa3\xa8", "\xeb\xac\xb4", "\xeb\xb6\x80",
  "\xeb\xbf\x8c", "\xec\x88\x98", "\xec\x91\xa4", "\xec\x9a\xb0", "\xec\xa3\xbc", "\xec\xad\x88", "\xec\xb6\x94", "\xec\xbf\xa0",
  "\xed\x88\xac", "\xed\x91\xb8", "\xed\x9b\x84"
};

static inline const char *
grn_nfkc50_compose_prefix_e185ae(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe1 :
      switch (utf8[1]) {
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x92) {
          return grn_nfkc50_compose_prefix_e185ae_table_e184[utf8[2] - 0x80];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_e185af_table_e184[] = {
  "\xea\xb6\x88", "\xea\xbf\x94", "\xeb\x88\xa0", "\xeb\x91\xac", "\xeb\x9a\xb8", "\xeb\xa4\x84", "\xeb\xad\x90", "\xeb\xb6\x9c",
  "\xeb\xbf\xa8", "\xec\x88\xb4", "\xec\x92\x80", "\xec\x9b\x8c", "\xec\xa4\x98", "\xec\xad\xa4", "\xec\xb6\xb0", "\xec\xbf\xbc",
  "\xed\x89\x88", "\xed\x92\x94", "\xed\x9b\xa0"
};

static inline const char *
grn_nfkc50_compose_prefix_e185af(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe1 :
      switch (utf8[1]) {
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x92) {
          return grn_nfkc50_compose_prefix_e185af_table_e184[utf8[2] - 0x80];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_e185b0_table_e184[] = {
  "\xea\xb6\xa4", "\xea\xbf\xb0", "\xeb\x88\xbc", "\xeb\x92\x88", "\xeb\x9b\x94", "\xeb\xa4\xa0", "\xeb\xad\xac", "\xeb\xb6\xb8",
  "\xec\x80\x84", "\xec\x89\x90", "\xec\x92\x9c", "\xec\x9b\xa8", "\xec\xa4\xb4", "\xec\xae\x80", "\xec\xb7\x8c", "\xed\x80\x98",
  "\xed\x89\xa4", "\xed\x92\xb0", "\xed\x9b\xbc"
};

static inline const char *
grn_nfkc50_compose_prefix_e185b0(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe1 :
      switch (utf8[1]) {
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x92) {
          return grn_nfkc50_compose_prefix_e185b0_table_e184[utf8[2] - 0x80];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_e185b1_table_e184[] = {
  "\xea\xb7\x80", "\xeb\x80\x8c", "\xeb\x89\x98", "\xeb\x92\xa4", "\xeb\x9b\xb0", "\xeb\xa4\xbc", "\xeb\xae\x88", "\xeb\xb7\x94",
  "\xec\x80\xa0", "\xec\x89\xac", "\xec\x92\xb8", "\xec\x9c\x84", "\xec\xa5\x90", "\xec\xae\x9c", "\xec\xb7\xa8", "\xed\x80\xb4",
  "\xed\x8a\x80", "\xed\x93\x8c", "\xed\x9c\x98"
};

static inline const char *
grn_nfkc50_compose_prefix_e185b1(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe1 :
      switch (utf8[1]) {
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x92) {
          return grn_nfkc50_compose_prefix_e185b1_table_e184[utf8[2] - 0x80];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_e185b2_table_e184[] = {
  "\xea\xb7\x9c", "\xeb\x80\xa8", "\xeb\x89\xb4", "\xeb\x93\x80", "\xeb\x9c\x8c", "\xeb\xa5\x98", "\xeb\xae\xa4", "\xeb\xb7\xb0",
  "\xec\x80\xbc", "\xec\x8a\x88", "\xec\x93\x94", "\xec\x9c\xa0", "\xec\xa5\xac", "\xec\xae\xb8", "\xec\xb8\x84", "\xed\x81\x90",
  "\xed\x8a\x9c", "\xed\x93\xa8", "\xed\x9c\xb4"
};

static inline const char *
grn_nfkc50_compose_prefix_e185b2(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe1 :
      switch (utf8[1]) {
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x92) {
          return grn_nfkc50_compose_prefix_e185b2_table_e184[utf8[2] - 0x80];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_e185b3_table_e184[] = {
  "\xea\xb7\xb8", "\xeb\x81\x84", "\xeb\x8a\x90", "\xeb\x93\x9c", "\xeb\x9c\xa8", "\xeb\xa5\xb4", "\xeb\xaf\x80", "\xeb\xb8\x8c",
  "\xec\x81\x98", "\xec\x8a\xa4", "\xec\x93\xb0", "\xec\x9c\xbc", "\xec\xa6\x88", "\xec\xaf\x94", "\xec\xb8\xa0", "\xed\x81\xac",
  "\xed\x8a\xb8", "\xed\x94\x84", "\xed\x9d\x90"
};

static inline const char *
grn_nfkc50_compose_prefix_e185b3(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe1 :
      switch (utf8[1]) {
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x92) {
          return grn_nfkc50_compose_prefix_e185b3_table_e184[utf8[2] - 0x80];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_e185b4_table_e184[] = {
  "\xea\xb8\x94", "\xeb\x81\xa0", "\xeb\x8a\xac", "\xeb\x93\xb8", "\xeb\x9d\x84", "\xeb\xa6\x90", "\xeb\xaf\x9c", "\xeb\xb8\xa8",
  "\xec\x81\xb4", "\xec\x8b\x80", "\xec\x94\x8c", "\xec\x9d\x98", "\xec\xa6\xa4", "\xec\xaf\xb0", "\xec\xb8\xbc", "\xed\x82\x88",
  "\xed\x8b\x94", "\xed\x94\xa0", "\xed\x9d\xac"
};

static inline const char *
grn_nfkc50_compose_prefix_e185b4(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe1 :
      switch (utf8[1]) {
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x92) {
          return grn_nfkc50_compose_prefix_e185b4_table_e184[utf8[2] - 0x80];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc50_compose_prefix_e185b5_table_e184[] = {
  "\xea\xb8\xb0", "\xeb\x81\xbc", "\xeb\x8b\x88", "\xeb\x94\x94", "\xeb\x9d\xa0", "\xeb\xa6\xac", "\xeb\xaf\xb8", "\xeb\xb9\x84",
  "\xec\x82\x90", "\xec\x8b\x9c", "\xec\x94\xa8", "\xec\x9d\xb4", "\xec\xa7\x80", "\xec\xb0\x8c", "\xec\xb9\x98", "\xed\x82\xa4",
  "\xed\x8b\xb0", "\xed\x94\xbc", "\xed\x9e\x88"
};

static inline const char *
grn_nfkc50_compose_prefix_e185b5(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe1 :
      switch (utf8[1]) {
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x92) {
          return grn_nfkc50_compose_prefix_e185b5_table_e184[utf8[2] - 0x80];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

const char *
grn_nfkc50_compose(const unsigned char *prefix_utf8, const unsigned char *suffix_utf8)
{
  {
    switch (suffix_utf8[0]) {
    case 0xcc :
      switch (suffix_utf8[1]) {
      case 0x80 :
        return grn_nfkc50_compose_prefix_cc80(prefix_utf8);
      case 0x81 :
        return grn_nfkc50_compose_prefix_cc81(prefix_utf8);
      case 0x82 :
        return grn_nfkc50_compose_prefix_cc82(prefix_utf8);
      case 0x83 :
        return grn_nfkc50_compose_prefix_cc83(prefix_utf8);
      case 0x88 :
        return grn_nfkc50_compose_prefix_cc88(prefix_utf8);
      case 0x8a :
        return grn_nfkc50_compose_prefix_cc8a(prefix_utf8);
      case 0xa7 :
        return grn_nfkc50_compose_prefix_cca7(prefix_utf8);
      case 0x84 :
        return grn_nfkc50_compose_prefix_cc84(prefix_utf8);
      case 0x86 :
        return grn_nfkc50_compose_prefix_cc86(prefix_utf8);
      case 0xa8 :
        return grn_nfkc50_compose_prefix_cca8(prefix_utf8);
      case 0x87 :
        return grn_nfkc50_compose_prefix_cc87(prefix_utf8);
      case 0x8c :
        return grn_nfkc50_compose_prefix_cc8c(prefix_utf8);
      case 0x8b :
        return grn_nfkc50_compose_prefix_cc8b(prefix_utf8);
      case 0x9b :
        return grn_nfkc50_compose_prefix_cc9b(prefix_utf8);
      case 0x8f :
        return grn_nfkc50_compose_prefix_cc8f(prefix_utf8);
      case 0x91 :
        return grn_nfkc50_compose_prefix_cc91(prefix_utf8);
      case 0xa6 :
        return grn_nfkc50_compose_prefix_cca6(prefix_utf8);
      case 0xa5 :
        return grn_nfkc50_compose_prefix_cca5(prefix_utf8);
      case 0xa3 :
        return grn_nfkc50_compose_prefix_cca3(prefix_utf8);
      case 0xb1 :
        return grn_nfkc50_compose_prefix_ccb1(prefix_utf8);
      case 0xad :
        return grn_nfkc50_compose_prefix_ccad(prefix_utf8);
      case 0xb0 :
        return grn_nfkc50_compose_prefix_ccb0(prefix_utf8);
      case 0xae :
        return grn_nfkc50_compose_prefix_ccae(prefix_utf8);
      case 0xa4 :
        return grn_nfkc50_compose_prefix_cca4(prefix_utf8);
      case 0x89 :
        return grn_nfkc50_compose_prefix_cc89(prefix_utf8);
      case 0x93 :
        return grn_nfkc50_compose_prefix_cc93(prefix_utf8);
      case 0x94 :
        return grn_nfkc50_compose_prefix_cc94(prefix_utf8);
      case 0xb8 :
        return grn_nfkc50_compose_prefix_ccb8(prefix_utf8);
      default :
        return NULL;
      }
      break;
    case 0xcd :
      switch (suffix_utf8[1]) {
      case 0x82 :
        return grn_nfkc50_compose_prefix_cd82(prefix_utf8);
      case 0x85 :
        return grn_nfkc50_compose_prefix_cd85(prefix_utf8);
      default :
        return NULL;
      }
      break;
    case 0xd9 :
      switch (suffix_utf8[1]) {
      case 0x93 :
        return grn_nfkc50_compose_prefix_d993(prefix_utf8);
      case 0x94 :
        return grn_nfkc50_compose_prefix_d994(prefix_utf8);
      case 0x95 :
        return grn_nfkc50_compose_prefix_d995(prefix_utf8);
      default :
        return NULL;
      }
      break;
    case 0xe0 :
      switch (suffix_utf8[1]) {
      case 0xa4 :
        switch (suffix_utf8[2]) {
        case 0xbc :
          return grn_nfkc50_compose_prefix_e0a4bc(prefix_utf8);
        default :
          return NULL;
        }
        break;
      case 0xa6 :
        switch (suffix_utf8[2]) {
        case 0xbe :
          return grn_nfkc50_compose_prefix_e0a6be(prefix_utf8);
        default :
          return NULL;
        }
        break;
      case 0xa7 :
        switch (suffix_utf8[2]) {
        case 0x97 :
          return grn_nfkc50_compose_prefix_e0a797(prefix_utf8);
        default :
          return NULL;
        }
        break;
      case 0xac :
        switch (suffix_utf8[2]) {
        case 0xbe :
          return grn_nfkc50_compose_prefix_e0acbe(prefix_utf8);
        default :
          return NULL;
        }
        break;
      case 0xad :
        switch (suffix_utf8[2]) {
        case 0x96 :
          return grn_nfkc50_compose_prefix_e0ad96(prefix_utf8);
        case 0x97 :
          return grn_nfkc50_compose_prefix_e0ad97(prefix_utf8);
        default :
          return NULL;
        }
        break;
      case 0xae :
        switch (suffix_utf8[2]) {
        case 0xbe :
          return grn_nfkc50_compose_prefix_e0aebe(prefix_utf8);
        default :
          return NULL;
        }
        break;
      case 0xaf :
        switch (suffix_utf8[2]) {
        case 0x97 :
          return grn_nfkc50_compose_prefix_e0af97(prefix_utf8);
        default :
          return NULL;
        }
        break;
      case 0xb1 :
        switch (suffix_utf8[2]) {
        case 0x96 :
          return grn_nfkc50_compose_prefix_e0b196(prefix_utf8);
        default :
          return NULL;
        }
        break;
      case 0xb3 :
        switch (suffix_utf8[2]) {
        case 0x95 :
          return grn_nfkc50_compose_prefix_e0b395(prefix_utf8);
        case 0x96 :
          return grn_nfkc50_compose_prefix_e0b396(prefix_utf8);
        case 0x82 :
          return grn_nfkc50_compose_prefix_e0b382(prefix_utf8);
        default :
          return NULL;
        }
        break;
      case 0xb4 :
        switch (suffix_utf8[2]) {
        case 0xbe :
          return grn_nfkc50_compose_prefix_e0b4be(prefix_utf8);
        default :
          return NULL;
        }
        break;
      case 0xb5 :
        switch (suffix_utf8[2]) {
        case 0x97 :
          return grn_nfkc50_compose_prefix_e0b597(prefix_utf8);
        default :
          return NULL;
        }
        break;
      case 0xb7 :
        switch (suffix_utf8[2]) {
        case 0x8a :
          return grn_nfkc50_compose_prefix_e0b78a(prefix_utf8);
        case 0x8f :
          return grn_nfkc50_compose_prefix_e0b78f(prefix_utf8);
        case 0x9f :
          return grn_nfkc50_compose_prefix_e0b79f(prefix_utf8);
        default :
          return NULL;
        }
        break;
      default :
        break;
      }
      break;
    case 0xe1 :
      switch (suffix_utf8[1]) {
      case 0x80 :
        switch (suffix_utf8[2]) {
        case 0xae :
          return grn_nfkc50_compose_prefix_e180ae(prefix_utf8);
        default :
          return NULL;
        }
        break;
      case 0x85 :
        switch (suffix_utf8[2]) {
        case 0xa1 :
          return grn_nfkc50_compose_prefix_e185a1(prefix_utf8);
        case 0xa2 :
          return grn_nfkc50_compose_prefix_e185a2(prefix_utf8);
        case 0xa3 :
          return grn_nfkc50_compose_prefix_e185a3(prefix_utf8);
        case 0xa4 :
          return grn_nfkc50_compose_prefix_e185a4(prefix_utf8);
        case 0xa5 :
          return grn_nfkc50_compose_prefix_e185a5(prefix_utf8);
        case 0xa6 :
          return grn_nfkc50_compose_prefix_e185a6(prefix_utf8);
        case 0xa7 :
          return grn_nfkc50_compose_prefix_e185a7(prefix_utf8);
        case 0xa8 :
          return grn_nfkc50_compose_prefix_e185a8(prefix_utf8);
        case 0xa9 :
          return grn_nfkc50_compose_prefix_e185a9(prefix_utf8);
        case 0xaa :
          return grn_nfkc50_compose_prefix_e185aa(prefix_utf8);
        case 0xab :
          return grn_nfkc50_compose_prefix_e185ab(prefix_utf8);
        case 0xac :
          return grn_nfkc50_compose_prefix_e185ac(prefix_utf8);
        case 0xad :
          return grn_nfkc50_compose_prefix_e185ad(prefix_utf8);
        case 0xae :
          return grn_nfkc50_compose_prefix_e185ae(prefix_utf8);
        case 0xaf :
          return grn_nfkc50_compose_prefix_e185af(prefix_utf8);
        case 0xb0 :
          return grn_nfkc50_compose_prefix_e185b0(prefix_utf8);
        case 0xb1 :
          return grn_nfkc50_compose_prefix_e185b1(prefix_utf8);
        case 0xb2 :
          return grn_nfkc50_compose_prefix_e185b2(prefix_utf8);
        case 0xb3 :
          return grn_nfkc50_compose_prefix_e185b3(prefix_utf8);
        case 0xb4 :
          return grn_nfkc50_compose_prefix_e185b4(prefix_utf8);
        case 0xb5 :
          return grn_nfkc50_compose_prefix_e185b5(prefix_utf8);
        default :
          return NULL;
        }
        break;
      case 0x86 :
        switch (suffix_utf8[2]) {
        case 0xa8 :
          return grn_nfkc50_compose_prefix_e186a8(prefix_utf8);
        case 0xa9 :
          return grn_nfkc50_compose_prefix_e186a9(prefix_utf8);
        case 0xaa :
          return grn_nfkc50_compose_prefix_e186aa(prefix_utf8);
        case 0xab :
          return grn_nfkc50_compose_prefix_e186ab(prefix_utf8);
        case 0xac :
          return grn_nfkc50_compose_prefix_e186ac(prefix_utf8);
        case 0xad :
          return grn_nfkc50_compose_prefix_e186ad(prefix_utf8);
        case 0xae :
          return grn_nfkc50_compose_prefix_e186ae(prefix_utf8);
        case 0xaf :
          return grn_nfkc50_compose_prefix_e186af(prefix_utf8);
        case 0xb0 :
          return grn_nfkc50_compose_prefix_e186b0(prefix_utf8);
        case 0xb1 :
          return grn_nfkc50_compose_prefix_e186b1(prefix_utf8);
        case 0xb2 :
          return grn_nfkc50_compose_prefix_e186b2(prefix_utf8);
        case 0xb3 :
          return grn_nfkc50_compose_prefix_e186b3(prefix_utf8);
        case 0xb4 :
          return grn_nfkc50_compose_prefix_e186b4(prefix_utf8);
        case 0xb5 :
          return grn_nfkc50_compose_prefix_e186b5(prefix_utf8);
        case 0xb6 :
          return grn_nfkc50_compose_prefix_e186b6(prefix_utf8);
        case 0xb7 :
          return grn_nfkc50_compose_prefix_e186b7(prefix_utf8);
        case 0xb8 :
          return grn_nfkc50_compose_prefix_e186b8(prefix_utf8);
        case 0xb9 :
          return grn_nfkc50_compose_prefix_e186b9(prefix_utf8);
        case 0xba :
          return grn_nfkc50_compose_prefix_e186ba(prefix_utf8);
        case 0xbb :
          return grn_nfkc50_compose_prefix_e186bb(prefix_utf8);
        case 0xbc :
          return grn_nfkc50_compose_prefix_e186bc(prefix_utf8);
        case 0xbd :
          return grn_nfkc50_compose_prefix_e186bd(prefix_utf8);
        case 0xbe :
          return grn_nfkc50_compose_prefix_e186be(prefix_utf8);
        case 0xbf :
          return grn_nfkc50_compose_prefix_e186bf(prefix_utf8);
        default :
          return NULL;
        }
        break;
      case 0x87 :
        switch (suffix_utf8[2]) {
        case 0x80 :
          return grn_nfkc50_compose_prefix_e18780(prefix_utf8);
        case 0x81 :
          return grn_nfkc50_compose_prefix_e18781(prefix_utf8);
        case 0x82 :
          return grn_nfkc50_compose_prefix_e18782(prefix_utf8);
        default :
          return NULL;
        }
        break;
      case 0xac :
        switch (suffix_utf8[2]) {
        case 0xb5 :
          return grn_nfkc50_compose_prefix_e1acb5(prefix_utf8);
        default :
          return NULL;
        }
        break;
      default :
        break;
      }
      break;
    case 0xe3 :
      switch (suffix_utf8[1]) {
      case 0x82 :
        switch (suffix_utf8[2]) {
        case 0x99 :
          return grn_nfkc50_compose_prefix_e38299(prefix_utf8);
        case 0x9a :
          return grn_nfkc50_compose_prefix_e3829a(prefix_utf8);
        default :
          return NULL;
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

#endif /* GRN_WITH_NFKC */

