summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/runtime/c/gu/ucs.c4744
-rw-r--r--src/runtime/c/gu/ucs.h16
2 files changed, 4760 insertions, 0 deletions
diff --git a/src/runtime/c/gu/ucs.c b/src/runtime/c/gu/ucs.c
index 05ea163ae..0bfce2461 100644
--- a/src/runtime/c/gu/ucs.c
+++ b/src/runtime/c/gu/ucs.c
@@ -73,3 +73,4747 @@ gu_char_ucs(char c)
gu_ensure(u < 0x80);
return u;
}
+
+
+
+/*----------------------------------------------------------------------
+* The rest of this file is a modified version of WCsubst.c from
+* the base library in Haskell. It encodes the Unicode classes and it
+* should not be changed
+----------------------------------------------------------------------*/
+
+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_ZP 67108864
+#define GENCAT_MC 8388608
+#define GENCAT_NO 131072
+#define GENCAT_SK 1024
+#define GENCAT_CO 268435456
+#define GENCAT_ME 4194304
+#define GENCAT_ND 256
+#define GENCAT_PO 4
+#define GENCAT_LT 524288
+#define GENCAT_PC 2048
+#define GENCAT_SM 64
+#define GENCAT_ZS 2
+#define GENCAT_CC 1
+#define GENCAT_LU 512
+#define GENCAT_PD 128
+#define GENCAT_SO 8192
+#define GENCAT_PE 32
+#define GENCAT_CS 134217728
+#define GENCAT_PF 262144
+#define GENCAT_CF 65536
+#define GENCAT_PS 16
+#define GENCAT_SC 8
+#define GENCAT_LL 4096
+#define GENCAT_ZL 33554432
+#define GENCAT_LM 1048576
+#define GENCAT_PI 32768
+#define GENCAT_NL 16777216
+#define GENCAT_MN 2097152
+#define GENCAT_LO 16384
+#define MAX_UNI_CHAR 1114109
+#define NUM_BLOCKS 3073
+#define NUM_CONVBLOCKS 1276
+#define NUM_SPACEBLOCKS 7
+#define NUM_LAT1BLOCKS 63
+#define NUM_RULES 181
+static const struct _convrule_ rule169={GENCAT_LU, NUMCAT_LU, 1, 0, -35332, 0};
+static const struct _convrule_ rule157={GENCAT_SO, NUMCAT_SO, 1, -26, 0, -26};
+static const struct _convrule_ rule168={GENCAT_LL, NUMCAT_LL, 1, -7264, 0, -7264};
+static const struct _convrule_ rule173={GENCAT_LU, NUMCAT_LU, 1, 0, -42315, 0};
+static const struct _convrule_ rule129={GENCAT_LL, NUMCAT_LL, 1, 8, 0, 8};
+static const struct _convrule_ rule88={GENCAT_LL, NUMCAT_LL, 1, 42258, 0, 42258};
+static const struct _convrule_ rule20={GENCAT_LL, NUMCAT_LL, 0, 0, 0, 0};
+static const struct _convrule_ rule76={GENCAT_LL, NUMCAT_LL, 1, 10743, 0, 10743};
+static const struct _convrule_ rule61={GENCAT_LL, NUMCAT_LL, 1, 10783, 0, 10783};
+static const struct _convrule_ rule37={GENCAT_LU, NUMCAT_LU, 1, 0, 211, 0};
+static const struct _convrule_ rule80={GENCAT_LL, NUMCAT_LL, 1, -214, 0, -214};
+static const struct _convrule_ rule75={GENCAT_LL, NUMCAT_LL, 1, -211, 0, -211};
+static const struct _convrule_ rule121={GENCAT_LL, NUMCAT_LL, 1, -48, 0, -48};
+static const struct _convrule_ rule52={GENCAT_LU, NUMCAT_LU, 1, 0, -56, 0};
+static const struct _convrule_ rule135={GENCAT_LL, NUMCAT_LL, 1, 112, 0, 112};
+static const struct _convrule_ rule71={GENCAT_LL, NUMCAT_LL, 1, -207, 0, -207};
+static const struct _convrule_ rule123={GENCAT_LU, NUMCAT_LU, 1, 0, 7264, 0};
+static const struct _convrule_ rule152={GENCAT_LU, NUMCAT_LU, 1, 0, 28, 0};
+static const struct _convrule_ rule159={GENCAT_LU, NUMCAT_LU, 1, 0, -3814, 0};
+static const struct _convrule_ rule45={GENCAT_LU, NUMCAT_LU, 1, 0, 219, 0};
+static const struct _convrule_ rule7={GENCAT_PD, NUMCAT_PD, 0, 0, 0, 0};
+static const struct _convrule_ rule180={GENCAT_LL, NUMCAT_LL, 1, -40, 0, -40};
+static const struct _convrule_ rule97={GENCAT_LL, NUMCAT_LL, 1, -38, 0, -38};
+static const struct _convrule_ rule95={GENCAT_LU, NUMCAT_LU, 1, 0, 64, 0};
+static const struct _convrule_ rule1={GENCAT_ZS, NUMCAT_ZS, 0, 0, 0, 0};
+static const struct _convrule_ rule29={GENCAT_LU, NUMCAT_LU, 1, 0, 210, 0};
+static const struct _convrule_ rule35={GENCAT_LU, NUMCAT_LU, 1, 0, 207, 0};
+static const struct _convrule_ rule154={GENCAT_NL, NUMCAT_NL, 1, 0, 16, 0};
+static const struct _convrule_ rule13={GENCAT_SO, NUMCAT_SO, 0, 0, 0, 0};
+static const struct _convrule_ rule149={GENCAT_LU, NUMCAT_LU, 1, 0, -7517, 0};
+static const struct _convrule_ rule128={GENCAT_LU, NUMCAT_LU, 1, 0, -7615, 0};
+static const struct _convrule_ rule98={GENCAT_LL, NUMCAT_LL, 1, -37, 0, -37};
+static const struct _convrule_ rule2={GENCAT_PO, NUMCAT_PO, 0, 0, 0, 0};
+static const struct _convrule_ rule69={GENCAT_LL, NUMCAT_LL, 1, 42319, 0, 42319};
+static const struct _convrule_ rule56={GENCAT_LU, NUMCAT_LU, 1, 0, 10792, 0};
+static const struct _convrule_ rule25={GENCAT_LL, NUMCAT_LL, 1, -232, 0, -232};
+static const struct _convrule_ rule43={GENCAT_LU, NUMCAT_LU, 1, 0, 218, 0};
+static const struct _convrule_ rule165={GENCAT_LU, NUMCAT_LU, 1, 0, -10783, 0};
+static const struct _convrule_ rule133={GENCAT_LL, NUMCAT_LL, 1, 100, 0, 100};
+static const struct _convrule_ rule96={GENCAT_LU, NUMCAT_LU, 1, 0, 63, 0};
+static const struct _convrule_ rule90={GENCAT_MN, NUMCAT_MN, 0, 0, 0, 0};
+static const struct _convrule_ rule12={GENCAT_LL, NUMCAT_LL, 1, -32, 0, -32};
+static const struct _convrule_ rule93={GENCAT_LU, NUMCAT_LU, 1, 0, 38, 0};
+static const struct _convrule_ rule99={GENCAT_LL, NUMCAT_LL, 1, -31, 0, -31};
+static const struct _convrule_ rule105={GENCAT_LU, NUMCAT_LU, 0, 0, 0, 0};
+static const struct _convrule_ rule11={GENCAT_PC, NUMCAT_PC, 0, 0, 0, 0};
+static const struct _convrule_ rule175={GENCAT_LU, NUMCAT_LU, 1, 0, -42258, 0};
+static const struct _convrule_ rule144={GENCAT_LU, NUMCAT_LU, 1, 0, -112, 0};
+static const struct _convrule_ rule15={GENCAT_PI, NUMCAT_PI, 0, 0, 0, 0};
+static const struct _convrule_ rule132={GENCAT_LL, NUMCAT_LL, 1, 86, 0, 86};
+static const struct _convrule_ rule122={GENCAT_MC, NUMCAT_MC, 0, 0, 0, 0};
+static const struct _convrule_ rule126={GENCAT_LL, NUMCAT_LL, 1, 3814, 0, 3814};
+static const struct _convrule_ rule44={GENCAT_LU, NUMCAT_LU, 1, 0, 217, 0};
+static const struct _convrule_ rule153={GENCAT_LL, NUMCAT_LL, 1, -28, 0, -28};
+static const struct _convrule_ rule178={GENCAT_CO, NUMCAT_CO, 0, 0, 0, 0};
+static const struct _convrule_ rule114={GENCAT_LL, NUMCAT_LL, 1, -96, 0, -96};
+static const struct _convrule_ rule51={GENCAT_LU, NUMCAT_LU, 1, 0, -97, 0};
+static const struct _convrule_ rule39={GENCAT_LL, NUMCAT_LL, 1, 163, 0, 163};
+static const struct _convrule_ rule179={GENCAT_LU, NUMCAT_LU, 1, 0, 40, 0};
+static const struct _convrule_ rule124={GENCAT_NL, NUMCAT_NL, 0, 0, 0, 0};
+static const struct _convrule_ rule94={GENCAT_LU, NUMCAT_LU, 1, 0, 37, 0};
+static const struct _convrule_ rule82={GENCAT_LL, NUMCAT_LL, 1, -218, 0, -218};
+static const struct _convrule_ rule118={GENCAT_LU, NUMCAT_LU, 1, 0, 15, 0};
+static const struct _convrule_ rule67={GENCAT_LL, NUMCAT_LL, 1, -202, 0, -202};
+static const struct _convrule_ rule66={GENCAT_LL, NUMCAT_LL, 1, -205, 0, -205};
+static const struct _convrule_ rule47={GENCAT_LU, NUMCAT_LU, 1, 0, 2, 1};
+static const struct _convrule_ rule30={GENCAT_LU, NUMCAT_LU, 1, 0, 206, 0};
+static const struct _convrule_ rule109={GENCAT_LL, NUMCAT_LL, 1, -86, 0, -86};
+static const struct _convrule_ rule4={GENCAT_PS, NUMCAT_PS, 0, 0, 0, 0};
+static const struct _convrule_ rule3={GENCAT_SC, NUMCAT_SC, 0, 0, 0, 0};
+static const struct _convrule_ rule150={GENCAT_LU, NUMCAT_LU, 1, 0, -8383, 0};
+static const struct _convrule_ rule120={GENCAT_LU, NUMCAT_LU, 1, 0, 48, 0};
+static const struct _convrule_ rule14={GENCAT_LO, NUMCAT_LO, 0, 0, 0, 0};
+static const struct _convrule_ rule18={GENCAT_LL, NUMCAT_LL, 1, 743, 0, 743};
+static const struct _convrule_ rule147={GENCAT_ZL, NUMCAT_ZL, 0, 0, 0, 0};
+static const struct _convrule_ rule142={GENCAT_LU, NUMCAT_LU, 1, 0, -86, 0};
+static const struct _convrule_ rule171={GENCAT_LU, NUMCAT_LU, 1, 0, -42308, 0};
+static const struct _convrule_ rule162={GENCAT_LL, NUMCAT_LL, 1, -10792, 0, -10792};
+static const struct _convrule_ rule166={GENCAT_LU, NUMCAT_LU, 1, 0, -10782, 0};
+static const struct _convrule_ rule139={GENCAT_LU, NUMCAT_LU, 1, 0, -74, 0};
+static const struct _convrule_ rule24={GENCAT_LU, NUMCAT_LU, 1, 0, -199, 0};
+static const struct _convrule_ rule143={GENCAT_LU, NUMCAT_LU, 1, 0, -100, 0};
+static const struct _convrule_ rule125={GENCAT_LL, NUMCAT_LL, 1, 35332, 0, 35332};
+static const struct _convrule_ rule141={GENCAT_LL, NUMCAT_LL, 1, -7205, 0, -7205};
+static const struct _convrule_ rule138={GENCAT_LL, NUMCAT_LL, 1, 9, 0, 9};
+static const struct _convrule_ rule27={GENCAT_LL, NUMCAT_LL, 1, -300, 0, -300};
+static const struct _convrule_ rule172={GENCAT_LU, NUMCAT_LU, 1, 0, -42319, 0};
+static const struct _convrule_ rule31={GENCAT_LU, NUMCAT_LU, 1, 0, 205, 0};
+static const struct _convrule_ rule59={GENCAT_LU, NUMCAT_LU, 1, 0, 69, 0};
+static const struct _convrule_ rule6={GENCAT_SM, NUMCAT_SM, 0, 0, 0, 0};
+static const struct _convrule_ rule119={GENCAT_LL, NUMCAT_LL, 1, -15, 0, -15};
+static const struct _convrule_ rule110={GENCAT_LL, NUMCAT_LL, 1, -80, 0, -80};
+static const struct _convrule_ rule176={GENCAT_LU, NUMCAT_LU, 1, 0, -42282, 0};
+static const struct _convrule_ rule151={GENCAT_LU, NUMCAT_LU, 1, 0, -8262, 0};
+static const struct _convrule_ rule130={GENCAT_LU, NUMCAT_LU, 1, 0, -8, 0};
+static const struct _convrule_ rule26={GENCAT_LU, NUMCAT_LU, 1, 0, -121, 0};
+static const struct _convrule_ rule0={GENCAT_CC, NUMCAT_CC, 0, 0, 0, 0};
+static const struct _convrule_ rule111={GENCAT_LL, NUMCAT_LL, 1, 7, 0, 7};
+static const struct _convrule_ rule91={GENCAT_MN, NUMCAT_MN, 1, 84, 0, 84};
+static const struct _convrule_ rule78={GENCAT_LL, NUMCAT_LL, 1, 10749, 0, 10749};
+static const struct _convrule_ rule77={GENCAT_LL, NUMCAT_LL, 1, 42305, 0, 42305};
+static const struct _convrule_ rule70={GENCAT_LL, NUMCAT_LL, 1, 42315, 0, 42315};
+static const struct _convrule_ rule50={GENCAT_LL, NUMCAT_LL, 1, -79, 0, -79};
+static const struct _convrule_ rule60={GENCAT_LU, NUMCAT_LU, 1, 0, 71, 0};
+static const struct _convrule_ rule22={GENCAT_LU, NUMCAT_LU, 1, 0, 1, 0};
+static const struct _convrule_ rule49={GENCAT_LL, NUMCAT_LL, 1, -2, 0, -1};
+static const struct _convrule_ rule92={GENCAT_LU, NUMCAT_LU, 1, 0, 116, 0};
+static const struct _convrule_ rule83={GENCAT_LL, NUMCAT_LL, 1, 42282, 0, 42282};
+static const struct _convrule_ rule155={GENCAT_NL, NUMCAT_NL, 1, -16, 0, -16};
+static const struct _convrule_ rule102={GENCAT_LU, NUMCAT_LU, 1, 0, 8, 0};
+static const struct _convrule_ rule23={GENCAT_LL, NUMCAT_LL, 1, -1, 0, -1};
+static const struct _convrule_ rule87={GENCAT_LL, NUMCAT_LL, 1, -219, 0, -219};
+static const struct _convrule_ rule79={GENCAT_LL, NUMCAT_LL, 1, -213, 0, -213};
+static const struct _convrule_ rule64={GENCAT_LL, NUMCAT_LL, 1, -210, 0, -210};
+static const struct _convrule_ rule163={GENCAT_LU, NUMCAT_LU, 1, 0, -10780, 0};
+static const struct _convrule_ rule86={GENCAT_LL, NUMCAT_LL, 1, -71, 0, -71};
+static const struct _convrule_ rule84={GENCAT_LL, NUMCAT_LL, 1, -69, 0, -69};
+static const struct _convrule_ rule32={GENCAT_LU, NUMCAT_LU, 1, 0, 79, 0};
+static const struct _convrule_ rule115={GENCAT_LU, NUMCAT_LU, 1, 0, -7, 0};
+static const struct _convrule_ rule74={GENCAT_LL, NUMCAT_LL, 1, -209, 0, -209};
+static const struct _convrule_ rule177={GENCAT_CS, NUMCAT_CS, 0, 0, 0, 0};
+static const struct _convrule_ rule140={GENCAT_LT, NUMCAT_LT, 1, 0, -9, 0};
+static const struct _convrule_ rule57={GENCAT_LL, NUMCAT_LL, 1, 10815, 0, 10815};
+static const struct _convrule_ rule72={GENCAT_LL, NUMCAT_LL, 1, 42280, 0, 42280};
+static const struct _convrule_ rule34={GENCAT_LU, NUMCAT_LU, 1, 0, 203, 0};
+static const struct _convrule_ rule63={GENCAT_LL, NUMCAT_LL, 1, 10782, 0, 10782};
+static const struct _convrule_ rule170={GENCAT_LU, NUMCAT_LU, 1, 0, -42280, 0};
+static const struct _convrule_ rule145={GENCAT_LU, NUMCAT_LU, 1, 0, -128, 0};
+static const struct _convrule_ rule100={GENCAT_LL, NUMCAT_LL, 1, -64, 0, -64};
+static const struct _convrule_ rule17={GENCAT_NO, NUMCAT_NO, 0, 0, 0, 0};
+static const struct _convrule_ rule89={GENCAT_LM, NUMCAT_LM, 0, 0, 0, 0};
+static const struct _convrule_ rule46={GENCAT_LL, NUMCAT_LL, 1, 56, 0, 56};
+static const struct _convrule_ rule131={GENCAT_LL, NUMCAT_LL, 1, 74, 0, 74};
+static const struct _convrule_ rule42={GENCAT_LU, NUMCAT_LU, 1, 0, 214, 0};
+static const struct _convrule_ rule148={GENCAT_ZP, NUMCAT_ZP, 0, 0, 0, 0};
+static const struct _convrule_ rule101={GENCAT_LL, NUMCAT_LL, 1, -63, 0, -63};
+static const struct _convrule_ rule36={GENCAT_LL, NUMCAT_LL, 1, 97, 0, 97};
+static const struct _convrule_ rule137={GENCAT_LT, NUMCAT_LT, 1, 0, -8, 0};
+static const struct _convrule_ rule134={GENCAT_LL, NUMCAT_LL, 1, 128, 0, 128};
+static const struct _convrule_ rule81={GENCAT_LL, NUMCAT_LL, 1, 10727, 0, 10727};
+static const struct _convrule_ rule62={GENCAT_LL, NUMCAT_LL, 1, 10780, 0, 10780};
+static const struct _convrule_ rule41={GENCAT_LL, NUMCAT_LL, 1, 130, 0, 130};
+static const struct _convrule_ rule68={GENCAT_LL, NUMCAT_LL, 1, -203, 0, -203};
+static const struct _convrule_ rule65={GENCAT_LL, NUMCAT_LL, 1, -206, 0, -206};
+static const struct _convrule_ rule48={GENCAT_LT, NUMCAT_LT, 1, -1, 1, 0};
+static const struct _convrule_ rule19={GENCAT_PF, NUMCAT_PF, 0, 0, 0, 0};
+static const struct _convrule_ rule33={GENCAT_LU, NUMCAT_LU, 1, 0, 202, 0};
+static const struct _convrule_ rule103={GENCAT_LL, NUMCAT_LL, 1, -62, 0, -62};
+static const struct _convrule_ rule8={GENCAT_ND, NUMCAT_ND, 0, 0, 0, 0};
+static const struct _convrule_ rule53={GENCAT_LU, NUMCAT_LU, 1, 0, -130, 0};
+static const struct _convrule_ rule28={GENCAT_LL, NUMCAT_LL, 1, 195, 0, 195};
+static const struct _convrule_ rule158={GENCAT_LU, NUMCAT_LU, 1, 0, -10743, 0};
+static const struct _convrule_ rule127={GENCAT_LL, NUMCAT_LL, 1, -59, 0, -59};
+static const struct _convrule_ rule113={GENCAT_LU, NUMCAT_LU, 1, 0, -60, 0};
+static const struct _convrule_ rule108={GENCAT_LL, NUMCAT_LL, 1, -8, 0, -8};
+static const struct _convrule_ rule73={GENCAT_LL, NUMCAT_LL, 1, 42308, 0, 42308};
+static const struct _convrule_ rule40={GENCAT_LU, NUMCAT_LU, 1, 0, 213, 0};
+static const struct _convrule_ rule136={GENCAT_LL, NUMCAT_LL, 1, 126, 0, 126};
+static const struct _convrule_ rule116={GENCAT_LU, NUMCAT_LU, 1, 0, 80, 0};
+static const struct _convrule_ rule55={GENCAT_LU, NUMCAT_LU, 1, 0, -163, 0};
+static const struct _convrule_ rule174={GENCAT_LU, NUMCAT_LU, 1, 0, -42305, 0};
+static const struct _convrule_ rule161={GENCAT_LL, NUMCAT_LL, 1, -10795, 0, -10795};
+static const struct _convrule_ rule58={GENCAT_LU, NUMCAT_LU, 1, 0, -195, 0};
+static const struct _convrule_ rule54={GENCAT_LU, NUMCAT_LU, 1, 0, 10795, 0};
+static const struct _convrule_ rule107={GENCAT_LL, NUMCAT_LL, 1, -54, 0, -54};
+static const struct _convrule_ rule146={GENCAT_LU, NUMCAT_LU, 1, 0, -126, 0};
+static const struct _convrule_ rule104={GENCAT_LL, NUMCAT_LL, 1, -57, 0, -57};
+static const struct _convrule_ rule21={GENCAT_LL, NUMCAT_LL, 1, 121, 0, 121};
+static const struct _convrule_ rule156={GENCAT_SO, NUMCAT_SO, 1, 0, 26, 0};
+static const struct _convrule_ rule85={GENCAT_LL, NUMCAT_LL, 1, -217, 0, -217};
+static const struct _convrule_ rule16={GENCAT_CF, NUMCAT_CF, 0, 0, 0, 0};
+static const struct _convrule_ rule112={GENCAT_LL, NUMCAT_LL, 1, -116, 0, -116};
+static const struct _convrule_ rule38={GENCAT_LU, NUMCAT_LU, 1, 0, 209, 0};
+static const struct _convrule_ rule10={GENCAT_SK, NUMCAT_SK, 0, 0, 0, 0};
+static const struct _convrule_ rule167={GENCAT_LU, NUMCAT_LU, 1, 0, -10815, 0};
+static const struct _convrule_ rule5={GENCAT_PE, NUMCAT_PE, 0, 0, 0, 0};
+static const struct _convrule_ rule164={GENCAT_LU, NUMCAT_LU, 1, 0, -10749, 0};
+static const struct _convrule_ rule117={GENCAT_ME, NUMCAT_ME, 0, 0, 0, 0};
+static const struct _convrule_ rule106={GENCAT_LL, NUMCAT_LL, 1, -47, 0, -47};
+static const struct _convrule_ rule160={GENCAT_LU, NUMCAT_LU, 1, 0, -10727, 0};
+static const struct _convrule_ rule9={GENCAT_LU, NUMCAT_LU, 1, 0, 32, 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, 1, &rule13},
+ {167, 1, &rule2},
+ {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, 2, &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, &rule20},
+ {224, 23, &rule12},
+ {247, 1, &rule6},
+ {248, 7, &rule12},
+ {255, 1, &rule21},
+ {256, 1, &rule22},
+ {257, 1, &rule23},
+ {258, 1, &rule22},
+ {259, 1, &rule23},
+ {260, 1, &rule22},
+ {261, 1, &rule23},
+ {262, 1, &rule22},
+ {263, 1, &rule23},
+ {264, 1, &rule22},
+ {265, 1, &rule23},
+ {266, 1, &rule22},
+ {267, 1, &rule23},
+ {268, 1, &rule22},
+ {269, 1, &rule23},
+ {270, 1, &rule22},
+ {271, 1, &rule23},
+ {272, 1, &rule22},
+ {273, 1, &rule23},
+ {274, 1, &rule22},
+ {275, 1, &rule23},
+ {276, 1, &rule22},
+ {277, 1, &rule23},
+ {278, 1, &rule22},
+ {279, 1, &rule23},
+ {280, 1, &rule22},
+ {281, 1, &rule23},
+ {282, 1, &rule22},
+ {283, 1, &rule23},
+ {284, 1, &rule22},
+ {285, 1, &rule23},
+ {286, 1, &rule22},
+ {287, 1, &rule23},
+ {288, 1, &rule22},
+ {289, 1, &rule23},
+ {290, 1, &rule22},
+ {291, 1, &rule23},
+ {292, 1, &rule22},
+ {293, 1, &rule23},
+ {294, 1, &rule22},
+ {295, 1, &rule23},
+ {296, 1, &rule22},
+ {297, 1, &rule23},
+ {298, 1, &rule22},
+ {299, 1, &rule23},
+ {300, 1, &rule22},
+ {301, 1, &rule23},
+ {302, 1, &rule22},
+ {303, 1, &rule23},
+ {304, 1, &rule24},
+ {305, 1, &rule25},
+ {306, 1, &rule22},
+ {307, 1, &rule23},
+ {308, 1, &rule22},
+ {309, 1, &rule23},
+ {310, 1, &rule22},
+ {311, 1, &rule23},
+ {312, 1, &rule20},
+ {313, 1, &rule22},
+ {314, 1, &rule23},
+ {315, 1, &rule22},
+ {316, 1, &rule23},
+ {317, 1, &rule22},
+ {318, 1, &rule23},
+ {319, 1, &rule22},
+ {320, 1, &rule23},
+ {321, 1, &rule22},
+ {322, 1, &rule23},
+ {323, 1, &rule22},
+ {324, 1, &rule23},
+ {325, 1, &rule22},
+ {326, 1, &rule23},
+ {327, 1, &rule22},
+ {328, 1, &rule23},
+ {329, 1, &rule20},
+ {330, 1, &rule22},
+ {331, 1, &rule23},
+ {332, 1, &rule22},
+ {333, 1, &rule23},
+ {334, 1, &rule22},
+ {335, 1, &rule23},
+ {336, 1, &rule22},
+ {337, 1, &rule23},
+ {338, 1, &rule22},
+ {339, 1, &rule23},
+ {340, 1, &rule22},
+ {341, 1, &rule23},
+ {342, 1, &rule22},
+ {343, 1, &rule23},
+ {344, 1, &rule22},
+ {345, 1, &rule23},
+ {346, 1, &rule22},
+ {347, 1, &rule23},
+ {348, 1, &rule22},
+ {349, 1, &rule23},
+ {350, 1, &rule22},
+ {351, 1, &rule23},
+ {352, 1, &rule22},
+ {353, 1, &rule23},
+ {354, 1, &rule22},
+ {355, 1, &rule23},
+ {356, 1, &rule22},
+ {357, 1, &rule23},
+ {358, 1, &rule22},
+ {359, 1, &rule23},
+ {360, 1, &rule22},
+ {361, 1, &rule23},
+ {362, 1, &rule22},
+ {363, 1, &rule23},
+ {364, 1, &rule22},
+ {365, 1, &rule23},
+ {366, 1, &rule22},
+ {367, 1, &rule23},
+ {368, 1, &rule22},
+ {369, 1, &rule23},
+ {370, 1, &rule22},
+ {371, 1, &rule23},
+ {372, 1, &rule22},
+ {373, 1, &rule23},
+ {374, 1, &rule22},
+ {375, 1, &rule23},
+ {376, 1, &rule26},
+ {377, 1, &rule22},
+ {378, 1, &rule23},
+ {379, 1, &rule22},
+ {380, 1, &rule23},
+ {381, 1, &rule22},
+ {382, 1, &rule23},
+ {383, 1, &rule27},
+ {384, 1, &rule28},
+ {385, 1, &rule29},
+ {386, 1, &rule22},
+ {387, 1, &rule23},
+ {388, 1, &rule22},
+ {389, 1, &rule23},
+ {390, 1, &rule30},
+ {391, 1, &rule22},
+ {392, 1, &rule23},
+ {393, 2, &rule31},
+ {395, 1, &rule22},
+ {396, 1, &rule23},
+ {397, 1, &rule20},
+ {398, 1, &rule32},
+ {399, 1, &rule33},
+ {400, 1, &rule34},
+ {401, 1, &rule22},
+ {402, 1, &rule23},
+ {403, 1, &rule31},
+ {404, 1, &rule35},
+ {405, 1, &rule36},
+ {406, 1, &rule37},
+ {407, 1, &rule38},
+ {408, 1, &rule22},
+ {409, 1, &rule23},
+ {410, 1, &rule39},
+ {411, 1, &rule20},
+ {412, 1, &rule37},
+ {413, 1, &rule40},
+ {414, 1, &rule41},
+ {415, 1, &rule42},
+ {416, 1, &rule22},
+ {417, 1, &rule23},
+ {418, 1, &rule22},
+ {419, 1, &rule23},
+ {420, 1, &rule22},
+ {421, 1, &rule23},
+ {422, 1, &rule43},
+ {423, 1, &rule22},
+ {424, 1, &rule23},
+ {425, 1, &rule43},
+ {426, 2, &rule20},
+ {428, 1, &rule22},
+ {429, 1, &rule23},
+ {430, 1, &rule43},
+ {431, 1, &rule22},
+ {432, 1, &rule23},
+ {433, 2, &rule44},
+ {435, 1, &rule22},
+ {436, 1, &rule23},
+ {437, 1, &rule22},
+ {438, 1, &rule23},
+ {439, 1, &rule45},
+ {440, 1, &rule22},
+ {441, 1, &rule23},
+ {442, 1, &rule20},
+ {443, 1, &rule14},
+ {444, 1, &rule22},
+ {445, 1, &rule23},
+ {446, 1, &rule20},
+ {447, 1, &rule46},
+ {448, 4, &rule14},
+ {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, &rule22},
+ {462, 1, &rule23},
+ {463, 1, &rule22},
+ {464, 1, &rule23},
+ {465, 1, &rule22},
+ {466, 1, &rule23},
+ {467, 1, &rule22},
+ {468, 1, &rule23},
+ {469, 1, &rule22},
+ {470, 1, &rule23},
+ {471, 1, &rule22},
+ {472, 1, &rule23},
+ {473, 1, &rule22},
+ {474, 1, &rule23},
+ {475, 1, &rule22},
+ {476, 1, &rule23},
+ {477, 1, &rule50},
+ {478, 1, &rule22},
+ {479, 1, &rule23},
+ {480, 1, &rule22},
+ {481, 1, &rule23},
+ {482, 1, &rule22},
+ {483, 1, &rule23},
+ {484, 1, &rule22},
+ {485, 1, &rule23},
+ {486, 1, &rule22},
+ {487, 1, &rule23},
+ {488, 1, &rule22},
+ {489, 1, &rule23},
+ {490, 1, &rule22},
+ {491, 1, &rule23},
+ {492, 1, &rule22},
+ {493, 1, &rule23},
+ {494, 1, &rule22},
+ {495, 1, &rule23},
+ {496, 1, &rule20},
+ {497, 1, &rule47},
+ {498, 1, &rule48},
+ {499, 1, &rule49},
+ {500, 1, &rule22},
+ {501, 1, &rule23},
+ {502, 1, &rule51},
+ {503, 1, &rule52},
+ {504, 1, &rule22},
+ {505, 1, &rule23},
+ {506, 1, &rule22},
+ {507, 1, &rule23},
+ {508, 1, &rule22},
+ {509, 1, &rule23},
+ {510, 1, &rule22},
+ {511, 1, &rule23},
+ {512, 1, &rule22},
+ {513, 1, &rule23},
+ {514, 1, &rule22},
+ {515, 1, &rule23},
+ {516, 1, &rule22},
+ {517, 1, &rule23},
+ {518, 1, &rule22},
+ {519, 1, &rule23},
+ {520, 1, &rule22},
+ {521, 1, &rule23},
+ {522, 1, &rule22},
+ {523, 1, &rule23},
+ {524, 1, &rule22},
+ {525, 1, &rule23},
+ {526, 1, &rule22},
+ {527, 1, &rule23},
+ {528, 1, &rule22},
+ {529, 1, &rule23},
+ {530, 1, &rule22},
+ {531, 1, &rule23},
+ {532, 1, &rule22},
+ {533, 1, &rule23},
+ {534, 1, &rule22},
+ {535, 1, &rule23},
+ {536, 1, &rule22},
+ {537, 1, &rule23},
+ {538, 1, &rule22},
+ {539, 1, &rule23},
+ {540, 1, &rule22},
+ {541, 1, &rule23},
+ {542, 1, &rule22},
+ {543, 1, &rule23},
+ {544, 1, &rule53},
+ {545, 1, &rule20},
+ {546, 1, &rule22},
+ {547, 1, &rule23},
+ {548, 1, &rule22},
+ {549, 1, &rule23},
+ {550, 1, &rule22},
+ {551, 1, &rule23},
+ {552, 1, &rule22},
+ {553, 1, &rule23},
+ {554, 1, &rule22},
+ {555, 1, &rule23},
+ {556, 1, &rule22},
+ {557, 1, &rule23},
+ {558, 1, &rule22},
+ {559, 1, &rule23},
+ {560, 1, &rule22},
+ {561, 1, &rule23},
+ {562, 1, &rule22},
+ {563, 1, &rule23},
+ {564, 6, &rule20},
+ {570, 1, &rule54},
+ {571, 1, &rule22},
+ {572, 1, &rule23},
+ {573, 1, &rule55},
+ {574, 1, &rule56},
+ {575, 2, &rule57},
+ {577, 1, &rule22},
+ {578, 1, &rule23},
+ {579, 1, &rule58},
+ {580, 1, &rule59},
+ {581, 1, &rule60},
+ {582, 1, &rule22},
+ {583, 1, &rule23},
+ {584, 1, &rule22},
+ {585, 1, &rule23},
+ {586, 1, &rule22},
+ {587, 1, &rule23},
+ {588, 1, &rule22},
+ {589, 1, &rule23},
+ {590, 1, &rule22},
+ {591, 1, &rule23},
+ {592, 1, &rule61},
+ {593, 1, &rule62},
+ {594, 1, &rule63},
+ {595, 1, &rule64},
+ {596, 1, &rule65},
+ {597, 1, &rule20},
+ {598, 2, &rule66},
+ {600, 1, &rule20},
+ {601, 1, &rule67},
+ {602, 1, &rule20},
+ {603, 1, &rule68},
+ {604, 1, &rule69},
+ {605, 3, &rule20},
+ {608, 1, &rule66},
+ {609, 1, &rule70},
+ {610, 1, &rule20},
+ {611, 1, &rule71},
+ {612, 1, &rule20},
+ {613, 1, &rule72},
+ {614, 1, &rule73},
+ {615, 1, &rule20},
+ {616, 1, &rule74},
+ {617, 1, &rule75},
+ {618, 1, &rule20},
+ {619, 1, &rule76},
+ {620, 1, &rule77},
+ {621, 2, &rule20},
+ {623, 1, &rule75},
+ {624, 1, &rule20},
+ {625, 1, &rule78},
+ {626, 1, &rule79},
+ {627, 2, &rule20},
+ {629, 1, &rule80},
+ {630, 7, &rule20},
+ {637, 1, &rule81},
+ {638, 2, &rule20},
+ {640, 1, &rule82},
+ {641, 2, &rule20},
+ {643, 1, &rule82},
+ {644, 3, &rule20},
+ {647, 1, &rule83},
+ {648, 1, &rule82},
+ {649, 1, &rule84},
+ {650, 2, &rule85},
+ {652, 1, &rule86},
+ {653, 5, &rule20},
+ {658, 1, &rule87},
+ {659, 1, &rule20},
+ {660, 1, &rule14},
+ {661, 9, &rule20},
+ {670, 1, &rule88},
+ {671, 17, &rule20},
+ {688, 18, &rule89},
+ {706, 4, &rule10},
+ {710, 12, &rule89},
+ {722, 14, &rule10},
+ {736, 5, &rule89},
+ {741, 7, &rule10},
+ {748, 1, &rule89},
+ {749, 1, &rule10},
+ {750, 1, &rule89},
+ {751, 17, &rule10},
+ {768, 69, &rule90},
+ {837, 1, &rule91},
+ {838, 42, &rule90},
+ {880, 1, &rule22},
+ {881, 1, &rule23},
+ {882, 1, &rule22},
+ {883, 1, &rule23},
+ {884, 1, &rule89},
+ {885, 1, &rule10},
+ {886, 1, &rule22},
+ {887, 1, &rule23},
+ {890, 1, &rule89},
+ {891, 3, &rule41},
+ {894, 1, &rule2},
+ {895, 1, &rule92},
+ {900, 2, &rule10},
+ {902, 1, &rule93},
+ {903, 1, &rule2},
+ {904, 3, &rule94},
+ {908, 1, &rule95},
+ {910, 2, &rule96},
+ {912, 1, &rule20},
+ {913, 17, &rule9},
+ {931, 9, &rule9},
+ {940, 1, &rule97},
+ {941, 3, &rule98},
+ {944, 1, &rule20},
+ {945, 17, &rule12},
+ {962, 1, &rule99},
+ {963, 9, &rule12},
+ {972, 1, &rule100},
+ {973, 2, &rule101},
+ {975, 1, &rule102},
+ {976, 1, &rule103},
+ {977, 1, &rule104},
+ {978, 3, &rule105},
+ {981, 1, &rule106},
+ {982, 1, &rule107},
+ {983, 1, &rule108},
+ {984, 1, &rule22},
+ {985, 1, &rule23},
+ {986, 1, &rule22},
+ {987, 1, &rule23},
+ {988, 1, &rule22},
+ {989, 1, &rule23},
+ {990, 1, &rule22},
+ {991, 1, &rule23},
+ {992, 1, &rule22},
+ {993, 1, &rule23},
+ {994, 1, &rule22},
+ {995, 1, &rule23},
+ {996, 1, &rule22},
+ {997, 1, &rule23},
+ {998, 1, &rule22},
+ {999, 1, &rule23},
+ {1000, 1, &rule22},
+ {1001, 1, &rule23},
+ {1002, 1, &rule22},
+ {1003, 1, &rule23},
+ {1004, 1, &rule22},
+ {1005, 1, &rule23},
+ {1006, 1, &rule22},
+ {1007, 1, &rule23},
+ {1008, 1, &rule109},
+ {1009, 1, &rule110},
+ {1010, 1, &rule111},
+ {1011, 1, &rule112},
+ {1012, 1, &rule113},
+ {1013, 1, &rule114},
+ {1014, 1, &rule6},
+ {1015, 1, &rule22},
+ {1016, 1, &rule23},
+ {1017, 1, &rule115},
+ {1018, 1, &rule22},
+ {1019, 1, &rule23},
+ {1020, 1, &rule20},
+ {1021, 3, &rule53},
+ {1024, 16, &rule116},
+ {1040, 32, &rule9},
+ {1072, 32, &rule12},
+ {1104, 16, &rule110},
+ {1120, 1, &rule22},
+ {1121, 1, &rule23},
+ {1122, 1, &rule22},
+ {1123, 1, &rule23},
+ {1124, 1, &rule22},
+ {1125, 1, &rule23},
+ {1126, 1, &rule22},
+ {1127, 1, &rule23},
+ {1128, 1, &rule22},
+ {1129, 1, &rule23},
+ {1130, 1, &rule22},
+ {1131, 1, &rule23},
+ {1132, 1, &rule22},
+ {1133, 1, &rule23},
+ {1134, 1, &rule22},
+ {1135, 1, &rule23},
+ {1136, 1, &rule22},
+ {1137, 1, &rule23},
+ {1138, 1, &rule22},
+ {1139, 1, &rule23},
+ {1140, 1, &rule22},
+ {1141, 1, &rule23},
+ {1142, 1, &rule22},
+ {1143, 1, &rule23},
+ {1144, 1, &rule22},
+ {1145, 1, &rule23},
+ {1146, 1, &rule22},
+ {1147, 1, &rule23},
+ {1148, 1, &rule22},
+ {1149, 1, &rule23},
+ {1150, 1, &rule22},
+ {1151, 1, &rule23},
+ {1152, 1, &rule22},
+ {1153, 1, &rule23},
+ {1154, 1, &rule13},
+ {1155, 5, &rule90},
+ {1160, 2, &rule117},
+ {1162, 1, &rule22},
+ {1163, 1, &rule23},
+ {1164, 1, &rule22},
+ {1165, 1, &rule23},
+ {1166, 1, &rule22},
+ {1167, 1, &rule23},
+ {1168, 1, &rule22},
+ {1169, 1, &rule23},
+ {1170, 1, &rule22},
+ {1171, 1, &rule23},
+ {1172, 1, &rule22},
+ {1173, 1, &rule23},
+ {1174, 1, &rule22},
+ {1175, 1, &rule23},
+ {1176, 1, &rule22},
+ {1177, 1, &rule23},
+ {1178, 1, &rule22},
+ {1179, 1, &rule23},
+ {1180, 1, &rule22},
+ {1181, 1, &rule23},
+ {1182, 1, &rule22},
+ {1183, 1, &rule23},
+ {1184, 1, &rule22},
+ {1185, 1, &rule23},
+ {1186, 1, &rule22},
+ {1187, 1, &rule23},
+ {1188, 1, &rule22},
+ {1189, 1, &rule23},
+ {1190, 1, &rule22},
+ {1191, 1, &rule23},
+ {1192, 1, &rule22},
+ {1193, 1, &rule23},
+ {1194, 1, &rule22},
+ {1195, 1, &rule23},
+ {1196, 1, &rule22},
+ {1197, 1, &rule23},
+ {1198, 1, &rule22},
+ {1199, 1, &rule23},
+ {1200, 1, &rule22},
+ {1201, 1, &rule23},
+ {1202, 1, &rule22},
+ {1203, 1, &rule23},
+ {1204, 1, &rule22},
+ {1205, 1, &rule23},
+ {1206, 1, &rule22},
+ {1207, 1, &rule23},
+ {1208, 1, &rule22},
+ {1209, 1, &rule23},
+ {1210, 1, &rule22},
+ {1211, 1, &rule23},
+ {1212, 1, &rule22},
+ {1213, 1, &rule23},
+ {1214, 1, &rule22},
+ {1215, 1, &rule23},
+ {1216, 1, &rule118},
+ {1217, 1, &rule22},
+ {1218, 1, &rule23},
+ {1219, 1, &rule22},
+ {1220, 1, &rule23},
+ {1221, 1, &rule22},
+ {1222, 1, &rule23},
+ {1223, 1, &rule22},
+ {1224, 1, &rule23},
+ {1225, 1, &rule22},
+ {1226, 1, &rule23},
+ {1227, 1, &rule22},
+ {1228, 1, &rule23},
+ {1229, 1, &rule22},
+ {1230, 1, &rule23},
+ {1231, 1, &rule119},
+ {1232, 1, &rule22},
+ {1233, 1, &rule23},
+ {1234, 1, &rule22},
+ {1235, 1, &rule23},
+ {1236, 1, &rule22},
+ {1237, 1, &rule23},
+ {1238, 1, &rule22},
+ {1239, 1, &rule23},
+ {1240, 1, &rule22},
+ {1241, 1, &rule23},
+ {1242, 1, &rule22},
+ {1243, 1, &rule23},
+ {1244, 1, &rule22},
+ {1245, 1, &rule23},
+ {1246, 1, &rule22},
+ {1247, 1, &rule23},
+ {1248, 1, &rule22},
+ {1249, 1, &rule23},
+ {1250, 1, &rule22},
+ {1251, 1, &rule23},
+ {1252, 1, &rule22},
+ {1253, 1, &rule23},
+ {1254, 1, &rule22},
+ {1255, 1, &rule23},
+ {1256, 1, &rule22},
+ {1257, 1, &rule23},
+ {1258, 1, &rule22},
+ {1259, 1, &rule23},
+ {1260, 1, &rule22},
+ {1261, 1, &rule23},
+ {1262, 1, &rule22},
+ {1263, 1, &rule23},
+ {1264, 1, &rule22},
+ {1265, 1, &rule23},
+ {1266, 1, &rule22},
+ {1267, 1, &rule23},
+ {1268, 1, &rule22},
+ {1269, 1, &rule23},
+ {1270, 1, &rule22},
+ {1271, 1, &rule23},
+ {1272, 1, &rule22},
+ {1273, 1, &rule23},
+ {1274, 1, &rule22},
+ {1275, 1, &rule23},
+ {1276, 1, &rule22},
+ {1277, 1, &rule23},
+ {1278, 1, &rule22},
+ {1279, 1, &rule23},
+ {1280, 1, &rule22},
+ {1281, 1, &rule23},
+ {1282, 1, &rule22},
+ {1283, 1, &rule23},
+ {1284, 1, &rule22},
+ {1285, 1, &rule23},
+ {1286, 1, &rule22},
+ {1287, 1, &rule23},
+ {1288, 1, &rule22},
+ {1289, 1, &rule23},
+ {1290, 1, &rule22},
+ {1291, 1, &rule23},
+ {1292, 1, &rule22},
+ {1293, 1, &rule23},
+ {1294, 1, &rule22},
+ {1295, 1, &rule23},
+ {1296, 1, &rule22},
+ {1297, 1, &rule23},
+ {1298, 1, &rule22},
+ {1299, 1, &rule23},
+ {1300, 1, &rule22},
+ {1301, 1, &rule23},
+ {1302, 1, &rule22},
+ {1303, 1, &rule23},
+ {1304, 1, &rule22},
+ {1305, 1, &rule23},
+ {1306, 1, &rule22},
+ {1307, 1, &rule23},
+ {1308, 1, &rule22},
+ {1309, 1, &rule23},
+ {1310, 1, &rule22},
+ {1311, 1, &rule23},
+ {1312, 1, &rule22},
+ {1313, 1, &rule23},
+ {1314, 1, &rule22},
+ {1315, 1, &rule23},
+ {1316, 1, &rule22},
+ {1317, 1, &rule23},
+ {1318, 1, &rule22},
+ {1319, 1, &rule23},
+ {1320, 1, &rule22},
+ {1321, 1, &rule23},
+ {1322, 1, &rule22},
+ {1323, 1, &rule23},
+ {1324, 1, &rule22},
+ {1325, 1, &rule23},
+ {1326, 1, &rule22},
+ {1327, 1, &rule23},
+ {1329, 38, &rule120},
+ {1369, 1, &rule89},
+ {1370, 6, &rule2},
+ {1377, 38, &rule121},
+ {1415, 1, &rule20},
+ {1417, 1, &rule2},
+ {1418, 1, &rule7},
+ {1421, 2, &rule13},
+ {1423, 1, &rule3},
+ {1425, 45, &rule90},
+ {1470, 1, &rule7},
+ {1471, 1, &rule90},
+ {1472, 1, &rule2},
+ {1473, 2, &rule90},
+ {1475, 1, &rule2},
+ {1476, 2, &rule90},
+ {1478, 1, &rule2},
+ {1479, 1, &rule90},
+ {1488, 27, &rule14},
+ {1520, 3, &rule14},
+ {1523, 2, &rule2},
+ {1536, 6, &rule16},
+ {1542, 3, &rule6},
+ {1545, 2, &rule2},
+ {1547, 1, &rule3},
+ {1548, 2, &rule2},
+ {1550, 2, &rule13},
+ {1552, 11, &rule90},
+ {1563, 1, &rule2},
+ {1564, 1, &rule16},
+ {1566, 2, &rule2},
+ {1568, 32, &rule14},
+ {1600, 1, &rule89},
+ {1601, 10, &rule14},
+ {1611, 21, &rule90},
+ {1632, 10, &rule8},
+ {1642, 4, &rule2},
+ {1646, 2, &rule14},
+ {1648, 1, &rule90},
+ {1649, 99, &rule14},
+ {1748, 1, &rule2},
+ {1749, 1, &rule14},
+ {1750, 7, &rule90},
+ {1757, 1, &rule16},
+ {1758, 1, &rule13},
+ {1759, 6, &rule90},
+ {1765, 2, &rule89},
+ {1767, 2, &rule90},
+ {1769, 1, &rule13},
+ {1770, 4, &rule90},
+ {1774, 2, &rule14},
+ {1776, 10, &rule8},
+ {1786, 3, &rule14},
+ {1789, 2, &rule13},
+ {1791, 1, &rule14},
+ {1792, 14, &rule2},
+ {1807, 1, &rule16},
+ {1808, 1, &rule14},
+ {1809, 1, &rule90},
+ {1810, 30, &rule14},
+ {1840, 27, &rule90},
+ {1869, 89, &rule14},
+ {1958, 11, &rule90},
+ {1969, 1, &rule14},
+ {1984, 10, &rule8},
+ {1994, 33, &rule14},
+ {2027, 9, &rule90},
+ {2036, 2, &rule89},
+ {2038, 1, &rule13},
+ {2039, 3, &rule2},
+ {2042, 1, &rule89},
+ {2048, 22, &rule14},
+ {2070, 4, &rule90},
+ {2074, 1, &rule89},
+ {2075, 9, &rule90},
+ {2084, 1, &rule89},
+ {2085, 3, &rule90},
+ {2088, 1, &rule89},
+ {2089, 5, &rule90},
+ {2096, 15, &rule2},
+ {2112, 25, &rule14},
+ {2137, 3, &rule90},
+ {2142, 1, &rule2},
+ {2208, 19, &rule14},
+ {2276, 31, &rule90},
+ {2307, 1, &rule122},
+ {2308, 54, &rule14},
+ {2362, 1, &rule90},
+ {2363, 1, &rule122},
+ {2364, 1, &rule90},
+ {2365, 1, &rule14},
+ {2366, 3, &rule122},
+ {2369, 8, &rule90},
+ {2377, 4, &rule122},
+ {2381, 1, &rule90},
+ {2382, 2, &rule122},
+ {2384, 1, &rule14},
+ {2385, 7, &rule90},
+ {2392, 10, &rule14},
+ {2402, 2, &rule90},
+ {2404, 2, &rule2},
+ {2406, 10, &rule8},
+ {2416, 1, &rule2},
+ {2417, 1, &rule89},
+ {2418, 15, &rule14},
+ {2433, 1, &rule90},
+ {2434, 2, &rule122},
+ {2437, 8, &rule14},
+ {2447, 2, &rule14},
+ {2451, 22, &rule14},
+ {2474, 7, &rule14},
+ {2482, 1, &rule14},
+ {2486, 4, &rule14},
+ {2492, 1, &rule90},
+ {2493, 1, &rule14},
+ {2494, 3, &rule122},
+ {2497, 4, &rule90},
+ {2503, 2, &rule122},
+ {2507, 2, &rule122},
+ {2509, 1, &rule90},
+ {2510, 1, &rule14},
+ {2519, 1, &rule122},
+ {2524, 2, &rule14},
+ {2527, 3, &rule14},
+ {2530, 2, &rule90},
+ {2534, 10, &rule8},
+ {2544, 2, &rule14},
+ {2546, 2, &rule3},
+ {2548, 6, &rule17},
+ {2554, 1, &rule13},
+ {2555, 1, &rule3},
+ {2561, 2, &rule90},
+ {2563, 1, &rule122},
+ {2565, 6, &rule14},
+ {2575, 2, &rule14},
+ {2579, 22, &rule14},
+ {2602, 7, &rule14},
+ {2610, 2, &rule14},
+ {2613, 2, &rule14},
+ {2616, 2, &rule14},
+ {2620, 1, &rule90},
+ {2622, 3, &rule122},
+ {2625, 2, &rule90},
+ {2631, 2, &rule90},
+ {2635, 3, &rule90},
+ {2641, 1, &rule90},
+ {2649, 4, &rule14},
+ {2654, 1, &rule14},
+ {2662, 10, &rule8},
+ {2672, 2, &rule90},
+ {2674, 3, &rule14},
+ {2677, 1, &rule90},
+ {2689, 2, &rule90},
+ {2691, 1, &rule122},
+ {2693, 9, &rule14},
+ {2703, 3, &rule14},
+ {2707, 22, &rule14},
+ {2730, 7, &rule14},
+ {2738, 2, &rule14},
+ {2741, 5, &rule14},
+ {2748, 1, &rule90},
+ {2749, 1, &rule14},
+ {2750, 3, &rule122},
+ {2753, 5, &rule90},
+ {2759, 2, &rule90},
+ {2761, 1, &rule122},
+ {2763, 2, &rule122},
+ {2765, 1, &rule90},
+ {2768, 1, &rule14},
+ {2784, 2, &rule14},
+ {2786, 2, &rule90},
+ {2790, 10, &rule8},
+ {2800, 1, &rule2},
+ {2801, 1, &rule3},
+ {2817, 1, &rule90},
+ {2818, 2, &rule122},
+ {2821, 8, &rule14},
+ {2831, 2, &rule14},
+ {2835, 22, &rule14},
+ {2858, 7, &rule14},
+ {2866, 2, &rule14},
+ {2869, 5, &rule14},
+ {2876, 1, &rule90},
+ {2877, 1, &rule14},
+ {2878, 1, &rule122},
+ {2879, 1, &rule90},
+ {2880, 1, &rule122},
+ {2881, 4, &rule90},
+ {2887, 2, &rule122},
+ {2891, 2, &rule122},
+ {2893, 1, &rule90},
+ {2902, 1, &rule90},
+ {2903, 1, &rule122},
+ {2908, 2, &rule14},
+ {2911, 3, &rule14},
+ {2914, 2, &rule90},
+ {2918, 10, &rule8},
+ {2928, 1, &rule13},
+ {2929, 1, &rule14},
+ {2930, 6, &rule17},
+ {2946, 1, &rule90},
+ {2947, 1, &rule14},
+ {2949, 6, &rule14},
+ {2958, 3, &rule14},
+ {2962, 4, &rule14},
+ {2969, 2, &rule14},
+ {2972, 1, &rule14},
+ {2974, 2, &rule14},
+ {2979, 2, &rule14},
+ {2984, 3, &rule14},
+ {2990, 12, &rule14},
+ {3006, 2, &rule122},
+ {3008, 1, &rule90},
+ {3009, 2, &rule122},
+ {3014, 3, &rule122},
+ {3018, 3, &rule122},
+ {3021, 1, &rule90},
+ {3024, 1, &rule14},
+ {3031, 1, &rule122},
+ {3046, 10, &rule8},
+ {3056, 3, &rule17},
+ {3059, 6, &rule13},
+ {3065, 1, &rule3},
+ {3066, 1, &rule13},
+ {3072, 1, &rule90},
+ {3073, 3, &rule122},
+ {3077, 8, &rule14},
+ {3086, 3, &rule14},
+ {3090, 23, &rule14},
+ {3114, 16, &rule14},
+ {3133, 1, &rule14},
+ {3134, 3, &rule90},
+ {3137, 4, &rule122},
+ {3142, 3, &rule90},
+ {3146, 4, &rule90},
+ {3157, 2, &rule90},
+ {3160, 2, &rule14},
+ {3168, 2, &rule14},
+ {3170, 2, &rule90},
+ {3174, 10, &rule8},
+ {3192, 7, &rule17},
+ {3199, 1, &rule13},
+ {3201, 1, &rule90},
+ {3202, 2, &rule122},
+ {3205, 8, &rule14},
+ {3214, 3, &rule14},
+ {3218, 23, &rule14},
+ {3242, 10, &rule14},
+ {3253, 5, &rule14},
+ {3260, 1, &rule90},
+ {3261, 1, &rule14},
+ {3262, 1, &rule122},
+ {3263, 1, &rule90},
+ {3264, 5, &rule122},
+ {3270, 1, &rule90},
+ {3271, 2, &rule122},
+ {3274, 2, &rule122},
+ {3276, 2, &rule90},
+ {3285, 2, &rule122},
+ {3294, 1, &rule14},
+ {3296, 2, &rule14},
+ {3298, 2, &rule90},
+ {3302, 10, &rule8},
+ {3313, 2, &rule14},
+ {3329, 1, &rule90},
+ {3330, 2, &rule122},
+ {3333, 8, &rule14},
+ {3342, 3, &rule14},
+ {3346, 41, &rule14},
+ {3389, 1, &rule14},
+ {3390, 3, &rule122},
+ {3393, 4, &rule90},
+ {3398, 3, &rule122},
+ {3402, 3, &rule122},
+ {3405, 1, &rule90},
+ {3406, 1, &rule14},
+ {3415, 1, &rule122},
+ {3424, 2, &rule14},
+ {3426, 2, &rule90},
+ {3430, 10, &rule8},
+ {3440, 6, &rule17},
+ {3449, 1, &rule13},
+ {3450, 6, &rule14},
+ {3458, 2, &rule122},
+ {3461, 18, &rule14},
+ {3482, 24, &rule14},
+ {3507, 9, &rule14},
+ {3517, 1, &rule14},
+ {3520, 7, &rule14},
+ {3530, 1, &rule90},
+ {3535, 3, &rule122},
+ {3538, 3, &rule90},
+ {3542, 1, &rule90},
+ {3544, 8, &rule122},
+ {3558, 10, &rule8},
+ {3570, 2, &rule122},
+ {3572, 1, &rule2},
+ {3585, 48, &rule14},
+ {3633, 1, &rule90},
+ {3634, 2, &rule14},
+ {3636, 7, &rule90},
+ {3647, 1, &rule3},
+ {3648, 6, &rule14},
+ {3654, 1, &rule89},
+ {3655, 8, &rule90},
+ {3663, 1, &rule2},
+ {3664, 10, &rule8},
+ {3674, 2, &rule2},
+ {3713, 2, &rule14},
+ {3716, 1, &rule14},
+ {3719, 2, &rule14},
+ {3722, 1, &rule14},
+ {3725, 1, &rule14},
+ {3732, 4, &rule14},
+ {3737, 7, &rule14},
+ {3745, 3, &rule14},
+ {3749, 1, &rule14},
+ {3751, 1, &rule14},
+ {3754, 2, &rule14},
+ {3757, 4, &rule14},
+ {3761, 1, &rule90},
+ {3762, 2, &rule14},
+ {3764, 6, &rule90},
+ {3771, 2, &rule90},
+ {3773, 1, &rule14},
+ {3776, 5, &rule14},
+ {3782, 1, &rule89},
+ {3784, 6, &rule90},
+ {3792, 10, &rule8},
+ {3804, 4, &rule14},
+ {3840, 1, &rule14},
+ {3841, 3, &rule13},
+ {3844, 15, &rule2},
+ {3859, 1, &rule13},
+ {3860, 1, &rule2},
+ {3861, 3, &rule13},
+ {3864, 2, &rule90},
+ {3866, 6, &rule13},
+ {3872, 10, &rule8},
+ {3882, 10, &rule17},
+ {3892, 1, &rule13},
+ {3893, 1, &rule90},
+ {3894, 1, &rule13},
+ {3895, 1, &rule90},
+ {3896, 1, &rule13},
+ {3897, 1, &rule90},
+ {3898, 1, &rule4},
+ {3899, 1, &rule5},
+ {3900, 1, &rule4},
+ {3901, 1, &rule5},
+ {3902, 2, &rule122},
+ {3904, 8, &rule14},
+ {3913, 36, &rule14},
+ {3953, 14, &rule90},
+ {3967, 1, &rule122},
+ {3968, 5, &rule90},
+ {3973, 1, &rule2},
+ {3974, 2, &rule90},
+ {3976, 5, &rule14},
+ {3981, 11, &rule90},
+ {3993, 36, &rule90},
+ {4030, 8, &rule13},
+ {4038, 1, &rule90},
+ {4039, 6, &rule13},
+ {4046, 2, &rule13},
+ {4048, 5, &rule2},
+ {4053, 4, &rule13},
+ {4057, 2, &rule2},
+ {4096, 43, &rule14},
+ {4139, 2, &rule122},
+ {4141, 4, &rule90},
+ {4145, 1, &rule122},
+ {4146, 6, &rule90},
+ {4152, 1, &rule122},
+ {4153, 2, &rule90},
+ {4155, 2, &rule122},
+ {4157, 2, &rule90},
+ {4159, 1, &rule14},
+ {4160, 10, &rule8},
+ {4170, 6, &rule2},
+ {4176, 6, &rule14},
+ {4182, 2, &rule122},
+ {4184, 2, &rule90},
+ {4186, 4, &rule14},
+ {4190, 3, &rule90},
+ {4193, 1, &rule14},
+ {4194, 3, &rule122},
+ {4197, 2, &rule14},
+ {4199, 7, &rule122},
+ {4206, 3, &rule14},
+ {4209, 4, &rule90},
+ {4213, 13, &rule14},
+ {4226, 1, &rule90},
+ {4227, 2, &rule122},
+ {4229, 2, &rule90},
+ {4231, 6, &rule122},
+ {4237, 1, &rule90},
+ {4238, 1, &rule14},
+ {4239, 1, &rule122},
+ {4240, 10, &rule8},
+ {4250, 3, &rule122},
+ {4253, 1, &rule90},
+ {4254, 2, &rule13},
+ {4256, 38, &rule123},
+ {4295, 1, &rule123},
+ {4301, 1, &rule123},
+ {4304, 43, &rule14},
+ {4347, 1, &rule2},
+ {4348, 1, &rule89},
+ {4349, 332, &rule14},
+ {4682, 4, &rule14},
+ {4688, 7, &rule14},
+ {4696, 1, &rule14},
+ {4698, 4, &rule14},
+ {4704, 41, &rule14},
+ {4746, 4, &rule14},
+ {4752, 33, &rule14},
+ {4786, 4, &rule14},
+ {4792, 7, &rule14},
+ {4800, 1, &rule14},
+ {4802, 4, &rule14},
+ {4808, 15, &rule14},
+ {4824, 57, &rule14},
+ {4882, 4, &rule14},
+ {4888, 67, &rule14},
+ {4957, 3, &rule90},
+ {4960, 9, &rule2},
+ {4969, 20, &rule17},
+ {4992, 16, &rule14},
+ {5008, 10, &rule13},
+ {5024, 85, &rule14},
+ {5120, 1, &rule7},
+ {5121, 620, &rule14},
+ {5741, 2, &rule2},
+ {5743, 17, &rule14},
+ {5760, 1, &rule1},
+ {5761, 26, &rule14},
+ {5787, 1, &rule4},
+ {5788, 1, &rule5},
+ {5792, 75, &rule14},
+ {5867, 3, &rule2},
+ {5870, 3, &rule124},
+ {5873, 8, &rule14},
+ {5888, 13, &rule14},
+ {5902, 4, &rule14},
+ {5906, 3, &rule90},
+ {5920, 18, &rule14},
+ {5938, 3, &rule90},
+ {5941, 2, &rule2},
+ {5952, 18, &rule14},
+ {5970, 2, &rule90},
+ {5984, 13, &rule14},
+ {5998, 3, &rule14},
+ {6002, 2, &rule90},
+ {6016, 52, &rule14},
+ {6068, 2, &rule90},
+ {6070, 1, &rule122},
+ {6071, 7, &rule90},
+ {6078, 8, &rule122},
+ {6086, 1, &rule90},
+ {6087, 2, &rule122},
+ {6089, 11, &rule90},
+ {6100, 3, &rule2},
+ {6103, 1, &rule89},
+ {6104, 3, &rule2},
+ {6107, 1, &rule3},
+ {6108, 1, &rule14},
+ {6109, 1, &rule90},
+ {6112, 10, &rule8},
+ {6128, 10, &rule17},
+ {6144, 6, &rule2},
+ {6150, 1, &rule7},
+ {6151, 4, &rule2},
+ {6155, 3, &rule90},
+ {6158, 1, &rule16},
+ {6160, 10, &rule8},
+ {6176, 35, &rule14},
+ {6211, 1, &rule89},
+ {6212, 52, &rule14},
+ {6272, 41, &rule14},
+ {6313, 1, &rule90},
+ {6314, 1, &rule14},
+ {6320, 70, &rule14},
+ {6400, 31, &rule14},
+ {6432, 3, &rule90},
+ {6435, 4, &rule122},
+ {6439, 2, &rule90},
+ {6441, 3, &rule122},
+ {6448, 2, &rule122},
+ {6450, 1, &rule90},
+ {6451, 6, &rule122},
+ {6457, 3, &rule90},
+ {6464, 1, &rule13},
+ {6468, 2, &rule2},
+ {6470, 10, &rule8},
+ {6480, 30, &rule14},
+ {6512, 5, &rule14},
+ {6528, 44, &rule14},
+ {6576, 17, &rule122},
+ {6593, 7, &rule14},
+ {6600, 2, &rule122},
+ {6608, 10, &rule8},
+ {6618, 1, &rule17},
+ {6622, 34, &rule13},
+ {6656, 23, &rule14},
+ {6679, 2, &rule90},
+ {6681, 2, &rule122},
+ {6683, 1, &rule90},
+ {6686, 2, &rule2},
+ {6688, 53, &rule14},
+ {6741, 1, &rule122},
+ {6742, 1, &rule90},
+ {6743, 1, &rule122},
+ {6744, 7, &rule90},
+ {6752, 1, &rule90},
+ {6753, 1, &rule122},
+ {6754, 1, &rule90},
+ {6755, 2, &rule122},
+ {6757, 8, &rule90},
+ {6765, 6, &rule122},
+ {6771, 10, &rule90},
+ {6783, 1, &rule90},
+ {6784, 10, &rule8},
+ {6800, 10, &rule8},
+ {6816, 7, &rule2},
+ {6823, 1, &rule89},
+ {6824, 6, &rule2},
+ {6832, 14, &rule90},
+ {6846, 1, &rule117},
+ {6912, 4, &rule90},
+ {6916, 1, &rule122},
+ {6917, 47, &rule14},
+ {6964, 1, &rule90},
+ {6965, 1, &rule122},
+ {6966, 5, &rule90},
+ {6971, 1, &rule122},
+ {6972, 1, &rule90},
+ {6973, 5, &rule122},
+ {6978, 1, &rule90},
+ {6979, 2, &rule122},
+ {6981, 7, &rule14},
+ {6992, 10, &rule8},
+ {7002, 7, &rule2},
+ {7009, 10, &rule13},
+ {7019, 9, &rule90},
+ {7028, 9, &rule13},
+ {7040, 2, &rule90},
+ {7042, 1, &rule122},
+ {7043, 30, &rule14},
+ {7073, 1, &rule122},
+ {7074, 4, &rule90},
+ {7078, 2, &rule122},
+ {7080, 2, &rule90},
+ {7082, 1, &rule122},
+ {7083, 3, &rule90},
+ {7086, 2, &rule14},
+ {7088, 10, &rule8},
+ {7098, 44, &rule14},
+ {7142, 1, &rule90},
+ {7143, 1, &rule122},
+ {7144, 2, &rule90},
+ {7146, 3, &rule122},
+ {7149, 1, &rule90},
+ {7150, 1, &rule122},
+ {7151, 3, &rule90},
+ {7154, 2, &rule122},
+ {7164, 4, &rule2},
+ {7168, 36, &rule14},
+ {7204, 8, &rule122},
+ {7212, 8, &rule90},
+ {7220, 2, &rule122},
+ {7222, 2, &rule90},
+ {7227, 5, &rule2},
+ {7232, 10, &rule8},
+ {7245, 3, &rule14},
+ {7248, 10, &rule8},
+ {7258, 30, &rule14},
+ {7288, 6, &rule89},
+ {7294, 2, &rule2},
+ {7360, 8, &rule2},
+ {7376, 3, &rule90},
+ {7379, 1, &rule2},
+ {7380, 13, &rule90},
+ {7393, 1, &rule122},
+ {7394, 7, &rule90},
+ {7401, 4, &rule14},
+ {7405, 1, &rule90},
+ {7406, 4, &rule14},
+ {7410, 2, &rule122},
+ {7412, 1, &rule90},
+ {7413, 2, &rule14},
+ {7416, 2, &rule90},
+ {7424, 44, &rule20},
+ {7468, 63, &rule89},
+ {7531, 13, &rule20},
+ {7544, 1, &rule89},
+ {7545, 1, &rule125},
+ {7546, 3, &rule20},
+ {7549, 1, &rule126},
+ {7550, 29, &rule20},
+ {7579, 37, &rule89},
+ {7616, 54, &rule90},
+ {7676, 4, &rule90},
+ {7680, 1, &rule22},
+ {7681, 1, &rule23},
+ {7682, 1, &rule22},
+ {7683, 1, &rule23},
+ {7684, 1, &rule22},
+ {7685, 1, &rule23},
+ {7686, 1, &rule22},
+ {7687, 1, &rule23},
+ {7688, 1, &rule22},
+ {7689, 1, &rule23},
+ {7690, 1, &rule22},
+ {7691, 1, &rule23},
+ {7692, 1, &rule22},
+ {7693, 1, &rule23},
+ {7694, 1, &rule22},
+ {7695, 1, &rule23},
+ {7696, 1, &rule22},
+ {7697, 1, &rule23},
+ {7698, 1, &rule22},
+ {7699, 1, &rule23},
+ {7700, 1, &rule22},
+ {7701, 1, &rule23},
+ {7702, 1, &rule22},
+ {7703, 1, &rule23},
+ {7704, 1, &rule22},
+ {7705, 1, &rule23},
+ {7706, 1, &rule22},
+ {7707, 1, &rule23},
+ {7708, 1, &rule22},
+ {7709, 1, &rule23},
+ {7710, 1, &rule22},
+ {7711, 1, &rule23},
+ {7712, 1, &rule22},
+ {7713, 1, &rule23},
+ {7714, 1, &rule22},
+ {7715, 1, &rule23},
+ {7716, 1, &rule22},
+ {7717, 1, &rule23},
+ {7718, 1, &rule22},
+ {7719, 1, &rule23},
+ {7720, 1, &rule22},
+ {7721, 1, &rule23},
+ {7722, 1, &rule22},
+ {7723, 1, &rule23},
+ {7724, 1, &rule22},
+ {7725, 1, &rule23},
+ {7726, 1, &rule22},
+ {7727, 1, &rule23},
+ {7728, 1, &rule22},
+ {7729, 1, &rule23},
+ {7730, 1, &rule22},
+ {7731, 1, &rule23},
+ {7732, 1, &rule22},
+ {7733, 1, &rule23},
+ {7734, 1, &rule22},
+ {7735, 1, &rule23},
+ {7736, 1, &rule22},
+ {7737, 1, &rule23},
+ {7738, 1, &rule22},
+ {7739, 1, &rule23},
+ {7740, 1, &rule22},
+ {7741, 1, &rule23},
+ {7742, 1, &rule22},
+ {7743, 1, &rule23},
+ {7744, 1, &rule22},
+ {7745, 1, &rule23},
+ {7746, 1, &rule22},
+ {7747, 1, &rule23},
+ {7748, 1, &rule22},
+ {7749, 1, &rule23},
+ {7750, 1, &rule22},
+ {7751, 1, &rule23},
+ {7752, 1, &rule22},
+ {7753, 1, &rule23},
+ {7754, 1, &rule22},
+ {7755, 1, &rule23},
+ {7756, 1, &rule22},
+ {7757, 1, &rule23},
+ {7758, 1, &rule22},
+ {7759, 1, &rule23},
+ {7760, 1, &rule22},
+ {7761, 1, &rule23},
+ {7762, 1, &rule22},
+ {7763, 1, &rule23},
+ {7764, 1, &rule22},
+ {7765, 1, &rule23},
+ {7766, 1, &rule22},
+ {7767, 1, &rule23},
+ {7768, 1, &rule22},
+ {7769, 1, &rule23},
+ {7770, 1, &rule22},
+ {7771, 1, &rule23},
+ {7772, 1, &rule22},
+ {7773, 1, &rule23},
+ {7774, 1, &rule22},
+ {7775, 1, &rule23},
+ {7776, 1, &rule22},
+ {7777, 1, &rule23},
+ {7778, 1, &rule22},
+ {7779, 1, &rule23},
+ {7780, 1, &rule22},
+ {7781, 1, &rule23},
+ {7782, 1, &rule22},
+ {7783, 1, &rule23},
+ {7784, 1, &rule22},
+ {7785, 1, &rule23},
+ {7786, 1, &rule22},
+ {7787, 1, &rule23},
+ {7788, 1, &rule22},
+ {7789, 1, &rule23},
+ {7790, 1, &rule22},
+ {7791, 1, &rule23},
+ {7792, 1, &rule22},
+ {7793, 1, &rule23},
+ {7794, 1, &rule22},
+ {7795, 1, &rule23},
+ {7796, 1, &rule22},
+ {7797, 1, &rule23},
+ {7798, 1, &rule22},
+ {7799, 1, &rule23},
+ {7800, 1, &rule22},
+ {7801, 1, &rule23},
+ {7802, 1, &rule22},
+ {7803, 1, &rule23},
+ {7804, 1, &rule22},
+ {7805, 1, &rule23},
+ {7806, 1, &rule22},
+ {7807, 1, &rule23},
+ {7808, 1, &rule22},
+ {7809, 1, &rule23},
+ {7810, 1, &rule22},
+ {7811, 1, &rule23},
+ {7812, 1, &rule22},
+ {7813, 1, &rule23},
+ {7814, 1, &rule22},
+ {7815, 1, &rule23},
+ {7816, 1, &rule22},
+ {7817, 1, &rule23},
+ {7818, 1, &rule22},
+ {7819, 1, &rule23},
+ {7820, 1, &rule22},
+ {7821, 1, &rule23},
+ {7822, 1, &rule22},
+ {7823, 1, &rule23},
+ {7824, 1, &rule22},
+ {7825, 1, &rule23},
+ {7826, 1, &rule22},
+ {7827, 1, &rule23},
+ {7828, 1, &rule22},
+ {7829, 1, &rule23},
+ {7830, 5, &rule20},
+ {7835, 1, &rule127},
+ {7836, 2, &rule20},
+ {7838, 1, &rule128},
+ {7839, 1, &rule20},
+ {7840, 1, &rule22},
+ {7841, 1, &rule23},
+ {7842, 1, &rule22},
+ {7843, 1, &rule23},
+ {7844, 1, &rule22},
+ {7845, 1, &rule23},
+ {7846, 1, &rule22},
+ {7847, 1, &rule23},
+ {7848, 1, &rule22},
+ {7849, 1, &rule23},
+ {7850, 1, &rule22},
+ {7851, 1, &rule23},
+ {7852, 1, &rule22},
+ {7853, 1, &rule23},
+ {7854, 1, &rule22},
+ {7855, 1, &rule23},
+ {7856, 1, &rule22},
+ {7857, 1, &rule23},
+ {7858, 1, &rule22},
+ {7859, 1, &rule23},
+ {7860, 1, &rule22},
+ {7861, 1, &rule23},
+ {7862, 1, &rule22},
+ {7863, 1, &rule23},
+ {7864, 1, &rule22},
+ {7865, 1, &rule23},
+ {7866, 1, &rule22},
+ {7867, 1, &rule23},
+ {7868, 1, &rule22},
+ {7869, 1, &rule23},
+ {7870, 1, &rule22},
+ {7871, 1, &rule23},
+ {7872, 1, &rule22},
+ {7873, 1, &rule23},
+ {7874, 1, &rule22},
+ {7875, 1, &rule23},
+ {7876, 1, &rule22},
+ {7877, 1, &rule23},
+ {7878, 1, &rule22},
+ {7879, 1, &rule23},
+ {7880, 1, &rule22},
+ {7881, 1, &rule23},
+ {7882, 1, &rule22},
+ {7883, 1, &rule23},
+ {7884, 1, &rule22},
+ {7885, 1, &rule23},
+ {7886, 1, &rule22},
+ {7887, 1, &rule23},
+ {7888, 1, &rule22},
+ {7889, 1, &rule23},
+ {7890, 1, &rule22},
+ {7891, 1, &rule23},
+ {7892, 1, &rule22},
+ {7893, 1, &rule23},
+ {7894, 1, &rule22},
+ {7895, 1, &rule23},
+ {7896, 1, &rule22},
+ {7897, 1, &rule23},
+ {7898, 1, &rule22},
+ {7899, 1, &rule23},
+ {7900, 1, &rule22},
+ {7901, 1, &rule23},
+ {7902, 1, &rule22},
+ {7903, 1, &rule23},
+ {7904, 1, &rule22},
+ {7905, 1, &rule23},
+ {7906, 1, &rule22},
+ {7907, 1, &rule23},
+ {7908, 1, &rule22},
+ {7909, 1, &rule23},
+ {7910, 1, &rule22},
+ {7911, 1, &rule23},
+ {7912, 1, &rule22},
+ {7913, 1, &rule23},
+ {7914, 1, &rule22},
+ {7915, 1, &rule23},
+ {7916, 1, &rule22},
+ {7917, 1, &rule23},
+ {7918, 1, &rule22},
+ {7919, 1, &rule23},
+ {7920, 1, &rule22},
+ {7921, 1, &rule23},
+ {7922, 1, &rule22},
+ {7923, 1, &rule23},
+ {7924, 1, &rule22},
+ {7925, 1, &rule23},
+ {7926, 1, &rule22},
+ {7927, 1, &rule23},
+ {7928, 1, &rule22},
+ {7929, 1, &rule23},
+ {7930, 1, &rule22},
+ {7931, 1, &rule23},
+ {7932, 1, &rule22},
+ {7933, 1, &rule23},
+ {7934, 1, &rule22},
+ {7935, 1, &rule23},
+ {7936, 8, &rule129},
+ {7944, 8, &rule130},
+ {7952, 6, &rule129},
+ {7960, 6, &rule130},
+ {7968, 8, &rule129},
+ {7976, 8, &rule130},
+ {7984, 8, &rule129},
+ {7992, 8, &rule130},
+ {8000, 6, &rule129},
+ {8008, 6, &rule130},
+ {8016, 1, &rule20},
+ {8017, 1, &rule129},
+ {8018, 1, &rule20},
+ {8019, 1, &rule129},
+ {8020, 1, &rule20},
+ {8021, 1, &rule129},
+ {8022, 1, &rule20},
+ {8023, 1, &rule129},
+ {8025, 1, &rule130},
+ {8027, 1, &rule130},
+ {8029, 1, &rule130},
+ {8031, 1, &rule130},
+ {8032, 8, &rule129},
+ {8040, 8, &rule130},
+ {8048, 2, &rule131},
+ {8050, 4, &rule132},
+ {8054, 2, &rule133},
+ {8056, 2, &rule134},
+ {8058, 2, &rule135},
+ {8060, 2, &rule136},
+ {8064, 8, &rule129},
+ {8072, 8, &rule137},
+ {8080, 8, &rule129},
+ {8088, 8, &rule137},
+ {8096, 8, &rule129},
+ {8104, 8, &rule137},
+ {8112, 2, &rule129},
+ {8114, 1, &rule20},
+ {8115, 1, &rule138},
+ {8116, 1, &rule20},
+ {8118, 2, &rule20},
+ {8120, 2, &rule130},
+ {8122, 2, &rule139},
+ {8124, 1, &rule140},
+ {8125, 1, &rule10},
+ {8126, 1, &rule141},
+ {8127, 3, &rule10},
+ {8130, 1, &rule20},
+ {8131, 1, &rule138},
+ {8132, 1, &rule20},
+ {8134, 2, &rule20},
+ {8136, 4, &rule142},
+ {8140, 1, &rule140},
+ {8141, 3, &rule10},
+ {8144, 2, &rule129},
+ {8146, 2, &rule20},
+ {8150, 2, &rule20},
+ {8152, 2, &rule130},
+ {8154, 2, &rule143},
+ {8157, 3, &rule10},
+ {8160, 2, &rule129},
+ {8162, 3, &rule20},
+ {8165, 1, &rule111},
+ {8166, 2, &rule20},
+ {8168, 2, &rule130},
+ {8170, 2, &rule144},
+ {8172, 1, &rule115},
+ {8173, 3, &rule10},
+ {8178, 1, &rule20},
+ {8179, 1, &rule138},
+ {8180, 1, &rule20},
+ {8182, 2, &rule20},
+ {8184, 2, &rule145},
+ {8186, 2, &rule146},
+ {8188, 1, &rule140},
+ {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, &rule147},
+ {8233, 1, &rule148},
+ {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},
+ {8294, 10, &rule16},
+ {8304, 1, &rule17},
+ {8305, 1, &rule89},
+ {8308, 6, &rule17},
+ {8314, 3, &rule6},
+ {8317, 1, &rule4},
+ {8318, 1, &rule5},
+ {8319, 1, &rule89},
+ {8320, 10, &rule17},
+ {8330, 3, &rule6},
+ {8333, 1, &rule4},
+ {8334, 1, &rule5},
+ {8336, 13, &rule89},
+ {8352, 30, &rule3},
+ {8400, 13, &rule90},
+ {8413, 4, &rule117},
+ {8417, 1, &rule90},
+ {8418, 3, &rule117},
+ {8421, 12, &rule90},
+ {8448, 2, &rule13},
+ {8450, 1, &rule105},
+ {8451, 4, &rule13},
+ {8455, 1, &rule105},
+ {8456, 2, &rule13},
+ {8458, 1, &rule20},
+ {8459, 3, &rule105},
+ {8462, 2, &rule20},
+ {8464, 3, &rule105},
+ {8467, 1, &rule20},
+ {8468, 1, &rule13},
+ {8469, 1, &rule105},
+ {8470, 2, &rule13},
+ {8472, 1, &rule6},
+ {8473, 5, &rule105},
+ {8478, 6, &rule13},
+ {8484, 1, &rule105},
+ {8485, 1, &rule13},
+ {8486, 1, &rule149},
+ {8487, 1, &rule13},
+ {8488, 1, &rule105},
+ {8489, 1, &rule13},
+ {8490, 1, &rule150},
+ {8491, 1, &rule151},
+ {8492, 2, &rule105},
+ {8494, 1, &rule13},
+ {8495, 1, &rule20},
+ {8496, 2, &rule105},
+ {8498, 1, &rule152},
+ {8499, 1, &rule105},
+ {8500, 1, &rule20},
+ {8501, 4, &rule14},
+ {8505, 1, &rule20},
+ {8506, 2, &rule13},
+ {8508, 2, &rule20},
+ {8510, 2, &rule105},
+ {8512, 5, &rule6},
+ {8517, 1, &rule105},
+ {8518, 4, &rule20},
+ {8522, 1, &rule13},
+ {8523, 1, &rule6},
+ {8524, 2, &rule13},
+ {8526, 1, &rule153},
+ {8527, 1, &rule13},
+ {8528, 16, &rule17},
+ {8544, 16, &rule154},
+ {8560, 16, &rule155},
+ {8576, 3, &rule124},
+ {8579, 1, &rule22},
+ {8580, 1, &rule23},
+ {8581, 4, &rule124},
+ {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, 1, &rule4},
+ {8969, 1, &rule5},
+ {8970, 1, &rule4},
+ {8971, 1, &rule5},
+ {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, 25, &rule13},
+ {9216, 39, &rule13},
+ {9280, 11, &rule13},
+ {9312, 60, &rule17},
+ {9372, 26, &rule13},
+ {9398, 26, &rule156},
+ {9424, 26, &rule157},
+ {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, 248, &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, 31, &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},
+ {11085, 39, &rule13},
+ {11126, 32, &rule13},
+ {11160, 34, &rule13},
+ {11197, 12, &rule13},
+ {11210, 8, &rule13},
+ {11264, 47, &rule120},
+ {11312, 47, &rule121},
+ {11360, 1, &rule22},
+ {11361, 1, &rule23},
+ {11362, 1, &rule158},
+ {11363, 1, &rule159},
+ {11364, 1, &rule160},
+ {11365, 1, &rule161},
+ {11366, 1, &rule162},
+ {11367, 1, &rule22},
+ {11368, 1, &rule23},
+ {11369, 1, &rule22},
+ {11370, 1, &rule23},
+ {11371, 1, &rule22},
+ {11372, 1, &rule23},
+ {11373, 1, &rule163},
+ {11374, 1, &rule164},
+ {11375, 1, &rule165},
+ {11376, 1, &rule166},
+ {11377, 1, &rule20},
+ {11378, 1, &rule22},
+ {11379, 1, &rule23},
+ {11380, 1, &rule20},
+ {11381, 1, &rule22},
+ {11382, 1, &rule23},
+ {11383, 5, &rule20},
+ {11388, 2, &rule89},
+ {11390, 2, &rule167},
+ {11392, 1, &rule22},
+ {11393, 1, &rule23},
+ {11394, 1, &rule22},
+ {11395, 1, &rule23},
+ {11396, 1, &rule22},
+ {11397, 1, &rule23},
+ {11398, 1, &rule22},
+ {11399, 1, &rule23},
+ {11400, 1, &rule22},
+ {11401, 1, &rule23},
+ {11402, 1, &rule22},
+ {11403, 1, &rule23},
+ {11404, 1, &rule22},
+ {11405, 1, &rule23},
+ {11406, 1, &rule22},
+ {11407, 1, &rule23},
+ {11408, 1, &rule22},
+ {11409, 1, &rule23},
+ {11410, 1, &rule22},
+ {11411, 1, &rule23},
+ {11412, 1, &rule22},
+ {11413, 1, &rule23},
+ {11414, 1, &rule22},
+ {11415, 1, &rule23},
+ {11416, 1, &rule22},
+ {11417, 1, &rule23},
+ {11418, 1, &rule22},
+ {11419, 1, &rule23},
+ {11420, 1, &rule22},
+ {11421, 1, &rule23},
+ {11422, 1, &rule22},
+ {11423, 1, &rule23},
+ {11424, 1, &rule22},
+ {11425, 1, &rule23},
+ {11426, 1, &rule22},
+ {11427, 1, &rule23},
+ {11428, 1, &rule22},
+ {11429, 1, &rule23},
+ {11430, 1, &rule22},
+ {11431, 1, &rule23},
+ {11432, 1, &rule22},
+ {11433, 1, &rule23},
+ {11434, 1, &rule22},
+ {11435, 1, &rule23},
+ {11436, 1, &rule22},
+ {11437, 1, &rule23},
+ {11438, 1, &rule22},
+ {11439, 1, &rule23},
+ {11440, 1, &rule22},
+ {11441, 1, &rule23},
+ {11442, 1, &rule22},
+ {11443, 1, &rule23},
+ {11444, 1, &rule22},
+ {11445, 1, &rule23},
+ {11446, 1, &rule22},
+ {11447, 1, &rule23},
+ {11448, 1, &rule22},
+ {11449, 1, &rule23},
+ {11450, 1, &rule22},
+ {11451, 1, &rule23},
+ {11452, 1, &rule22},
+ {11453, 1, &rule23},
+ {11454, 1, &rule22},
+ {11455, 1, &rule23},
+ {11456, 1, &rule22},
+ {11457, 1, &rule23},
+ {11458, 1, &rule22},
+ {11459, 1, &rule23},
+ {11460, 1, &rule22},
+ {11461, 1, &rule23},
+ {11462, 1, &rule22},
+ {11463, 1, &rule23},
+ {11464, 1, &rule22},
+ {11465, 1, &rule23},
+ {11466, 1, &rule22},
+ {11467, 1, &rule23},
+ {11468, 1, &rule22},
+ {11469, 1, &rule23},
+ {11470, 1, &rule22},
+ {11471, 1, &rule23},
+ {11472, 1, &rule22},
+ {11473, 1, &rule23},
+ {11474, 1, &rule22},
+ {11475, 1, &rule23},
+ {11476, 1, &rule22},
+ {11477, 1, &rule23},
+ {11478, 1, &rule22},
+ {11479, 1, &rule23},
+ {11480, 1, &rule22},
+ {11481, 1, &rule23},
+ {11482, 1, &rule22},
+ {11483, 1, &rule23},
+ {11484, 1, &rule22},
+ {11485, 1, &rule23},
+ {11486, 1, &rule22},
+ {11487, 1, &rule23},
+ {11488, 1, &rule22},
+ {11489, 1, &rule23},
+ {11490, 1, &rule22},
+ {11491, 1, &rule23},
+ {11492, 1, &rule20},
+ {11493, 6, &rule13},
+ {11499, 1, &rule22},
+ {11500, 1, &rule23},
+ {11501, 1, &rule22},
+ {11502, 1, &rule23},
+ {11503, 3, &rule90},
+ {11506, 1, &rule22},
+ {11507, 1, &rule23},
+ {11513, 4, &rule2},
+ {11517, 1, &rule17},
+ {11518, 2, &rule2},
+ {11520, 38, &rule168},
+ {11559, 1, &rule168},
+ {11565, 1, &rule168},
+ {11568, 56, &rule14},
+ {11631, 1, &rule89},
+ {11632, 1, &rule2},
+ {11647, 1, &rule90},
+ {11648, 23, &rule14},
+ {11680, 7, &rule14},
+ {11688, 7, &rule14},
+ {11696, 7, &rule14},
+ {11704, 7, &rule14},
+ {11712, 7, &rule14},
+ {11720, 7, &rule14},
+ {11728, 7, &rule14},
+ {11736, 7, &rule14},
+ {11744, 32, &rule90},
+ {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, &rule89},
+ {11824, 10, &rule2},
+ {11834, 2, &rule7},
+ {11836, 4, &rule2},
+ {11840, 1, &rule7},
+ {11841, 1, &rule2},
+ {11842, 1, &rule4},
+ {11904, 26, &rule13},
+ {11931, 89, &rule13},
+ {12032, 214, &rule13},
+ {12272, 12, &rule13},
+ {12288, 1, &rule1},
+ {12289, 3, &rule2},
+ {12292, 1, &rule13},
+ {12293, 1, &rule89},
+ {12294, 1, &rule14},
+ {12295, 1, &rule124},
+ {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, &rule124},
+ {12330, 4, &rule90},
+ {12334, 2, &rule122},
+ {12336, 1, &rule7},
+ {12337, 5, &rule89},
+ {12342, 2, &rule13},
+ {12344, 3, &rule124},
+ {12347, 1, &rule89},
+ {12348, 1, &rule14},
+ {12349, 1, &rule2},
+ {12350, 2, &rule13},
+ {12353, 86, &rule14},
+ {12441, 2, &rule90},
+ {12443, 2, &rule10},
+ {12445, 2, &rule89},
+ {12447, 1, &rule14},
+ {12448, 1, &rule7},
+ {12449, 90, &rule14},
+ {12539, 1, &rule2},
+ {12540, 3, &rule89},
+ {12543, 1, &rule14},
+ {12549, 41, &rule14},
+ {12593, 94, &rule14},
+ {12688, 2, &rule13},
+ {12690, 4, &rule17},
+ {12694, 10, &rule13},
+ {12704, 27, &rule14},
+ {12736, 36, &rule13},
+ {12784, 16, &rule14},
+ {12800, 31, &rule13},
+ {12832, 10, &rule17},
+ {12842, 30, &rule13},
+ {12872, 8, &rule17},
+ {12880, 1, &rule13},
+ {12881, 15, &rule17},
+ {12896, 32, &rule13},
+ {12928, 10, &rule17},
+ {12938, 39, &rule13},
+ {12977, 15, &rule17},
+ {12992, 63, &rule13},
+ {13056, 256, &rule13},
+ {13312, 6582, &rule14},
+ {19904, 64, &rule13},
+ {19968, 20941, &rule14},
+ {40960, 21, &rule14},
+ {40981, 1, &rule89},
+ {40982, 1143, &rule14},
+ {42128, 55, &rule13},
+ {42192, 40, &rule14},
+ {42232, 6, &rule89},
+ {42238, 2, &rule2},
+ {42240, 268, &rule14},
+ {42508, 1, &rule89},
+ {42509, 3, &rule2},
+ {42512, 16, &rule14},
+ {42528, 10, &rule8},
+ {42538, 2, &rule14},
+ {42560, 1, &rule22},
+ {42561, 1, &rule23},
+ {42562, 1, &rule22},
+ {42563, 1, &rule23},
+ {42564, 1, &rule22},
+ {42565, 1, &rule23},
+ {42566, 1, &rule22},
+ {42567, 1, &rule23},
+ {42568, 1, &rule22},
+ {42569, 1, &rule23},
+ {42570, 1, &rule22},
+ {42571, 1, &rule23},
+ {42572, 1, &rule22},
+ {42573, 1, &rule23},
+ {42574, 1, &rule22},
+ {42575, 1, &rule23},
+ {42576, 1, &rule22},
+ {42577, 1, &rule23},
+ {42578, 1, &rule22},
+ {42579, 1, &rule23},
+ {42580, 1, &rule22},
+ {42581, 1, &rule23},
+ {42582, 1, &rule22},
+ {42583, 1, &rule23},
+ {42584, 1, &rule22},
+ {42585, 1, &rule23},
+ {42586, 1, &rule22},
+ {42587, 1, &rule23},
+ {42588, 1, &rule22},
+ {42589, 1, &rule23},
+ {42590, 1, &rule22},
+ {42591, 1, &rule23},
+ {42592, 1, &rule22},
+ {42593, 1, &rule23},
+ {42594, 1, &rule22},
+ {42595, 1, &rule23},
+ {42596, 1, &rule22},
+ {42597, 1, &rule23},
+ {42598, 1, &rule22},
+ {42599, 1, &rule23},
+ {42600, 1, &rule22},
+ {42601, 1, &rule23},
+ {42602, 1, &rule22},
+ {42603, 1, &rule23},
+ {42604, 1, &rule22},
+ {42605, 1, &rule23},
+ {42606, 1, &rule14},
+ {42607, 1, &rule90},
+ {42608, 3, &rule117},
+ {42611, 1, &rule2},
+ {42612, 10, &rule90},
+ {42622, 1, &rule2},
+ {42623, 1, &rule89},
+ {42624, 1, &rule22},
+ {42625, 1, &rule23},
+ {42626, 1, &rule22},
+ {42627, 1, &rule23},
+ {42628, 1, &rule22},
+ {42629, 1, &rule23},
+ {42630, 1, &rule22},
+ {42631, 1, &rule23},
+ {42632, 1, &rule22},
+ {42633, 1, &rule23},
+ {42634, 1, &rule22},
+ {42635, 1, &rule23},
+ {42636, 1, &rule22},
+ {42637, 1, &rule23},
+ {42638, 1, &rule22},
+ {42639, 1, &rule23},
+ {42640, 1, &rule22},
+ {42641, 1, &rule23},
+ {42642, 1, &rule22},
+ {42643, 1, &rule23},
+ {42644, 1, &rule22},
+ {42645, 1, &rule23},
+ {42646, 1, &rule22},
+ {42647, 1, &rule23},
+ {42648, 1, &rule22},
+ {42649, 1, &rule23},
+ {42650, 1, &rule22},
+ {42651, 1, &rule23},
+ {42652, 2, &rule89},
+ {42655, 1, &rule90},
+ {42656, 70, &rule14},
+ {42726, 10, &rule124},
+ {42736, 2, &rule90},
+ {42738, 6, &rule2},
+ {42752, 23, &rule10},
+ {42775, 9, &rule89},
+ {42784, 2, &rule10},
+ {42786, 1, &rule22},
+ {42787, 1, &rule23},
+ {42788, 1, &rule22},
+ {42789, 1, &rule23},
+ {42790, 1, &rule22},
+ {42791, 1, &rule23},
+ {42792, 1, &rule22},
+ {42793, 1, &rule23},
+ {42794, 1, &rule22},
+ {42795, 1, &rule23},
+ {42796, 1, &rule22},
+ {42797, 1, &rule23},
+ {42798, 1, &rule22},
+ {42799, 1, &rule23},
+ {42800, 2, &rule20},
+ {42802, 1, &rule22},
+ {42803, 1, &rule23},
+ {42804, 1, &rule22},
+ {42805, 1, &rule23},
+ {42806, 1, &rule22},
+ {42807, 1, &rule23},
+ {42808, 1, &rule22},
+ {42809, 1, &rule23},
+ {42810, 1, &rule22},
+ {42811, 1, &rule23},
+ {42812, 1, &rule22},
+ {42813, 1, &rule23},
+ {42814, 1, &rule22},
+ {42815, 1, &rule23},
+ {42816, 1, &rule22},
+ {42817, 1, &rule23},
+ {42818, 1, &rule22},
+ {42819, 1, &rule23},
+ {42820, 1, &rule22},
+ {42821, 1, &rule23},
+ {42822, 1, &rule22},
+ {42823, 1, &rule23},
+ {42824, 1, &rule22},
+ {42825, 1, &rule23},
+ {42826, 1, &rule22},
+ {42827, 1, &rule23},
+ {42828, 1, &rule22},
+ {42829, 1, &rule23},
+ {42830, 1, &rule22},
+ {42831, 1, &rule23},
+ {42832, 1, &rule22},
+ {42833, 1, &rule23},
+ {42834, 1, &rule22},
+ {42835, 1, &rule23},
+ {42836, 1, &rule22},
+ {42837, 1, &rule23},
+ {42838, 1, &rule22},
+ {42839, 1, &rule23},
+ {42840, 1, &rule22},
+ {42841, 1, &rule23},
+ {42842, 1, &rule22},
+ {42843, 1, &rule23},
+ {42844, 1, &rule22},
+ {42845, 1, &rule23},
+ {42846, 1, &rule22},
+ {42847, 1, &rule23},
+ {42848, 1, &rule22},
+ {42849, 1, &rule23},
+ {42850, 1, &rule22},
+ {42851, 1, &rule23},
+ {42852, 1, &rule22},
+ {42853, 1, &rule23},
+ {42854, 1, &rule22},
+ {42855, 1, &rule23},
+ {42856, 1, &rule22},
+ {42857, 1, &rule23},
+ {42858, 1, &rule22},
+ {42859, 1, &rule23},
+ {42860, 1, &rule22},
+ {42861, 1, &rule23},
+ {42862, 1, &rule22},
+ {42863, 1, &rule23},
+ {42864, 1, &rule89},
+ {42865, 8, &rule20},
+ {42873, 1, &rule22},
+ {42874, 1, &rule23},
+ {42875, 1, &rule22},
+ {42876, 1, &rule23},
+ {42877, 1, &rule169},
+ {42878, 1, &rule22},
+ {42879, 1, &rule23},
+ {42880, 1, &rule22},
+ {42881, 1, &rule23},
+ {42882, 1, &rule22},
+ {42883, 1, &rule23},
+ {42884, 1, &rule22},
+ {42885, 1, &rule23},
+ {42886, 1, &rule22},
+ {42887, 1, &rule23},
+ {42888, 1, &rule89},
+ {42889, 2, &rule10},
+ {42891, 1, &rule22},
+ {42892, 1, &rule23},
+ {42893, 1, &rule170},
+ {42894, 1, &rule20},
+ {42896, 1, &rule22},
+ {42897, 1, &rule23},
+ {42898, 1, &rule22},
+ {42899, 1, &rule23},
+ {42900, 2, &rule20},
+ {42902, 1, &rule22},
+ {42903, 1, &rule23},
+ {42904, 1, &rule22},
+ {42905, 1, &rule23},
+ {42906, 1, &rule22},
+ {42907, 1, &rule23},
+ {42908, 1, &rule22},
+ {42909, 1, &rule23},
+ {42910, 1, &rule22},
+ {42911, 1, &rule23},
+ {42912, 1, &rule22},
+ {42913, 1, &rule23},
+ {42914, 1, &rule22},
+ {42915, 1, &rule23},
+ {42916, 1, &rule22},
+ {42917, 1, &rule23},
+ {42918, 1, &rule22},
+ {42919, 1, &rule23},
+ {42920, 1, &rule22},
+ {42921, 1, &rule23},
+ {42922, 1, &rule171},
+ {42923, 1, &rule172},
+ {42924, 1, &rule173},
+ {42925, 1, &rule174},
+ {42928, 1, &rule175},
+ {42929, 1, &rule176},
+ {42999, 1, &rule14},
+ {43000, 2, &rule89},
+ {43002, 1, &rule20},
+ {43003, 7, &rule14},
+ {43010, 1, &rule90},
+ {43011, 3, &rule14},
+ {43014, 1, &rule90},
+ {43015, 4, &rule14},
+ {43019, 1, &rule90},
+ {43020, 23, &rule14},
+ {43043, 2, &rule122},
+ {43045, 2, &rule90},
+ {43047, 1, &rule122},
+ {43048, 4, &rule13},
+ {43056, 6, &rule17},
+ {43062, 2, &rule13},
+ {43064, 1, &rule3},
+ {43065, 1, &rule13},
+ {43072, 52, &rule14},
+ {43124, 4, &rule2},
+ {43136, 2, &rule122},
+ {43138, 50, &rule14},
+ {43188, 16, &rule122},
+ {43204, 1, &rule90},
+ {43214, 2, &rule2},
+ {43216, 10, &rule8},
+ {43232, 18, &rule90},
+ {43250, 6, &rule14},
+ {43256, 3, &rule2},
+ {43259, 1, &rule14},
+ {43264, 10, &rule8},
+ {43274, 28, &rule14},
+ {43302, 8, &rule90},
+ {43310, 2, &rule2},
+ {43312, 23, &rule14},
+ {43335, 11, &rule90},
+ {43346, 2, &rule122},
+ {43359, 1, &rule2},
+ {43360, 29, &rule14},
+ {43392, 3, &rule90},
+ {43395, 1, &rule122},
+ {43396, 47, &rule14},
+ {43443, 1, &rule90},
+ {43444, 2, &rule122},
+ {43446, 4, &rule90},
+ {43450, 2, &rule122},
+ {43452, 1, &rule90},
+ {43453, 4, &rule122},
+ {43457, 13, &rule2},
+ {43471, 1, &rule89},
+ {43472, 10, &rule8},
+ {43486, 2, &rule2},
+ {43488, 5, &rule14},
+ {43493, 1, &rule90},
+ {43494, 1, &rule89},
+ {43495, 9, &rule14},
+ {43504, 10, &rule8},
+ {43514, 5, &rule14},
+ {43520, 41, &rule14},
+ {43561, 6, &rule90},
+ {43567, 2, &rule122},
+ {43569, 2, &rule90},
+ {43571, 2, &rule122},
+ {43573, 2, &rule90},
+ {43584, 3, &rule14},
+ {43587, 1, &rule90},
+ {43588, 8, &rule14},
+ {43596, 1, &rule90},
+ {43597, 1, &rule122},
+ {43600, 10, &rule8},
+ {43612, 4, &rule2},
+ {43616, 16, &rule14},
+ {43632, 1, &rule89},
+ {43633, 6, &rule14},
+ {43639, 3, &rule13},
+ {43642, 1, &rule14},
+ {43643, 1, &rule122},
+ {43644, 1, &rule90},
+ {43645, 1, &rule122},
+ {43646, 50, &rule14},
+ {43696, 1, &rule90},
+ {43697, 1, &rule14},
+ {43698, 3, &rule90},
+ {43701, 2, &rule14},
+ {43703, 2, &rule90},
+ {43705, 5, &rule14},
+ {43710, 2, &rule90},
+ {43712, 1, &rule14},
+ {43713, 1, &rule90},
+ {43714, 1, &rule14},
+ {43739, 2, &rule14},
+ {43741, 1, &rule89},
+ {43742, 2, &rule2},
+ {43744, 11, &rule14},
+ {43755, 1, &rule122},
+ {43756, 2, &rule90},
+ {43758, 2, &rule122},
+ {43760, 2, &rule2},
+ {43762, 1, &rule14},
+ {43763, 2, &rule89},
+ {43765, 1, &rule122},
+ {43766, 1, &rule90},
+ {43777, 6, &rule14},
+ {43785, 6, &rule14},
+ {43793, 6, &rule14},
+ {43808, 7, &rule14},
+ {43816, 7, &rule14},
+ {43824, 43, &rule20},
+ {43867, 1, &rule10},
+ {43868, 4, &rule89},
+ {43876, 2, &rule20},
+ {43968, 35, &rule14},
+ {44003, 2, &rule122},
+ {44005, 1, &rule90},
+ {44006, 2, &rule122},
+ {44008, 1, &rule90},
+ {44009, 2, &rule122},
+ {44011, 1, &rule2},
+ {44012, 1, &rule122},
+ {44013, 1, &rule90},
+ {44016, 10, &rule8},
+ {44032, 11172, &rule14},
+ {55216, 23, &rule14},
+ {55243, 49, &rule14},
+ {55296, 896, &rule177},
+ {56192, 128, &rule177},
+ {56320, 1024, &rule177},
+ {57344, 6400, &rule178},
+ {63744, 366, &rule14},
+ {64112, 106, &rule14},
+ {64256, 7, &rule20},
+ {64275, 5, &rule20},
+ {64285, 1, &rule14},
+ {64286, 1, &rule90},
+ {64287, 10, &rule14},
+ {64297, 1, &rule6},
+ {64298, 13, &rule14},
+ {64312, 5, &rule14},
+ {64318, 1, &rule14},
+ {64320, 2, &rule14},
+ {64323, 2, &rule14},
+ {64326, 108, &rule14},
+ {64434, 16, &rule10},
+ {64467, 363, &rule14},
+ {64830, 1, &rule5},
+ {64831, 1, &rule4},
+ {64848, 64, &rule14},
+ {64914, 54, &rule14},
+ {65008, 12, &rule14},
+ {65020, 1, &rule3},
+ {65021, 1, &rule13},
+ {65024, 16, &rule90},
+ {65040, 7, &rule2},
+ {65047, 1, &rule4},
+ {65048, 1, &rule5},
+ {65049, 1, &rule2},
+ {65056, 14, &rule90},
+ {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, &rule14},
+ {65142, 135, &rule14},
+ {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, &rule14},
+ {65392, 1, &rule89},
+ {65393, 45, &rule14},
+ {65438, 2, &rule89},
+ {65440, 31, &rule14},
+ {65474, 6, &rule14},
+ {65482, 6, &rule14},
+ {65490, 6, &rule14},
+ {65498, 3, &rule14},
+ {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, &rule14},
+ {65549, 26, &rule14},
+ {65576, 19, &rule14},
+ {65596, 2, &rule14},
+ {65599, 15, &rule14},
+ {65616, 14, &rule14},
+ {65664, 123, &rule14},
+ {65792, 3, &rule2},
+ {65799, 45, &rule17},
+ {65847, 9, &rule13},
+ {65856, 53, &rule124},
+ {65909, 4, &rule17},
+ {65913, 17, &rule13},
+ {65930, 2, &rule17},
+ {65932, 1, &rule13},
+ {65936, 12, &rule13},
+ {65952, 1, &rule13},
+ {66000, 45, &rule13},
+ {66045, 1, &rule90},
+ {66176, 29, &rule14},
+ {66208, 49, &rule14},
+ {66272, 1, &rule90},
+ {66273, 27, &rule17},
+ {66304, 32, &rule14},
+ {66336, 4, &rule17},
+ {66352, 17, &rule14},
+ {66369, 1, &rule124},
+ {66370, 8, &rule14},
+ {66378, 1, &rule124},
+ {66384, 38, &rule14},
+ {66422, 5, &rule90},
+ {66432, 30, &rule14},
+ {66463, 1, &rule2},
+ {66464, 36, &rule14},
+ {66504, 8, &rule14},
+ {66512, 1, &rule2},
+ {66513, 5, &rule124},
+ {66560, 40, &rule179},
+ {66600, 40, &rule180},
+ {66640, 78, &rule14},
+ {66720, 10, &rule8},
+ {66816, 40, &rule14},
+ {66864, 52, &rule14},
+ {66927, 1, &rule2},
+ {67072, 311, &rule14},
+ {67392, 22, &rule14},
+ {67424, 8, &rule14},
+ {67584, 6, &rule14},
+ {67592, 1, &rule14},
+ {67594, 44, &rule14},
+ {67639, 2, &rule14},
+ {67644, 1, &rule14},
+ {67647, 23, &rule14},
+ {67671, 1, &rule2},
+ {67672, 8, &rule17},
+ {67680, 23, &rule14},
+ {67703, 2, &rule13},
+ {67705, 7, &rule17},
+ {67712, 31, &rule14},
+ {67751, 9, &rule17},
+ {67840, 22, &rule14},
+ {67862, 6, &rule17},
+ {67871, 1, &rule2},
+ {67872, 26, &rule14},
+ {67903, 1, &rule2},
+ {67968, 56, &rule14},
+ {68030, 2, &rule14},
+ {68096, 1, &rule14},
+ {68097, 3, &rule90},
+ {68101, 2, &rule90},
+ {68108, 4, &rule90},
+ {68112, 4, &rule14},
+ {68117, 3, &rule14},
+ {68121, 27, &rule14},
+ {68152, 3, &rule90},
+ {68159, 1, &rule90},
+ {68160, 8, &rule17},
+ {68176, 9, &rule2},
+ {68192, 29, &rule14},
+ {68221, 2, &rule17},
+ {68223, 1, &rule2},
+ {68224, 29, &rule14},
+ {68253, 3, &rule17},
+ {68288, 8, &rule14},
+ {68296, 1, &rule13},
+ {68297, 28, &rule14},
+ {68325, 2, &rule90},
+ {68331, 5, &rule17},
+ {68336, 7, &rule2},
+ {68352, 54, &rule14},
+ {68409, 7, &rule2},
+ {68416, 22, &rule14},
+ {68440, 8, &rule17},
+ {68448, 19, &rule14},
+ {68472, 8, &rule17},
+ {68480, 18, &rule14},
+ {68505, 4, &rule2},
+ {68521, 7, &rule17},
+ {68608, 73, &rule14},
+ {69216, 31, &rule17},
+ {69632, 1, &rule122},
+ {69633, 1, &rule90},
+ {69634, 1, &rule122},
+ {69635, 53, &rule14},
+ {69688, 15, &rule90},
+ {69703, 7, &rule2},
+ {69714, 20, &rule17},
+ {69734, 10, &rule8},
+ {69759, 3, &rule90},
+ {69762, 1, &rule122},
+ {69763, 45, &rule14},
+ {69808, 3, &rule122},
+ {69811, 4, &rule90},
+ {69815, 2, &rule122},
+ {69817, 2, &rule90},
+ {69819, 2, &rule2},
+ {69821, 1, &rule16},
+ {69822, 4, &rule2},
+ {69840, 25, &rule14},
+ {69872, 10, &rule8},
+ {69888, 3, &rule90},
+ {69891, 36, &rule14},
+ {69927, 5, &rule90},
+ {69932, 1, &rule122},
+ {69933, 8, &rule90},
+ {69942, 10, &rule8},
+ {69952, 4, &rule2},
+ {69968, 35, &rule14},
+ {70003, 1, &rule90},
+ {70004, 2, &rule2},
+ {70006, 1, &rule14},
+ {70016, 2, &rule90},
+ {70018, 1, &rule122},
+ {70019, 48, &rule14},
+ {70067, 3, &rule122},
+ {70070, 9, &rule90},
+ {70079, 2, &rule122},
+ {70081, 4, &rule14},
+ {70085, 4, &rule2},
+ {70093, 1, &rule2},
+ {70096, 10, &rule8},
+ {70106, 1, &rule14},
+ {70113, 20, &rule17},
+ {70144, 18, &rule14},
+ {70163, 25, &rule14},
+ {70188, 3, &rule122},
+ {70191, 3, &rule90},
+ {70194, 2, &rule122},
+ {70196, 1, &rule90},
+ {70197, 1, &rule122},
+ {70198, 2, &rule90},
+ {70200, 6, &rule2},
+ {70320, 47, &rule14},
+ {70367, 1, &rule90},
+ {70368, 3, &rule122},
+ {70371, 8, &rule90},
+ {70384, 10, &rule8},
+ {70401, 1, &rule90},
+ {70402, 2, &rule122},
+ {70405, 8, &rule14},
+ {70415, 2, &rule14},
+ {70419, 22, &rule14},
+ {70442, 7, &rule14},
+ {70450, 2, &rule14},
+ {70453, 5, &rule14},
+ {70460, 1, &rule90},
+ {70461, 1, &rule14},
+ {70462, 2, &rule122},
+ {70464, 1, &rule90},
+ {70465, 4, &rule122},
+ {70471, 2, &rule122},
+ {70475, 3, &rule122},
+ {70487, 1, &rule122},
+ {70493, 5, &rule14},
+ {70498, 2, &rule122},
+ {70502, 7, &rule90},
+ {70512, 5, &rule90},
+ {70784, 48, &rule14},
+ {70832, 3, &rule122},
+ {70835, 6, &rule90},
+ {70841, 1, &rule122},
+ {70842, 1, &rule90},
+ {70843, 4, &rule122},
+ {70847, 2, &rule90},
+ {70849, 1, &rule122},
+ {70850, 2, &rule90},
+ {70852, 2, &rule14},
+ {70854, 1, &rule2},
+ {70855, 1, &rule14},
+ {70864, 10, &rule8},
+ {71040, 47, &rule14},
+ {71087, 3, &rule122},
+ {71090, 4, &rule90},
+ {71096, 4, &rule122},
+ {71100, 2, &rule90},
+ {71102, 1, &rule122},
+ {71103, 2, &rule90},
+ {71105, 9, &rule2},
+ {71168, 48, &rule14},
+ {71216, 3, &rule122},
+ {71219, 8, &rule90},
+ {71227, 2, &rule122},
+ {71229, 1, &rule90},
+ {71230, 1, &rule122},
+ {71231, 2, &rule90},
+ {71233, 3, &rule2},
+ {71236, 1, &rule14},
+ {71248, 10, &rule8},
+ {71296, 43, &rule14},
+ {71339, 1, &rule90},
+ {71340, 1, &rule122},
+ {71341, 1, &rule90},
+ {71342, 2, &rule122},
+ {71344, 6, &rule90},
+ {71350, 1, &rule122},
+ {71351, 1, &rule90},
+ {71360, 10, &rule8},
+ {71840, 32, &rule9},
+ {71872, 32, &rule12},
+ {71904, 10, &rule8},
+ {71914, 9, &rule17},
+ {71935, 1, &rule14},
+ {72384, 57, &rule14},
+ {73728, 921, &rule14},
+ {74752, 111, &rule124},
+ {74864, 5, &rule2},
+ {77824, 1071, &rule14},
+ {92160, 569, &rule14},
+ {92736, 31, &rule14},
+ {92768, 10, &rule8},
+ {92782, 2, &rule2},
+ {92880, 30, &rule14},
+ {92912, 5, &rule90},
+ {92917, 1, &rule2},
+ {92928, 48, &rule14},
+ {92976, 7, &rule90},
+ {92983, 5, &rule2},
+ {92988, 4, &rule13},
+ {92992, 4, &rule89},
+ {92996, 1, &rule2},
+ {92997, 1, &rule13},
+ {93008, 10, &rule8},
+ {93019, 7, &rule17},
+ {93027, 21, &rule14},
+ {93053, 19, &rule14},
+ {93952, 69, &rule14},
+ {94032, 1, &rule14},
+ {94033, 46, &rule122},
+ {94095, 4, &rule90},
+ {94099, 13, &rule89},
+ {110592, 2, &rule14},
+ {113664, 107, &rule14},
+ {113776, 13, &rule14},
+ {113792, 9, &rule14},
+ {113808, 10, &rule14},
+ {113820, 1, &rule13},
+ {113821, 2, &rule90},
+ {113823, 1, &rule2},
+ {113824, 4, &rule16},
+ {118784, 246, &rule13},
+ {119040, 39, &rule13},
+ {119081, 60, &rule13},
+ {119141, 2, &rule122},
+ {119143, 3, &rule90},
+ {119146, 3, &rule13},
+ {119149, 6, &rule122},
+ {119155, 8, &rule16},
+ {119163, 8, &rule90},
+ {119171, 2, &rule13},
+ {119173, 7, &rule90},
+ {119180, 30, &rule13},
+ {119210, 4, &rule90},
+ {119214, 48, &rule13},
+ {119296, 66, &rule13},
+ {119362, 3, &rule90},
+ {119365, 1, &rule13},
+ {119552, 87, &rule13},
+ {119648, 18, &rule17},
+ {119808, 26, &rule105},
+ {119834, 26, &rule20},
+ {119860, 26, &rule105},
+ {119886, 7, &rule20},
+ {119894, 18, &rule20},
+ {119912, 26, &rule105},
+ {119938, 26, &rule20},
+ {119964, 1, &rule105},
+ {119966, 2, &rule105},
+ {119970, 1, &rule105},
+ {119973, 2, &rule105},
+ {119977, 4, &rule105},
+ {119982, 8, &rule105},
+ {119990, 4, &rule20},
+ {119995, 1, &rule20},
+ {119997, 7, &rule20},
+ {120005, 11, &rule20},
+ {120016, 26, &rule105},
+ {120042, 26, &rule20},
+ {120068, 2, &rule105},
+ {120071, 4, &rule105},
+ {120077, 8, &rule105},
+ {120086, 7, &rule105},
+ {120094, 26, &rule20},
+ {120120, 2, &rule105},
+ {120123, 4, &rule105},
+ {120128, 5, &rule105},
+ {120134, 1, &rule105},
+ {120138, 7, &rule105},
+ {120146, 26, &rule20},
+ {120172, 26, &rule105},
+ {120198, 26, &rule20},
+ {120224, 26, &rule105},
+ {120250, 26, &rule20},
+ {120276, 26, &rule105},
+ {120302, 26, &rule20},
+ {120328, 26, &rule105},
+ {120354, 26, &rule20},
+ {120380, 26, &rule105},
+ {120406, 26, &rule20},
+ {120432, 26, &rule105},
+ {120458, 28, &rule20},
+ {120488, 25, &rule105},
+ {120513, 1, &rule6},
+ {120514, 25, &rule20},
+ {120539, 1, &rule6},
+ {120540, 6, &rule20},
+ {120546, 25, &rule105},
+ {120571, 1, &rule6},
+ {120572, 25, &rule20},
+ {120597, 1, &rule6},
+ {120598, 6, &rule20},
+ {120604, 25, &rule105},
+ {120629, 1, &rule6},
+ {120630, 25, &rule20},
+ {120655, 1, &rule6},
+ {120656, 6, &rule20},
+ {120662, 25, &rule105},
+ {120687, 1, &rule6},
+ {120688, 25, &rule20},
+ {120713, 1, &rule6},
+ {120714, 6, &rule20},
+ {120720, 25, &rule105},
+ {120745, 1, &rule6},
+ {120746, 25, &rule20},
+ {120771, 1, &rule6},
+ {120772, 6, &rule20},
+ {120778, 1, &rule105},
+ {120779, 1, &rule20},
+ {120782, 50, &rule8},
+ {124928, 197, &rule14},
+ {125127, 9, &rule17},
+ {125136, 7, &rule90},
+ {126464, 4, &rule14},
+ {126469, 27, &rule14},
+ {126497, 2, &rule14},
+ {126500, 1, &rule14},
+ {126503, 1, &rule14},
+ {126505, 10, &rule14},
+ {126516, 4, &rule14},
+ {126521, 1, &rule14},
+ {126523, 1, &rule14},
+ {126530, 1, &rule14},
+ {126535, 1, &rule14},
+ {126537, 1, &rule14},
+ {126539, 1, &rule14},
+ {126541, 3, &rule14},
+ {126545, 2, &rule14},
+ {126548, 1, &rule14},
+ {126551, 1, &rule14},
+ {126553, 1, &rule14},
+ {126555, 1, &rule14},
+ {126557, 1, &rule14},
+ {126559, 1, &rule14},
+ {126561, 2, &rule14},
+ {126564, 1, &rule14},
+ {126567, 4, &rule14},
+ {126572, 7, &rule14},
+ {126580, 4, &rule14},
+ {126585, 4, &rule14},
+ {126590, 1, &rule14},
+ {126592, 10, &rule14},
+ {126603, 17, &rule14},
+ {126625, 3, &rule14},
+ {126629, 5, &rule14},
+ {126635, 17, &rule14},
+ {126704, 2, &rule6},
+ {126976, 44, &rule13},
+ {127024, 100, &rule13},
+ {127136, 15, &rule13},
+ {127153, 15, &rule13},
+ {127169, 15, &rule13},
+ {127185, 37, &rule13},
+ {127232, 13, &rule17},
+ {127248, 31, &rule13},
+ {127280, 60, &rule13},
+ {127344, 43, &rule13},
+ {127462, 29, &rule13},
+ {127504, 43, &rule13},
+ {127552, 9, &rule13},
+ {127568, 2, &rule13},
+ {127744, 45, &rule13},
+ {127792, 78, &rule13},
+ {127872, 79, &rule13},
+ {127956, 36, &rule13},
+ {128000, 255, &rule13},
+ {128256, 75, &rule13},
+ {128336, 42, &rule13},
+ {128379, 41, &rule13},
+ {128421, 158, &rule13},
+ {128581, 139, &rule13},
+ {128736, 13, &rule13},
+ {128752, 4, &rule13},
+ {128768, 116, &rule13},
+ {128896, 85, &rule13},
+ {129024, 12, &rule13},
+ {129040, 56, &rule13},
+ {129104, 10, &rule13},
+ {129120, 40, &rule13},
+ {129168, 30, &rule13},
+ {131072, 42711, &rule14},
+ {173824, 4149, &rule14},
+ {177984, 222, &rule14},
+ {194560, 542, &rule14},
+ {917505, 1, &rule16},
+ {917536, 96, &rule16},
+ {917760, 240, &rule90},
+ {983040, 65534, &rule178},
+ {1048576, 65534, &rule178}
+};
+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, &rule21},
+ {256, 1, &rule22},
+ {257, 1, &rule23},
+ {258, 1, &rule22},
+ {259, 1, &rule23},
+ {260, 1, &rule22},
+ {261, 1, &rule23},
+ {262, 1, &rule22},
+ {263, 1, &rule23},
+ {264, 1, &rule22},
+ {265, 1, &rule23},
+ {266, 1, &rule22},
+ {267, 1, &rule23},
+ {268, 1, &rule22},
+ {269, 1, &rule23},
+ {270, 1, &rule22},
+ {271, 1, &rule23},
+ {272, 1, &rule22},
+ {273, 1, &rule23},
+ {274, 1, &rule22},
+ {275, 1, &rule23},
+ {276, 1, &rule22},
+ {277, 1, &rule23},
+ {278, 1, &rule22},
+ {279, 1, &rule23},
+ {280, 1, &rule22},
+ {281, 1, &rule23},
+ {282, 1, &rule22},
+ {283, 1, &rule23},
+ {284, 1, &rule22},
+ {285, 1, &rule23},
+ {286, 1, &rule22},
+ {287, 1, &rule23},
+ {288, 1, &rule22},
+ {289, 1, &rule23},
+ {290, 1, &rule22},
+ {291, 1, &rule23},
+ {292, 1, &rule22},
+ {293, 1, &rule23},
+ {294, 1, &rule22},
+ {295, 1, &rule23},
+ {296, 1, &rule22},
+ {297, 1, &rule23},
+ {298, 1, &rule22},
+ {299, 1, &rule23},
+ {300, 1, &rule22},
+ {301, 1, &rule23},
+ {302, 1, &rule22},
+ {303, 1, &rule23},
+ {304, 1, &rule24},
+ {305, 1, &rule25},
+ {306, 1, &rule22},
+ {307, 1, &rule23},
+ {308, 1, &rule22},
+ {309, 1, &rule23},
+ {310, 1, &rule22},
+ {311, 1, &rule23},
+ {313, 1, &rule22},
+ {314, 1, &rule23},
+ {315, 1, &rule22},
+ {316, 1, &rule23},
+ {317, 1, &rule22},
+ {318, 1, &rule23},
+ {319, 1, &rule22},
+ {320, 1, &rule23},
+ {321, 1, &rule22},
+ {322, 1, &rule23},
+ {323, 1, &rule22},
+ {324, 1, &rule23},
+ {325, 1, &rule22},
+ {326, 1, &rule23},
+ {327, 1, &rule22},
+ {328, 1, &rule23},
+ {330, 1, &rule22},
+ {331, 1, &rule23},
+ {332, 1, &rule22},
+ {333, 1, &rule23},
+ {334, 1, &rule22},
+ {335, 1, &rule23},
+ {336, 1, &rule22},
+ {337, 1, &rule23},
+ {338, 1, &rule22},
+ {339, 1, &rule23},
+ {340, 1, &rule22},
+ {341, 1, &rule23},
+ {342, 1, &rule22},
+ {343, 1, &rule23},
+ {344, 1, &rule22},
+ {345, 1, &rule23},
+ {346, 1, &rule22},
+ {347, 1, &rule23},
+ {348, 1, &rule22},
+ {349, 1, &rule23},
+ {350, 1, &rule22},
+ {351, 1, &rule23},
+ {352, 1, &rule22},
+ {353, 1, &rule23},
+ {354, 1, &rule22},
+ {355, 1, &rule23},
+ {356, 1, &rule22},
+ {357, 1, &rule23},
+ {358, 1, &rule22},
+ {359, 1, &rule23},
+ {360, 1, &rule22},
+ {361, 1, &rule23},
+ {362, 1, &rule22},
+ {363, 1, &rule23},
+ {364, 1, &rule22},
+ {365, 1, &rule23},
+ {366, 1, &rule22},
+ {367, 1, &rule23},
+ {368, 1, &rule22},
+ {369, 1, &rule23},
+ {370, 1, &rule22},
+ {371, 1, &rule23},
+ {372, 1, &rule22},
+ {373, 1, &rule23},
+ {374, 1, &rule22},
+ {375, 1, &rule23},
+ {376, 1, &rule26},
+ {377, 1, &rule22},
+ {378, 1, &rule23},
+ {379, 1, &rule22},
+ {380, 1, &rule23},
+ {381, 1, &rule22},
+ {382, 1, &rule23},
+ {383, 1, &rule27},
+ {384, 1, &rule28},
+ {385, 1, &rule29},
+ {386, 1, &rule22},
+ {387, 1, &rule23},
+ {388, 1, &rule22},
+ {389, 1, &rule23},
+ {390, 1, &rule30},
+ {391, 1, &rule22},
+ {392, 1, &rule23},
+ {393, 2, &rule31},
+ {395, 1, &rule22},
+ {396, 1, &rule23},
+ {398, 1, &rule32},
+ {399, 1, &rule33},
+ {400, 1, &rule34},
+ {401, 1, &rule22},
+ {402, 1, &rule23},
+ {403, 1, &rule31},
+ {404, 1, &rule35},
+ {405, 1, &rule36},
+ {406, 1, &rule37},
+ {407, 1, &rule38},
+ {408, 1, &rule22},
+ {409, 1, &rule23},
+ {410, 1, &rule39},
+ {412, 1, &rule37},
+ {413, 1, &rule40},
+ {414, 1, &rule41},
+ {415, 1, &rule42},
+ {416, 1, &rule22},
+ {417, 1, &rule23},
+ {418, 1, &rule22},
+ {419, 1, &rule23},
+ {420, 1, &rule22},
+ {421, 1, &rule23},
+ {422, 1, &rule43},
+ {423, 1, &rule22},
+ {424, 1, &rule23},
+ {425, 1, &rule43},
+ {428, 1, &rule22},
+ {429, 1, &rule23},
+ {430, 1, &rule43},
+ {431, 1, &rule22},
+ {432, 1, &rule23},
+ {433, 2, &rule44},
+ {435, 1, &rule22},
+ {436, 1, &rule23},
+ {437, 1, &rule22},
+ {438, 1, &rule23},
+ {439, 1, &rule45},
+ {440, 1, &rule22},
+ {441, 1, &rule23},
+ {444, 1, &rule22},
+ {445, 1, &rule23},
+ {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, &rule22},
+ {462, 1, &rule23},
+ {463, 1, &rule22},
+ {464, 1, &rule23},
+ {465, 1, &rule22},
+ {466, 1, &rule23},
+ {467, 1, &rule22},
+ {468, 1, &rule23},
+ {469, 1, &rule22},
+ {470, 1, &rule23},
+ {471, 1, &rule22},
+ {472, 1, &rule23},
+ {473, 1, &rule22},
+ {474, 1, &rule23},
+ {475, 1, &rule22},
+ {476, 1, &rule23},
+ {477, 1, &rule50},
+ {478, 1, &rule22},
+ {479, 1, &rule23},
+ {480, 1, &rule22},
+ {481, 1, &rule23},
+ {482, 1, &rule22},
+ {483, 1, &rule23},
+ {484, 1, &rule22},
+ {485, 1, &rule23},
+ {486, 1, &rule22},
+ {487, 1, &rule23},
+ {488, 1, &rule22},
+ {489, 1, &rule23},
+ {490, 1, &rule22},
+ {491, 1, &rule23},
+ {492, 1, &rule22},
+ {493, 1, &rule23},
+ {494, 1, &rule22},
+ {495, 1, &rule23},
+ {497, 1, &rule47},
+ {498, 1, &rule48},
+ {499, 1, &rule49},
+ {500, 1, &rule22},
+ {501, 1, &rule23},
+ {502, 1, &rule51},
+ {503, 1, &rule52},
+ {504, 1, &rule22},
+ {505, 1, &rule23},
+ {506, 1, &rule22},
+ {507, 1, &rule23},
+ {508, 1, &rule22},
+ {509, 1, &rule23},
+ {510, 1, &rule22},
+ {511, 1, &rule23},
+ {512, 1, &rule22},
+ {513, 1, &rule23},
+ {514, 1, &rule22},
+ {515, 1, &rule23},
+ {516, 1, &rule22},
+ {517, 1, &rule23},
+ {518, 1, &rule22},
+ {519, 1, &rule23},
+ {520, 1, &rule22},
+ {521, 1, &rule23},
+ {522, 1, &rule22},
+ {523, 1, &rule23},
+ {524, 1, &rule22},
+ {525, 1, &rule23},
+ {526, 1, &rule22},
+ {527, 1, &rule23},
+ {528, 1, &rule22},
+ {529, 1, &rule23},
+ {530, 1, &rule22},
+ {531, 1, &rule23},
+ {532, 1, &rule22},
+ {533, 1, &rule23},
+ {534, 1, &rule22},
+ {535, 1, &rule23},
+ {536, 1, &rule22},
+ {537, 1, &rule23},
+ {538, 1, &rule22},
+ {539, 1, &rule23},
+ {540, 1, &rule22},
+ {541, 1, &rule23},
+ {542, 1, &rule22},
+ {543, 1, &rule23},
+ {544, 1, &rule53},
+ {546, 1, &rule22},
+ {547, 1, &rule23},
+ {548, 1, &rule22},
+ {549, 1, &rule23},
+ {550, 1, &rule22},
+ {551, 1, &rule23},
+ {552, 1, &rule22},
+ {553, 1, &rule23},
+ {554, 1, &rule22},
+ {555, 1, &rule23},
+ {556, 1, &rule22},
+ {557, 1, &rule23},
+ {558, 1, &rule22},
+ {559, 1, &rule23},
+ {560, 1, &rule22},
+ {561, 1, &rule23},
+ {562, 1, &rule22},
+ {563, 1, &rule23},
+ {570, 1, &rule54},
+ {571, 1, &rule22},
+ {572, 1, &rule23},
+ {573, 1, &rule55},
+ {574, 1, &rule56},
+ {575, 2, &rule57},
+ {577, 1, &rule22},
+ {578, 1, &rule23},
+ {579, 1, &rule58},
+ {580, 1, &rule59},
+ {581, 1, &rule60},
+ {582, 1, &rule22},
+ {583, 1, &rule23},
+ {584, 1, &rule22},
+ {585, 1, &rule23},
+ {586, 1, &rule22},
+ {587, 1, &rule23},
+ {588, 1, &rule22},
+ {589, 1, &rule23},
+ {590, 1, &rule22},
+ {591, 1, &rule23},
+ {592, 1, &rule61},
+ {593, 1, &rule62},
+ {594, 1, &rule63},
+ {595, 1, &rule64},
+ {596, 1, &rule65},
+ {598, 2, &rule66},
+ {601, 1, &rule67},
+ {603, 1, &rule68},
+ {604, 1, &rule69},
+ {608, 1, &rule66},
+ {609, 1, &rule70},
+ {611, 1, &rule71},
+ {613, 1, &rule72},
+ {614, 1, &rule73},
+ {616, 1, &rule74},
+ {617, 1, &rule75},
+ {619, 1, &rule76},
+ {620, 1, &rule77},
+ {623, 1, &rule75},
+ {625, 1, &rule78},
+ {626, 1, &rule79},
+ {629, 1, &rule80},
+ {637, 1, &rule81},
+ {640, 1, &rule82},
+ {643, 1, &rule82},
+ {647, 1, &rule83},
+ {648, 1, &rule82},
+ {649, 1, &rule84},
+ {650, 2, &rule85},
+ {652, 1, &rule86},
+ {658, 1, &rule87},
+ {670, 1, &rule88},
+ {837, 1, &rule91},
+ {880, 1, &rule22},
+ {881, 1, &rule23},
+ {882, 1, &rule22},
+ {883, 1, &rule23},
+ {886, 1, &rule22},
+ {887, 1, &rule23},
+ {891, 3, &rule41},
+ {895, 1, &rule92},
+ {902, 1, &rule93},
+ {904, 3, &rule94},
+ {908, 1, &rule95},
+ {910, 2, &rule96},
+ {913, 17, &rule9},
+ {931, 9, &rule9},
+ {940, 1, &rule97},
+ {941, 3, &rule98},
+ {945, 17, &rule12},
+ {962, 1, &rule99},
+ {963, 9, &rule12},
+ {972, 1, &rule100},
+ {973, 2, &rule101},
+ {975, 1, &rule102},
+ {976, 1, &rule103},
+ {977, 1, &rule104},
+ {981, 1, &rule106},
+ {982, 1, &rule107},
+ {983, 1, &rule108},
+ {984, 1, &rule22},
+ {985, 1, &rule23},
+ {986, 1, &rule22},
+ {987, 1, &rule23},
+ {988, 1, &rule22},
+ {989, 1, &rule23},
+ {990, 1, &rule22},
+ {991, 1, &rule23},
+ {992, 1, &rule22},
+ {993, 1, &rule23},
+ {994, 1, &rule22},
+ {995, 1, &rule23},
+ {996, 1, &rule22},
+ {997, 1, &rule23},
+ {998, 1, &rule22},
+ {999, 1, &rule23},
+ {1000, 1, &rule22},
+ {1001, 1, &rule23},
+ {1002, 1, &rule22},
+ {1003, 1, &rule23},
+ {1004, 1, &rule22},
+ {1005, 1, &rule23},
+ {1006, 1, &rule22},
+ {1007, 1, &rule23},
+ {1008, 1, &rule109},
+ {1009, 1, &rule110},
+ {1010, 1, &rule111},
+ {1011, 1, &rule112},
+ {1012, 1, &rule113},
+ {1013, 1, &rule114},
+ {1015, 1, &rule22},
+ {1016, 1, &rule23},
+ {1017, 1, &rule115},
+ {1018, 1, &rule22},
+ {1019, 1, &rule23},
+ {1021, 3, &rule53},
+ {1024, 16, &rule116},
+ {1040, 32, &rule9},
+ {1072, 32, &rule12},
+ {1104, 16, &rule110},
+ {1120, 1, &rule22},
+ {1121, 1, &rule23},
+ {1122, 1, &rule22},
+ {1123, 1, &rule23},
+ {1124, 1, &rule22},
+ {1125, 1, &rule23},
+ {1126, 1, &rule22},
+ {1127, 1, &rule23},
+ {1128, 1, &rule22},
+ {1129, 1, &rule23},
+ {1130, 1, &rule22},
+ {1131, 1, &rule23},
+ {1132, 1, &rule22},
+ {1133, 1, &rule23},
+ {1134, 1, &rule22},
+ {1135, 1, &rule23},
+ {1136, 1, &rule22},
+ {1137, 1, &rule23},
+ {1138, 1, &rule22},
+ {1139, 1, &rule23},
+ {1140, 1, &rule22},
+ {1141, 1, &rule23},
+ {1142, 1, &rule22},
+ {1143, 1, &rule23},
+ {1144, 1, &rule22},
+ {1145, 1, &rule23},
+ {1146, 1, &rule22},
+ {1147, 1, &rule23},
+ {1148, 1, &rule22},
+ {1149, 1, &rule23},
+ {1150, 1, &rule22},
+ {1151, 1, &rule23},
+ {1152, 1, &rule22},
+ {1153, 1, &rule23},
+ {1162, 1, &rule22},
+ {1163, 1, &rule23},
+ {1164, 1, &rule22},
+ {1165, 1, &rule23},
+ {1166, 1, &rule22},
+ {1167, 1, &rule23},
+ {1168, 1, &rule22},
+ {1169, 1, &rule23},
+ {1170, 1, &rule22},
+ {1171, 1, &rule23},
+ {1172, 1, &rule22},
+ {1173, 1, &rule23},
+ {1174, 1, &rule22},
+ {1175, 1, &rule23},
+ {1176, 1, &rule22},
+ {1177, 1, &rule23},
+ {1178, 1, &rule22},
+ {1179, 1, &rule23},
+ {1180, 1, &rule22},
+ {1181, 1, &rule23},
+ {1182, 1, &rule22},
+ {1183, 1, &rule23},
+ {1184, 1, &rule22},
+ {1185, 1, &rule23},
+ {1186, 1, &rule22},
+ {1187, 1, &rule23},
+ {1188, 1, &rule22},
+ {1189, 1, &rule23},
+ {1190, 1, &rule22},
+ {1191, 1, &rule23},
+ {1192, 1, &rule22},
+ {1193, 1, &rule23},
+ {1194, 1, &rule22},
+ {1195, 1, &rule23},
+ {1196, 1, &rule22},
+ {1197, 1, &rule23},
+ {1198, 1, &rule22},
+ {1199, 1, &rule23},
+ {1200, 1, &rule22},
+ {1201, 1, &rule23},
+ {1202, 1, &rule22},
+ {1203, 1, &rule23},
+ {1204, 1, &rule22},
+ {1205, 1, &rule23},
+ {1206, 1, &rule22},
+ {1207, 1, &rule23},
+ {1208, 1, &rule22},
+ {1209, 1, &rule23},
+ {1210, 1, &rule22},
+ {1211, 1, &rule23},
+ {1212, 1, &rule22},
+ {1213, 1, &rule23},
+ {1214, 1, &rule22},
+ {1215, 1, &rule23},
+ {1216, 1, &rule118},
+ {1217, 1, &rule22},
+ {1218, 1, &rule23},
+ {1219, 1, &rule22},
+ {1220, 1, &rule23},
+ {1221, 1, &rule22},
+ {1222, 1, &rule23},
+ {1223, 1, &rule22},
+ {1224, 1, &rule23},
+ {1225, 1, &rule22},
+ {1226, 1, &rule23},
+ {1227, 1, &rule22},
+ {1228, 1, &rule23},
+ {1229, 1, &rule22},
+ {1230, 1, &rule23},
+ {1231, 1, &rule119},
+ {1232, 1, &rule22},
+ {1233, 1, &rule23},
+ {1234, 1, &rule22},
+ {1235, 1, &rule23},
+ {1236, 1, &rule22},
+ {1237, 1, &rule23},
+ {1238, 1, &rule22},
+ {1239, 1, &rule23},
+ {1240, 1, &rule22},
+ {1241, 1, &rule23},
+ {1242, 1, &rule22},
+ {1243, 1, &rule23},
+ {1244, 1, &rule22},
+ {1245, 1, &rule23},
+ {1246, 1, &rule22},
+ {1247, 1, &rule23},
+ {1248, 1, &rule22},
+ {1249, 1, &rule23},
+ {1250, 1, &rule22},
+ {1251, 1, &rule23},
+ {1252, 1, &rule22},
+ {1253, 1, &rule23},
+ {1254, 1, &rule22},
+ {1255, 1, &rule23},
+ {1256, 1, &rule22},
+ {1257, 1, &rule23},
+ {1258, 1, &rule22},
+ {1259, 1, &rule23},
+ {1260, 1, &rule22},
+ {1261, 1, &rule23},
+ {1262, 1, &rule22},
+ {1263, 1, &rule23},
+ {1264, 1, &rule22},
+ {1265, 1, &rule23},
+ {1266, 1, &rule22},
+ {1267, 1, &rule23},
+ {1268, 1, &rule22},
+ {1269, 1, &rule23},
+ {1270, 1, &rule22},
+ {1271, 1, &rule23},
+ {1272, 1, &rule22},
+ {1273, 1, &rule23},
+ {1274, 1, &rule22},
+ {1275, 1, &rule23},
+ {1276, 1, &rule22},
+ {1277, 1, &rule23},
+ {1278, 1, &rule22},
+ {1279, 1, &rule23},
+ {1280, 1, &rule22},
+ {1281, 1, &rule23},
+ {1282, 1, &rule22},
+ {1283, 1, &rule23},
+ {1284, 1, &rule22},
+ {1285, 1, &rule23},
+ {1286, 1, &rule22},
+ {1287, 1, &rule23},
+ {1288, 1, &rule22},
+ {1289, 1, &rule23},
+ {1290, 1, &rule22},
+ {1291, 1, &rule23},
+ {1292, 1, &rule22},
+ {1293, 1, &rule23},
+ {1294, 1, &rule22},
+ {1295, 1, &rule23},
+ {1296, 1, &rule22},
+ {1297, 1, &rule23},
+ {1298, 1, &rule22},
+ {1299, 1, &rule23},
+ {1300, 1, &rule22},
+ {1301, 1, &rule23},
+ {1302, 1, &rule22},
+ {1303, 1, &rule23},
+ {1304, 1, &rule22},
+ {1305, 1, &rule23},
+ {1306, 1, &rule22},
+ {1307, 1, &rule23},
+ {1308, 1, &rule22},
+ {1309, 1, &rule23},
+ {1310, 1, &rule22},
+ {1311, 1, &rule23},
+ {1312, 1, &rule22},
+ {1313, 1, &rule23},
+ {1314, 1, &rule22},
+ {1315, 1, &rule23},
+ {1316, 1, &rule22},
+ {1317, 1, &rule23},
+ {1318, 1, &rule22},
+ {1319, 1, &rule23},
+ {1320, 1, &rule22},
+ {1321, 1, &rule23},
+ {1322, 1, &rule22},
+ {1323, 1, &rule23},
+ {1324, 1, &rule22},
+ {1325, 1, &rule23},
+ {1326, 1, &rule22},
+ {1327, 1, &rule23},
+ {1329, 38, &rule120},
+ {1377, 38, &rule121},
+ {4256, 38, &rule123},
+ {4295, 1, &rule123},
+ {4301, 1, &rule123},
+ {7545, 1, &rule125},
+ {7549, 1, &rule126},
+ {7680, 1, &rule22},
+ {7681, 1, &rule23},
+ {7682, 1, &rule22},
+ {7683, 1, &rule23},
+ {7684, 1, &rule22},
+ {7685, 1, &rule23},
+ {7686, 1, &rule22},
+ {7687, 1, &rule23},
+ {7688, 1, &rule22},
+ {7689, 1, &rule23},
+ {7690, 1, &rule22},
+ {7691, 1, &rule23},
+ {7692, 1, &rule22},
+ {7693, 1, &rule23},
+ {7694, 1, &rule22},
+ {7695, 1, &rule23},
+ {7696, 1, &rule22},
+ {7697, 1, &rule23},
+ {7698, 1, &rule22},
+ {7699, 1, &rule23},
+ {7700, 1, &rule22},
+ {7701, 1, &rule23},
+ {7702, 1, &rule22},
+ {7703, 1, &rule23},
+ {7704, 1, &rule22},
+ {7705, 1, &rule23},
+ {7706, 1, &rule22},
+ {7707, 1, &rule23},
+ {7708, 1, &rule22},
+ {7709, 1, &rule23},
+ {7710, 1, &rule22},
+ {7711, 1, &rule23},
+ {7712, 1, &rule22},
+ {7713, 1, &rule23},
+ {7714, 1, &rule22},
+ {7715, 1, &rule23},
+ {7716, 1, &rule22},
+ {7717, 1, &rule23},
+ {7718, 1, &rule22},
+ {7719, 1, &rule23},
+ {7720, 1, &rule22},
+ {7721, 1, &rule23},
+ {7722, 1, &rule22},
+ {7723, 1, &rule23},
+ {7724, 1, &rule22},
+ {7725, 1, &rule23},
+ {7726, 1, &rule22},
+ {7727, 1, &rule23},
+ {7728, 1, &rule22},
+ {7729, 1, &rule23},
+ {7730, 1, &rule22},
+ {7731, 1, &rule23},
+ {7732, 1, &rule22},
+ {7733, 1, &rule23},
+ {7734, 1, &rule22},
+ {7735, 1, &rule23},
+ {7736, 1, &rule22},
+ {7737, 1, &rule23},
+ {7738, 1, &rule22},
+ {7739, 1, &rule23},
+ {7740, 1, &rule22},
+ {7741, 1, &rule23},
+ {7742, 1, &rule22},
+ {7743, 1, &rule23},
+ {7744, 1, &rule22},
+ {7745, 1, &rule23},
+ {7746, 1, &rule22},
+ {7747, 1, &rule23},
+ {7748, 1, &rule22},
+ {7749, 1, &rule23},
+ {7750, 1, &rule22},
+ {7751, 1, &rule23},
+ {7752, 1, &rule22},
+ {7753, 1, &rule23},
+ {7754, 1, &rule22},
+ {7755, 1, &rule23},
+ {7756, 1, &rule22},
+ {7757, 1, &rule23},
+ {7758, 1, &rule22},
+ {7759, 1, &rule23},
+ {7760, 1, &rule22},
+ {7761, 1, &rule23},
+ {7762, 1, &rule22},
+ {7763, 1, &rule23},
+ {7764, 1, &rule22},
+ {7765, 1, &rule23},
+ {7766, 1, &rule22},
+ {7767, 1, &rule23},
+ {7768, 1, &rule22},
+ {7769, 1, &rule23},
+ {7770, 1, &rule22},
+ {7771, 1, &rule23},
+ {7772, 1, &rule22},
+ {7773, 1, &rule23},
+ {7774, 1, &rule22},
+ {7775, 1, &rule23},
+ {7776, 1, &rule22},
+ {7777, 1, &rule23},
+ {7778, 1, &rule22},
+ {7779, 1, &rule23},
+ {7780, 1, &rule22},
+ {7781, 1, &rule23},
+ {7782, 1, &rule22},
+ {7783, 1, &rule23},
+ {7784, 1, &rule22},
+ {7785, 1, &rule23},
+ {7786, 1, &rule22},
+ {7787, 1, &rule23},
+ {7788, 1, &rule22},
+ {7789, 1, &rule23},
+ {7790, 1, &rule22},
+ {7791, 1, &rule23},
+ {7792, 1, &rule22},
+ {7793, 1, &rule23},
+ {7794, 1, &rule22},
+ {7795, 1, &rule23},
+ {7796, 1, &rule22},
+ {7797, 1, &rule23},
+ {7798, 1, &rule22},
+ {7799, 1, &rule23},
+ {7800, 1, &rule22},
+ {7801, 1, &rule23},
+ {7802, 1, &rule22},
+ {7803, 1, &rule23},
+ {7804, 1, &rule22},
+ {7805, 1, &rule23},
+ {7806, 1, &rule22},
+ {7807, 1, &rule23},
+ {7808, 1, &rule22},
+ {7809, 1, &rule23},
+ {7810, 1, &rule22},
+ {7811, 1, &rule23},
+ {7812, 1, &rule22},
+ {7813, 1, &rule23},
+ {7814, 1, &rule22},
+ {7815, 1, &rule23},
+ {7816, 1, &rule22},
+ {7817, 1, &rule23},
+ {7818, 1, &rule22},
+ {7819, 1, &rule23},
+ {7820, 1, &rule22},
+ {7821, 1, &rule23},
+ {7822, 1, &rule22},
+ {7823, 1, &rule23},
+ {7824, 1, &rule22},
+ {7825, 1, &rule23},
+ {7826, 1, &rule22},
+ {7827, 1, &rule23},
+ {7828, 1, &rule22},
+ {7829, 1, &rule23},
+ {7835, 1, &rule127},
+ {7838, 1, &rule128},
+ {7840, 1, &rule22},
+ {7841, 1, &rule23},
+ {7842, 1, &rule22},
+ {7843, 1, &rule23},
+ {7844, 1, &rule22},
+ {7845, 1, &rule23},
+ {7846, 1, &rule22},
+ {7847, 1, &rule23},
+ {7848, 1, &rule22},
+ {7849, 1, &rule23},
+ {7850, 1, &rule22},
+ {7851, 1, &rule23},
+ {7852, 1, &rule22},
+ {7853, 1, &rule23},
+ {7854, 1, &rule22},
+ {7855, 1, &rule23},
+ {7856, 1, &rule22},
+ {7857, 1, &rule23},
+ {7858, 1, &rule22},
+ {7859, 1, &rule23},
+ {7860, 1, &rule22},
+ {7861, 1, &rule23},
+ {7862, 1, &rule22},
+ {7863, 1, &rule23},
+ {7864, 1, &rule22},
+ {7865, 1, &rule23},
+ {7866, 1, &rule22},
+ {7867, 1, &rule23},
+ {7868, 1, &rule22},
+ {7869, 1, &rule23},
+ {7870, 1, &rule22},
+ {7871, 1, &rule23},
+ {7872, 1, &rule22},
+ {7873, 1, &rule23},
+ {7874, 1, &rule22},
+ {7875, 1, &rule23},
+ {7876, 1, &rule22},
+ {7877, 1, &rule23},
+ {7878, 1, &rule22},
+ {7879, 1, &rule23},
+ {7880, 1, &rule22},
+ {7881, 1, &rule23},
+ {7882, 1, &rule22},
+ {7883, 1, &rule23},
+ {7884, 1, &rule22},
+ {7885, 1, &rule23},
+ {7886, 1, &rule22},
+ {7887, 1, &rule23},
+ {7888, 1, &rule22},
+ {7889, 1, &rule23},
+ {7890, 1, &rule22},
+ {7891, 1, &rule23},
+ {7892, 1, &rule22},
+ {7893, 1, &rule23},
+ {7894, 1, &rule22},
+ {7895, 1, &rule23},
+ {7896, 1, &rule22},
+ {7897, 1, &rule23},
+ {7898, 1, &rule22},
+ {7899, 1, &rule23},
+ {7900, 1, &rule22},
+ {7901, 1, &rule23},
+ {7902, 1, &rule22},
+ {7903, 1, &rule23},
+ {7904, 1, &rule22},
+ {7905, 1, &rule23},
+ {7906, 1, &rule22},
+ {7907, 1, &rule23},
+ {7908, 1, &rule22},
+ {7909, 1, &rule23},
+ {7910, 1, &rule22},
+ {7911, 1, &rule23},
+ {7912, 1, &rule22},
+ {7913, 1, &rule23},
+ {7914, 1, &rule22},
+ {7915, 1, &rule23},
+ {7916, 1, &rule22},
+ {7917, 1, &rule23},
+ {7918, 1, &rule22},
+ {7919, 1, &rule23},
+ {7920, 1, &rule22},
+ {7921, 1, &rule23},
+ {7922, 1, &rule22},
+ {7923, 1, &rule23},
+ {7924, 1, &rule22},
+ {7925, 1, &rule23},
+ {7926, 1, &rule22},
+ {7927, 1, &rule23},
+ {7928, 1, &rule22},
+ {7929, 1, &rule23},
+ {7930, 1, &rule22},
+ {7931, 1, &rule23},
+ {7932, 1, &rule22},
+ {7933, 1, &rule23},
+ {7934, 1, &rule22},
+ {7935, 1, &rule23},
+ {7936, 8, &rule129},
+ {7944, 8, &rule130},
+ {7952, 6, &rule129},
+ {7960, 6, &rule130},
+ {7968, 8, &rule129},
+ {7976, 8, &rule130},
+ {7984, 8, &rule129},
+ {7992, 8, &rule130},
+ {8000, 6, &rule129},
+ {8008, 6, &rule130},
+ {8017, 1, &rule129},
+ {8019, 1, &rule129},
+ {8021, 1, &rule129},
+ {8023, 1, &rule129},
+ {8025, 1, &rule130},
+ {8027, 1, &rule130},
+ {8029, 1, &rule130},
+ {8031, 1, &rule130},
+ {8032, 8, &rule129},
+ {8040, 8, &rule130},
+ {8048, 2, &rule131},
+ {8050, 4, &rule132},
+ {8054, 2, &rule133},
+ {8056, 2, &rule134},
+ {8058, 2, &rule135},
+ {8060, 2, &rule136},
+ {8064, 8, &rule129},
+ {8072, 8, &rule137},
+ {8080, 8, &rule129},
+ {8088, 8, &rule137},
+ {8096, 8, &rule129},
+ {8104, 8, &rule137},
+ {8112, 2, &rule129},
+ {8115, 1, &rule138},
+ {8120, 2, &rule130},
+ {8122, 2, &rule139},
+ {8124, 1, &rule140},
+ {8126, 1, &rule141},
+ {8131, 1, &rule138},
+ {8136, 4, &rule142},
+ {8140, 1, &rule140},
+ {8144, 2, &rule129},
+ {8152, 2, &rule130},
+ {8154, 2, &rule143},
+ {8160, 2, &rule129},
+ {8165, 1, &rule111},
+ {8168, 2, &rule130},
+ {8170, 2, &rule144},
+ {8172, 1, &rule115},
+ {8179, 1, &rule138},
+ {8184, 2, &rule145},
+ {8186, 2, &rule146},
+ {8188, 1, &rule140},
+ {8486, 1, &rule149},
+ {8490, 1, &rule150},
+ {8491, 1, &rule151},
+ {8498, 1, &rule152},
+ {8526, 1, &rule153},
+ {8544, 16, &rule154},
+ {8560, 16, &rule155},
+ {8579, 1, &rule22},
+ {8580, 1, &rule23},
+ {9398, 26, &rule156},
+ {9424, 26, &rule157},
+ {11264, 47, &rule120},
+ {11312, 47, &rule121},
+ {11360, 1, &rule22},
+ {11361, 1, &rule23},
+ {11362, 1, &rule158},
+ {11363, 1, &rule159},
+ {11364, 1, &rule160},
+ {11365, 1, &rule161},
+ {11366, 1, &rule162},
+ {11367, 1, &rule22},
+ {11368, 1, &rule23},
+ {11369, 1, &rule22},
+ {11370, 1, &rule23},
+ {11371, 1, &rule22},
+ {11372, 1, &rule23},
+ {11373, 1, &rule163},
+ {11374, 1, &rule164},
+ {11375, 1, &rule165},
+ {11376, 1, &rule166},
+ {11378, 1, &rule22},
+ {11379, 1, &rule23},
+ {11381, 1, &rule22},
+ {11382, 1, &rule23},
+ {11390, 2, &rule167},
+ {11392, 1, &rule22},
+ {11393, 1, &rule23},
+ {11394, 1, &rule22},
+ {11395, 1, &rule23},
+ {11396, 1, &rule22},
+ {11397, 1, &rule23},
+ {11398, 1, &rule22},
+ {11399, 1, &rule23},
+ {11400, 1, &rule22},
+ {11401, 1, &rule23},
+ {11402, 1, &rule22},
+ {11403, 1, &rule23},
+ {11404, 1, &rule22},
+ {11405, 1, &rule23},
+ {11406, 1, &rule22},
+ {11407, 1, &rule23},
+ {11408, 1, &rule22},
+ {11409, 1, &rule23},
+ {11410, 1, &rule22},
+ {11411, 1, &rule23},
+ {11412, 1, &rule22},
+ {11413, 1, &rule23},
+ {11414, 1, &rule22},
+ {11415, 1, &rule23},
+ {11416, 1, &rule22},
+ {11417, 1, &rule23},
+ {11418, 1, &rule22},
+ {11419, 1, &rule23},
+ {11420, 1, &rule22},
+ {11421, 1, &rule23},
+ {11422, 1, &rule22},
+ {11423, 1, &rule23},
+ {11424, 1, &rule22},
+ {11425, 1, &rule23},
+ {11426, 1, &rule22},
+ {11427, 1, &rule23},
+ {11428, 1, &rule22},
+ {11429, 1, &rule23},
+ {11430, 1, &rule22},
+ {11431, 1, &rule23},
+ {11432, 1, &rule22},
+ {11433, 1, &rule23},
+ {11434, 1, &rule22},
+ {11435, 1, &rule23},
+ {11436, 1, &rule22},
+ {11437, 1, &rule23},
+ {11438, 1, &rule22},
+ {11439, 1, &rule23},
+ {11440, 1, &rule22},
+ {11441, 1, &rule23},
+ {11442, 1, &rule22},
+ {11443, 1, &rule23},
+ {11444, 1, &rule22},
+ {11445, 1, &rule23},
+ {11446, 1, &rule22},
+ {11447, 1, &rule23},
+ {11448, 1, &rule22},
+ {11449, 1, &rule23},
+ {11450, 1, &rule22},
+ {11451, 1, &rule23},
+ {11452, 1, &rule22},
+ {11453, 1, &rule23},
+ {11454, 1, &rule22},
+ {11455, 1, &rule23},
+ {11456, 1, &rule22},
+ {11457, 1, &rule23},
+ {11458, 1, &rule22},
+ {11459, 1, &rule23},
+ {11460, 1, &rule22},
+ {11461, 1, &rule23},
+ {11462, 1, &rule22},
+ {11463, 1, &rule23},
+ {11464, 1, &rule22},
+ {11465, 1, &rule23},
+ {11466, 1, &rule22},
+ {11467, 1, &rule23},
+ {11468, 1, &rule22},
+ {11469, 1, &rule23},
+ {11470, 1, &rule22},
+ {11471, 1, &rule23},
+ {11472, 1, &rule22},
+ {11473, 1, &rule23},
+ {11474, 1, &rule22},
+ {11475, 1, &rule23},
+ {11476, 1, &rule22},
+ {11477, 1, &rule23},
+ {11478, 1, &rule22},
+ {11479, 1, &rule23},
+ {11480, 1, &rule22},
+ {11481, 1, &rule23},
+ {11482, 1, &rule22},
+ {11483, 1, &rule23},
+ {11484, 1, &rule22},
+ {11485, 1, &rule23},
+ {11486, 1, &rule22},
+ {11487, 1, &rule23},
+ {11488, 1, &rule22},
+ {11489, 1, &rule23},
+ {11490, 1, &rule22},
+ {11491, 1, &rule23},
+ {11499, 1, &rule22},
+ {11500, 1, &rule23},
+ {11501, 1, &rule22},
+ {11502, 1, &rule23},
+ {11506, 1, &rule22},
+ {11507, 1, &rule23},
+ {11520, 38, &rule168},
+ {11559, 1, &rule168},
+ {11565, 1, &rule168},
+ {42560, 1, &rule22},
+ {42561, 1, &rule23},
+ {42562, 1, &rule22},
+ {42563, 1, &rule23},
+ {42564, 1, &rule22},
+ {42565, 1, &rule23},
+ {42566, 1, &rule22},
+ {42567, 1, &rule23},
+ {42568, 1, &rule22},
+ {42569, 1, &rule23},
+ {42570, 1, &rule22},
+ {42571, 1, &rule23},
+ {42572, 1, &rule22},
+ {42573, 1, &rule23},
+ {42574, 1, &rule22},
+ {42575, 1, &rule23},
+ {42576, 1, &rule22},
+ {42577, 1, &rule23},
+ {42578, 1, &rule22},
+ {42579, 1, &rule23},
+ {42580, 1, &rule22},
+ {42581, 1, &rule23},
+ {42582, 1, &rule22},
+ {42583, 1, &rule23},
+ {42584, 1, &rule22},
+ {42585, 1, &rule23},
+ {42586, 1, &rule22},
+ {42587, 1, &rule23},
+ {42588, 1, &rule22},
+ {42589, 1, &rule23},
+ {42590, 1, &rule22},
+ {42591, 1, &rule23},
+ {42592, 1, &rule22},
+ {42593, 1, &rule23},
+ {42594, 1, &rule22},
+ {42595, 1, &rule23},
+ {42596, 1, &rule22},
+ {42597, 1, &rule23},
+ {42598, 1, &rule22},
+ {42599, 1, &rule23},
+ {42600, 1, &rule22},
+ {42601, 1, &rule23},
+ {42602, 1, &rule22},
+ {42603, 1, &rule23},
+ {42604, 1, &rule22},
+ {42605, 1, &rule23},
+ {42624, 1, &rule22},
+ {42625, 1, &rule23},
+ {42626, 1, &rule22},
+ {42627, 1, &rule23},
+ {42628, 1, &rule22},
+ {42629, 1, &rule23},
+ {42630, 1, &rule22},
+ {42631, 1, &rule23},
+ {42632, 1, &rule22},
+ {42633, 1, &rule23},
+ {42634, 1, &rule22},
+ {42635, 1, &rule23},
+ {42636, 1, &rule22},
+ {42637, 1, &rule23},
+ {42638, 1, &rule22},
+ {42639, 1, &rule23},
+ {42640, 1, &rule22},
+ {42641, 1, &rule23},
+ {42642, 1, &rule22},
+ {42643, 1, &rule23},
+ {42644, 1, &rule22},
+ {42645, 1, &rule23},
+ {42646, 1, &rule22},
+ {42647, 1, &rule23},
+ {42648, 1, &rule22},
+ {42649, 1, &rule23},
+ {42650, 1, &rule22},
+ {42651, 1, &rule23},
+ {42786, 1, &rule22},
+ {42787, 1, &rule23},
+ {42788, 1, &rule22},
+ {42789, 1, &rule23},
+ {42790, 1, &rule22},
+ {42791, 1, &rule23},
+ {42792, 1, &rule22},
+ {42793, 1, &rule23},
+ {42794, 1, &rule22},
+ {42795, 1, &rule23},
+ {42796, 1, &rule22},
+ {42797, 1, &rule23},
+ {42798, 1, &rule22},
+ {42799, 1, &rule23},
+ {42802, 1, &rule22},
+ {42803, 1, &rule23},
+ {42804, 1, &rule22},
+ {42805, 1, &rule23},
+ {42806, 1, &rule22},
+ {42807, 1, &rule23},
+ {42808, 1, &rule22},
+ {42809, 1, &rule23},
+ {42810, 1, &rule22},
+ {42811, 1, &rule23},
+ {42812, 1, &rule22},
+ {42813, 1, &rule23},
+ {42814, 1, &rule22},
+ {42815, 1, &rule23},
+ {42816, 1, &rule22},
+ {42817, 1, &rule23},
+ {42818, 1, &rule22},
+ {42819, 1, &rule23},
+ {42820, 1, &rule22},
+ {42821, 1, &rule23},
+ {42822, 1, &rule22},
+ {42823, 1, &rule23},
+ {42824, 1, &rule22},
+ {42825, 1, &rule23},
+ {42826, 1, &rule22},
+ {42827, 1, &rule23},
+ {42828, 1, &rule22},
+ {42829, 1, &rule23},
+ {42830, 1, &rule22},
+ {42831, 1, &rule23},
+ {42832, 1, &rule22},
+ {42833, 1, &rule23},
+ {42834, 1, &rule22},
+ {42835, 1, &rule23},
+ {42836, 1, &rule22},
+ {42837, 1, &rule23},
+ {42838, 1, &rule22},
+ {42839, 1, &rule23},
+ {42840, 1, &rule22},
+ {42841, 1, &rule23},
+ {42842, 1, &rule22},
+ {42843, 1, &rule23},
+ {42844, 1, &rule22},
+ {42845, 1, &rule23},
+ {42846, 1, &rule22},
+ {42847, 1, &rule23},
+ {42848, 1, &rule22},
+ {42849, 1, &rule23},
+ {42850, 1, &rule22},
+ {42851, 1, &rule23},
+ {42852, 1, &rule22},
+ {42853, 1, &rule23},
+ {42854, 1, &rule22},
+ {42855, 1, &rule23},
+ {42856, 1, &rule22},
+ {42857, 1, &rule23},
+ {42858, 1, &rule22},
+ {42859, 1, &rule23},
+ {42860, 1, &rule22},
+ {42861, 1, &rule23},
+ {42862, 1, &rule22},
+ {42863, 1, &rule23},
+ {42873, 1, &rule22},
+ {42874, 1, &rule23},
+ {42875, 1, &rule22},
+ {42876, 1, &rule23},
+ {42877, 1, &rule169},
+ {42878, 1, &rule22},
+ {42879, 1, &rule23},
+ {42880, 1, &rule22},
+ {42881, 1, &rule23},
+ {42882, 1, &rule22},
+ {42883, 1, &rule23},
+ {42884, 1, &rule22},
+ {42885, 1, &rule23},
+ {42886, 1, &rule22},
+ {42887, 1, &rule23},
+ {42891, 1, &rule22},
+ {42892, 1, &rule23},
+ {42893, 1, &rule170},
+ {42896, 1, &rule22},
+ {42897, 1, &rule23},
+ {42898, 1, &rule22},
+ {42899, 1, &rule23},
+ {42902, 1, &rule22},
+ {42903, 1, &rule23},
+ {42904, 1, &rule22},
+ {42905, 1, &rule23},
+ {42906, 1, &rule22},
+ {42907, 1, &rule23},
+ {42908, 1, &rule22},
+ {42909, 1, &rule23},
+ {42910, 1, &rule22},
+ {42911, 1, &rule23},
+ {42912, 1, &rule22},
+ {42913, 1, &rule23},
+ {42914, 1, &rule22},
+ {42915, 1, &rule23},
+ {42916, 1, &rule22},
+ {42917, 1, &rule23},
+ {42918, 1, &rule22},
+ {42919, 1, &rule23},
+ {42920, 1, &rule22},
+ {42921, 1, &rule23},
+ {42922, 1, &rule171},
+ {42923, 1, &rule172},
+ {42924, 1, &rule173},
+ {42925, 1, &rule174},
+ {42928, 1, &rule175},
+ {42929, 1, &rule176},
+ {65313, 26, &rule9},
+ {65345, 26, &rule12},
+ {66560, 40, &rule179},
+ {66600, 40, &rule180},
+ {71840, 32, &rule9},
+ {71872, 32, &rule12}
+};
+static const struct _charblock_ spacechars[]={
+ {32, 1, &rule1},
+ {160, 1, &rule1},
+ {5760, 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};
+
+static 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) \
+bool p(GuUCS c) \
+{ \
+ return checkattr(c,m); \
+}
+
+#define unipred_s(p,m) \
+bool p(GuUCS c) \
+{ \
+ return checkattr_s(c,m); \
+}
+
+/*
+ Make these rules as close to Hugs as possible.
+*/
+
+unipred(gu_ucs_is_cntrl,GENCAT_CC)
+unipred(gu_ucs_is_print, (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(gu_ucs_is_space,GENCAT_ZS)
+unipred(gu_ucs_is_upper,(GENCAT_LU|GENCAT_LT))
+unipred(gu_ucs_is_lower,GENCAT_LL)
+unipred(gu_ucs_is_alpha,(GENCAT_LL|GENCAT_LU|GENCAT_LT|GENCAT_LM|GENCAT_LO))
+unipred(gu_ucs_is_digit,GENCAT_ND)
+
+unipred(gu_ucs_is_alnum,(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) \
+GuUCS p(GuUCS c) \
+{ \
+ const struct _convrule_ *rule=getrule(convchars,NUM_CONVBLOCKS,c);\
+ if(rule==&nullrule) return c;\
+ return c+rule->to;\
+}
+
+caseconv(gu_ucs_to_upper,updist)
+caseconv(gu_ucs_to_lower,lowdist)
+caseconv(gu_ucs_to_title,titledist)
+
+int gu_ucs_gen_cat(GuUCS c)
+{
+ return getrule(allchars,NUM_BLOCKS,c)->catnumber;
+}
diff --git a/src/runtime/c/gu/ucs.h b/src/runtime/c/gu/ucs.h
index b09e0ff3f..c976df67f 100644
--- a/src/runtime/c/gu/ucs.h
+++ b/src/runtime/c/gu/ucs.h
@@ -36,4 +36,20 @@ gu_str_to_ucs(const char* cbuf, size_t len, GuUCS* ubuf, GuExn* err);
size_t
gu_ucs_to_str(const GuUCS* ubuf, size_t len, char* cbuf, GuExn* err);
+bool gu_ucs_is_upper(GuUCS c);
+bool gu_ucs_is_digit(GuUCS c);
+bool gu_ucs_is_alpha(GuUCS c);
+bool gu_ucs_is_cntrl(GuUCS c);
+bool gu_ucs_is_space(GuUCS c);
+bool gu_ucs_is_print(GuUCS c);
+bool gu_ucs_is_lower(GuUCS c);
+
+bool gu_ucs_is_alnum(GuUCS c);
+
+GuUCS gu_ucs_to_lower(GuUCS c);
+GuUCS gu_ucs_to_upper(GuUCS c);
+GuUCS gu_ucs_to_title(GuUCS c);
+
+int gu_ucs_is_gencat(GuUCS wc);
+
#endif // GU_ISO10646_H_