/*-------------------------------------------------------------------------
This is an automatically generated file: do not edit
Generated by ubconfc at Mon Feb  7 20:26:56 CET 2011
-------------------------------------------------------------------------*/

#include "WCsubst.h"

/* Unicode general categories, listed in the same order as in the Unicode
 * standard -- this must be the same order as in GHC.Unicode.
 */

enum {
    NUMCAT_LU,  /* Letter, Uppercase */
    NUMCAT_LL,  /* Letter, Lowercase */
    NUMCAT_LT,  /* Letter, Titlecase */
    NUMCAT_LM,  /* Letter, Modifier */
    NUMCAT_LO,  /* Letter, Other */
    NUMCAT_MN,  /* Mark, Non-Spacing */
    NUMCAT_MC,  /* Mark, Spacing Combining */
    NUMCAT_ME,  /* Mark, Enclosing */
    NUMCAT_ND,  /* Number, Decimal */
    NUMCAT_NL,  /* Number, Letter */
    NUMCAT_NO,  /* Number, Other */
    NUMCAT_PC,  /* Punctuation, Connector */
    NUMCAT_PD,  /* Punctuation, Dash */
    NUMCAT_PS,  /* Punctuation, Open */
    NUMCAT_PE,  /* Punctuation, Close */
    NUMCAT_PI,  /* Punctuation, Initial quote */
    NUMCAT_PF,  /* Punctuation, Final quote */
    NUMCAT_PO,  /* Punctuation, Other */
    NUMCAT_SM,  /* Symbol, Math */
    NUMCAT_SC,  /* Symbol, Currency */
    NUMCAT_SK,  /* Symbol, Modifier */
    NUMCAT_SO,  /* Symbol, Other */
    NUMCAT_ZS,  /* Separator, Space */
    NUMCAT_ZL,  /* Separator, Line */
    NUMCAT_ZP,  /* Separator, Paragraph */
    NUMCAT_CC,  /* Other, Control */
    NUMCAT_CF,  /* Other, Format */
    NUMCAT_CS,  /* Other, Surrogate */
    NUMCAT_CO,  /* Other, Private Use */
    NUMCAT_CN   /* Other, Not Assigned */
};

struct _convrule_ 
{ 
	unsigned int category;
	unsigned int catnumber;
	int possible;
	int updist;
	int lowdist; 
	int titledist;
};

struct _charblock_ 
{ 
	int start;
	int length;
	const struct _convrule_ *rule;
};

#define GENCAT_LO 262144
#define GENCAT_PC 2048
#define GENCAT_PD 128
#define GENCAT_MN 2097152
#define GENCAT_PE 32
#define GENCAT_NL 16777216
#define GENCAT_PF 131072
#define GENCAT_LT 524288
#define GENCAT_NO 65536
#define GENCAT_LU 512
#define GENCAT_PI 16384
#define GENCAT_SC 8
#define GENCAT_PO 4
#define GENCAT_PS 16
#define GENCAT_SK 1024
#define GENCAT_SM 64
#define GENCAT_SO 8192
#define GENCAT_CC 1
#define GENCAT_CF 32768
#define GENCAT_CO 268435456
#define GENCAT_ZL 33554432
#define GENCAT_CS 134217728
#define GENCAT_ZP 67108864
#define GENCAT_ZS 2
#define GENCAT_MC 8388608
#define GENCAT_ME 4194304
#define GENCAT_ND 256
#define GENCAT_LL 4096
#define GENCAT_LM 1048576
#define MAX_UNI_CHAR 1114109
#define NUM_BLOCKS 2783
#define NUM_CONVBLOCKS 1230
#define NUM_SPACEBLOCKS 8
#define NUM_LAT1BLOCKS 63
#define NUM_RULES 167
static const struct _convrule_ rule160={GENCAT_LL, NUMCAT_LL, 1, -7264, 0, -7264};
static const struct _convrule_ rule36={GENCAT_LU, NUMCAT_LU, 1, 0, 211, 0};
static const struct _convrule_ rule25={GENCAT_LU, NUMCAT_LU, 1, 0, -121, 0};
static const struct _convrule_ rule18={GENCAT_LL, NUMCAT_LL, 1, 743, 0, 743};
static const struct _convrule_ rule108={GENCAT_LU, NUMCAT_LU, 1, 0, 80, 0};
static const struct _convrule_ rule50={GENCAT_LL, NUMCAT_LL, 1, -79, 0, -79};
static const struct _convrule_ rule106={GENCAT_LL, NUMCAT_LL, 1, -96, 0, -96};
static const struct _convrule_ rule79={GENCAT_LL, NUMCAT_LL, 1, -69, 0, -69};
static const struct _convrule_ rule126={GENCAT_LL, NUMCAT_LL, 1, 128, 0, 128};
static const struct _convrule_ rule119={GENCAT_LL, NUMCAT_LL, 1, -59, 0, -59};
static const struct _convrule_ rule102={GENCAT_LL, NUMCAT_LL, 1, -86, 0, -86};
static const struct _convrule_ rule38={GENCAT_LL, NUMCAT_LL, 1, 163, 0, 163};
static const struct _convrule_ rule113={GENCAT_LL, NUMCAT_LL, 1, -48, 0, -48};
static const struct _convrule_ rule133={GENCAT_LL, NUMCAT_LL, 1, -7205, 0, -7205};
static const struct _convrule_ rule128={GENCAT_LL, NUMCAT_LL, 1, 126, 0, 126};
static const struct _convrule_ rule97={GENCAT_LL, NUMCAT_LL, 1, -57, 0, -57};
static const struct _convrule_ rule161={GENCAT_LU, NUMCAT_LU, 1, 0, -35332, 0};
static const struct _convrule_ rule136={GENCAT_LU, NUMCAT_LU, 1, 0, -112, 0};
static const struct _convrule_ rule99={GENCAT_LL, NUMCAT_LL, 1, -47, 0, -47};
static const struct _convrule_ rule90={GENCAT_LL, NUMCAT_LL, 1, -38, 0, -38};
static const struct _convrule_ rule32={GENCAT_LU, NUMCAT_LU, 1, 0, 202, 0};
static const struct _convrule_ rule145={GENCAT_LL, NUMCAT_LL, 1, -28, 0, -28};
static const struct _convrule_ rule93={GENCAT_LL, NUMCAT_LL, 1, -64, 0, -64};
static const struct _convrule_ rule91={GENCAT_LL, NUMCAT_LL, 1, -37, 0, -37};
static const struct _convrule_ rule60={GENCAT_LU, NUMCAT_LU, 1, 0, 71, 0};
static const struct _convrule_ rule100={GENCAT_LL, NUMCAT_LL, 1, -54, 0, -54};
static const struct _convrule_ rule94={GENCAT_LL, NUMCAT_LL, 1, -63, 0, -63};
static const struct _convrule_ rule35={GENCAT_LL, NUMCAT_LL, 1, 97, 0, 97};
static const struct _convrule_ rule149={GENCAT_SO, NUMCAT_SO, 1, -26, 0, -26};
static const struct _convrule_ rule103={GENCAT_LL, NUMCAT_LL, 1, -80, 0, -80};
static const struct _convrule_ rule96={GENCAT_LL, NUMCAT_LL, 1, -62, 0, -62};
static const struct _convrule_ rule81={GENCAT_LL, NUMCAT_LL, 1, -71, 0, -71};
static const struct _convrule_ rule9={GENCAT_LU, NUMCAT_LU, 1, 0, 32, 0};
static const struct _convrule_ rule147={GENCAT_NL, NUMCAT_NL, 1, -16, 0, -16};
static const struct _convrule_ rule143={GENCAT_LU, NUMCAT_LU, 1, 0, -8262, 0};
static const struct _convrule_ rule127={GENCAT_LL, NUMCAT_LL, 1, 112, 0, 112};
static const struct _convrule_ rule124={GENCAT_LL, NUMCAT_LL, 1, 86, 0, 86};
static const struct _convrule_ rule40={GENCAT_LL, NUMCAT_LL, 1, 130, 0, 130};
static const struct _convrule_ rule20={GENCAT_LL, NUMCAT_LL, 1, 121, 0, 121};
static const struct _convrule_ rule158={GENCAT_LU, NUMCAT_LU, 1, 0, -10782, 0};
static const struct _convrule_ rule111={GENCAT_LL, NUMCAT_LL, 1, -15, 0, -15};
static const struct _convrule_ rule12={GENCAT_LL, NUMCAT_LL, 1, -32, 0, -32};
static const struct _convrule_ rule85={GENCAT_MN, NUMCAT_MN, 1, 84, 0, 84};
static const struct _convrule_ rule166={GENCAT_LL, NUMCAT_LL, 1, -40, 0, -40};
static const struct _convrule_ rule125={GENCAT_LL, NUMCAT_LL, 1, 100, 0, 100};
static const struct _convrule_ rule123={GENCAT_LL, NUMCAT_LL, 1, 74, 0, 74};
static const struct _convrule_ rule92={GENCAT_LL, NUMCAT_LL, 1, -31, 0, -31};
static const struct _convrule_ rule56={GENCAT_LU, NUMCAT_LU, 1, 0, 10792, 0};
static const struct _convrule_ rule46={GENCAT_LL, NUMCAT_LL, 1, 56, 0, 56};
static const struct _convrule_ rule33={GENCAT_LU, NUMCAT_LU, 1, 0, 203, 0};
static const struct _convrule_ rule150={GENCAT_LU, NUMCAT_LU, 1, 0, -10743, 0};
static const struct _convrule_ rule39={GENCAT_LU, NUMCAT_LU, 1, 0, 213, 0};
static const struct _convrule_ rule57={GENCAT_LL, NUMCAT_LL, 1, 10815, 0, 10815};
static const struct _convrule_ rule157={GENCAT_LU, NUMCAT_LU, 1, 0, -10783, 0};
static const struct _convrule_ rule55={GENCAT_LU, NUMCAT_LU, 1, 0, -163, 0};
static const struct _convrule_ rule151={GENCAT_LU, NUMCAT_LU, 1, 0, -3814, 0};
static const struct _convrule_ rule142={GENCAT_LU, NUMCAT_LU, 1, 0, -8383, 0};
static const struct _convrule_ rule101={GENCAT_LL, NUMCAT_LL, 1, -8, 0, -8};
static const struct _convrule_ rule89={GENCAT_LU, NUMCAT_LU, 1, 0, 63, 0};
static const struct _convrule_ rule41={GENCAT_LU, NUMCAT_LU, 1, 0, 214, 0};
static const struct _convrule_ rule118={GENCAT_LL, NUMCAT_LL, 1, 3814, 0, 3814};
static const struct _convrule_ rule26={GENCAT_LL, NUMCAT_LL, 1, -300, 0, -300};
static const struct _convrule_ rule159={GENCAT_LU, NUMCAT_LU, 1, 0, -10815, 0};
static const struct _convrule_ rule115={GENCAT_LU, NUMCAT_LU, 1, 0, 7264, 0};
static const struct _convrule_ rule22={GENCAT_LL, NUMCAT_LL, 1, -1, 0, -1};
static const struct _convrule_ rule120={GENCAT_LU, NUMCAT_LU, 1, 0, -7615, 0};
static const struct _convrule_ rule49={GENCAT_LL, NUMCAT_LL, 1, -2, 0, -1};
static const struct _convrule_ rule131={GENCAT_LU, NUMCAT_LU, 1, 0, -74, 0};
static const struct _convrule_ rule88={GENCAT_LU, NUMCAT_LU, 1, 0, 64, 0};
static const struct _convrule_ rule30={GENCAT_LU, NUMCAT_LU, 1, 0, 205, 0};
static const struct _convrule_ rule117={GENCAT_LL, NUMCAT_LL, 1, 35332, 0, 35332};
static const struct _convrule_ rule110={GENCAT_LU, NUMCAT_LU, 1, 0, 15, 0};
static const struct _convrule_ rule130={GENCAT_LL, NUMCAT_LL, 1, 9, 0, 9};
static const struct _convrule_ rule121={GENCAT_LL, NUMCAT_LL, 1, 8, 0, 8};
static const struct _convrule_ rule95={GENCAT_LU, NUMCAT_LU, 1, 0, 8, 0};
static const struct _convrule_ rule54={GENCAT_LU, NUMCAT_LU, 1, 0, 10795, 0};
static const struct _convrule_ rule29={GENCAT_LU, NUMCAT_LU, 1, 0, 206, 0};
static const struct _convrule_ rule138={GENCAT_LU, NUMCAT_LU, 1, 0, -126, 0};
static const struct _convrule_ rule104={GENCAT_LL, NUMCAT_LL, 1, 7, 0, 7};
static const struct _convrule_ rule58={GENCAT_LU, NUMCAT_LU, 1, 0, -195, 0};
static const struct _convrule_ rule146={GENCAT_NL, NUMCAT_NL, 1, 0, 16, 0};
static const struct _convrule_ rule148={GENCAT_SO, NUMCAT_SO, 1, 0, 26, 0};
static const struct _convrule_ rule70={GENCAT_LL, NUMCAT_LL, 1, 42280, 0, 42280};
static const struct _convrule_ rule107={GENCAT_LU, NUMCAT_LU, 1, 0, -7, 0};
static const struct _convrule_ rule52={GENCAT_LU, NUMCAT_LU, 1, 0, -56, 0};
static const struct _convrule_ rule153={GENCAT_LL, NUMCAT_LL, 1, -10795, 0, -10795};
static const struct _convrule_ rule152={GENCAT_LU, NUMCAT_LU, 1, 0, -10727, 0};
static const struct _convrule_ rule141={GENCAT_LU, NUMCAT_LU, 1, 0, -7517, 0};
static const struct _convrule_ rule34={GENCAT_LU, NUMCAT_LU, 1, 0, 207, 0};
static const struct _convrule_ rule164={GENCAT_CO, NUMCAT_CO, 0, 0, 0, 0};
static const struct _convrule_ rule84={GENCAT_MN, NUMCAT_MN, 0, 0, 0, 0};
static const struct _convrule_ rule16={GENCAT_CF, NUMCAT_CF, 0, 0, 0, 0};
static const struct _convrule_ rule45={GENCAT_LO, NUMCAT_LO, 0, 0, 0, 0};
static const struct _convrule_ rule13={GENCAT_SO, NUMCAT_SO, 0, 0, 0, 0};
static const struct _convrule_ rule17={GENCAT_NO, NUMCAT_NO, 0, 0, 0, 0};
static const struct _convrule_ rule8={GENCAT_ND, NUMCAT_ND, 0, 0, 0, 0};
static const struct _convrule_ rule14={GENCAT_LL, NUMCAT_LL, 0, 0, 0, 0};
static const struct _convrule_ rule98={GENCAT_LU, NUMCAT_LU, 0, 0, 0, 0};
static const struct _convrule_ rule6={GENCAT_SM, NUMCAT_SM, 0, 0, 0, 0};
static const struct _convrule_ rule114={GENCAT_MC, NUMCAT_MC, 0, 0, 0, 0};
static const struct _convrule_ rule2={GENCAT_PO, NUMCAT_PO, 0, 0, 0, 0};
static const struct _convrule_ rule116={GENCAT_NL, NUMCAT_NL, 0, 0, 0, 0};
static const struct _convrule_ rule3={GENCAT_SC, NUMCAT_SC, 0, 0, 0, 0};
static const struct _convrule_ rule10={GENCAT_SK, NUMCAT_SK, 0, 0, 0, 0};
static const struct _convrule_ rule83={GENCAT_LM, NUMCAT_LM, 0, 0, 0, 0};
static const struct _convrule_ rule5={GENCAT_PE, NUMCAT_PE, 0, 0, 0, 0};
static const struct _convrule_ rule4={GENCAT_PS, NUMCAT_PS, 0, 0, 0, 0};
static const struct _convrule_ rule11={GENCAT_PC, NUMCAT_PC, 0, 0, 0, 0};
static const struct _convrule_ rule7={GENCAT_PD, NUMCAT_PD, 0, 0, 0, 0};
static const struct _convrule_ rule163={GENCAT_CS, NUMCAT_CS, 0, 0, 0, 0};
static const struct _convrule_ rule109={GENCAT_ME, NUMCAT_ME, 0, 0, 0, 0};
static const struct _convrule_ rule1={GENCAT_ZS, NUMCAT_ZS, 0, 0, 0, 0};
static const struct _convrule_ rule19={GENCAT_PF, NUMCAT_PF, 0, 0, 0, 0};
static const struct _convrule_ rule15={GENCAT_PI, NUMCAT_PI, 0, 0, 0, 0};
static const struct _convrule_ rule140={GENCAT_ZP, NUMCAT_ZP, 0, 0, 0, 0};
static const struct _convrule_ rule139={GENCAT_ZL, NUMCAT_ZL, 0, 0, 0, 0};
static const struct _convrule_ rule134={GENCAT_LU, NUMCAT_LU, 1, 0, -86, 0};
static const struct _convrule_ rule43={GENCAT_LU, NUMCAT_LU, 1, 0, 217, 0};
static const struct _convrule_ rule0={GENCAT_CC, NUMCAT_CC, 0, 0, 0, 0};
static const struct _convrule_ rule154={GENCAT_LL, NUMCAT_LL, 1, -10792, 0, -10792};
static const struct _convrule_ rule74={GENCAT_LL, NUMCAT_LL, 1, 10749, 0, 10749};
static const struct _convrule_ rule87={GENCAT_LU, NUMCAT_LU, 1, 0, 37, 0};
static const struct _convrule_ rule61={GENCAT_LL, NUMCAT_LL, 1, 10783, 0, 10783};
static const struct _convrule_ rule122={GENCAT_LU, NUMCAT_LU, 1, 0, -8, 0};
static const struct _convrule_ rule129={GENCAT_LT, NUMCAT_LT, 1, 0, -8, 0};
static const struct _convrule_ rule63={GENCAT_LL, NUMCAT_LL, 1, 10782, 0, 10782};
static const struct _convrule_ rule82={GENCAT_LL, NUMCAT_LL, 1, -219, 0, -219};
static const struct _convrule_ rule77={GENCAT_LL, NUMCAT_LL, 1, 10727, 0, 10727};
static const struct _convrule_ rule78={GENCAT_LL, NUMCAT_LL, 1, -218, 0, -218};
static const struct _convrule_ rule71={GENCAT_LL, NUMCAT_LL, 1, -209, 0, -209};
static const struct _convrule_ rule62={GENCAT_LL, NUMCAT_LL, 1, 10780, 0, 10780};
static const struct _convrule_ rule48={GENCAT_LT, NUMCAT_LT, 1, -1, 1, 0};
static const struct _convrule_ rule21={GENCAT_LU, NUMCAT_LU, 1, 0, 1, 0};
static const struct _convrule_ rule137={GENCAT_LU, NUMCAT_LU, 1, 0, -128, 0};
static const struct _convrule_ rule80={GENCAT_LL, NUMCAT_LL, 1, -217, 0, -217};
static const struct _convrule_ rule73={GENCAT_LL, NUMCAT_LL, 1, 10743, 0, 10743};
static const struct _convrule_ rule42={GENCAT_LU, NUMCAT_LU, 1, 0, 218, 0};
static const struct _convrule_ rule69={GENCAT_LL, NUMCAT_LL, 1, -207, 0, -207};
static const struct _convrule_ rule51={GENCAT_LU, NUMCAT_LU, 1, 0, -97, 0};
static const struct _convrule_ rule144={GENCAT_LU, NUMCAT_LU, 1, 0, 28, 0};
static const struct _convrule_ rule65={GENCAT_LL, NUMCAT_LL, 1, -206, 0, -206};
static const struct _convrule_ rule86={GENCAT_LU, NUMCAT_LU, 1, 0, 38, 0};
static const struct _convrule_ rule76={GENCAT_LL, NUMCAT_LL, 1, -214, 0, -214};
static const struct _convrule_ rule66={GENCAT_LL, NUMCAT_LL, 1, -205, 0, -205};
static const struct _convrule_ rule24={GENCAT_LL, NUMCAT_LL, 1, -232, 0, -232};
static const struct _convrule_ rule112={GENCAT_LU, NUMCAT_LU, 1, 0, 48, 0};
static const struct _convrule_ rule132={GENCAT_LT, NUMCAT_LT, 1, 0, -9, 0};
static const struct _convrule_ rule75={GENCAT_LL, NUMCAT_LL, 1, -213, 0, -213};
static const struct _convrule_ rule68={GENCAT_LL, NUMCAT_LL, 1, -203, 0, -203};
static const struct _convrule_ rule135={GENCAT_LU, NUMCAT_LU, 1, 0, -100, 0};
static const struct _convrule_ rule72={GENCAT_LL, NUMCAT_LL, 1, -211, 0, -211};
static const struct _convrule_ rule67={GENCAT_LL, NUMCAT_LL, 1, -202, 0, -202};
static const struct _convrule_ rule47={GENCAT_LU, NUMCAT_LU, 1, 0, 2, 1};
static const struct _convrule_ rule37={GENCAT_LU, NUMCAT_LU, 1, 0, 209, 0};
static const struct _convrule_ rule156={GENCAT_LU, NUMCAT_LU, 1, 0, -10749, 0};
static const struct _convrule_ rule64={GENCAT_LL, NUMCAT_LL, 1, -210, 0, -210};
static const struct _convrule_ rule44={GENCAT_LU, NUMCAT_LU, 1, 0, 219, 0};
static const struct _convrule_ rule28={GENCAT_LU, NUMCAT_LU, 1, 0, 210, 0};
static const struct _convrule_ rule53={GENCAT_LU, NUMCAT_LU, 1, 0, -130, 0};
static const struct _convrule_ rule165={GENCAT_LU, NUMCAT_LU, 1, 0, 40, 0};
static const struct _convrule_ rule162={GENCAT_LU, NUMCAT_LU, 1, 0, -42280, 0};
static const struct _convrule_ rule155={GENCAT_LU, NUMCAT_LU, 1, 0, -10780, 0};
static const struct _convrule_ rule105={GENCAT_LU, NUMCAT_LU, 1, 0, -60, 0};
static const struct _convrule_ rule59={GENCAT_LU, NUMCAT_LU, 1, 0, 69, 0};
static const struct _convrule_ rule31={GENCAT_LU, NUMCAT_LU, 1, 0, 79, 0};
static const struct _convrule_ rule27={GENCAT_LL, NUMCAT_LL, 1, 195, 0, 195};
static const struct _convrule_ rule23={GENCAT_LU, NUMCAT_LU, 1, 0, -199, 0};
static const struct _charblock_ allchars[]={
	{0, 32, &rule0},
	{32, 1, &rule1},
	{33, 3, &rule2},
	{36, 1, &rule3},
	{37, 3, &rule2},
	{40, 1, &rule4},
	{41, 1, &rule5},
	{42, 1, &rule2},
	{43, 1, &rule6},
	{44, 1, &rule2},
	{45, 1, &rule7},
	{46, 2, &rule2},
	{48, 10, &rule8},
	{58, 2, &rule2},
	{60, 3, &rule6},
	{63, 2, &rule2},
	{65, 26, &rule9},
	{91, 1, &rule4},
	{92, 1, &rule2},
	{93, 1, &rule5},
	{94, 1, &rule10},
	{95, 1, &rule11},
	{96, 1, &rule10},
	{97, 26, &rule12},
	{123, 1, &rule4},
	{124, 1, &rule6},
	{125, 1, &rule5},
	{126, 1, &rule6},
	{127, 33, &rule0},
	{160, 1, &rule1},
	{161, 1, &rule2},
	{162, 4, &rule3},
	{166, 2, &rule13},
	{168, 1, &rule10},
	{169, 1, &rule13},
	{170, 1, &rule14},
	{171, 1, &rule15},
	{172, 1, &rule6},
	{173, 1, &rule16},
	{174, 1, &rule13},
	{175, 1, &rule10},
	{176, 1, &rule13},
	{177, 1, &rule6},
	{178, 2, &rule17},
	{180, 1, &rule10},
	{181, 1, &rule18},
	{182, 1, &rule13},
	{183, 1, &rule2},
	{184, 1, &rule10},
	{185, 1, &rule17},
	{186, 1, &rule14},
	{187, 1, &rule19},
	{188, 3, &rule17},
	{191, 1, &rule2},
	{192, 23, &rule9},
	{215, 1, &rule6},
	{216, 7, &rule9},
	{223, 1, &rule14},
	{224, 23, &rule12},
	{247, 1, &rule6},
	{248, 7, &rule12},
	{255, 1, &rule20},
	{256, 1, &rule21},
	{257, 1, &rule22},
	{258, 1, &rule21},
	{259, 1, &rule22},
	{260, 1, &rule21},
	{261, 1, &rule22},
	{262, 1, &rule21},
	{263, 1, &rule22},
	{264, 1, &rule21},
	{265, 1, &rule22},
	{266, 1, &rule21},
	{267, 1, &rule22},
	{268, 1, &rule21},
	{269, 1, &rule22},
	{270, 1, &rule21},
	{271, 1, &rule22},
	{272, 1, &rule21},
	{273, 1, &rule22},
	{274, 1, &rule21},
	{275, 1, &rule22},
	{276, 1, &rule21},
	{277, 1, &rule22},
	{278, 1, &rule21},
	{279, 1, &rule22},
	{280, 1, &rule21},
	{281, 1, &rule22},
	{282, 1, &rule21},
	{283, 1, &rule22},
	{284, 1, &rule21},
	{285, 1, &rule22},
	{286, 1, &rule21},
	{287, 1, &rule22},
	{288, 1, &rule21},
	{289, 1, &rule22},
	{290, 1, &rule21},
	{291, 1, &rule22},
	{292, 1, &rule21},
	{293, 1, &rule22},
	{294, 1, &rule21},
	{295, 1, &rule22},
	{296, 1, &rule21},
	{297, 1, &rule22},
	{298, 1, &rule21},
	{299, 1, &rule22},
	{300, 1, &rule21},
	{301, 1, &rule22},
	{302, 1, &rule21},
	{303, 1, &rule22},
	{304, 1, &rule23},
	{305, 1, &rule24},
	{306, 1, &rule21},
	{307, 1, &rule22},
	{308, 1, &rule21},
	{309, 1, &rule22},
	{310, 1, &rule21},
	{311, 1, &rule22},
	{312, 1, &rule14},
	{313, 1, &rule21},
	{314, 1, &rule22},
	{315, 1, &rule21},
	{316, 1, &rule22},
	{317, 1, &rule21},
	{318, 1, &rule22},
	{319, 1, &rule21},
	{320, 1, &rule22},
	{321, 1, &rule21},
	{322, 1, &rule22},
	{323, 1, &rule21},
	{324, 1, &rule22},
	{325, 1, &rule21},
	{326, 1, &rule22},
	{327, 1, &rule21},
	{328, 1, &rule22},
	{329, 1, &rule14},
	{330, 1, &rule21},
	{331, 1, &rule22},
	{332, 1, &rule21},
	{333, 1, &rule22},
	{334, 1, &rule21},
	{335, 1, &rule22},
	{336, 1, &rule21},
	{337, 1, &rule22},
	{338, 1, &rule21},
	{339, 1, &rule22},
	{340, 1, &rule21},
	{341, 1, &rule22},
	{342, 1, &rule21},
	{343, 1, &rule22},
	{344, 1, &rule21},
	{345, 1, &rule22},
	{346, 1, &rule21},
	{347, 1, &rule22},
	{348, 1, &rule21},
	{349, 1, &rule22},
	{350, 1, &rule21},
	{351, 1, &rule22},
	{352, 1, &rule21},
	{353, 1, &rule22},
	{354, 1, &rule21},
	{355, 1, &rule22},
	{356, 1, &rule21},
	{357, 1, &rule22},
	{358, 1, &rule21},
	{359, 1, &rule22},
	{360, 1, &rule21},
	{361, 1, &rule22},
	{362, 1, &rule21},
	{363, 1, &rule22},
	{364, 1, &rule21},
	{365, 1, &rule22},
	{366, 1, &rule21},
	{367, 1, &rule22},
	{368, 1, &rule21},
	{369, 1, &rule22},
	{370, 1, &rule21},
	{371, 1, &rule22},
	{372, 1, &rule21},
	{373, 1, &rule22},
	{374, 1, &rule21},
	{375, 1, &rule22},
	{376, 1, &rule25},
	{377, 1, &rule21},
	{378, 1, &rule22},
	{379, 1, &rule21},
	{380, 1, &rule22},
	{381, 1, &rule21},
	{382, 1, &rule22},
	{383, 1, &rule26},
	{384, 1, &rule27},
	{385, 1, &rule28},
	{386, 1, &rule21},
	{387, 1, &rule22},
	{388, 1, &rule21},
	{389, 1, &rule22},
	{390, 1, &rule29},
	{391, 1, &rule21},
	{392, 1, &rule22},
	{393, 2, &rule30},
	{395, 1, &rule21},
	{396, 1, &rule22},
	{397, 1, &rule14},
	{398, 1, &rule31},
	{399, 1, &rule32},
	{400, 1, &rule33},
	{401, 1, &rule21},
	{402, 1, &rule22},
	{403, 1, &rule30},
	{404, 1, &rule34},
	{405, 1, &rule35},
	{406, 1, &rule36},
	{407, 1, &rule37},
	{408, 1, &rule21},
	{409, 1, &rule22},
	{410, 1, &rule38},
	{411, 1, &rule14},
	{412, 1, &rule36},
	{413, 1, &rule39},
	{414, 1, &rule40},
	{415, 1, &rule41},
	{416, 1, &rule21},
	{417, 1, &rule22},
	{418, 1, &rule21},
	{419, 1, &rule22},
	{420, 1, &rule21},
	{421, 1, &rule22},
	{422, 1, &rule42},
	{423, 1, &rule21},
	{424, 1, &rule22},
	{425, 1, &rule42},
	{426, 2, &rule14},
	{428, 1, &rule21},
	{429, 1, &rule22},
	{430, 1, &rule42},
	{431, 1, &rule21},
	{432, 1, &rule22},
	{433, 2, &rule43},
	{435, 1, &rule21},
	{436, 1, &rule22},
	{437, 1, &rule21},
	{438, 1, &rule22},
	{439, 1, &rule44},
	{440, 1, &rule21},
	{441, 1, &rule22},
	{442, 1, &rule14},
	{443, 1, &rule45},
	{444, 1, &rule21},
	{445, 1, &rule22},
	{446, 1, &rule14},
	{447, 1, &rule46},
	{448, 4, &rule45},
	{452, 1, &rule47},
	{453, 1, &rule48},
	{454, 1, &rule49},
	{455, 1, &rule47},
	{456, 1, &rule48},
	{457, 1, &rule49},
	{458, 1, &rule47},
	{459, 1, &rule48},
	{460, 1, &rule49},
	{461, 1, &rule21},
	{462, 1, &rule22},
	{463, 1, &rule21},
	{464, 1, &rule22},
	{465, 1, &rule21},
	{466, 1, &rule22},
	{467, 1, &rule21},
	{468, 1, &rule22},
	{469, 1, &rule21},
	{470, 1, &rule22},
	{471, 1, &rule21},
	{472, 1, &rule22},
	{473, 1, &rule21},
	{474, 1, &rule22},
	{475, 1, &rule21},
	{476, 1, &rule22},
	{477, 1, &rule50},
	{478, 1, &rule21},
	{479, 1, &rule22},
	{480, 1, &rule21},
	{481, 1, &rule22},
	{482, 1, &rule21},
	{483, 1, &rule22},
	{484, 1, &rule21},
	{485, 1, &rule22},
	{486, 1, &rule21},
	{487, 1, &rule22},
	{488, 1, &rule21},
	{489, 1, &rule22},
	{490, 1, &rule21},
	{491, 1, &rule22},
	{492, 1, &rule21},
	{493, 1, &rule22},
	{494, 1, &rule21},
	{495, 1, &rule22},
	{496, 1, &rule14},
	{497, 1, &rule47},
	{498, 1, &rule48},
	{499, 1, &rule49},
	{500, 1, &rule21},
	{501, 1, &rule22},
	{502, 1, &rule51},
	{503, 1, &rule52},
	{504, 1, &rule21},
	{505, 1, &rule22},
	{506, 1, &rule21},
	{507, 1, &rule22},
	{508, 1, &rule21},
	{509, 1, &rule22},
	{510, 1, &rule21},
	{511, 1, &rule22},
	{512, 1, &rule21},
	{513, 1, &rule22},
	{514, 1, &rule21},
	{515, 1, &rule22},
	{516, 1, &rule21},
	{517, 1, &rule22},
	{518, 1, &rule21},
	{519, 1, &rule22},
	{520, 1, &rule21},
	{521, 1, &rule22},
	{522, 1, &rule21},
	{523, 1, &rule22},
	{524, 1, &rule21},
	{525, 1, &rule22},
	{526, 1, &rule21},
	{527, 1, &rule22},
	{528, 1, &rule21},
	{529, 1, &rule22},
	{530, 1, &rule21},
	{531, 1, &rule22},
	{532, 1, &rule21},
	{533, 1, &rule22},
	{534, 1, &rule21},
	{535, 1, &rule22},
	{536, 1, &rule21},
	{537, 1, &rule22},
	{538, 1, &rule21},
	{539, 1, &rule22},
	{540, 1, &rule21},
	{541, 1, &rule22},
	{542, 1, &rule21},
	{543, 1, &rule22},
	{544, 1, &rule53},
	{545, 1, &rule14},
	{546, 1, &rule21},
	{547, 1, &rule22},
	{548, 1, &rule21},
	{549, 1, &rule22},
	{550, 1, &rule21},
	{551, 1, &rule22},
	{552, 1, &rule21},
	{553, 1, &rule22},
	{554, 1, &rule21},
	{555, 1, &rule22},
	{556, 1, &rule21},
	{557, 1, &rule22},
	{558, 1, &rule21},
	{559, 1, &rule22},
	{560, 1, &rule21},
	{561, 1, &rule22},
	{562, 1, &rule21},
	{563, 1, &rule22},
	{564, 6, &rule14},
	{570, 1, &rule54},
	{571, 1, &rule21},
	{572, 1, &rule22},
	{573, 1, &rule55},
	{574, 1, &rule56},
	{575, 2, &rule57},
	{577, 1, &rule21},
	{578, 1, &rule22},
	{579, 1, &rule58},
	{580, 1, &rule59},
	{581, 1, &rule60},
	{582, 1, &rule21},
	{583, 1, &rule22},
	{584, 1, &rule21},
	{585, 1, &rule22},
	{586, 1, &rule21},
	{587, 1, &rule22},
	{588, 1, &rule21},
	{589, 1, &rule22},
	{590, 1, &rule21},
	{591, 1, &rule22},
	{592, 1, &rule61},
	{593, 1, &rule62},
	{594, 1, &rule63},
	{595, 1, &rule64},
	{596, 1, &rule65},
	{597, 1, &rule14},
	{598, 2, &rule66},
	{600, 1, &rule14},
	{601, 1, &rule67},
	{602, 1, &rule14},
	{603, 1, &rule68},
	{604, 4, &rule14},
	{608, 1, &rule66},
	{609, 2, &rule14},
	{611, 1, &rule69},
	{612, 1, &rule14},
	{613, 1, &rule70},
	{614, 2, &rule14},
	{616, 1, &rule71},
	{617, 1, &rule72},
	{618, 1, &rule14},
	{619, 1, &rule73},
	{620, 3, &rule14},
	{623, 1, &rule72},
	{624, 1, &rule14},
	{625, 1, &rule74},
	{626, 1, &rule75},
	{627, 2, &rule14},
	{629, 1, &rule76},
	{630, 7, &rule14},
	{637, 1, &rule77},
	{638, 2, &rule14},
	{640, 1, &rule78},
	{641, 2, &rule14},
	{643, 1, &rule78},
	{644, 4, &rule14},
	{648, 1, &rule78},
	{649, 1, &rule79},
	{650, 2, &rule80},
	{652, 1, &rule81},
	{653, 5, &rule14},
	{658, 1, &rule82},
	{659, 1, &rule14},
	{660, 1, &rule45},
	{661, 27, &rule14},
	{688, 18, &rule83},
	{706, 4, &rule10},
	{710, 12, &rule83},
	{722, 14, &rule10},
	{736, 5, &rule83},
	{741, 7, &rule10},
	{748, 1, &rule83},
	{749, 1, &rule10},
	{750, 1, &rule83},
	{751, 17, &rule10},
	{768, 69, &rule84},
	{837, 1, &rule85},
	{838, 42, &rule84},
	{880, 1, &rule21},
	{881, 1, &rule22},
	{882, 1, &rule21},
	{883, 1, &rule22},
	{884, 1, &rule83},
	{885, 1, &rule10},
	{886, 1, &rule21},
	{887, 1, &rule22},
	{890, 1, &rule83},
	{891, 3, &rule40},
	{894, 1, &rule2},
	{900, 2, &rule10},
	{902, 1, &rule86},
	{903, 1, &rule2},
	{904, 3, &rule87},
	{908, 1, &rule88},
	{910, 2, &rule89},
	{912, 1, &rule14},
	{913, 17, &rule9},
	{931, 9, &rule9},
	{940, 1, &rule90},
	{941, 3, &rule91},
	{944, 1, &rule14},
	{945, 17, &rule12},
	{962, 1, &rule92},
	{963, 9, &rule12},
	{972, 1, &rule93},
	{973, 2, &rule94},
	{975, 1, &rule95},
	{976, 1, &rule96},
	{977, 1, &rule97},
	{978, 3, &rule98},
	{981, 1, &rule99},
	{982, 1, &rule100},
	{983, 1, &rule101},
	{984, 1, &rule21},
	{985, 1, &rule22},
	{986, 1, &rule21},
	{987, 1, &rule22},
	{988, 1, &rule21},
	{989, 1, &rule22},
	{990, 1, &rule21},
	{991, 1, &rule22},
	{992, 1, &rule21},
	{993, 1, &rule22},
	{994, 1, &rule21},
	{995, 1, &rule22},
	{996, 1, &rule21},
	{997, 1, &rule22},
	{998, 1, &rule21},
	{999, 1, &rule22},
	{1000, 1, &rule21},
	{1001, 1, &rule22},
	{1002, 1, &rule21},
	{1003, 1, &rule22},
	{1004, 1, &rule21},
	{1005, 1, &rule22},
	{1006, 1, &rule21},
	{1007, 1, &rule22},
	{1008, 1, &rule102},
	{1009, 1, &rule103},
	{1010, 1, &rule104},
	{1011, 1, &rule14},
	{1012, 1, &rule105},
	{1013, 1, &rule106},
	{1014, 1, &rule6},
	{1015, 1, &rule21},
	{1016, 1, &rule22},
	{1017, 1, &rule107},
	{1018, 1, &rule21},
	{1019, 1, &rule22},
	{1020, 1, &rule14},
	{1021, 3, &rule53},
	{1024, 16, &rule108},
	{1040, 32, &rule9},
	{1072, 32, &rule12},
	{1104, 16, &rule103},
	{1120, 1, &rule21},
	{1121, 1, &rule22},
	{1122, 1, &rule21},
	{1123, 1, &rule22},
	{1124, 1, &rule21},
	{1125, 1, &rule22},
	{1126, 1, &rule21},
	{1127, 1, &rule22},
	{1128, 1, &rule21},
	{1129, 1, &rule22},
	{1130, 1, &rule21},
	{1131, 1, &rule22},
	{1132, 1, &rule21},
	{1133, 1, &rule22},
	{1134, 1, &rule21},
	{1135, 1, &rule22},
	{1136, 1, &rule21},
	{1137, 1, &rule22},
	{1138, 1, &rule21},
	{1139, 1, &rule22},
	{1140, 1, &rule21},
	{1141, 1, &rule22},
	{1142, 1, &rule21},
	{1143, 1, &rule22},
	{1144, 1, &rule21},
	{1145, 1, &rule22},
	{1146, 1, &rule21},
	{1147, 1, &rule22},
	{1148, 1, &rule21},
	{1149, 1, &rule22},
	{1150, 1, &rule21},
	{1151, 1, &rule22},
	{1152, 1, &rule21},
	{1153, 1, &rule22},
	{1154, 1, &rule13},
	{1155, 5, &rule84},
	{1160, 2, &rule109},
	{1162, 1, &rule21},
	{1163, 1, &rule22},
	{1164, 1, &rule21},
	{1165, 1, &rule22},
	{1166, 1, &rule21},
	{1167, 1, &rule22},
	{1168, 1, &rule21},
	{1169, 1, &rule22},
	{1170, 1, &rule21},
	{1171, 1, &rule22},
	{1172, 1, &rule21},
	{1173, 1, &rule22},
	{1174, 1, &rule21},
	{1175, 1, &rule22},
	{1176, 1, &rule21},
	{1177, 1, &rule22},
	{1178, 1, &rule21},
	{1179, 1, &rule22},
	{1180, 1, &rule21},
	{1181, 1, &rule22},
	{1182, 1, &rule21},
	{1183, 1, &rule22},
	{1184, 1, &rule21},
	{1185, 1, &rule22},
	{1186, 1, &rule21},
	{1187, 1, &rule22},
	{1188, 1, &rule21},
	{1189, 1, &rule22},
	{1190, 1, &rule21},
	{1191, 1, &rule22},
	{1192, 1, &rule21},
	{1193, 1, &rule22},
	{1194, 1, &rule21},
	{1195, 1, &rule22},
	{1196, 1, &rule21},
	{1197, 1, &rule22},
	{1198, 1, &rule21},
	{1199, 1, &rule22},
	{1200, 1, &rule21},
	{1201, 1, &rule22},
	{1202, 1, &rule21},
	{1203, 1, &rule22},
	{1204, 1, &rule21},
	{1205, 1, &rule22},
	{1206, 1, &rule21},
	{1207, 1, &rule22},
	{1208, 1, &rule21},
	{1209, 1, &rule22},
	{1210, 1, &rule21},
	{1211, 1, &rule22},
	{1212, 1, &rule21},
	{1213, 1, &rule22},
	{1214, 1, &rule21},
	{1215, 1, &rule22},
	{1216, 1, &rule110},
	{1217, 1, &rule21},
	{1218, 1, &rule22},
	{1219, 1, &rule21},
	{1220, 1, &rule22},
	{1221, 1, &rule21},
	{1222, 1, &rule22},
	{1223, 1, &rule21},
	{1224, 1, &rule22},
	{1225, 1, &rule21},
	{1226, 1, &rule22},
	{1227, 1, &rule21},
	{1228, 1, &rule22},
	{1229, 1, &rule21},
	{1230, 1, &rule22},
	{1231, 1, &rule111},
	{1232, 1, &rule21},
	{1233, 1, &rule22},
	{1234, 1, &rule21},
	{1235, 1, &rule22},
	{1236, 1, &rule21},
	{1237, 1, &rule22},
	{1238, 1, &rule21},
	{1239, 1, &rule22},
	{1240, 1, &rule21},
	{1241, 1, &rule22},
	{1242, 1, &rule21},
	{1243, 1, &rule22},
	{1244, 1, &rule21},
	{1245, 1, &rule22},
	{1246, 1, &rule21},
	{1247, 1, &rule22},
	{1248, 1, &rule21},
	{1249, 1, &rule22},
	{1250, 1, &rule21},
	{1251, 1, &rule22},
	{1252, 1, &rule21},
	{1253, 1, &rule22},
	{1254, 1, &rule21},
	{1255, 1, &rule22},
	{1256, 1, &rule21},
	{1257, 1, &rule22},
	{1258, 1, &rule21},
	{1259, 1, &rule22},
	{1260, 1, &rule21},
	{1261, 1, &rule22},
	{1262, 1, &rule21},
	{1263, 1, &rule22},
	{1264, 1, &rule21},
	{1265, 1, &rule22},
	{1266, 1, &rule21},
	{1267, 1, &rule22},
	{1268, 1, &rule21},
	{1269, 1, &rule22},
	{1270, 1, &rule21},
	{1271, 1, &rule22},
	{1272, 1, &rule21},
	{1273, 1, &rule22},
	{1274, 1, &rule21},
	{1275, 1, &rule22},
	{1276, 1, &rule21},
	{1277, 1, &rule22},
	{1278, 1, &rule21},
	{1279, 1, &rule22},
	{1280, 1, &rule21},
	{1281, 1, &rule22},
	{1282, 1, &rule21},
	{1283, 1, &rule22},
	{1284, 1, &rule21},
	{1285, 1, &rule22},
	{1286, 1, &rule21},
	{1287, 1, &rule22},
	{1288, 1, &rule21},
	{1289, 1, &rule22},
	{1290, 1, &rule21},
	{1291, 1, &rule22},
	{1292, 1, &rule21},
	{1293, 1, &rule22},
	{1294, 1, &rule21},
	{1295, 1, &rule22},
	{1296, 1, &rule21},
	{1297, 1, &rule22},
	{1298, 1, &rule21},
	{1299, 1, &rule22},
	{1300, 1, &rule21},
	{1301, 1, &rule22},
	{1302, 1, &rule21},
	{1303, 1, &rule22},
	{1304, 1, &rule21},
	{1305, 1, &rule22},
	{1306, 1, &rule21},
	{1307, 1, &rule22},
	{1308, 1, &rule21},
	{1309, 1, &rule22},
	{1310, 1, &rule21},
	{1311, 1, &rule22},
	{1312, 1, &rule21},
	{1313, 1, &rule22},
	{1314, 1, &rule21},
	{1315, 1, &rule22},
	{1316, 1, &rule21},
	{1317, 1, &rule22},
	{1318, 1, &rule21},
	{1319, 1, &rule22},
	{1329, 38, &rule112},
	{1369, 1, &rule83},
	{1370, 6, &rule2},
	{1377, 38, &rule113},
	{1415, 1, &rule14},
	{1417, 1, &rule2},
	{1418, 1, &rule7},
	{1425, 45, &rule84},
	{1470, 1, &rule7},
	{1471, 1, &rule84},
	{1472, 1, &rule2},
	{1473, 2, &rule84},
	{1475, 1, &rule2},
	{1476, 2, &rule84},
	{1478, 1, &rule2},
	{1479, 1, &rule84},
	{1488, 27, &rule45},
	{1520, 3, &rule45},
	{1523, 2, &rule2},
	{1536, 4, &rule16},
	{1542, 3, &rule6},
	{1545, 2, &rule2},
	{1547, 1, &rule3},
	{1548, 2, &rule2},
	{1550, 2, &rule13},
	{1552, 11, &rule84},
	{1563, 1, &rule2},
	{1566, 2, &rule2},
	{1568, 32, &rule45},
	{1600, 1, &rule83},
	{1601, 10, &rule45},
	{1611, 21, &rule84},
	{1632, 10, &rule8},
	{1642, 4, &rule2},
	{1646, 2, &rule45},
	{1648, 1, &rule84},
	{1649, 99, &rule45},
	{1748, 1, &rule2},
	{1749, 1, &rule45},
	{1750, 7, &rule84},
	{1757, 1, &rule16},
	{1758, 1, &rule13},
	{1759, 6, &rule84},
	{1765, 2, &rule83},
	{1767, 2, &rule84},
	{1769, 1, &rule13},
	{1770, 4, &rule84},
	{1774, 2, &rule45},
	{1776, 10, &rule8},
	{1786, 3, &rule45},
	{1789, 2, &rule13},
	{1791, 1, &rule45},
	{1792, 14, &rule2},
	{1807, 1, &rule16},
	{1808, 1, &rule45},
	{1809, 1, &rule84},
	{1810, 30, &rule45},
	{1840, 27, &rule84},
	{1869, 89, &rule45},
	{1958, 11, &rule84},
	{1969, 1, &rule45},
	{1984, 10, &rule8},
	{1994, 33, &rule45},
	{2027, 9, &rule84},
	{2036, 2, &rule83},
	{2038, 1, &rule13},
	{2039, 3, &rule2},
	{2042, 1, &rule83},
	{2048, 22, &rule45},
	{2070, 4, &rule84},
	{2074, 1, &rule83},
	{2075, 9, &rule84},
	{2084, 1, &rule83},
	{2085, 3, &rule84},
	{2088, 1, &rule83},
	{2089, 5, &rule84},
	{2096, 15, &rule2},
	{2112, 25, &rule45},
	{2137, 3, &rule84},
	{2142, 1, &rule2},
	{2304, 3, &rule84},
	{2307, 1, &rule114},
	{2308, 54, &rule45},
	{2362, 1, &rule84},
	{2363, 1, &rule114},
	{2364, 1, &rule84},
	{2365, 1, &rule45},
	{2366, 3, &rule114},
	{2369, 8, &rule84},
	{2377, 4, &rule114},
	{2381, 1, &rule84},
	{2382, 2, &rule114},
	{2384, 1, &rule45},
	{2385, 7, &rule84},
	{2392, 10, &rule45},
	{2402, 2, &rule84},
	{2404, 2, &rule2},
	{2406, 10, &rule8},
	{2416, 1, &rule2},
	{2417, 1, &rule83},
	{2418, 6, &rule45},
	{2425, 7, &rule45},
	{2433, 1, &rule84},
	{2434, 2, &rule114},
	{2437, 8, &rule45},
	{2447, 2, &rule45},
	{2451, 22, &rule45},
	{2474, 7, &rule45},
	{2482, 1, &rule45},
	{2486, 4, &rule45},
	{2492, 1, &rule84},
	{2493, 1, &rule45},
	{2494, 3, &rule114},
	{2497, 4, &rule84},
	{2503, 2, &rule114},
	{2507, 2, &rule114},
	{2509, 1, &rule84},
	{2510, 1, &rule45},
	{2519, 1, &rule114},
	{2524, 2, &rule45},
	{2527, 3, &rule45},
	{2530, 2, &rule84},
	{2534, 10, &rule8},
	{2544, 2, &rule45},
	{2546, 2, &rule3},
	{2548, 6, &rule17},
	{2554, 1, &rule13},
	{2555, 1, &rule3},
	{2561, 2, &rule84},
	{2563, 1, &rule114},
	{2565, 6, &rule45},
	{2575, 2, &rule45},
	{2579, 22, &rule45},
	{2602, 7, &rule45},
	{2610, 2, &rule45},
	{2613, 2, &rule45},
	{2616, 2, &rule45},
	{2620, 1, &rule84},
	{2622, 3, &rule114},
	{2625, 2, &rule84},
	{2631, 2, &rule84},
	{2635, 3, &rule84},
	{2641, 1, &rule84},
	{2649, 4, &rule45},
	{2654, 1, &rule45},
	{2662, 10, &rule8},
	{2672, 2, &rule84},
	{2674, 3, &rule45},
	{2677, 1, &rule84},
	{2689, 2, &rule84},
	{2691, 1, &rule114},
	{2693, 9, &rule45},
	{2703, 3, &rule45},
	{2707, 22, &rule45},
	{2730, 7, &rule45},
	{2738, 2, &rule45},
	{2741, 5, &rule45},
	{2748, 1, &rule84},
	{2749, 1, &rule45},
	{2750, 3, &rule114},
	{2753, 5, &rule84},
	{2759, 2, &rule84},
	{2761, 1, &rule114},
	{2763, 2, &rule114},
	{2765, 1, &rule84},
	{2768, 1, &rule45},
	{2784, 2, &rule45},
	{2786, 2, &rule84},
	{2790, 10, &rule8},
	{2801, 1, &rule3},
	{2817, 1, &rule84},
	{2818, 2, &rule114},
	{2821, 8, &rule45},
	{2831, 2, &rule45},
	{2835, 22, &rule45},
	{2858, 7, &rule45},
	{2866, 2, &rule45},
	{2869, 5, &rule45},
	{2876, 1, &rule84},
	{2877, 1, &rule45},
	{2878, 1, &rule114},
	{2879, 1, &rule84},
	{2880, 1, &rule114},
	{2881, 4, &rule84},
	{2887, 2, &rule114},
	{2891, 2, &rule114},
	{2893, 1, &rule84},
	{2902, 1, &rule84},
	{2903, 1, &rule114},
	{2908, 2, &rule45},
	{2911, 3, &rule45},
	{2914, 2, &rule84},
	{2918, 10, &rule8},
	{2928, 1, &rule13},
	{2929, 1, &rule45},
	{2930, 6, &rule17},
	{2946, 1, &rule84},
	{2947, 1, &rule45},
	{2949, 6, &rule45},
	{2958, 3, &rule45},
	{2962, 4, &rule45},
	{2969, 2, &rule45},
	{2972, 1, &rule45},
	{2974, 2, &rule45},
	{2979, 2, &rule45},
	{2984, 3, &rule45},
	{2990, 12, &rule45},
	{3006, 2, &rule114},
	{3008, 1, &rule84},
	{3009, 2, &rule114},
	{3014, 3, &rule114},
	{3018, 3, &rule114},
	{3021, 1, &rule84},
	{3024, 1, &rule45},
	{3031, 1, &rule114},
	{3046, 10, &rule8},
	{3056, 3, &rule17},
	{3059, 6, &rule13},
	{3065, 1, &rule3},
	{3066, 1, &rule13},
	{3073, 3, &rule114},
	{3077, 8, &rule45},
	{3086, 3, &rule45},
	{3090, 23, &rule45},
	{3114, 10, &rule45},
	{3125, 5, &rule45},
	{3133, 1, &rule45},
	{3134, 3, &rule84},
	{3137, 4, &rule114},
	{3142, 3, &rule84},
	{3146, 4, &rule84},
	{3157, 2, &rule84},
	{3160, 2, &rule45},
	{3168, 2, &rule45},
	{3170, 2, &rule84},
	{3174, 10, &rule8},
	{3192, 7, &rule17},
	{3199, 1, &rule13},
	{3202, 2, &rule114},
	{3205, 8, &rule45},
	{3214, 3, &rule45},
	{3218, 23, &rule45},
	{3242, 10, &rule45},
	{3253, 5, &rule45},
	{3260, 1, &rule84},
	{3261, 1, &rule45},
	{3262, 1, &rule114},
	{3263, 1, &rule84},
	{3264, 5, &rule114},
	{3270, 1, &rule84},
	{3271, 2, &rule114},
	{3274, 2, &rule114},
	{3276, 2, &rule84},
	{3285, 2, &rule114},
	{3294, 1, &rule45},
	{3296, 2, &rule45},
	{3298, 2, &rule84},
	{3302, 10, &rule8},
	{3313, 2, &rule45},
	{3330, 2, &rule114},
	{3333, 8, &rule45},
	{3342, 3, &rule45},
	{3346, 41, &rule45},
	{3389, 1, &rule45},
	{3390, 3, &rule114},
	{3393, 4, &rule84},
	{3398, 3, &rule114},
	{3402, 3, &rule114},
	{3405, 1, &rule84},
	{3406, 1, &rule45},
	{3415, 1, &rule114},
	{3424, 2, &rule45},
	{3426, 2, &rule84},
	{3430, 10, &rule8},
	{3440, 6, &rule17},
	{3449, 1, &rule13},
	{3450, 6, &rule45},
	{3458, 2, &rule114},
	{3461, 18, &rule45},
	{3482, 24, &rule45},
	{3507, 9, &rule45},
	{3517, 1, &rule45},
	{3520, 7, &rule45},
	{3530, 1, &rule84},
	{3535, 3, &rule114},
	{3538, 3, &rule84},
	{3542, 1, &rule84},
	{3544, 8, &rule114},
	{3570, 2, &rule114},
	{3572, 1, &rule2},
	{3585, 48, &rule45},
	{3633, 1, &rule84},
	{3634, 2, &rule45},
	{3636, 7, &rule84},
	{3647, 1, &rule3},
	{3648, 6, &rule45},
	{3654, 1, &rule83},
	{3655, 8, &rule84},
	{3663, 1, &rule2},
	{3664, 10, &rule8},
	{3674, 2, &rule2},
	{3713, 2, &rule45},
	{3716, 1, &rule45},
	{3719, 2, &rule45},
	{3722, 1, &rule45},
	{3725, 1, &rule45},
	{3732, 4, &rule45},
	{3737, 7, &rule45},
	{3745, 3, &rule45},
	{3749, 1, &rule45},
	{3751, 1, &rule45},
	{3754, 2, &rule45},
	{3757, 4, &rule45},
	{3761, 1, &rule84},
	{3762, 2, &rule45},
	{3764, 6, &rule84},
	{3771, 2, &rule84},
	{3773, 1, &rule45},
	{3776, 5, &rule45},
	{3782, 1, &rule83},
	{3784, 6, &rule84},
	{3792, 10, &rule8},
	{3804, 2, &rule45},
	{3840, 1, &rule45},
	{3841, 3, &rule13},
	{3844, 15, &rule2},
	{3859, 5, &rule13},
	{3864, 2, &rule84},
	{3866, 6, &rule13},
	{3872, 10, &rule8},
	{3882, 10, &rule17},
	{3892, 1, &rule13},
	{3893, 1, &rule84},
	{3894, 1, &rule13},
	{3895, 1, &rule84},
	{3896, 1, &rule13},
	{3897, 1, &rule84},
	{3898, 1, &rule4},
	{3899, 1, &rule5},
	{3900, 1, &rule4},
	{3901, 1, &rule5},
	{3902, 2, &rule114},
	{3904, 8, &rule45},
	{3913, 36, &rule45},
	{3953, 14, &rule84},
	{3967, 1, &rule114},
	{3968, 5, &rule84},
	{3973, 1, &rule2},
	{3974, 2, &rule84},
	{3976, 5, &rule45},
	{3981, 11, &rule84},
	{3993, 36, &rule84},
	{4030, 8, &rule13},
	{4038, 1, &rule84},
	{4039, 6, &rule13},
	{4046, 2, &rule13},
	{4048, 5, &rule2},
	{4053, 4, &rule13},
	{4057, 2, &rule2},
	{4096, 43, &rule45},
	{4139, 2, &rule114},
	{4141, 4, &rule84},
	{4145, 1, &rule114},
	{4146, 6, &rule84},
	{4152, 1, &rule114},
	{4153, 2, &rule84},
	{4155, 2, &rule114},
	{4157, 2, &rule84},
	{4159, 1, &rule45},
	{4160, 10, &rule8},
	{4170, 6, &rule2},
	{4176, 6, &rule45},
	{4182, 2, &rule114},
	{4184, 2, &rule84},
	{4186, 4, &rule45},
	{4190, 3, &rule84},
	{4193, 1, &rule45},
	{4194, 3, &rule114},
	{4197, 2, &rule45},
	{4199, 7, &rule114},
	{4206, 3, &rule45},
	{4209, 4, &rule84},
	{4213, 13, &rule45},
	{4226, 1, &rule84},
	{4227, 2, &rule114},
	{4229, 2, &rule84},
	{4231, 6, &rule114},
	{4237, 1, &rule84},
	{4238, 1, &rule45},
	{4239, 1, &rule114},
	{4240, 10, &rule8},
	{4250, 3, &rule114},
	{4253, 1, &rule84},
	{4254, 2, &rule13},
	{4256, 38, &rule115},
	{4304, 43, &rule45},
	{4347, 1, &rule2},
	{4348, 1, &rule83},
	{4352, 329, &rule45},
	{4682, 4, &rule45},
	{4688, 7, &rule45},
	{4696, 1, &rule45},
	{4698, 4, &rule45},
	{4704, 41, &rule45},
	{4746, 4, &rule45},
	{4752, 33, &rule45},
	{4786, 4, &rule45},
	{4792, 7, &rule45},
	{4800, 1, &rule45},
	{4802, 4, &rule45},
	{4808, 15, &rule45},
	{4824, 57, &rule45},
	{4882, 4, &rule45},
	{4888, 67, &rule45},
	{4957, 3, &rule84},
	{4960, 1, &rule13},
	{4961, 8, &rule2},
	{4969, 20, &rule17},
	{4992, 16, &rule45},
	{5008, 10, &rule13},
	{5024, 85, &rule45},
	{5120, 1, &rule7},
	{5121, 620, &rule45},
	{5741, 2, &rule2},
	{5743, 17, &rule45},
	{5760, 1, &rule1},
	{5761, 26, &rule45},
	{5787, 1, &rule4},
	{5788, 1, &rule5},
	{5792, 75, &rule45},
	{5867, 3, &rule2},
	{5870, 3, &rule116},
	{5888, 13, &rule45},
	{5902, 4, &rule45},
	{5906, 3, &rule84},
	{5920, 18, &rule45},
	{5938, 3, &rule84},
	{5941, 2, &rule2},
	{5952, 18, &rule45},
	{5970, 2, &rule84},
	{5984, 13, &rule45},
	{5998, 3, &rule45},
	{6002, 2, &rule84},
	{6016, 52, &rule45},
	{6068, 2, &rule16},
	{6070, 1, &rule114},
	{6071, 7, &rule84},
	{6078, 8, &rule114},
	{6086, 1, &rule84},
	{6087, 2, &rule114},
	{6089, 11, &rule84},
	{6100, 3, &rule2},
	{6103, 1, &rule83},
	{6104, 3, &rule2},
	{6107, 1, &rule3},
	{6108, 1, &rule45},
	{6109, 1, &rule84},
	{6112, 10, &rule8},
	{6128, 10, &rule17},
	{6144, 6, &rule2},
	{6150, 1, &rule7},
	{6151, 4, &rule2},
	{6155, 3, &rule84},
	{6158, 1, &rule1},
	{6160, 10, &rule8},
	{6176, 35, &rule45},
	{6211, 1, &rule83},
	{6212, 52, &rule45},
	{6272, 41, &rule45},
	{6313, 1, &rule84},
	{6314, 1, &rule45},
	{6320, 70, &rule45},
	{6400, 29, &rule45},
	{6432, 3, &rule84},
	{6435, 4, &rule114},
	{6439, 2, &rule84},
	{6441, 3, &rule114},
	{6448, 2, &rule114},
	{6450, 1, &rule84},
	{6451, 6, &rule114},
	{6457, 3, &rule84},
	{6464, 1, &rule13},
	{6468, 2, &rule2},
	{6470, 10, &rule8},
	{6480, 30, &rule45},
	{6512, 5, &rule45},
	{6528, 44, &rule45},
	{6576, 17, &rule114},
	{6593, 7, &rule45},
	{6600, 2, &rule114},
	{6608, 10, &rule8},
	{6618, 1, &rule17},
	{6622, 34, &rule13},
	{6656, 23, &rule45},
	{6679, 2, &rule84},
	{6681, 3, &rule114},
	{6686, 2, &rule2},
	{6688, 53, &rule45},
	{6741, 1, &rule114},
	{6742, 1, &rule84},
	{6743, 1, &rule114},
	{6744, 7, &rule84},
	{6752, 1, &rule84},
	{6753, 1, &rule114},
	{6754, 1, &rule84},
	{6755, 2, &rule114},
	{6757, 8, &rule84},
	{6765, 6, &rule114},
	{6771, 10, &rule84},
	{6783, 1, &rule84},
	{6784, 10, &rule8},
	{6800, 10, &rule8},
	{6816, 7, &rule2},
	{6823, 1, &rule83},
	{6824, 6, &rule2},
	{6912, 4, &rule84},
	{6916, 1, &rule114},
	{6917, 47, &rule45},
	{6964, 1, &rule84},
	{6965, 1, &rule114},
	{6966, 5, &rule84},
	{6971, 1, &rule114},
	{6972, 1, &rule84},
	{6973, 5, &rule114},
	{6978, 1, &rule84},
	{6979, 2, &rule114},
	{6981, 7, &rule45},
	{6992, 10, &rule8},
	{7002, 7, &rule2},
	{7009, 10, &rule13},
	{7019, 9, &rule84},
	{7028, 9, &rule13},
	{7040, 2, &rule84},
	{7042, 1, &rule114},
	{7043, 30, &rule45},
	{7073, 1, &rule114},
	{7074, 4, &rule84},
	{7078, 2, &rule114},
	{7080, 2, &rule84},
	{7082, 1, &rule114},
	{7086, 2, &rule45},
	{7088, 10, &rule8},
	{7104, 38, &rule45},
	{7142, 1, &rule84},
	{7143, 1, &rule114},
	{7144, 2, &rule84},
	{7146, 3, &rule114},
	{7149, 1, &rule84},
	{7150, 1, &rule114},
	{7151, 3, &rule84},
	{7154, 2, &rule114},
	{7164, 4, &rule2},
	{7168, 36, &rule45},
	{7204, 8, &rule114},
	{7212, 8, &rule84},
	{7220, 2, &rule114},
	{7222, 2, &rule84},
	{7227, 5, &rule2},
	{7232, 10, &rule8},
	{7245, 3, &rule45},
	{7248, 10, &rule8},
	{7258, 30, &rule45},
	{7288, 6, &rule83},
	{7294, 2, &rule2},
	{7376, 3, &rule84},
	{7379, 1, &rule2},
	{7380, 13, &rule84},
	{7393, 1, &rule114},
	{7394, 7, &rule84},
	{7401, 4, &rule45},
	{7405, 1, &rule84},
	{7406, 4, &rule45},
	{7410, 1, &rule114},
	{7424, 44, &rule14},
	{7468, 54, &rule83},
	{7522, 22, &rule14},
	{7544, 1, &rule83},
	{7545, 1, &rule117},
	{7546, 3, &rule14},
	{7549, 1, &rule118},
	{7550, 29, &rule14},
	{7579, 37, &rule83},
	{7616, 39, &rule84},
	{7676, 4, &rule84},
	{7680, 1, &rule21},
	{7681, 1, &rule22},
	{7682, 1, &rule21},
	{7683, 1, &rule22},
	{7684, 1, &rule21},
	{7685, 1, &rule22},
	{7686, 1, &rule21},
	{7687, 1, &rule22},
	{7688, 1, &rule21},
	{7689, 1, &rule22},
	{7690, 1, &rule21},
	{7691, 1, &rule22},
	{7692, 1, &rule21},
	{7693, 1, &rule22},
	{7694, 1, &rule21},
	{7695, 1, &rule22},
	{7696, 1, &rule21},
	{7697, 1, &rule22},
	{7698, 1, &rule21},
	{7699, 1, &rule22},
	{7700, 1, &rule21},
	{7701, 1, &rule22},
	{7702, 1, &rule21},
	{7703, 1, &rule22},
	{7704, 1, &rule21},
	{7705, 1, &rule22},
	{7706, 1, &rule21},
	{7707, 1, &rule22},
	{7708, 1, &rule21},
	{7709, 1, &rule22},
	{7710, 1, &rule21},
	{7711, 1, &rule22},
	{7712, 1, &rule21},
	{7713, 1, &rule22},
	{7714, 1, &rule21},
	{7715, 1, &rule22},
	{7716, 1, &rule21},
	{7717, 1, &rule22},
	{7718, 1, &rule21},
	{7719, 1, &rule22},
	{7720, 1, &rule21},
	{7721, 1, &rule22},
	{7722, 1, &rule21},
	{7723, 1, &rule22},
	{7724, 1, &rule21},
	{7725, 1, &rule22},
	{7726, 1, &rule21},
	{7727, 1, &rule22},
	{7728, 1, &rule21},
	{7729, 1, &rule22},
	{7730, 1, &rule21},
	{7731, 1, &rule22},
	{7732, 1, &rule21},
	{7733, 1, &rule22},
	{7734, 1, &rule21},
	{7735, 1, &rule22},
	{7736, 1, &rule21},
	{7737, 1, &rule22},
	{7738, 1, &rule21},
	{7739, 1, &rule22},
	{7740, 1, &rule21},
	{7741, 1, &rule22},
	{7742, 1, &rule21},
	{7743, 1, &rule22},
	{7744, 1, &rule21},
	{7745, 1, &rule22},
	{7746, 1, &rule21},
	{7747, 1, &rule22},
	{7748, 1, &rule21},
	{7749, 1, &rule22},
	{7750, 1, &rule21},
	{7751, 1, &rule22},
	{7752, 1, &rule21},
	{7753, 1, &rule22},
	{7754, 1, &rule21},
	{7755, 1, &rule22},
	{7756, 1, &rule21},
	{7757, 1, &rule22},
	{7758, 1, &rule21},
	{7759, 1, &rule22},
	{7760, 1, &rule21},
	{7761, 1, &rule22},
	{7762, 1, &rule21},
	{7763, 1, &rule22},
	{7764, 1, &rule21},
	{7765, 1, &rule22},
	{7766, 1, &rule21},
	{7767, 1, &rule22},
	{7768, 1, &rule21},
	{7769, 1, &rule22},
	{7770, 1, &rule21},
	{7771, 1, &rule22},
	{7772, 1, &rule21},
	{7773, 1, &rule22},
	{7774, 1, &rule21},
	{7775, 1, &rule22},
	{7776, 1, &rule21},
	{7777, 1, &rule22},
	{7778, 1, &rule21},
	{7779, 1, &rule22},
	{7780, 1, &rule21},
	{7781, 1, &rule22},
	{7782, 1, &rule21},
	{7783, 1, &rule22},
	{7784, 1, &rule21},
	{7785, 1, &rule22},
	{7786, 1, &rule21},
	{7787, 1, &rule22},
	{7788, 1, &rule21},
	{7789, 1, &rule22},
	{7790, 1, &rule21},
	{7791, 1, &rule22},
	{7792, 1, &rule21},
	{7793, 1, &rule22},
	{7794, 1, &rule21},
	{7795, 1, &rule22},
	{7796, 1, &rule21},
	{7797, 1, &rule22},
	{7798, 1, &rule21},
	{7799, 1, &rule22},
	{7800, 1, &rule21},
	{7801, 1, &rule22},
	{7802, 1, &rule21},
	{7803, 1, &rule22},
	{7804, 1, &rule21},
	{7805, 1, &rule22},
	{7806, 1, &rule21},
	{7807, 1, &rule22},
	{7808, 1, &rule21},
	{7809, 1, &rule22},
	{7810, 1, &rule21},
	{7811, 1, &rule22},
	{7812, 1, &rule21},
	{7813, 1, &rule22},
	{7814, 1, &rule21},
	{7815, 1, &rule22},
	{7816, 1, &rule21},
	{7817, 1, &rule22},
	{7818, 1, &rule21},
	{7819, 1, &rule22},
	{7820, 1, &rule21},
	{7821, 1, &rule22},
	{7822, 1, &rule21},
	{7823, 1, &rule22},
	{7824, 1, &rule21},
	{7825, 1, &rule22},
	{7826, 1, &rule21},
	{7827, 1, &rule22},
	{7828, 1, &rule21},
	{7829, 1, &rule22},
	{7830, 5, &rule14},
	{7835, 1, &rule119},
	{7836, 2, &rule14},
	{7838, 1, &rule120},
	{7839, 1, &rule14},
	{7840, 1, &rule21},
	{7841, 1, &rule22},
	{7842, 1, &rule21},
	{7843, 1, &rule22},
	{7844, 1, &rule21},
	{7845, 1, &rule22},
	{7846, 1, &rule21},
	{7847, 1, &rule22},
	{7848, 1, &rule21},
	{7849, 1, &rule22},
	{7850, 1, &rule21},
	{7851, 1, &rule22},
	{7852, 1, &rule21},
	{7853, 1, &rule22},
	{7854, 1, &rule21},
	{7855, 1, &rule22},
	{7856, 1, &rule21},
	{7857, 1, &rule22},
	{7858, 1, &rule21},
	{7859, 1, &rule22},
	{7860, 1, &rule21},
	{7861, 1, &rule22},
	{7862, 1, &rule21},
	{7863, 1, &rule22},
	{7864, 1, &rule21},
	{7865, 1, &rule22},
	{7866, 1, &rule21},
	{7867, 1, &rule22},
	{7868, 1, &rule21},
	{7869, 1, &rule22},
	{7870, 1, &rule21},
	{7871, 1, &rule22},
	{7872, 1, &rule21},
	{7873, 1, &rule22},
	{7874, 1, &rule21},
	{7875, 1, &rule22},
	{7876, 1, &rule21},
	{7877, 1, &rule22},
	{7878, 1, &rule21},
	{7879, 1, &rule22},
	{7880, 1, &rule21},
	{7881, 1, &rule22},
	{7882, 1, &rule21},
	{7883, 1, &rule22},
	{7884, 1, &rule21},
	{7885, 1, &rule22},
	{7886, 1, &rule21},
	{7887, 1, &rule22},
	{7888, 1, &rule21},
	{7889, 1, &rule22},
	{7890, 1, &rule21},
	{7891, 1, &rule22},
	{7892, 1, &rule21},
	{7893, 1, &rule22},
	{7894, 1, &rule21},
	{7895, 1, &rule22},
	{7896, 1, &rule21},
	{7897, 1, &rule22},
	{7898, 1, &rule21},
	{7899, 1, &rule22},
	{7900, 1, &rule21},
	{7901, 1, &rule22},
	{7902, 1, &rule21},
	{7903, 1, &rule22},
	{7904, 1, &rule21},
	{7905, 1, &rule22},
	{7906, 1, &rule21},
	{7907, 1, &rule22},
	{7908, 1, &rule21},
	{7909, 1, &rule22},
	{7910, 1, &rule21},
	{7911, 1, &rule22},
	{7912, 1, &rule21},
	{7913, 1, &rule22},
	{7914, 1, &rule21},
	{7915, 1, &rule22},
	{7916, 1, &rule21},
	{7917, 1, &rule22},
	{7918, 1, &rule21},
	{7919, 1, &rule22},
	{7920, 1, &rule21},
	{7921, 1, &rule22},
	{7922, 1, &rule21},
	{7923, 1, &rule22},
	{7924, 1, &rule21},
	{7925, 1, &rule22},
	{7926, 1, &rule21},
	{7927, 1, &rule22},
	{7928, 1, &rule21},
	{7929, 1, &rule22},
	{7930, 1, &rule21},
	{7931, 1, &rule22},
	{7932, 1, &rule21},
	{7933, 1, &rule22},
	{7934, 1, &rule21},
	{7935, 1, &rule22},
	{7936, 8, &rule121},
	{7944, 8, &rule122},
	{7952, 6, &rule121},
	{7960, 6, &rule122},
	{7968, 8, &rule121},
	{7976, 8, &rule122},
	{7984, 8, &rule121},
	{7992, 8, &rule122},
	{8000, 6, &rule121},
	{8008, 6, &rule122},
	{8016, 1, &rule14},
	{8017, 1, &rule121},
	{8018, 1, &rule14},
	{8019, 1, &rule121},
	{8020, 1, &rule14},
	{8021, 1, &rule121},
	{8022, 1, &rule14},
	{8023, 1, &rule121},
	{8025, 1, &rule122},
	{8027, 1, &rule122},
	{8029, 1, &rule122},
	{8031, 1, &rule122},
	{8032, 8, &rule121},
	{8040, 8, &rule122},
	{8048, 2, &rule123},
	{8050, 4, &rule124},
	{8054, 2, &rule125},
	{8056, 2, &rule126},
	{8058, 2, &rule127},
	{8060, 2, &rule128},
	{8064, 8, &rule121},
	{8072, 8, &rule129},
	{8080, 8, &rule121},
	{8088, 8, &rule129},
	{8096, 8, &rule121},
	{8104, 8, &rule129},
	{8112, 2, &rule121},
	{8114, 1, &rule14},
	{8115, 1, &rule130},
	{8116, 1, &rule14},
	{8118, 2, &rule14},
	{8120, 2, &rule122},
	{8122, 2, &rule131},
	{8124, 1, &rule132},
	{8125, 1, &rule10},
	{8126, 1, &rule133},
	{8127, 3, &rule10},
	{8130, 1, &rule14},
	{8131, 1, &rule130},
	{8132, 1, &rule14},
	{8134, 2, &rule14},
	{8136, 4, &rule134},
	{8140, 1, &rule132},
	{8141, 3, &rule10},
	{8144, 2, &rule121},
	{8146, 2, &rule14},
	{8150, 2, &rule14},
	{8152, 2, &rule122},
	{8154, 2, &rule135},
	{8157, 3, &rule10},
	{8160, 2, &rule121},
	{8162, 3, &rule14},
	{8165, 1, &rule104},
	{8166, 2, &rule14},
	{8168, 2, &rule122},
	{8170, 2, &rule136},
	{8172, 1, &rule107},
	{8173, 3, &rule10},
	{8178, 1, &rule14},
	{8179, 1, &rule130},
	{8180, 1, &rule14},
	{8182, 2, &rule14},
	{8184, 2, &rule137},
	{8186, 2, &rule138},
	{8188, 1, &rule132},
	{8189, 2, &rule10},
	{8192, 11, &rule1},
	{8203, 5, &rule16},
	{8208, 6, &rule7},
	{8214, 2, &rule2},
	{8216, 1, &rule15},
	{8217, 1, &rule19},
	{8218, 1, &rule4},
	{8219, 2, &rule15},
	{8221, 1, &rule19},
	{8222, 1, &rule4},
	{8223, 1, &rule15},
	{8224, 8, &rule2},
	{8232, 1, &rule139},
	{8233, 1, &rule140},
	{8234, 5, &rule16},
	{8239, 1, &rule1},
	{8240, 9, &rule2},
	{8249, 1, &rule15},
	{8250, 1, &rule19},
	{8251, 4, &rule2},
	{8255, 2, &rule11},
	{8257, 3, &rule2},
	{8260, 1, &rule6},
	{8261, 1, &rule4},
	{8262, 1, &rule5},
	{8263, 11, &rule2},
	{8274, 1, &rule6},
	{8275, 1, &rule2},
	{8276, 1, &rule11},
	{8277, 10, &rule2},
	{8287, 1, &rule1},
	{8288, 5, &rule16},
	{8298, 6, &rule16},
	{8304, 1, &rule17},
	{8305, 1, &rule83},
	{8308, 6, &rule17},
	{8314, 3, &rule6},
	{8317, 1, &rule4},
	{8318, 1, &rule5},
	{8319, 1, &rule83},
	{8320, 10, &rule17},
	{8330, 3, &rule6},
	{8333, 1, &rule4},
	{8334, 1, &rule5},
	{8336, 13, &rule83},
	{8352, 26, &rule3},
	{8400, 13, &rule84},
	{8413, 4, &rule109},
	{8417, 1, &rule84},
	{8418, 3, &rule109},
	{8421, 12, &rule84},
	{8448, 2, &rule13},
	{8450, 1, &rule98},
	{8451, 4, &rule13},
	{8455, 1, &rule98},
	{8456, 2, &rule13},
	{8458, 1, &rule14},
	{8459, 3, &rule98},
	{8462, 2, &rule14},
	{8464, 3, &rule98},
	{8467, 1, &rule14},
	{8468, 1, &rule13},
	{8469, 1, &rule98},
	{8470, 2, &rule13},
	{8472, 1, &rule6},
	{8473, 5, &rule98},
	{8478, 6, &rule13},
	{8484, 1, &rule98},
	{8485, 1, &rule13},
	{8486, 1, &rule141},
	{8487, 1, &rule13},
	{8488, 1, &rule98},
	{8489, 1, &rule13},
	{8490, 1, &rule142},
	{8491, 1, &rule143},
	{8492, 2, &rule98},
	{8494, 1, &rule13},
	{8495, 1, &rule14},
	{8496, 2, &rule98},
	{8498, 1, &rule144},
	{8499, 1, &rule98},
	{8500, 1, &rule14},
	{8501, 4, &rule45},
	{8505, 1, &rule14},
	{8506, 2, &rule13},
	{8508, 2, &rule14},
	{8510, 2, &rule98},
	{8512, 5, &rule6},
	{8517, 1, &rule98},
	{8518, 4, &rule14},
	{8522, 1, &rule13},
	{8523, 1, &rule6},
	{8524, 2, &rule13},
	{8526, 1, &rule145},
	{8527, 1, &rule13},
	{8528, 16, &rule17},
	{8544, 16, &rule146},
	{8560, 16, &rule147},
	{8576, 3, &rule116},
	{8579, 1, &rule21},
	{8580, 1, &rule22},
	{8581, 4, &rule116},
	{8585, 1, &rule17},
	{8592, 5, &rule6},
	{8597, 5, &rule13},
	{8602, 2, &rule6},
	{8604, 4, &rule13},
	{8608, 1, &rule6},
	{8609, 2, &rule13},
	{8611, 1, &rule6},
	{8612, 2, &rule13},
	{8614, 1, &rule6},
	{8615, 7, &rule13},
	{8622, 1, &rule6},
	{8623, 31, &rule13},
	{8654, 2, &rule6},
	{8656, 2, &rule13},
	{8658, 1, &rule6},
	{8659, 1, &rule13},
	{8660, 1, &rule6},
	{8661, 31, &rule13},
	{8692, 268, &rule6},
	{8960, 8, &rule13},
	{8968, 4, &rule6},
	{8972, 20, &rule13},
	{8992, 2, &rule6},
	{8994, 7, &rule13},
	{9001, 1, &rule4},
	{9002, 1, &rule5},
	{9003, 81, &rule13},
	{9084, 1, &rule6},
	{9085, 30, &rule13},
	{9115, 25, &rule6},
	{9140, 40, &rule13},
	{9180, 6, &rule6},
	{9186, 18, &rule13},
	{9216, 39, &rule13},
	{9280, 11, &rule13},
	{9312, 60, &rule17},
	{9372, 26, &rule13},
	{9398, 26, &rule148},
	{9424, 26, &rule149},
	{9450, 22, &rule17},
	{9472, 183, &rule13},
	{9655, 1, &rule6},
	{9656, 9, &rule13},
	{9665, 1, &rule6},
	{9666, 54, &rule13},
	{9720, 8, &rule6},
	{9728, 111, &rule13},
	{9839, 1, &rule6},
	{9840, 144, &rule13},
	{9985, 103, &rule13},
	{10088, 1, &rule4},
	{10089, 1, &rule5},
	{10090, 1, &rule4},
	{10091, 1, &rule5},
	{10092, 1, &rule4},
	{10093, 1, &rule5},
	{10094, 1, &rule4},
	{10095, 1, &rule5},
	{10096, 1, &rule4},
	{10097, 1, &rule5},
	{10098, 1, &rule4},
	{10099, 1, &rule5},
	{10100, 1, &rule4},
	{10101, 1, &rule5},
	{10102, 30, &rule17},
	{10132, 44, &rule13},
	{10176, 5, &rule6},
	{10181, 1, &rule4},
	{10182, 1, &rule5},
	{10183, 4, &rule6},
	{10188, 1, &rule6},
	{10190, 24, &rule6},
	{10214, 1, &rule4},
	{10215, 1, &rule5},
	{10216, 1, &rule4},
	{10217, 1, &rule5},
	{10218, 1, &rule4},
	{10219, 1, &rule5},
	{10220, 1, &rule4},
	{10221, 1, &rule5},
	{10222, 1, &rule4},
	{10223, 1, &rule5},
	{10224, 16, &rule6},
	{10240, 256, &rule13},
	{10496, 131, &rule6},
	{10627, 1, &rule4},
	{10628, 1, &rule5},
	{10629, 1, &rule4},
	{10630, 1, &rule5},
	{10631, 1, &rule4},
	{10632, 1, &rule5},
	{10633, 1, &rule4},
	{10634, 1, &rule5},
	{10635, 1, &rule4},
	{10636, 1, &rule5},
	{10637, 1, &rule4},
	{10638, 1, &rule5},
	{10639, 1, &rule4},
	{10640, 1, &rule5},
	{10641, 1, &rule4},
	{10642, 1, &rule5},
	{10643, 1, &rule4},
	{10644, 1, &rule5},
	{10645, 1, &rule4},
	{10646, 1, &rule5},
	{10647, 1, &rule4},
	{10648, 1, &rule5},
	{10649, 63, &rule6},
	{10712, 1, &rule4},
	{10713, 1, &rule5},
	{10714, 1, &rule4},
	{10715, 1, &rule5},
	{10716, 32, &rule6},
	{10748, 1, &rule4},
	{10749, 1, &rule5},
	{10750, 258, &rule6},
	{11008, 48, &rule13},
	{11056, 21, &rule6},
	{11077, 2, &rule13},
	{11079, 6, &rule6},
	{11088, 10, &rule13},
	{11264, 47, &rule112},
	{11312, 47, &rule113},
	{11360, 1, &rule21},
	{11361, 1, &rule22},
	{11362, 1, &rule150},
	{11363, 1, &rule151},
	{11364, 1, &rule152},
	{11365, 1, &rule153},
	{11366, 1, &rule154},
	{11367, 1, &rule21},
	{11368, 1, &rule22},
	{11369, 1, &rule21},
	{11370, 1, &rule22},
	{11371, 1, &rule21},
	{11372, 1, &rule22},
	{11373, 1, &rule155},
	{11374, 1, &rule156},
	{11375, 1, &rule157},
	{11376, 1, &rule158},
	{11377, 1, &rule14},
	{11378, 1, &rule21},
	{11379, 1, &rule22},
	{11380, 1, &rule14},
	{11381, 1, &rule21},
	{11382, 1, &rule22},
	{11383, 6, &rule14},
	{11389, 1, &rule83},
	{11390, 2, &rule159},
	{11392, 1, &rule21},
	{11393, 1, &rule22},
	{11394, 1, &rule21},
	{11395, 1, &rule22},
	{11396, 1, &rule21},
	{11397, 1, &rule22},
	{11398, 1, &rule21},
	{11399, 1, &rule22},
	{11400, 1, &rule21},
	{11401, 1, &rule22},
	{11402, 1, &rule21},
	{11403, 1, &rule22},
	{11404, 1, &rule21},
	{11405, 1, &rule22},
	{11406, 1, &rule21},
	{11407, 1, &rule22},
	{11408, 1, &rule21},
	{11409, 1, &rule22},
	{11410, 1, &rule21},
	{11411, 1, &rule22},
	{11412, 1, &rule21},
	{11413, 1, &rule22},
	{11414, 1, &rule21},
	{11415, 1, &rule22},
	{11416, 1, &rule21},
	{11417, 1, &rule22},
	{11418, 1, &rule21},
	{11419, 1, &rule22},
	{11420, 1, &rule21},
	{11421, 1, &rule22},
	{11422, 1, &rule21},
	{11423, 1, &rule22},
	{11424, 1, &rule21},
	{11425, 1, &rule22},
	{11426, 1, &rule21},
	{11427, 1, &rule22},
	{11428, 1, &rule21},
	{11429, 1, &rule22},
	{11430, 1, &rule21},
	{11431, 1, &rule22},
	{11432, 1, &rule21},
	{11433, 1, &rule22},
	{11434, 1, &rule21},
	{11435, 1, &rule22},
	{11436, 1, &rule21},
	{11437, 1, &rule22},
	{11438, 1, &rule21},
	{11439, 1, &rule22},
	{11440, 1, &rule21},
	{11441, 1, &rule22},
	{11442, 1, &rule21},
	{11443, 1, &rule22},
	{11444, 1, &rule21},
	{11445, 1, &rule22},
	{11446, 1, &rule21},
	{11447, 1, &rule22},
	{11448, 1, &rule21},
	{11449, 1, &rule22},
	{11450, 1, &rule21},
	{11451, 1, &rule22},
	{11452, 1, &rule21},
	{11453, 1, &rule22},
	{11454, 1, &rule21},
	{11455, 1, &rule22},
	{11456, 1, &rule21},
	{11457, 1, &rule22},
	{11458, 1, &rule21},
	{11459, 1, &rule22},
	{11460, 1, &rule21},
	{11461, 1, &rule22},
	{11462, 1, &rule21},
	{11463, 1, &rule22},
	{11464, 1, &rule21},
	{11465, 1, &rule22},
	{11466, 1, &rule21},
	{11467, 1, &rule22},
	{11468, 1, &rule21},
	{11469, 1, &rule22},
	{11470, 1, &rule21},
	{11471, 1, &rule22},
	{11472, 1, &rule21},
	{11473, 1, &rule22},
	{11474, 1, &rule21},
	{11475, 1, &rule22},
	{11476, 1, &rule21},
	{11477, 1, &rule22},
	{11478, 1, &rule21},
	{11479, 1, &rule22},
	{11480, 1, &rule21},
	{11481, 1, &rule22},
	{11482, 1, &rule21},
	{11483, 1, &rule22},
	{11484, 1, &rule21},
	{11485, 1, &rule22},
	{11486, 1, &rule21},
	{11487, 1, &rule22},
	{11488, 1, &rule21},
	{11489, 1, &rule22},
	{11490, 1, &rule21},
	{11491, 1, &rule22},
	{11492, 1, &rule14},
	{11493, 6, &rule13},
	{11499, 1, &rule21},
	{11500, 1, &rule22},
	{11501, 1, &rule21},
	{11502, 1, &rule22},
	{11503, 3, &rule84},
	{11513, 4, &rule2},
	{11517, 1, &rule17},
	{11518, 2, &rule2},
	{11520, 38, &rule160},
	{11568, 54, &rule45},
	{11631, 1, &rule83},
	{11632, 1, &rule2},
	{11647, 1, &rule84},
	{11648, 23, &rule45},
	{11680, 7, &rule45},
	{11688, 7, &rule45},
	{11696, 7, &rule45},
	{11704, 7, &rule45},
	{11712, 7, &rule45},
	{11720, 7, &rule45},
	{11728, 7, &rule45},
	{11736, 7, &rule45},
	{11744, 32, &rule84},
	{11776, 2, &rule2},
	{11778, 1, &rule15},
	{11779, 1, &rule19},
	{11780, 1, &rule15},
	{11781, 1, &rule19},
	{11782, 3, &rule2},
	{11785, 1, &rule15},
	{11786, 1, &rule19},
	{11787, 1, &rule2},
	{11788, 1, &rule15},
	{11789, 1, &rule19},
	{11790, 9, &rule2},
	{11799, 1, &rule7},
	{11800, 2, &rule2},
	{11802, 1, &rule7},
	{11803, 1, &rule2},
	{11804, 1, &rule15},
	{11805, 1, &rule19},
	{11806, 2, &rule2},
	{11808, 1, &rule15},
	{11809, 1, &rule19},
	{11810, 1, &rule4},
	{11811, 1, &rule5},
	{11812, 1, &rule4},
	{11813, 1, &rule5},
	{11814, 1, &rule4},
	{11815, 1, &rule5},
	{11816, 1, &rule4},
	{11817, 1, &rule5},
	{11818, 5, &rule2},
	{11823, 1, &rule83},
	{11824, 2, &rule2},
	{11904, 26, &rule13},
	{11931, 89, &rule13},
	{12032, 214, &rule13},
	{12272, 12, &rule13},
	{12288, 1, &rule1},
	{12289, 3, &rule2},
	{12292, 1, &rule13},
	{12293, 1, &rule83},
	{12294, 1, &rule45},
	{12295, 1, &rule116},
	{12296, 1, &rule4},
	{12297, 1, &rule5},
	{12298, 1, &rule4},
	{12299, 1, &rule5},
	{12300, 1, &rule4},
	{12301, 1, &rule5},
	{12302, 1, &rule4},
	{12303, 1, &rule5},
	{12304, 1, &rule4},
	{12305, 1, &rule5},
	{12306, 2, &rule13},
	{12308, 1, &rule4},
	{12309, 1, &rule5},
	{12310, 1, &rule4},
	{12311, 1, &rule5},
	{12312, 1, &rule4},
	{12313, 1, &rule5},
	{12314, 1, &rule4},
	{12315, 1, &rule5},
	{12316, 1, &rule7},
	{12317, 1, &rule4},
	{12318, 2, &rule5},
	{12320, 1, &rule13},
	{12321, 9, &rule116},
	{12330, 6, &rule84},
	{12336, 1, &rule7},
	{12337, 5, &rule83},
	{12342, 2, &rule13},
	{12344, 3, &rule116},
	{12347, 1, &rule83},
	{12348, 1, &rule45},
	{12349, 1, &rule2},
	{12350, 2, &rule13},
	{12353, 86, &rule45},
	{12441, 2, &rule84},
	{12443, 2, &rule10},
	{12445, 2, &rule83},
	{12447, 1, &rule45},
	{12448, 1, &rule7},
	{12449, 90, &rule45},
	{12539, 1, &rule2},
	{12540, 3, &rule83},
	{12543, 1, &rule45},
	{12549, 41, &rule45},
	{12593, 94, &rule45},
	{12688, 2, &rule13},
	{12690, 4, &rule17},
	{12694, 10, &rule13},
	{12704, 27, &rule45},
	{12736, 36, &rule13},
	{12784, 16, &rule45},
	{12800, 31, &rule13},
	{12832, 10, &rule17},
	{12842, 39, &rule13},
	{12881, 15, &rule17},
	{12896, 32, &rule13},
	{12928, 10, &rule17},
	{12938, 39, &rule13},
	{12977, 15, &rule17},
	{12992, 63, &rule13},
	{13056, 256, &rule13},
	{13312, 6582, &rule45},
	{19904, 64, &rule13},
	{19968, 20940, &rule45},
	{40960, 21, &rule45},
	{40981, 1, &rule83},
	{40982, 1143, &rule45},
	{42128, 55, &rule13},
	{42192, 40, &rule45},
	{42232, 6, &rule83},
	{42238, 2, &rule2},
	{42240, 268, &rule45},
	{42508, 1, &rule83},
	{42509, 3, &rule2},
	{42512, 16, &rule45},
	{42528, 10, &rule8},
	{42538, 2, &rule45},
	{42560, 1, &rule21},
	{42561, 1, &rule22},
	{42562, 1, &rule21},
	{42563, 1, &rule22},
	{42564, 1, &rule21},
	{42565, 1, &rule22},
	{42566, 1, &rule21},
	{42567, 1, &rule22},
	{42568, 1, &rule21},
	{42569, 1, &rule22},
	{42570, 1, &rule21},
	{42571, 1, &rule22},
	{42572, 1, &rule21},
	{42573, 1, &rule22},
	{42574, 1, &rule21},
	{42575, 1, &rule22},
	{42576, 1, &rule21},
	{42577, 1, &rule22},
	{42578, 1, &rule21},
	{42579, 1, &rule22},
	{42580, 1, &rule21},
	{42581, 1, &rule22},
	{42582, 1, &rule21},
	{42583, 1, &rule22},
	{42584, 1, &rule21},
	{42585, 1, &rule22},
	{42586, 1, &rule21},
	{42587, 1, &rule22},
	{42588, 1, &rule21},
	{42589, 1, &rule22},
	{42590, 1, &rule21},
	{42591, 1, &rule22},
	{42592, 1, &rule21},
	{42593, 1, &rule22},
	{42594, 1, &rule21},
	{42595, 1, &rule22},
	{42596, 1, &rule21},
	{42597, 1, &rule22},
	{42598, 1, &rule21},
	{42599, 1, &rule22},
	{42600, 1, &rule21},
	{42601, 1, &rule22},
	{42602, 1, &rule21},
	{42603, 1, &rule22},
	{42604, 1, &rule21},
	{42605, 1, &rule22},
	{42606, 1, &rule45},
	{42607, 1, &rule84},
	{42608, 3, &rule109},
	{42611, 1, &rule2},
	{42620, 2, &rule84},
	{42622, 1, &rule2},
	{42623, 1, &rule83},
	{42624, 1, &rule21},
	{42625, 1, &rule22},
	{42626, 1, &rule21},
	{42627, 1, &rule22},
	{42628, 1, &rule21},
	{42629, 1, &rule22},
	{42630, 1, &rule21},
	{42631, 1, &rule22},
	{42632, 1, &rule21},
	{42633, 1, &rule22},
	{42634, 1, &rule21},
	{42635, 1, &rule22},
	{42636, 1, &rule21},
	{42637, 1, &rule22},
	{42638, 1, &rule21},
	{42639, 1, &rule22},
	{42640, 1, &rule21},
	{42641, 1, &rule22},
	{42642, 1, &rule21},
	{42643, 1, &rule22},
	{42644, 1, &rule21},
	{42645, 1, &rule22},
	{42646, 1, &rule21},
	{42647, 1, &rule22},
	{42656, 70, &rule45},
	{42726, 10, &rule116},
	{42736, 2, &rule84},
	{42738, 6, &rule2},
	{42752, 23, &rule10},
	{42775, 9, &rule83},
	{42784, 2, &rule10},
	{42786, 1, &rule21},
	{42787, 1, &rule22},
	{42788, 1, &rule21},
	{42789, 1, &rule22},
	{42790, 1, &rule21},
	{42791, 1, &rule22},
	{42792, 1, &rule21},
	{42793, 1, &rule22},
	{42794, 1, &rule21},
	{42795, 1, &rule22},
	{42796, 1, &rule21},
	{42797, 1, &rule22},
	{42798, 1, &rule21},
	{42799, 1, &rule22},
	{42800, 2, &rule14},
	{42802, 1, &rule21},
	{42803, 1, &rule22},
	{42804, 1, &rule21},
	{42805, 1, &rule22},
	{42806, 1, &rule21},
	{42807, 1, &rule22},
	{42808, 1, &rule21},
	{42809, 1, &rule22},
	{42810, 1, &rule21},
	{42811, 1, &rule22},
	{42812, 1, &rule21},
	{42813, 1, &rule22},
	{42814, 1, &rule21},
	{42815, 1, &rule22},
	{42816, 1, &rule21},
	{42817, 1, &rule22},
	{42818, 1, &rule21},
	{42819, 1, &rule22},
	{42820, 1, &rule21},
	{42821, 1, &rule22},
	{42822, 1, &rule21},
	{42823, 1, &rule22},
	{42824, 1, &rule21},
	{42825, 1, &rule22},
	{42826, 1, &rule21},
	{42827, 1, &rule22},
	{42828, 1, &rule21},
	{42829, 1, &rule22},
	{42830, 1, &rule21},
	{42831, 1, &rule22},
	{42832, 1, &rule21},
	{42833, 1, &rule22},
	{42834, 1, &rule21},
	{42835, 1, &rule22},
	{42836, 1, &rule21},
	{42837, 1, &rule22},
	{42838, 1, &rule21},
	{42839, 1, &rule22},
	{42840, 1, &rule21},
	{42841, 1, &rule22},
	{42842, 1, &rule21},
	{42843, 1, &rule22},
	{42844, 1, &rule21},
	{42845, 1, &rule22},
	{42846, 1, &rule21},
	{42847, 1, &rule22},
	{42848, 1, &rule21},
	{42849, 1, &rule22},
	{42850, 1, &rule21},
	{42851, 1, &rule22},
	{42852, 1, &rule21},
	{42853, 1, &rule22},
	{42854, 1, &rule21},
	{42855, 1, &rule22},
	{42856, 1, &rule21},
	{42857, 1, &rule22},
	{42858, 1, &rule21},
	{42859, 1, &rule22},
	{42860, 1, &rule21},
	{42861, 1, &rule22},
	{42862, 1, &rule21},
	{42863, 1, &rule22},
	{42864, 1, &rule83},
	{42865, 8, &rule14},
	{42873, 1, &rule21},
	{42874, 1, &rule22},
	{42875, 1, &rule21},
	{42876, 1, &rule22},
	{42877, 1, &rule161},
	{42878, 1, &rule21},
	{42879, 1, &rule22},
	{42880, 1, &rule21},
	{42881, 1, &rule22},
	{42882, 1, &rule21},
	{42883, 1, &rule22},
	{42884, 1, &rule21},
	{42885, 1, &rule22},
	{42886, 1, &rule21},
	{42887, 1, &rule22},
	{42888, 1, &rule83},
	{42889, 2, &rule10},
	{42891, 1, &rule21},
	{42892, 1, &rule22},
	{42893, 1, &rule162},
	{42894, 1, &rule14},
	{42896, 1, &rule21},
	{42897, 1, &rule22},
	{42912, 1, &rule21},
	{42913, 1, &rule22},
	{42914, 1, &rule21},
	{42915, 1, &rule22},
	{42916, 1, &rule21},
	{42917, 1, &rule22},
	{42918, 1, &rule21},
	{42919, 1, &rule22},
	{42920, 1, &rule21},
	{42921, 1, &rule22},
	{43002, 1, &rule14},
	{43003, 7, &rule45},
	{43010, 1, &rule84},
	{43011, 3, &rule45},
	{43014, 1, &rule84},
	{43015, 4, &rule45},
	{43019, 1, &rule84},
	{43020, 23, &rule45},
	{43043, 2, &rule114},
	{43045, 2, &rule84},
	{43047, 1, &rule114},
	{43048, 4, &rule13},
	{43056, 6, &rule17},
	{43062, 2, &rule13},
	{43064, 1, &rule3},
	{43065, 1, &rule13},
	{43072, 52, &rule45},
	{43124, 4, &rule2},
	{43136, 2, &rule114},
	{43138, 50, &rule45},
	{43188, 16, &rule114},
	{43204, 1, &rule84},
	{43214, 2, &rule2},
	{43216, 10, &rule8},
	{43232, 18, &rule84},
	{43250, 6, &rule45},
	{43256, 3, &rule2},
	{43259, 1, &rule45},
	{43264, 10, &rule8},
	{43274, 28, &rule45},
	{43302, 8, &rule84},
	{43310, 2, &rule2},
	{43312, 23, &rule45},
	{43335, 11, &rule84},
	{43346, 2, &rule114},
	{43359, 1, &rule2},
	{43360, 29, &rule45},
	{43392, 3, &rule84},
	{43395, 1, &rule114},
	{43396, 47, &rule45},
	{43443, 1, &rule84},
	{43444, 2, &rule114},
	{43446, 4, &rule84},
	{43450, 2, &rule114},
	{43452, 1, &rule84},
	{43453, 4, &rule114},
	{43457, 13, &rule2},
	{43471, 1, &rule83},
	{43472, 10, &rule8},
	{43486, 2, &rule2},
	{43520, 41, &rule45},
	{43561, 6, &rule84},
	{43567, 2, &rule114},
	{43569, 2, &rule84},
	{43571, 2, &rule114},
	{43573, 2, &rule84},
	{43584, 3, &rule45},
	{43587, 1, &rule84},
	{43588, 8, &rule45},
	{43596, 1, &rule84},
	{43597, 1, &rule114},
	{43600, 10, &rule8},
	{43612, 4, &rule2},
	{43616, 16, &rule45},
	{43632, 1, &rule83},
	{43633, 6, &rule45},
	{43639, 3, &rule13},
	{43642, 1, &rule45},
	{43643, 1, &rule114},
	{43648, 48, &rule45},
	{43696, 1, &rule84},
	{43697, 1, &rule45},
	{43698, 3, &rule84},
	{43701, 2, &rule45},
	{43703, 2, &rule84},
	{43705, 5, &rule45},
	{43710, 2, &rule84},
	{43712, 1, &rule45},
	{43713, 1, &rule84},
	{43714, 1, &rule45},
	{43739, 2, &rule45},
	{43741, 1, &rule83},
	{43742, 2, &rule2},
	{43777, 6, &rule45},
	{43785, 6, &rule45},
	{43793, 6, &rule45},
	{43808, 7, &rule45},
	{43816, 7, &rule45},
	{43968, 35, &rule45},
	{44003, 2, &rule114},
	{44005, 1, &rule84},
	{44006, 2, &rule114},
	{44008, 1, &rule84},
	{44009, 2, &rule114},
	{44011, 1, &rule2},
	{44012, 1, &rule114},
	{44013, 1, &rule84},
	{44016, 10, &rule8},
	{44032, 11172, &rule45},
	{55216, 23, &rule45},
	{55243, 49, &rule45},
	{55296, 896, &rule163},
	{56192, 128, &rule163},
	{56320, 1024, &rule163},
	{57344, 6400, &rule164},
	{63744, 302, &rule45},
	{64048, 62, &rule45},
	{64112, 106, &rule45},
	{64256, 7, &rule14},
	{64275, 5, &rule14},
	{64285, 1, &rule45},
	{64286, 1, &rule84},
	{64287, 10, &rule45},
	{64297, 1, &rule6},
	{64298, 13, &rule45},
	{64312, 5, &rule45},
	{64318, 1, &rule45},
	{64320, 2, &rule45},
	{64323, 2, &rule45},
	{64326, 108, &rule45},
	{64434, 16, &rule10},
	{64467, 363, &rule45},
	{64830, 1, &rule4},
	{64831, 1, &rule5},
	{64848, 64, &rule45},
	{64914, 54, &rule45},
	{65008, 12, &rule45},
	{65020, 1, &rule3},
	{65021, 1, &rule13},
	{65024, 16, &rule84},
	{65040, 7, &rule2},
	{65047, 1, &rule4},
	{65048, 1, &rule5},
	{65049, 1, &rule2},
	{65056, 7, &rule84},
	{65072, 1, &rule2},
	{65073, 2, &rule7},
	{65075, 2, &rule11},
	{65077, 1, &rule4},
	{65078, 1, &rule5},
	{65079, 1, &rule4},
	{65080, 1, &rule5},
	{65081, 1, &rule4},
	{65082, 1, &rule5},
	{65083, 1, &rule4},
	{65084, 1, &rule5},
	{65085, 1, &rule4},
	{65086, 1, &rule5},
	{65087, 1, &rule4},
	{65088, 1, &rule5},
	{65089, 1, &rule4},
	{65090, 1, &rule5},
	{65091, 1, &rule4},
	{65092, 1, &rule5},
	{65093, 2, &rule2},
	{65095, 1, &rule4},
	{65096, 1, &rule5},
	{65097, 4, &rule2},
	{65101, 3, &rule11},
	{65104, 3, &rule2},
	{65108, 4, &rule2},
	{65112, 1, &rule7},
	{65113, 1, &rule4},
	{65114, 1, &rule5},
	{65115, 1, &rule4},
	{65116, 1, &rule5},
	{65117, 1, &rule4},
	{65118, 1, &rule5},
	{65119, 3, &rule2},
	{65122, 1, &rule6},
	{65123, 1, &rule7},
	{65124, 3, &rule6},
	{65128, 1, &rule2},
	{65129, 1, &rule3},
	{65130, 2, &rule2},
	{65136, 5, &rule45},
	{65142, 135, &rule45},
	{65279, 1, &rule16},
	{65281, 3, &rule2},
	{65284, 1, &rule3},
	{65285, 3, &rule2},
	{65288, 1, &rule4},
	{65289, 1, &rule5},
	{65290, 1, &rule2},
	{65291, 1, &rule6},
	{65292, 1, &rule2},
	{65293, 1, &rule7},
	{65294, 2, &rule2},
	{65296, 10, &rule8},
	{65306, 2, &rule2},
	{65308, 3, &rule6},
	{65311, 2, &rule2},
	{65313, 26, &rule9},
	{65339, 1, &rule4},
	{65340, 1, &rule2},
	{65341, 1, &rule5},
	{65342, 1, &rule10},
	{65343, 1, &rule11},
	{65344, 1, &rule10},
	{65345, 26, &rule12},
	{65371, 1, &rule4},
	{65372, 1, &rule6},
	{65373, 1, &rule5},
	{65374, 1, &rule6},
	{65375, 1, &rule4},
	{65376, 1, &rule5},
	{65377, 1, &rule2},
	{65378, 1, &rule4},
	{65379, 1, &rule5},
	{65380, 2, &rule2},
	{65382, 10, &rule45},
	{65392, 1, &rule83},
	{65393, 45, &rule45},
	{65438, 2, &rule83},
	{65440, 31, &rule45},
	{65474, 6, &rule45},
	{65482, 6, &rule45},
	{65490, 6, &rule45},
	{65498, 3, &rule45},
	{65504, 2, &rule3},
	{65506, 1, &rule6},
	{65507, 1, &rule10},
	{65508, 1, &rule13},
	{65509, 2, &rule3},
	{65512, 1, &rule13},
	{65513, 4, &rule6},
	{65517, 2, &rule13},
	{65529, 3, &rule16},
	{65532, 2, &rule13},
	{65536, 12, &rule45},
	{65549, 26, &rule45},
	{65576, 19, &rule45},
	{65596, 2, &rule45},
	{65599, 15, &rule45},
	{65616, 14, &rule45},
	{65664, 123, &rule45},
	{65792, 2, &rule2},
	{65794, 1, &rule13},
	{65799, 45, &rule17},
	{65847, 9, &rule13},
	{65856, 53, &rule116},
	{65909, 4, &rule17},
	{65913, 17, &rule13},
	{65930, 1, &rule17},
	{65936, 12, &rule13},
	{66000, 45, &rule13},
	{66045, 1, &rule84},
	{66176, 29, &rule45},
	{66208, 49, &rule45},
	{66304, 31, &rule45},
	{66336, 4, &rule17},
	{66352, 17, &rule45},
	{66369, 1, &rule116},
	{66370, 8, &rule45},
	{66378, 1, &rule116},
	{66432, 30, &rule45},
	{66463, 1, &rule2},
	{66464, 36, &rule45},
	{66504, 8, &rule45},
	{66512, 1, &rule2},
	{66513, 5, &rule116},
	{66560, 40, &rule165},
	{66600, 40, &rule166},
	{66640, 78, &rule45},
	{66720, 10, &rule8},
	{67584, 6, &rule45},
	{67592, 1, &rule45},
	{67594, 44, &rule45},
	{67639, 2, &rule45},
	{67644, 1, &rule45},
	{67647, 23, &rule45},
	{67671, 1, &rule2},
	{67672, 8, &rule17},
	{67840, 22, &rule45},
	{67862, 6, &rule17},
	{67871, 1, &rule2},
	{67872, 26, &rule45},
	{67903, 1, &rule2},
	{68096, 1, &rule45},
	{68097, 3, &rule84},
	{68101, 2, &rule84},
	{68108, 4, &rule84},
	{68112, 4, &rule45},
	{68117, 3, &rule45},
	{68121, 27, &rule45},
	{68152, 3, &rule84},
	{68159, 1, &rule84},
	{68160, 8, &rule17},
	{68176, 9, &rule2},
	{68192, 29, &rule45},
	{68221, 2, &rule17},
	{68223, 1, &rule2},
	{68352, 54, &rule45},
	{68409, 7, &rule2},
	{68416, 22, &rule45},
	{68440, 8, &rule17},
	{68448, 19, &rule45},
	{68472, 8, &rule17},
	{68608, 73, &rule45},
	{69216, 31, &rule17},
	{69632, 1, &rule114},
	{69633, 1, &rule84},
	{69634, 1, &rule114},
	{69635, 53, &rule45},
	{69688, 15, &rule84},
	{69703, 7, &rule2},
	{69714, 20, &rule17},
	{69734, 10, &rule8},
	{69760, 2, &rule84},
	{69762, 1, &rule114},
	{69763, 45, &rule45},
	{69808, 3, &rule114},
	{69811, 4, &rule84},
	{69815, 2, &rule114},
	{69817, 2, &rule84},
	{69819, 2, &rule2},
	{69821, 1, &rule16},
	{69822, 4, &rule2},
	{73728, 879, &rule45},
	{74752, 99, &rule116},
	{74864, 4, &rule2},
	{77824, 1071, &rule45},
	{92160, 569, &rule45},
	{110592, 2, &rule45},
	{118784, 246, &rule13},
	{119040, 39, &rule13},
	{119081, 60, &rule13},
	{119141, 2, &rule114},
	{119143, 3, &rule84},
	{119146, 3, &rule13},
	{119149, 6, &rule114},
	{119155, 8, &rule16},
	{119163, 8, &rule84},
	{119171, 2, &rule13},
	{119173, 7, &rule84},
	{119180, 30, &rule13},
	{119210, 4, &rule84},
	{119214, 48, &rule13},
	{119296, 66, &rule13},
	{119362, 3, &rule84},
	{119365, 1, &rule13},
	{119552, 87, &rule13},
	{119648, 18, &rule17},
	{119808, 26, &rule98},
	{119834, 26, &rule14},
	{119860, 26, &rule98},
	{119886, 7, &rule14},
	{119894, 18, &rule14},
	{119912, 26, &rule98},
	{119938, 26, &rule14},
	{119964, 1, &rule98},
	{119966, 2, &rule98},
	{119970, 1, &rule98},
	{119973, 2, &rule98},
	{119977, 4, &rule98},
	{119982, 8, &rule98},
	{119990, 4, &rule14},
	{119995, 1, &rule14},
	{119997, 7, &rule14},
	{120005, 11, &rule14},
	{120016, 26, &rule98},
	{120042, 26, &rule14},
	{120068, 2, &rule98},
	{120071, 4, &rule98},
	{120077, 8, &rule98},
	{120086, 7, &rule98},
	{120094, 26, &rule14},
	{120120, 2, &rule98},
	{120123, 4, &rule98},
	{120128, 5, &rule98},
	{120134, 1, &rule98},
	{120138, 7, &rule98},
	{120146, 26, &rule14},
	{120172, 26, &rule98},
	{120198, 26, &rule14},
	{120224, 26, &rule98},
	{120250, 26, &rule14},
	{120276, 26, &rule98},
	{120302, 26, &rule14},
	{120328, 26, &rule98},
	{120354, 26, &rule14},
	{120380, 26, &rule98},
	{120406, 26, &rule14},
	{120432, 26, &rule98},
	{120458, 28, &rule14},
	{120488, 25, &rule98},
	{120513, 1, &rule6},
	{120514, 25, &rule14},
	{120539, 1, &rule6},
	{120540, 6, &rule14},
	{120546, 25, &rule98},
	{120571, 1, &rule6},
	{120572, 25, &rule14},
	{120597, 1, &rule6},
	{120598, 6, &rule14},
	{120604, 25, &rule98},
	{120629, 1, &rule6},
	{120630, 25, &rule14},
	{120655, 1, &rule6},
	{120656, 6, &rule14},
	{120662, 25, &rule98},
	{120687, 1, &rule6},
	{120688, 25, &rule14},
	{120713, 1, &rule6},
	{120714, 6, &rule14},
	{120720, 25, &rule98},
	{120745, 1, &rule6},
	{120746, 25, &rule14},
	{120771, 1, &rule6},
	{120772, 6, &rule14},
	{120778, 1, &rule98},
	{120779, 1, &rule14},
	{120782, 50, &rule8},
	{126976, 44, &rule13},
	{127024, 100, &rule13},
	{127136, 15, &rule13},
	{127153, 14, &rule13},
	{127169, 15, &rule13},
	{127185, 15, &rule13},
	{127232, 11, &rule17},
	{127248, 31, &rule13},
	{127280, 58, &rule13},
	{127344, 43, &rule13},
	{127462, 29, &rule13},
	{127504, 43, &rule13},
	{127552, 9, &rule13},
	{127568, 2, &rule13},
	{127744, 33, &rule13},
	{127792, 6, &rule13},
	{127799, 70, &rule13},
	{127872, 20, &rule13},
	{127904, 37, &rule13},
	{127942, 5, &rule13},
	{127968, 17, &rule13},
	{128000, 63, &rule13},
	{128064, 1, &rule13},
	{128066, 182, &rule13},
	{128249, 4, &rule13},
	{128256, 62, &rule13},
	{128336, 24, &rule13},
	{128507, 5, &rule13},
	{128513, 16, &rule13},
	{128530, 3, &rule13},
	{128534, 1, &rule13},
	{128536, 1, &rule13},
	{128538, 1, &rule13},
	{128540, 3, &rule13},
	{128544, 6, &rule13},
	{128552, 4, &rule13},
	{128557, 1, &rule13},
	{128560, 4, &rule13},
	{128565, 12, &rule13},
	{128581, 11, &rule13},
	{128640, 70, &rule13},
	{128768, 116, &rule13},
	{131072, 42711, &rule45},
	{173824, 4149, &rule45},
	{177984, 222, &rule45},
	{194560, 542, &rule45},
	{917505, 1, &rule16},
	{917536, 96, &rule16},
	{917760, 240, &rule84},
	{983040, 65534, &rule164},
	{1048576, 65534, &rule164}
};
static const struct _charblock_ convchars[]={
	{65, 26, &rule9},
	{97, 26, &rule12},
	{181, 1, &rule18},
	{192, 23, &rule9},
	{216, 7, &rule9},
	{224, 23, &rule12},
	{248, 7, &rule12},
	{255, 1, &rule20},
	{256, 1, &rule21},
	{257, 1, &rule22},
	{258, 1, &rule21},
	{259, 1, &rule22},
	{260, 1, &rule21},
	{261, 1, &rule22},
	{262, 1, &rule21},
	{263, 1, &rule22},
	{264, 1, &rule21},
	{265, 1, &rule22},
	{266, 1, &rule21},
	{267, 1, &rule22},
	{268, 1, &rule21},
	{269, 1, &rule22},
	{270, 1, &rule21},
	{271, 1, &rule22},
	{272, 1, &rule21},
	{273, 1, &rule22},
	{274, 1, &rule21},
	{275, 1, &rule22},
	{276, 1, &rule21},
	{277, 1, &rule22},
	{278, 1, &rule21},
	{279, 1, &rule22},
	{280, 1, &rule21},
	{281, 1, &rule22},
	{282, 1, &rule21},
	{283, 1, &rule22},
	{284, 1, &rule21},
	{285, 1, &rule22},
	{286, 1, &rule21},
	{287, 1, &rule22},
	{288, 1, &rule21},
	{289, 1, &rule22},
	{290, 1, &rule21},
	{291, 1, &rule22},
	{292, 1, &rule21},
	{293, 1, &rule22},
	{294, 1, &rule21},
	{295, 1, &rule22},
	{296, 1, &rule21},
	{297, 1, &rule22},
	{298, 1, &rule21},
	{299, 1, &rule22},
	{300, 1, &rule21},
	{301, 1, &rule22},
	{302, 1, &rule21},
	{303, 1, &rule22},
	{304, 1, &rule23},
	{305, 1, &rule24},
	{306, 1, &rule21},
	{307, 1, &rule22},
	{308, 1, &rule21},
	{309, 1, &rule22},
	{310, 1, &rule21},
	{311, 1, &rule22},
	{313, 1, &rule21},
	{314, 1, &rule22},
	{315, 1, &rule21},
	{316, 1, &rule22},
	{317, 1, &rule21},
	{318, 1, &rule22},
	{319, 1, &rule21},
	{320, 1, &rule22},
	{321, 1, &rule21},
	{322, 1, &rule22},
	{323, 1, &rule21},
	{324, 1, &rule22},
	{325, 1, &rule21},
	{326, 1, &rule22},
	{327, 1, &rule21},
	{328, 1, &rule22},
	{330, 1, &rule21},
	{331, 1, &rule22},
	{332, 1, &rule21},
	{333, 1, &rule22},
	{334, 1, &rule21},
	{335, 1, &rule22},
	{336, 1, &rule21},
	{337, 1, &rule22},
	{338, 1, &rule21},
	{339, 1, &rule22},
	{340, 1, &rule21},
	{341, 1, &rule22},
	{342, 1, &rule21},
	{343, 1, &rule22},
	{344, 1, &rule21},
	{345, 1, &rule22},
	{346, 1, &rule21},
	{347, 1, &rule22},
	{348, 1, &rule21},
	{349, 1, &rule22},
	{350, 1, &rule21},
	{351, 1, &rule22},
	{352, 1, &rule21},
	{353, 1, &rule22},
	{354, 1, &rule21},
	{355, 1, &rule22},
	{356, 1, &rule21},
	{357, 1, &rule22},
	{358, 1, &rule21},
	{359, 1, &rule22},
	{360, 1, &rule21},
	{361, 1, &rule22},
	{362, 1, &rule21},
	{363, 1, &rule22},
	{364, 1, &rule21},
	{365, 1, &rule22},
	{366, 1, &rule21},
	{367, 1, &rule22},
	{368, 1, &rule21},
	{369, 1, &rule22},
	{370, 1, &rule21},
	{371, 1, &rule22},
	{372, 1, &rule21},
	{373, 1, &rule22},
	{374, 1, &rule21},
	{375, 1, &rule22},
	{376, 1, &rule25},
	{377, 1, &rule21},
	{378, 1, &rule22},
	{379, 1, &rule21},
	{380, 1, &rule22},
	{381, 1, &rule21},
	{382, 1, &rule22},
	{383, 1, &rule26},
	{384, 1, &rule27},
	{385, 1, &rule28},
	{386, 1, &rule21},
	{387, 1, &rule22},
	{388, 1, &rule21},
	{389, 1, &rule22},
	{390, 1, &rule29},
	{391, 1, &rule21},
	{392, 1, &rule22},
	{393, 2, &rule30},
	{395, 1, &rule21},
	{396, 1, &rule22},
	{398, 1, &rule31},
	{399, 1, &rule32},
	{400, 1, &rule33},
	{401, 1, &rule21},
	{402, 1, &rule22},
	{403, 1, &rule30},
	{404, 1, &rule34},
	{405, 1, &rule35},
	{406, 1, &rule36},
	{407, 1, &rule37},
	{408, 1, &rule21},
	{409, 1, &rule22},
	{410, 1, &rule38},
	{412, 1, &rule36},
	{413, 1, &rule39},
	{414, 1, &rule40},
	{415, 1, &rule41},
	{416, 1, &rule21},
	{417, 1, &rule22},
	{418, 1, &rule21},
	{419, 1, &rule22},
	{420, 1, &rule21},
	{421, 1, &rule22},
	{422, 1, &rule42},
	{423, 1, &rule21},
	{424, 1, &rule22},
	{425, 1, &rule42},
	{428, 1, &rule21},
	{429, 1, &rule22},
	{430, 1, &rule42},
	{431, 1, &rule21},
	{432, 1, &rule22},
	{433, 2, &rule43},
	{435, 1, &rule21},
	{436, 1, &rule22},
	{437, 1, &rule21},
	{438, 1, &rule22},
	{439, 1, &rule44},
	{440, 1, &rule21},
	{441, 1, &rule22},
	{444, 1, &rule21},
	{445, 1, &rule22},
	{447, 1, &rule46},
	{452, 1, &rule47},
	{453, 1, &rule48},
	{454, 1, &rule49},
	{455, 1, &rule47},
	{456, 1, &rule48},
	{457, 1, &rule49},
	{458, 1, &rule47},
	{459, 1, &rule48},
	{460, 1, &rule49},
	{461, 1, &rule21},
	{462, 1, &rule22},
	{463, 1, &rule21},
	{464, 1, &rule22},
	{465, 1, &rule21},
	{466, 1, &rule22},
	{467, 1, &rule21},
	{468, 1, &rule22},
	{469, 1, &rule21},
	{470, 1, &rule22},
	{471, 1, &rule21},
	{472, 1, &rule22},
	{473, 1, &rule21},
	{474, 1, &rule22},
	{475, 1, &rule21},
	{476, 1, &rule22},
	{477, 1, &rule50},
	{478, 1, &rule21},
	{479, 1, &rule22},
	{480, 1, &rule21},
	{481, 1, &rule22},
	{482, 1, &rule21},
	{483, 1, &rule22},
	{484, 1, &rule21},
	{485, 1, &rule22},
	{486, 1, &rule21},
	{487, 1, &rule22},
	{488, 1, &rule21},
	{489, 1, &rule22},
	{490, 1, &rule21},
	{491, 1, &rule22},
	{492, 1, &rule21},
	{493, 1, &rule22},
	{494, 1, &rule21},
	{495, 1, &rule22},
	{497, 1, &rule47},
	{498, 1, &rule48},
	{499, 1, &rule49},
	{500, 1, &rule21},
	{501, 1, &rule22},
	{502, 1, &rule51},
	{503, 1, &rule52},
	{504, 1, &rule21},
	{505, 1, &rule22},
	{506, 1, &rule21},
	{507, 1, &rule22},
	{508, 1, &rule21},
	{509, 1, &rule22},
	{510, 1, &rule21},
	{511, 1, &rule22},
	{512, 1, &rule21},
	{513, 1, &rule22},
	{514, 1, &rule21},
	{515, 1, &rule22},
	{516, 1, &rule21},
	{517, 1, &rule22},
	{518, 1, &rule21},
	{519, 1, &rule22},
	{520, 1, &rule21},
	{521, 1, &rule22},
	{522, 1, &rule21},
	{523, 1, &rule22},
	{524, 1, &rule21},
	{525, 1, &rule22},
	{526, 1, &rule21},
	{527, 1, &rule22},
	{528, 1, &rule21},
	{529, 1, &rule22},
	{530, 1, &rule21},
	{531, 1, &rule22},
	{532, 1, &rule21},
	{533, 1, &rule22},
	{534, 1, &rule21},
	{535, 1, &rule22},
	{536, 1, &rule21},
	{537, 1, &rule22},
	{538, 1, &rule21},
	{539, 1, &rule22},
	{540, 1, &rule21},
	{541, 1, &rule22},
	{542, 1, &rule21},
	{543, 1, &rule22},
	{544, 1, &rule53},
	{546, 1, &rule21},
	{547, 1, &rule22},
	{548, 1, &rule21},
	{549, 1, &rule22},
	{550, 1, &rule21},
	{551, 1, &rule22},
	{552, 1, &rule21},
	{553, 1, &rule22},
	{554, 1, &rule21},
	{555, 1, &rule22},
	{556, 1, &rule21},
	{557, 1, &rule22},
	{558, 1, &rule21},
	{559, 1, &rule22},
	{560, 1, &rule21},
	{561, 1, &rule22},
	{562, 1, &rule21},
	{563, 1, &rule22},
	{570, 1, &rule54},
	{571, 1, &rule21},
	{572, 1, &rule22},
	{573, 1, &rule55},
	{574, 1, &rule56},
	{575, 2, &rule57},
	{577, 1, &rule21},
	{578, 1, &rule22},
	{579, 1, &rule58},
	{580, 1, &rule59},
	{581, 1, &rule60},
	{582, 1, &rule21},
	{583, 1, &rule22},
	{584, 1, &rule21},
	{585, 1, &rule22},
	{586, 1, &rule21},
	{587, 1, &rule22},
	{588, 1, &rule21},
	{589, 1, &rule22},
	{590, 1, &rule21},
	{591, 1, &rule22},
	{592, 1, &rule61},
	{593, 1, &rule62},
	{594, 1, &rule63},
	{595, 1, &rule64},
	{596, 1, &rule65},
	{598, 2, &rule66},
	{601, 1, &rule67},
	{603, 1, &rule68},
	{608, 1, &rule66},
	{611, 1, &rule69},
	{613, 1, &rule70},
	{616, 1, &rule71},
	{617, 1, &rule72},
	{619, 1, &rule73},
	{623, 1, &rule72},
	{625, 1, &rule74},
	{626, 1, &rule75},
	{629, 1, &rule76},
	{637, 1, &rule77},
	{640, 1, &rule78},
	{643, 1, &rule78},
	{648, 1, &rule78},
	{649, 1, &rule79},
	{650, 2, &rule80},
	{652, 1, &rule81},
	{658, 1, &rule82},
	{837, 1, &rule85},
	{880, 1, &rule21},
	{881, 1, &rule22},
	{882, 1, &rule21},
	{883, 1, &rule22},
	{886, 1, &rule21},
	{887, 1, &rule22},
	{891, 3, &rule40},
	{902, 1, &rule86},
	{904, 3, &rule87},
	{908, 1, &rule88},
	{910, 2, &rule89},
	{913, 17, &rule9},
	{931, 9, &rule9},
	{940, 1, &rule90},
	{941, 3, &rule91},
	{945, 17, &rule12},
	{962, 1, &rule92},
	{963, 9, &rule12},
	{972, 1, &rule93},
	{973, 2, &rule94},
	{975, 1, &rule95},
	{976, 1, &rule96},
	{977, 1, &rule97},
	{981, 1, &rule99},
	{982, 1, &rule100},
	{983, 1, &rule101},
	{984, 1, &rule21},
	{985, 1, &rule22},
	{986, 1, &rule21},
	{987, 1, &rule22},
	{988, 1, &rule21},
	{989, 1, &rule22},
	{990, 1, &rule21},
	{991, 1, &rule22},
	{992, 1, &rule21},
	{993, 1, &rule22},
	{994, 1, &rule21},
	{995, 1, &rule22},
	{996, 1, &rule21},
	{997, 1, &rule22},
	{998, 1, &rule21},
	{999, 1, &rule22},
	{1000, 1, &rule21},
	{1001, 1, &rule22},
	{1002, 1, &rule21},
	{1003, 1, &rule22},
	{1004, 1, &rule21},
	{1005, 1, &rule22},
	{1006, 1, &rule21},
	{1007, 1, &rule22},
	{1008, 1, &rule102},
	{1009, 1, &rule103},
	{1010, 1, &rule104},
	{1012, 1, &rule105},
	{1013, 1, &rule106},
	{1015, 1, &rule21},
	{1016, 1, &rule22},
	{1017, 1, &rule107},
	{1018, 1, &rule21},
	{1019, 1, &rule22},
	{1021, 3, &rule53},
	{1024, 16, &rule108},
	{1040, 32, &rule9},
	{1072, 32, &rule12},
	{1104, 16, &rule103},
	{1120, 1, &rule21},
	{1121, 1, &rule22},
	{1122, 1, &rule21},
	{1123, 1, &rule22},
	{1124, 1, &rule21},
	{1125, 1, &rule22},
	{1126, 1, &rule21},
	{1127, 1, &rule22},
	{1128, 1, &rule21},
	{1129, 1, &rule22},
	{1130, 1, &rule21},
	{1131, 1, &rule22},
	{1132, 1, &rule21},
	{1133, 1, &rule22},
	{1134, 1, &rule21},
	{1135, 1, &rule22},
	{1136, 1, &rule21},
	{1137, 1, &rule22},
	{1138, 1, &rule21},
	{1139, 1, &rule22},
	{1140, 1, &rule21},
	{1141, 1, &rule22},
	{1142, 1, &rule21},
	{1143, 1, &rule22},
	{1144, 1, &rule21},
	{1145, 1, &rule22},
	{1146, 1, &rule21},
	{1147, 1, &rule22},
	{1148, 1, &rule21},
	{1149, 1, &rule22},
	{1150, 1, &rule21},
	{1151, 1, &rule22},
	{1152, 1, &rule21},
	{1153, 1, &rule22},
	{1162, 1, &rule21},
	{1163, 1, &rule22},
	{1164, 1, &rule21},
	{1165, 1, &rule22},
	{1166, 1, &rule21},
	{1167, 1, &rule22},
	{1168, 1, &rule21},
	{1169, 1, &rule22},
	{1170, 1, &rule21},
	{1171, 1, &rule22},
	{1172, 1, &rule21},
	{1173, 1, &rule22},
	{1174, 1, &rule21},
	{1175, 1, &rule22},
	{1176, 1, &rule21},
	{1177, 1, &rule22},
	{1178, 1, &rule21},
	{1179, 1, &rule22},
	{1180, 1, &rule21},
	{1181, 1, &rule22},
	{1182, 1, &rule21},
	{1183, 1, &rule22},
	{1184, 1, &rule21},
	{1185, 1, &rule22},
	{1186, 1, &rule21},
	{1187, 1, &rule22},
	{1188, 1, &rule21},
	{1189, 1, &rule22},
	{1190, 1, &rule21},
	{1191, 1, &rule22},
	{1192, 1, &rule21},
	{1193, 1, &rule22},
	{1194, 1, &rule21},
	{1195, 1, &rule22},
	{1196, 1, &rule21},
	{1197, 1, &rule22},
	{1198, 1, &rule21},
	{1199, 1, &rule22},
	{1200, 1, &rule21},
	{1201, 1, &rule22},
	{1202, 1, &rule21},
	{1203, 1, &rule22},
	{1204, 1, &rule21},
	{1205, 1, &rule22},
	{1206, 1, &rule21},
	{1207, 1, &rule22},
	{1208, 1, &rule21},
	{1209, 1, &rule22},
	{1210, 1, &rule21},
	{1211, 1, &rule22},
	{1212, 1, &rule21},
	{1213, 1, &rule22},
	{1214, 1, &rule21},
	{1215, 1, &rule22},
	{1216, 1, &rule110},
	{1217, 1, &rule21},
	{1218, 1, &rule22},
	{1219, 1, &rule21},
	{1220, 1, &rule22},
	{1221, 1, &rule21},
	{1222, 1, &rule22},
	{1223, 1, &rule21},
	{1224, 1, &rule22},
	{1225, 1, &rule21},
	{1226, 1, &rule22},
	{1227, 1, &rule21},
	{1228, 1, &rule22},
	{1229, 1, &rule21},
	{1230, 1, &rule22},
	{1231, 1, &rule111},
	{1232, 1, &rule21},
	{1233, 1, &rule22},
	{1234, 1, &rule21},
	{1235, 1, &rule22},
	{1236, 1, &rule21},
	{1237, 1, &rule22},
	{1238, 1, &rule21},
	{1239, 1, &rule22},
	{1240, 1, &rule21},
	{1241, 1, &rule22},
	{1242, 1, &rule21},
	{1243, 1, &rule22},
	{1244, 1, &rule21},
	{1245, 1, &rule22},
	{1246, 1, &rule21},
	{1247, 1, &rule22},
	{1248, 1, &rule21},
	{1249, 1, &rule22},
	{1250, 1, &rule21},
	{1251, 1, &rule22},
	{1252, 1, &rule21},
	{1253, 1, &rule22},
	{1254, 1, &rule21},
	{1255, 1, &rule22},
	{1256, 1, &rule21},
	{1257, 1, &rule22},
	{1258, 1, &rule21},
	{1259, 1, &rule22},
	{1260, 1, &rule21},
	{1261, 1, &rule22},
	{1262, 1, &rule21},
	{1263, 1, &rule22},
	{1264, 1, &rule21},
	{1265, 1, &rule22},
	{1266, 1, &rule21},
	{1267, 1, &rule22},
	{1268, 1, &rule21},
	{1269, 1, &rule22},
	{1270, 1, &rule21},
	{1271, 1, &rule22},
	{1272, 1, &rule21},
	{1273, 1, &rule22},
	{1274, 1, &rule21},
	{1275, 1, &rule22},
	{1276, 1, &rule21},
	{1277, 1, &rule22},
	{1278, 1, &rule21},
	{1279, 1, &rule22},
	{1280, 1, &rule21},
	{1281, 1, &rule22},
	{1282, 1, &rule21},
	{1283, 1, &rule22},
	{1284, 1, &rule21},
	{1285, 1, &rule22},
	{1286, 1, &rule21},
	{1287, 1, &rule22},
	{1288, 1, &rule21},
	{1289, 1, &rule22},
	{1290, 1, &rule21},
	{1291, 1, &rule22},
	{1292, 1, &rule21},
	{1293, 1, &rule22},
	{1294, 1, &rule21},
	{1295, 1, &rule22},
	{1296, 1, &rule21},
	{1297, 1, &rule22},
	{1298, 1, &rule21},
	{1299, 1, &rule22},
	{1300, 1, &rule21},
	{1301, 1, &rule22},
	{1302, 1, &rule21},
	{1303, 1, &rule22},
	{1304, 1, &rule21},
	{1305, 1, &rule22},
	{1306, 1, &rule21},
	{1307, 1, &rule22},
	{1308, 1, &rule21},
	{1309, 1, &rule22},
	{1310, 1, &rule21},
	{1311, 1, &rule22},
	{1312, 1, &rule21},
	{1313, 1, &rule22},
	{1314, 1, &rule21},
	{1315, 1, &rule22},
	{1316, 1, &rule21},
	{1317, 1, &rule22},
	{1318, 1, &rule21},
	{1319, 1, &rule22},
	{1329, 38, &rule112},
	{1377, 38, &rule113},
	{4256, 38, &rule115},
	{7545, 1, &rule117},
	{7549, 1, &rule118},
	{7680, 1, &rule21},
	{7681, 1, &rule22},
	{7682, 1, &rule21},
	{7683, 1, &rule22},
	{7684, 1, &rule21},
	{7685, 1, &rule22},
	{7686, 1, &rule21},
	{7687, 1, &rule22},
	{7688, 1, &rule21},
	{7689, 1, &rule22},
	{7690, 1, &rule21},
	{7691, 1, &rule22},
	{7692, 1, &rule21},
	{7693, 1, &rule22},
	{7694, 1, &rule21},
	{7695, 1, &rule22},
	{7696, 1, &rule21},
	{7697, 1, &rule22},
	{7698, 1, &rule21},
	{7699, 1, &rule22},
	{7700, 1, &rule21},
	{7701, 1, &rule22},
	{7702, 1, &rule21},
	{7703, 1, &rule22},
	{7704, 1, &rule21},
	{7705, 1, &rule22},
	{7706, 1, &rule21},
	{7707, 1, &rule22},
	{7708, 1, &rule21},
	{7709, 1, &rule22},
	{7710, 1, &rule21},
	{7711, 1, &rule22},
	{7712, 1, &rule21},
	{7713, 1, &rule22},
	{7714, 1, &rule21},
	{7715, 1, &rule22},
	{7716, 1, &rule21},
	{7717, 1, &rule22},
	{7718, 1, &rule21},
	{7719, 1, &rule22},
	{7720, 1, &rule21},
	{7721, 1, &rule22},
	{7722, 1, &rule21},
	{7723, 1, &rule22},
	{7724, 1, &rule21},
	{7725, 1, &rule22},
	{7726, 1, &rule21},
	{7727, 1, &rule22},
	{7728, 1, &rule21},
	{7729, 1, &rule22},
	{7730, 1, &rule21},
	{7731, 1, &rule22},
	{7732, 1, &rule21},
	{7733, 1, &rule22},
	{7734, 1, &rule21},
	{7735, 1, &rule22},
	{7736, 1, &rule21},
	{7737, 1, &rule22},
	{7738, 1, &rule21},
	{7739, 1, &rule22},
	{7740, 1, &rule21},
	{7741, 1, &rule22},
	{7742, 1, &rule21},
	{7743, 1, &rule22},
	{7744, 1, &rule21},
	{7745, 1, &rule22},
	{7746, 1, &rule21},
	{7747, 1, &rule22},
	{7748, 1, &rule21},
	{7749, 1, &rule22},
	{7750, 1, &rule21},
	{7751, 1, &rule22},
	{7752, 1, &rule21},
	{7753, 1, &rule22},
	{7754, 1, &rule21},
	{7755, 1, &rule22},
	{7756, 1, &rule21},
	{7757, 1, &rule22},
	{7758, 1, &rule21},
	{7759, 1, &rule22},
	{7760, 1, &rule21},
	{7761, 1, &rule22},
	{7762, 1, &rule21},
	{7763, 1, &rule22},
	{7764, 1, &rule21},
	{7765, 1, &rule22},
	{7766, 1, &rule21},
	{7767, 1, &rule22},
	{7768, 1, &rule21},
	{7769, 1, &rule22},
	{7770, 1, &rule21},
	{7771, 1, &rule22},
	{7772, 1, &rule21},
	{7773, 1, &rule22},
	{7774, 1, &rule21},
	{7775, 1, &rule22},
	{7776, 1, &rule21},
	{7777, 1, &rule22},
	{7778, 1, &rule21},
	{7779, 1, &rule22},
	{7780, 1, &rule21},
	{7781, 1, &rule22},
	{7782, 1, &rule21},
	{7783, 1, &rule22},
	{7784, 1, &rule21},
	{7785, 1, &rule22},
	{7786, 1, &rule21},
	{7787, 1, &rule22},
	{7788, 1, &rule21},
	{7789, 1, &rule22},
	{7790, 1, &rule21},
	{7791, 1, &rule22},
	{7792, 1, &rule21},
	{7793, 1, &rule22},
	{7794, 1, &rule21},
	{7795, 1, &rule22},
	{7796, 1, &rule21},
	{7797, 1, &rule22},
	{7798, 1, &rule21},
	{7799, 1, &rule22},
	{7800, 1, &rule21},
	{7801, 1, &rule22},
	{7802, 1, &rule21},
	{7803, 1, &rule22},
	{7804, 1, &rule21},
	{7805, 1, &rule22},
	{7806, 1, &rule21},
	{7807, 1, &rule22},
	{7808, 1, &rule21},
	{7809, 1, &rule22},
	{7810, 1, &rule21},
	{7811, 1, &rule22},
	{7812, 1, &rule21},
	{7813, 1, &rule22},
	{7814, 1, &rule21},
	{7815, 1, &rule22},
	{7816, 1, &rule21},
	{7817, 1, &rule22},
	{7818, 1, &rule21},
	{7819, 1, &rule22},
	{7820, 1, &rule21},
	{7821, 1, &rule22},
	{7822, 1, &rule21},
	{7823, 1, &rule22},
	{7824, 1, &rule21},
	{7825, 1, &rule22},
	{7826, 1, &rule21},
	{7827, 1, &rule22},
	{7828, 1, &rule21},
	{7829, 1, &rule22},
	{7835, 1, &rule119},
	{7838, 1, &rule120},
	{7840, 1, &rule21},
	{7841, 1, &rule22},
	{7842, 1, &rule21},
	{7843, 1, &rule22},
	{7844, 1, &rule21},
	{7845, 1, &rule22},
	{7846, 1, &rule21},
	{7847, 1, &rule22},
	{7848, 1, &rule21},
	{7849, 1, &rule22},
	{7850, 1, &rule21},
	{7851, 1, &rule22},
	{7852, 1, &rule21},
	{7853, 1, &rule22},
	{7854, 1, &rule21},
	{7855, 1, &rule22},
	{7856, 1, &rule21},
	{7857, 1, &rule22},
	{7858, 1, &rule21},
	{7859, 1, &rule22},
	{7860, 1, &rule21},
	{7861, 1, &rule22},
	{7862, 1, &rule21},
	{7863, 1, &rule22},
	{7864, 1, &rule21},
	{7865, 1, &rule22},
	{7866, 1, &rule21},
	{7867, 1, &rule22},
	{7868, 1, &rule21},
	{7869, 1, &rule22},
	{7870, 1, &rule21},
	{7871, 1, &rule22},
	{7872, 1, &rule21},
	{7873, 1, &rule22},
	{7874, 1, &rule21},
	{7875, 1, &rule22},
	{7876, 1, &rule21},
	{7877, 1, &rule22},
	{7878, 1, &rule21},
	{7879, 1, &rule22},
	{7880, 1, &rule21},
	{7881, 1, &rule22},
	{7882, 1, &rule21},
	{7883, 1, &rule22},
	{7884, 1, &rule21},
	{7885, 1, &rule22},
	{7886, 1, &rule21},
	{7887, 1, &rule22},
	{7888, 1, &rule21},
	{7889, 1, &rule22},
	{7890, 1, &rule21},
	{7891, 1, &rule22},
	{7892, 1, &rule21},
	{7893, 1, &rule22},
	{7894, 1, &rule21},
	{7895, 1, &rule22},
	{7896, 1, &rule21},
	{7897, 1, &rule22},
	{7898, 1, &rule21},
	{7899, 1, &rule22},
	{7900, 1, &rule21},
	{7901, 1, &rule22},
	{7902, 1, &rule21},
	{7903, 1, &rule22},
	{7904, 1, &rule21},
	{7905, 1, &rule22},
	{7906, 1, &rule21},
	{7907, 1, &rule22},
	{7908, 1, &rule21},
	{7909, 1, &rule22},
	{7910, 1, &rule21},
	{7911, 1, &rule22},
	{7912, 1, &rule21},
	{7913, 1, &rule22},
	{7914, 1, &rule21},
	{7915, 1, &rule22},
	{7916, 1, &rule21},
	{7917, 1, &rule22},
	{7918, 1, &rule21},
	{7919, 1, &rule22},
	{7920, 1, &rule21},
	{7921, 1, &rule22},
	{7922, 1, &rule21},
	{7923, 1, &rule22},
	{7924, 1, &rule21},
	{7925, 1, &rule22},
	{7926, 1, &rule21},
	{7927, 1, &rule22},
	{7928, 1, &rule21},
	{7929, 1, &rule22},
	{7930, 1, &rule21},
	{7931, 1, &rule22},
	{7932, 1, &rule21},
	{7933, 1, &rule22},
	{7934, 1, &rule21},
	{7935, 1, &rule22},
	{7936, 8, &rule121},
	{7944, 8, &rule122},
	{7952, 6, &rule121},
	{7960, 6, &rule122},
	{7968, 8, &rule121},
	{7976, 8, &rule122},
	{7984, 8, &rule121},
	{7992, 8, &rule122},
	{8000, 6, &rule121},
	{8008, 6, &rule122},
	{8017, 1, &rule121},
	{8019, 1, &rule121},
	{8021, 1, &rule121},
	{8023, 1, &rule121},
	{8025, 1, &rule122},
	{8027, 1, &rule122},
	{8029, 1, &rule122},
	{8031, 1, &rule122},
	{8032, 8, &rule121},
	{8040, 8, &rule122},
	{8048, 2, &rule123},
	{8050, 4, &rule124},
	{8054, 2, &rule125},
	{8056, 2, &rule126},
	{8058, 2, &rule127},
	{8060, 2, &rule128},
	{8064, 8, &rule121},
	{8072, 8, &rule129},
	{8080, 8, &rule121},
	{8088, 8, &rule129},
	{8096, 8, &rule121},
	{8104, 8, &rule129},
	{8112, 2, &rule121},
	{8115, 1, &rule130},
	{8120, 2, &rule122},
	{8122, 2, &rule131},
	{8124, 1, &rule132},
	{8126, 1, &rule133},
	{8131, 1, &rule130},
	{8136, 4, &rule134},
	{8140, 1, &rule132},
	{8144, 2, &rule121},
	{8152, 2, &rule122},
	{8154, 2, &rule135},
	{8160, 2, &rule121},
	{8165, 1, &rule104},
	{8168, 2, &rule122},
	{8170, 2, &rule136},
	{8172, 1, &rule107},
	{8179, 1, &rule130},
	{8184, 2, &rule137},
	{8186, 2, &rule138},
	{8188, 1, &rule132},
	{8486, 1, &rule141},
	{8490, 1, &rule142},
	{8491, 1, &rule143},
	{8498, 1, &rule144},
	{8526, 1, &rule145},
	{8544, 16, &rule146},
	{8560, 16, &rule147},
	{8579, 1, &rule21},
	{8580, 1, &rule22},
	{9398, 26, &rule148},
	{9424, 26, &rule149},
	{11264, 47, &rule112},
	{11312, 47, &rule113},
	{11360, 1, &rule21},
	{11361, 1, &rule22},
	{11362, 1, &rule150},
	{11363, 1, &rule151},
	{11364, 1, &rule152},
	{11365, 1, &rule153},
	{11366, 1, &rule154},
	{11367, 1, &rule21},
	{11368, 1, &rule22},
	{11369, 1, &rule21},
	{11370, 1, &rule22},
	{11371, 1, &rule21},
	{11372, 1, &rule22},
	{11373, 1, &rule155},
	{11374, 1, &rule156},
	{11375, 1, &rule157},
	{11376, 1, &rule158},
	{11378, 1, &rule21},
	{11379, 1, &rule22},
	{11381, 1, &rule21},
	{11382, 1, &rule22},
	{11390, 2, &rule159},
	{11392, 1, &rule21},
	{11393, 1, &rule22},
	{11394, 1, &rule21},
	{11395, 1, &rule22},
	{11396, 1, &rule21},
	{11397, 1, &rule22},
	{11398, 1, &rule21},
	{11399, 1, &rule22},
	{11400, 1, &rule21},
	{11401, 1, &rule22},
	{11402, 1, &rule21},
	{11403, 1, &rule22},
	{11404, 1, &rule21},
	{11405, 1, &rule22},
	{11406, 1, &rule21},
	{11407, 1, &rule22},
	{11408, 1, &rule21},
	{11409, 1, &rule22},
	{11410, 1, &rule21},
	{11411, 1, &rule22},
	{11412, 1, &rule21},
	{11413, 1, &rule22},
	{11414, 1, &rule21},
	{11415, 1, &rule22},
	{11416, 1, &rule21},
	{11417, 1, &rule22},
	{11418, 1, &rule21},
	{11419, 1, &rule22},
	{11420, 1, &rule21},
	{11421, 1, &rule22},
	{11422, 1, &rule21},
	{11423, 1, &rule22},
	{11424, 1, &rule21},
	{11425, 1, &rule22},
	{11426, 1, &rule21},
	{11427, 1, &rule22},
	{11428, 1, &rule21},
	{11429, 1, &rule22},
	{11430, 1, &rule21},
	{11431, 1, &rule22},
	{11432, 1, &rule21},
	{11433, 1, &rule22},
	{11434, 1, &rule21},
	{11435, 1, &rule22},
	{11436, 1, &rule21},
	{11437, 1, &rule22},
	{11438, 1, &rule21},
	{11439, 1, &rule22},
	{11440, 1, &rule21},
	{11441, 1, &rule22},
	{11442, 1, &rule21},
	{11443, 1, &rule22},
	{11444, 1, &rule21},
	{11445, 1, &rule22},
	{11446, 1, &rule21},
	{11447, 1, &rule22},
	{11448, 1, &rule21},
	{11449, 1, &rule22},
	{11450, 1, &rule21},
	{11451, 1, &rule22},
	{11452, 1, &rule21},
	{11453, 1, &rule22},
	{11454, 1, &rule21},
	{11455, 1, &rule22},
	{11456, 1, &rule21},
	{11457, 1, &rule22},
	{11458, 1, &rule21},
	{11459, 1, &rule22},
	{11460, 1, &rule21},
	{11461, 1, &rule22},
	{11462, 1, &rule21},
	{11463, 1, &rule22},
	{11464, 1, &rule21},
	{11465, 1, &rule22},
	{11466, 1, &rule21},
	{11467, 1, &rule22},
	{11468, 1, &rule21},
	{11469, 1, &rule22},
	{11470, 1, &rule21},
	{11471, 1, &rule22},
	{11472, 1, &rule21},
	{11473, 1, &rule22},
	{11474, 1, &rule21},
	{11475, 1, &rule22},
	{11476, 1, &rule21},
	{11477, 1, &rule22},
	{11478, 1, &rule21},
	{11479, 1, &rule22},
	{11480, 1, &rule21},
	{11481, 1, &rule22},
	{11482, 1, &rule21},
	{11483, 1, &rule22},
	{11484, 1, &rule21},
	{11485, 1, &rule22},
	{11486, 1, &rule21},
	{11487, 1, &rule22},
	{11488, 1, &rule21},
	{11489, 1, &rule22},
	{11490, 1, &rule21},
	{11491, 1, &rule22},
	{11499, 1, &rule21},
	{11500, 1, &rule22},
	{11501, 1, &rule21},
	{11502, 1, &rule22},
	{11520, 38, &rule160},
	{42560, 1, &rule21},
	{42561, 1, &rule22},
	{42562, 1, &rule21},
	{42563, 1, &rule22},
	{42564, 1, &rule21},
	{42565, 1, &rule22},
	{42566, 1, &rule21},
	{42567, 1, &rule22},
	{42568, 1, &rule21},
	{42569, 1, &rule22},
	{42570, 1, &rule21},
	{42571, 1, &rule22},
	{42572, 1, &rule21},
	{42573, 1, &rule22},
	{42574, 1, &rule21},
	{42575, 1, &rule22},
	{42576, 1, &rule21},
	{42577, 1, &rule22},
	{42578, 1, &rule21},
	{42579, 1, &rule22},
	{42580, 1, &rule21},
	{42581, 1, &rule22},
	{42582, 1, &rule21},
	{42583, 1, &rule22},
	{42584, 1, &rule21},
	{42585, 1, &rule22},
	{42586, 1, &rule21},
	{42587, 1, &rule22},
	{42588, 1, &rule21},
	{42589, 1, &rule22},
	{42590, 1, &rule21},
	{42591, 1, &rule22},
	{42592, 1, &rule21},
	{42593, 1, &rule22},
	{42594, 1, &rule21},
	{42595, 1, &rule22},
	{42596, 1, &rule21},
	{42597, 1, &rule22},
	{42598, 1, &rule21},
	{42599, 1, &rule22},
	{42600, 1, &rule21},
	{42601, 1, &rule22},
	{42602, 1, &rule21},
	{42603, 1, &rule22},
	{42604, 1, &rule21},
	{42605, 1, &rule22},
	{42624, 1, &rule21},
	{42625, 1, &rule22},
	{42626, 1, &rule21},
	{42627, 1, &rule22},
	{42628, 1, &rule21},
	{42629, 1, &rule22},
	{42630, 1, &rule21},
	{42631, 1, &rule22},
	{42632, 1, &rule21},
	{42633, 1, &rule22},
	{42634, 1, &rule21},
	{42635, 1, &rule22},
	{42636, 1, &rule21},
	{42637, 1, &rule22},
	{42638, 1, &rule21},
	{42639, 1, &rule22},
	{42640, 1, &rule21},
	{42641, 1, &rule22},
	{42642, 1, &rule21},
	{42643, 1, &rule22},
	{42644, 1, &rule21},
	{42645, 1, &rule22},
	{42646, 1, &rule21},
	{42647, 1, &rule22},
	{42786, 1, &rule21},
	{42787, 1, &rule22},
	{42788, 1, &rule21},
	{42789, 1, &rule22},
	{42790, 1, &rule21},
	{42791, 1, &rule22},
	{42792, 1, &rule21},
	{42793, 1, &rule22},
	{42794, 1, &rule21},
	{42795, 1, &rule22},
	{42796, 1, &rule21},
	{42797, 1, &rule22},
	{42798, 1, &rule21},
	{42799, 1, &rule22},
	{42802, 1, &rule21},
	{42803, 1, &rule22},
	{42804, 1, &rule21},
	{42805, 1, &rule22},
	{42806, 1, &rule21},
	{42807, 1, &rule22},
	{42808, 1, &rule21},
	{42809, 1, &rule22},
	{42810, 1, &rule21},
	{42811, 1, &rule22},
	{42812, 1, &rule21},
	{42813, 1, &rule22},
	{42814, 1, &rule21},
	{42815, 1, &rule22},
	{42816, 1, &rule21},
	{42817, 1, &rule22},
	{42818, 1, &rule21},
	{42819, 1, &rule22},
	{42820, 1, &rule21},
	{42821, 1, &rule22},
	{42822, 1, &rule21},
	{42823, 1, &rule22},
	{42824, 1, &rule21},
	{42825, 1, &rule22},
	{42826, 1, &rule21},
	{42827, 1, &rule22},
	{42828, 1, &rule21},
	{42829, 1, &rule22},
	{42830, 1, &rule21},
	{42831, 1, &rule22},
	{42832, 1, &rule21},
	{42833, 1, &rule22},
	{42834, 1, &rule21},
	{42835, 1, &rule22},
	{42836, 1, &rule21},
	{42837, 1, &rule22},
	{42838, 1, &rule21},
	{42839, 1, &rule22},
	{42840, 1, &rule21},
	{42841, 1, &rule22},
	{42842, 1, &rule21},
	{42843, 1, &rule22},
	{42844, 1, &rule21},
	{42845, 1, &rule22},
	{42846, 1, &rule21},
	{42847, 1, &rule22},
	{42848, 1, &rule21},
	{42849, 1, &rule22},
	{42850, 1, &rule21},
	{42851, 1, &rule22},
	{42852, 1, &rule21},
	{42853, 1, &rule22},
	{42854, 1, &rule21},
	{42855, 1, &rule22},
	{42856, 1, &rule21},
	{42857, 1, &rule22},
	{42858, 1, &rule21},
	{42859, 1, &rule22},
	{42860, 1, &rule21},
	{42861, 1, &rule22},
	{42862, 1, &rule21},
	{42863, 1, &rule22},
	{42873, 1, &rule21},
	{42874, 1, &rule22},
	{42875, 1, &rule21},
	{42876, 1, &rule22},
	{42877, 1, &rule161},
	{42878, 1, &rule21},
	{42879, 1, &rule22},
	{42880, 1, &rule21},
	{42881, 1, &rule22},
	{42882, 1, &rule21},
	{42883, 1, &rule22},
	{42884, 1, &rule21},
	{42885, 1, &rule22},
	{42886, 1, &rule21},
	{42887, 1, &rule22},
	{42891, 1, &rule21},
	{42892, 1, &rule22},
	{42893, 1, &rule162},
	{42896, 1, &rule21},
	{42897, 1, &rule22},
	{42912, 1, &rule21},
	{42913, 1, &rule22},
	{42914, 1, &rule21},
	{42915, 1, &rule22},
	{42916, 1, &rule21},
	{42917, 1, &rule22},
	{42918, 1, &rule21},
	{42919, 1, &rule22},
	{42920, 1, &rule21},
	{42921, 1, &rule22},
	{65313, 26, &rule9},
	{65345, 26, &rule12},
	{66560, 40, &rule165},
	{66600, 40, &rule166}
};
static const struct _charblock_ spacechars[]={
	{32, 1, &rule1},
	{160, 1, &rule1},
	{5760, 1, &rule1},
	{6158, 1, &rule1},
	{8192, 11, &rule1},
	{8239, 1, &rule1},
	{8287, 1, &rule1},
	{12288, 1, &rule1}
};

/*
	Obtain the reference to character rule by doing
	binary search over the specified array of blocks.
	To make checkattr shorter, the address of
	nullrule is returned if the search fails:
	this rule defines no category and no conversion
	distances. The compare function returns 0 when
	key->start is within the block. Otherwise
	result of comparison of key->start and start of the
	current block is returned as usual.
*/

static const struct _convrule_ nullrule={0,NUMCAT_CN,0,0,0,0};

int blkcmp(const void *vk,const void *vb)
{
	const struct _charblock_ *key,*cur;
	key=vk;
	cur=vb;
	if((key->start>=cur->start)&&(key->start<(cur->start+cur->length)))
	{
		return 0;
	}
	if(key->start>cur->start) return 1;
	return -1;
}

static const struct _convrule_ *getrule(
	const struct _charblock_ *blocks,
	int numblocks,
	int unichar)
{
	struct _charblock_ key={unichar,1,(void *)0};
	struct _charblock_ *cb=bsearch(&key,blocks,numblocks,sizeof(key),blkcmp);
	if(cb==(void *)0) return &nullrule;
	return cb->rule;
}
	


/*
	Check whether a character (internal code) has certain attributes.
	Attributes (category flags) may be ORed. The function ANDs
	character category flags and the mask and returns the result.
	If the character belongs to one of the categories requested,
	the result will be nonzero.
*/

inline static int checkattr(int c,unsigned int catmask)
{
	return (catmask & (getrule(allchars,(c<256)?NUM_LAT1BLOCKS:NUM_BLOCKS,c)->category));
}

inline static int checkattr_s(int c,unsigned int catmask)
{
        return (catmask & (getrule(spacechars,NUM_SPACEBLOCKS,c)->category));
}

/*
	Define predicate functions for some combinations of categories.
*/

#define unipred(p,m) \
int p(int c) \
{ \
	return checkattr(c,m); \
}

#define unipred_s(p,m) \
int p(int c) \
{ \
        return checkattr_s(c,m); \
}

/*
	Make these rules as close to Hugs as possible.
*/

unipred(u_iswcntrl,GENCAT_CC)
unipred(u_iswprint, (GENCAT_MC | GENCAT_NO | GENCAT_SK | GENCAT_ME | GENCAT_ND |   GENCAT_PO | GENCAT_LT | GENCAT_PC | GENCAT_SM | GENCAT_ZS |   GENCAT_LU | GENCAT_PD | GENCAT_SO | GENCAT_PE | GENCAT_PF |   GENCAT_PS | GENCAT_SC | GENCAT_LL | GENCAT_LM | GENCAT_PI |   GENCAT_NL | GENCAT_MN | GENCAT_LO))
unipred_s(u_iswspace,GENCAT_ZS)
unipred(u_iswupper,(GENCAT_LU|GENCAT_LT))
unipred(u_iswlower,GENCAT_LL)
unipred(u_iswalpha,(GENCAT_LL|GENCAT_LU|GENCAT_LT|GENCAT_LM|GENCAT_LO))
unipred(u_iswdigit,GENCAT_ND)

unipred(u_iswalnum,(GENCAT_LT|GENCAT_LU|GENCAT_LL|GENCAT_LM|GENCAT_LO|
		    GENCAT_MC|GENCAT_ME|GENCAT_MN|
		    GENCAT_NO|GENCAT_ND|GENCAT_NL))

#define caseconv(p,to) \
int p(int c) \
{ \
	const struct _convrule_ *rule=getrule(convchars,NUM_CONVBLOCKS,c);\
	if(rule==&nullrule) return c;\
	return c+rule->to;\
}

caseconv(u_towupper,updist)
caseconv(u_towlower,lowdist)
caseconv(u_towtitle,titledist)

int u_gencat(int c)
{
	return getrule(allchars,NUM_BLOCKS,c)->catnumber;
}

