Adapt packaging for SLP
authorMike McCormack <mj.mccormack@samsung.com>
Wed, 3 Aug 2011 08:33:05 +0000 (17:33 +0900)
committerMike McCormack <mj.mccormack@samsung.com>
Wed, 3 Aug 2011 08:33:05 +0000 (17:33 +0900)
.gitignore [new file with mode: 0644]
DIST [new file with mode: 0644]
debian/changelog
debian/control
debian/rules [changed mode: 0644->0755]
ragel/rlparse.cpp [new file with mode: 0644]
ragel/rlparse.h [new file with mode: 0644]
ragel/rlscan.cpp [new file with mode: 0644]

diff --git a/.gitignore b/.gitignore
new file mode 100644 (file)
index 0000000..968975c
--- /dev/null
@@ -0,0 +1,24 @@
+Makefile.in
+Makefile
+*.o
+*.lo
+.deps
+/aclocal.m4
+/build-stamp
+/config.log
+/config.status
+/configure
+/debian/files
+/debian/*.log
+/debian/*.substvars
+/debian/ragel/
+/depcomp
+/doc/ragel.1
+/install-sh
+/missing
+/ragel/config.h
+/ragel/config.h.in
+/ragel/ragel
+/ragel/stamp-h1
+/ragel/version.h
+/test/runtests
diff --git a/DIST b/DIST
new file mode 100644 (file)
index 0000000..85d0524
--- /dev/null
+++ b/DIST
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+# Change to yes to enable building of parsers or manual. Reconfigure
+# afterwards.
+build_parsers=no;
+build_manual=no;
index c2e300a..e1cc30f 100644 (file)
@@ -1,3 +1,9 @@
+ragel (6.6-1slp2) unstable; urgency=low
+
+  * repackage for SLP
+
+ -- Mike McCormack <mj.mccormack@samsung.com>  Wed, 03 Aug 2011 17:17:01 +0900
+
 ragel (6.6-1) unstable; urgency=low
 
   * New upstream release
index 0a2c182..abb8ed6 100644 (file)
@@ -1,9 +1,9 @@
 Source: ragel
 Section: devel
 Priority: optional
-Maintainer: Robert Lemmen <robertle@semistable.com>
-Build-Depends: debhelper (>> 7.0.0), flex, bison, gobjc, transfig, texlive, 
- texlive-latex-extra, ghostscript, gperf, sharutils
+Maintainer: Mike McCormack <mj.mccormack@samsung.com>
+## Maintainer: Robert Lemmen <robertle@semistable.com>
+Build-Depends: debhelper (>> 7.0.0), autotools-dev, flex, bison
 Standards-Version: 3.8.3
 
 Package: ragel
old mode 100644 (file)
new mode 100755 (executable)
index 9d8477b..2f340ba
@@ -12,16 +12,18 @@ export CFLAGS
 DEB_BUILD_ARCH?=$(shell dpkg-architecture -qDEB_BUILD_ARCH)
 export DEB_BUILD_ARCH
 
+configure:
+       ./autogen.sh
+
 config.status: configure
        dh_testdir
-       ./configure --prefix=/usr --mandir=\$${prefix}/share/man 
+       ./configure --prefix=/usr
 
 build: build-stamp
 
 build-stamp:  config.status
        dh_testdir
-       $(MAKE) all 
-       $(MAKE) -C doc 
+       $(MAKE) SUBDIRS=ragel
        touch build-stamp
 
 clean:
@@ -37,19 +39,13 @@ install: build
        dh_testroot
        dh_prep
        dh_installdirs
-       $(MAKE) install DESTDIR=$(CURDIR)/debian/ragel/ 
+       $(MAKE) install SUBDIRS=ragel DESTDIR=$(CURDIR)/debian/ragel
 
 binary-indep: build install
 
 binary-arch: build install
        dh_testdir
        dh_testroot
-       dh_installman 
-       dh_installdocs -n
-       dh_installdocs -n doc/ragel-guide.pdf
-       dh_installexamples
-       dh_installchangelogs ChangeLog
-       dh_compress -Xexamples
        dh_link
        dh_strip
        dh_fixperms
@@ -60,4 +56,4 @@ binary-arch: build install
        dh_builddeb
 
 binary: binary-indep binary-arch
-.PHONY: build clean binary-indep binary-arch binary install 
+.PHONY: build clean binary-indep binary-arch binary install
diff --git a/ragel/rlparse.cpp b/ragel/rlparse.cpp
new file mode 100644 (file)
index 0000000..ec83836
--- /dev/null
@@ -0,0 +1,6235 @@
+/* Automatically generated by Kelbt from "rlparse.kl".
+ *
+ * Parts of this file are copied from Kelbt source covered by the GNU
+ * GPL. As a special exception, you may use the parts of this file copied
+ * from Kelbt source without restriction. The remainder is derived from
+ * "rlparse.kl" and inherits the copyright status of that file.
+ */
+
+#line 1 "rlparse.kl"
+/*
+ *  Copyright 2001-2007 Adrian Thurston <thurston@complang.org>
+ */
+
+/*  This file is part of Ragel.
+ *
+ *  Ragel is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ * 
+ *  Ragel is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ * 
+ *  You should have received a copy of the GNU General Public License
+ *  along with Ragel; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 
+ */
+
+#include "rlparse.h"
+#include "ragel.h"
+#include <iostream>
+#include <errno.h>
+#include <stdlib.h>
+
+using std::cout;
+using std::cerr;
+using std::endl;
+
+#line 102 "rlparse.kh"
+#line 105 "rlparse.kh"
+#line 140 "rlparse.kh"
+#line 1444 "rlparse.kl"
+
+
+#line 48 "rlparse.cpp"
+struct Parser_Lel_action_ref
+{
+#line 755 "rlparse.kl"
+
+       Action *action;
+
+
+#line 54 "rlparse.cpp"
+};
+
+struct Parser_Lel_aug_type
+{
+#line 546 "rlparse.kl"
+
+       InputLoc loc;
+       AugType augType;
+
+
+#line 65 "rlparse.cpp"
+};
+
+struct Parser_Lel_expression
+{
+#line 338 "rlparse.kl"
+
+       Expression *expression;
+
+
+#line 75 "rlparse.cpp"
+};
+
+struct Parser_Lel_factor
+{
+#line 975 "rlparse.kl"
+
+       Factor *factor;
+
+
+#line 85 "rlparse.cpp"
+};
+
+struct Parser_Lel_factor_rep_num
+{
+#line 929 "rlparse.kl"
+
+       int rep;
+
+
+#line 95 "rlparse.cpp"
+};
+
+struct Parser_Lel_factor_with_aug
+{
+#line 452 "rlparse.kl"
+
+       FactorWithAug *factorWithAug;
+
+
+#line 105 "rlparse.cpp"
+};
+
+struct Parser_Lel_factor_with_ep
+{
+#line 436 "rlparse.kl"
+
+       FactorWithAug *factorWithAug;
+
+
+#line 115 "rlparse.cpp"
+};
+
+struct Parser_Lel_factor_with_label
+{
+#line 420 "rlparse.kl"
+
+       FactorWithAug *factorWithAug;
+
+
+#line 125 "rlparse.cpp"
+};
+
+struct Parser_Lel_factor_with_neg
+{
+#line 939 "rlparse.kl"
+
+       FactorWithNeg *factorWithNeg;
+
+
+#line 135 "rlparse.cpp"
+};
+
+struct Parser_Lel_factor_with_rep
+{
+#line 868 "rlparse.kl"
+
+       FactorWithRep *factorWithRep;
+
+
+#line 145 "rlparse.cpp"
+};
+
+struct Parser_Lel_inline_item
+{
+#line 1234 "rlparse.kl"
+
+       InlineItem *inlineItem;
+
+
+#line 155 "rlparse.cpp"
+};
+
+struct Parser_Lel_inline_list
+{
+#line 1213 "rlparse.kl"
+
+       InlineList *inlineList;
+
+
+#line 165 "rlparse.cpp"
+};
+
+struct Parser_Lel_join
+{
+#line 321 "rlparse.kl"
+
+       Join *join;
+
+
+#line 175 "rlparse.cpp"
+};
+
+struct Parser_Lel_join_or_lm
+{
+#line 229 "rlparse.kl"
+
+       MachineDef *machineDef;
+
+
+#line 185 "rlparse.cpp"
+};
+
+struct Parser_Lel_lm_part_list
+{
+#line 253 "rlparse.kl"
+
+       LmPartList *lmPartList;
+
+
+#line 195 "rlparse.cpp"
+};
+
+struct Parser_Lel_local_err_name
+{
+#line 856 "rlparse.kl"
+
+       int error_name;
+
+
+#line 205 "rlparse.cpp"
+};
+
+struct Parser_Lel_longest_match_part
+{
+#line 277 "rlparse.kl"
+
+       LongestMatchPart *lmPart;
+
+
+#line 215 "rlparse.cpp"
+};
+
+struct Parser_Lel_opt_export
+{
+#line 95 "rlparse.kl"
+
+       bool isSet;
+
+
+#line 225 "rlparse.cpp"
+};
+
+struct Parser_Lel_opt_lm_part_action
+{
+#line 294 "rlparse.kl"
+
+       Action *action;
+
+
+#line 235 "rlparse.cpp"
+};
+
+struct Parser_Lel_priority_aug
+{
+#line 803 "rlparse.kl"
+
+       int priorityNum;
+
+
+#line 245 "rlparse.cpp"
+};
+
+struct Parser_Lel_priority_name
+{
+#line 788 "rlparse.kl"
+
+       int priorityName;
+
+
+#line 255 "rlparse.cpp"
+};
+
+struct Parser_Lel_range_lit
+{
+#line 1042 "rlparse.kl"
+
+       Literal *literal;
+
+
+#line 265 "rlparse.cpp"
+};
+
+struct Parser_Lel_regular_expr
+{
+#line 1079 "rlparse.kl"
+
+       RegExpr *regExpr;
+
+
+#line 275 "rlparse.cpp"
+};
+
+struct Parser_Lel_regular_expr_char
+{
+#line 1131 "rlparse.kl"
+
+       ReItem *reItem;
+
+
+#line 285 "rlparse.cpp"
+};
+
+struct Parser_Lel_regular_expr_item
+{
+#line 1114 "rlparse.kl"
+
+       ReItem *reItem;
+
+
+#line 295 "rlparse.cpp"
+};
+
+struct Parser_Lel_regular_expr_or_char
+{
+#line 1188 "rlparse.kl"
+
+       ReOrItem *reOrItem;
+
+
+#line 305 "rlparse.cpp"
+};
+
+struct Parser_Lel_regular_expr_or_data
+{
+#line 1155 "rlparse.kl"
+
+       ReOrBlock *reOrBlock;
+
+
+#line 315 "rlparse.cpp"
+};
+
+struct Parser_Lel_term
+{
+#line 389 "rlparse.kl"
+
+       Term *term;
+
+
+#line 325 "rlparse.cpp"
+};
+
+struct Parser_Lel_term_short
+{
+#line 368 "rlparse.kl"
+
+       Term *term;
+
+
+#line 335 "rlparse.cpp"
+};
+
+struct Parser_Lel_token_type
+{
+#line 146 "rlparse.kl"
+
+       Token token;
+
+
+#line 345 "rlparse.cpp"
+};
+
+union Parser_UserData
+{
+       struct Parser_Lel_action_ref action_ref;
+       struct Parser_Lel_aug_type aug_type;
+       struct Parser_Lel_expression expression;
+       struct Parser_Lel_factor factor;
+       struct Parser_Lel_factor_rep_num factor_rep_num;
+       struct Parser_Lel_factor_with_aug factor_with_aug;
+       struct Parser_Lel_factor_with_ep factor_with_ep;
+       struct Parser_Lel_factor_with_label factor_with_label;
+       struct Parser_Lel_factor_with_neg factor_with_neg;
+       struct Parser_Lel_factor_with_rep factor_with_rep;
+       struct Parser_Lel_inline_item inline_item;
+       struct Parser_Lel_inline_list inline_list;
+       struct Parser_Lel_join join;
+       struct Parser_Lel_join_or_lm join_or_lm;
+       struct Parser_Lel_lm_part_list lm_part_list;
+       struct Parser_Lel_local_err_name local_err_name;
+       struct Parser_Lel_longest_match_part longest_match_part;
+       struct Parser_Lel_opt_export opt_export;
+       struct Parser_Lel_opt_lm_part_action opt_lm_part_action;
+       struct Parser_Lel_priority_aug priority_aug;
+       struct Parser_Lel_priority_name priority_name;
+       struct Parser_Lel_range_lit range_lit;
+       struct Parser_Lel_regular_expr regular_expr;
+       struct Parser_Lel_regular_expr_char regular_expr_char;
+       struct Parser_Lel_regular_expr_item regular_expr_item;
+       struct Parser_Lel_regular_expr_or_char regular_expr_or_char;
+       struct Parser_Lel_regular_expr_or_data regular_expr_or_data;
+       struct Parser_Lel_term term;
+       struct Parser_Lel_term_short term_short;
+       struct Parser_Lel_token_type token_type;
+       struct Token token;
+};
+
+struct Parser_LangEl
+{
+       char *file;
+       int line;
+       int type;
+       int reduction;
+       int state;
+       int causeReduce;
+       union Parser_UserData user;
+       unsigned int retry;
+       struct Parser_LangEl *next, *child, *prev;
+};
+
+struct Parser_Block
+{
+       struct Parser_LangEl data[8128];
+       struct Parser_Block *next;
+};
+
+#line 404 "rlparse.cpp"
+unsigned int Parser_startState = 0;
+
+short Parser_indicies[] = {
+       152, -1, -1, 152, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, 152, 152, 152, 152, -1, 
+       -1, -1, -1, -1, -1, -1, -1, 152, 
+       152, 152, 152, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, 152, 
+       152, 152, 1, 0, 404, 154, -1, -1, 
+       154, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       154, 154, 154, 154, -1, -1, -1, -1, 
+       -1, -1, -1, -1, 154, 154, 154, 154, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, 154, 154, 150, -1, 
+       -1, 2, 161, -1, -1, 151, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, 4, 5, 6, 
+       7, -1, -1, -1, -1, -1, -1, -1, 
+       -1, 158, 11, 12, 13, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, 9, 8, -1, -1, -1, -1, 153, 
+       392, 393, 394, 395, 396, 397, 398, 399, 
+       400, 401, 402, 403, -1, 10, 3, 165, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, 26, 14, 15, 17, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 326, 328, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, 16, 364, 364, 364, -1, 364, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 364, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, 364, -1, -1, -1, 364, 
+       364, -1, -1, -1, -1, -1, -1, -1, 
+       -1, 364, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 364, 364, 
+       364, 364, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, 364, 364, -1, -1, -1, 364, 364, 
+       364, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, 19, 364, 364, 364, 
+       -1, 364, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       364, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, 364, -1, -1, 
+       -1, 364, 364, -1, -1, -1, -1, -1, 
+       -1, -1, -1, 364, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       364, 364, 364, 364, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, 364, 364, -1, -1, -1, 
+       364, 364, 364, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 24, 174, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, 174, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, 23, 25, -1, -1, -1, -1, 159, 
+       20, 21, 22, 27, 168, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, 28, 17, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, 326, 328, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, 29, 327, 376, 
+       377, 378, -1, 375, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, 170, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, 374, 
+       -1, -1, -1, 372, 373, -1, -1, -1, 
+       -1, -1, -1, -1, -1, 379, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, 368, 369, 370, 371, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, 380, 381, -1, 
+       -1, -1, 382, 383, 30, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 365, -1, 
+       367, -1, 363, 366, 342, 342, 342, -1, 
+       342, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, 342, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, 342, -1, -1, 342, -1, -1, -1, 
+       342, 342, -1, -1, -1, -1, -1, -1, 
+       -1, -1, 342, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, 342, 
+       342, 342, 342, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, 342, 
+       342, 342, 342, 342, 342, 342, 342, 342, 
+       342, 342, 342, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 31, 342, 
+       342, 342, -1, 342, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, 342, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, 342, -1, -1, 342, 
+       -1, -1, -1, 342, 342, -1, -1, -1, 
+       -1, -1, -1, -1, -1, 342, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, 342, 342, 342, 342, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, 342, 342, 342, 342, 342, 342, 
+       342, 342, 342, 342, 342, 342, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, 32, 155, 33, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 173, 376, 
+       377, 378, -1, 375, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, 171, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, 374, 
+       -1, -1, -1, 372, 373, -1, -1, -1, 
+       -1, -1, -1, -1, -1, 379, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, 368, 369, 370, 371, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, 380, 381, -1, 
+       -1, -1, 382, 383, 30, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 365, -1, 
+       367, -1, 363, 366, 154, -1, -1, 154, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, 154, 154, 154, 154, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 154, 154, 
+       154, 154, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 154, 154, 
+       -1, -1, -1, 34, 35, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, 36, 342, 342, 342, 
+       -1, 342, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       342, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, 342, -1, -1, 342, -1, -1, 
+       -1, 342, 342, -1, -1, -1, -1, -1, 
+       -1, -1, -1, 342, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       342, 342, 342, 342, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       342, 342, 342, 342, 342, 342, 342, 342, 
+       342, 342, 342, 342, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, 37, 
+       167, 169, 38, 348, 349, 350, -1, 346, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 347, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       156, -1, -1, 374, -1, -1, -1, 372, 
+       373, -1, -1, -1, -1, -1, -1, -1, 
+       -1, 351, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 368, 369, 
+       370, 371, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 45, 40, 
+       39, 380, 381, 41, 43, 44, 382, 383, 
+       30, 42, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       341, 345, 343, 344, 352, 348, 349, 350, 
+       -1, 346, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       347, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, 157, -1, -1, 374, -1, -1, 
+       -1, 372, 373, -1, -1, -1, -1, -1, 
+       -1, -1, -1, 351, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       368, 369, 370, 371, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       45, 40, 39, 380, 381, 41, 43, 44, 
+       382, 383, 30, 42, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, 341, 345, 343, 344, 352, 364, 
+       364, 364, -1, 364, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, 364, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, 364, 
+       -1, -1, -1, 364, 364, -1, -1, -1, 
+       -1, -1, -1, -1, -1, 364, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, 364, 364, 364, 364, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, 364, 364, -1, 
+       -1, -1, 364, 364, 364, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       46, 162, -1, -1, 161, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, 4, 
+       5, 6, 7, -1, -1, -1, -1, -1, 
+       -1, -1, -1, 158, 11, 12, 13, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, 9, 8, -1, -1, -1, 
+       -1, 153, 392, 393, 394, 395, 396, 397, 
+       398, 399, 400, 401, 402, 403, -1, 10, 
+       3, 55, -1, -1, -1, -1, -1, -1, 
+       63, -1, -1, -1, -1, 17, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 56, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       50, 57, -1, -1, 326, 328, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, 61, 59, 60, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 47, -1, 
+       58, -1, -1, -1, -1, -1, -1, -1, 
+       48, 191, 49, 198, 52, -1, 53, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, 54, -1, -1, -1, 308, 312, -1, 
+       -1, 62, 55, -1, -1, -1, -1, -1, 
+       -1, 63, -1, -1, -1, -1, 17, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, 56, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, 50, 57, -1, -1, 326, 328, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       66, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, 61, 59, 60, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, 65, 
+       64, 58, -1, -1, -1, -1, -1, -1, 
+       -1, 48, 191, 49, 198, 52, -1, 53, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, 54, -1, -1, -1, 308, 312, 
+       -1, -1, 62, 348, 349, 350, -1, 346, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 347, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       166, -1, -1, 374, -1, -1, -1, 372, 
+       373, -1, -1, -1, -1, -1, -1, -1, 
+       -1, 351, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 368, 369, 
+       370, 371, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 45, 40, 
+       39, 380, 381, 41, 43, 44, 382, 383, 
+       30, 42, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       341, 345, 343, 344, 352, 389, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, 388, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, 67, 
+       -1, -1, -1, -1, 68, 353, 364, 364, 
+       364, -1, 364, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, 364, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 364, -1, 
+       -1, -1, 364, 364, -1, -1, -1, -1, 
+       -1, -1, -1, -1, 364, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, 364, 364, 364, 364, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, 364, 364, -1, -1, 
+       -1, 364, 364, 364, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, 69, 
+       71, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 389, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, 388, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       70, -1, -1, -1, -1, 68, 75, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, 389, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, 388, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 74, -1, 
+       -1, -1, -1, 68, 73, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, 389, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       388, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, 72, -1, -1, -1, 
+       -1, 68, 361, 362, 376, 377, 378, -1, 
+       375, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, 172, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, 374, -1, -1, -1, 
+       372, 373, -1, -1, -1, -1, -1, -1, 
+       -1, -1, 379, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, 368, 
+       369, 370, 371, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, 380, 381, -1, -1, -1, 382, 
+       383, 30, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, 365, -1, 367, -1, 363, 
+       366, 81, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       163, 83, -1, -1, 186, -1, -1, 186, 
+       84, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 186, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 186, 82, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 186, -1, 
+       -1, -1, -1, 85, 55, -1, -1, -1, 
+       -1, 192, -1, 63, 192, -1, -1, 192, 
+       18, 86, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 192, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, 56, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 192, 192, 
+       -1, -1, -1, 50, 57, -1, -1, 326, 
+       328, -1, 87, 88, 89, -1, 192, -1, 
+       -1, -1, -1, 192, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 61, 59, 
+       60, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, 58, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 193, 52, 
+       -1, 53, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, 54, -1, -1, -1, 
+       308, 312, -1, -1, 62, 315, -1, -1, 
+       315, 315, 315, -1, 315, 315, 315, 315, 
+       315, 315, 315, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 77, 315, 
+       315, -1, 315, 315, 315, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, 315, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, 315, 
+       315, -1, -1, -1, 315, 315, -1, -1, 
+       315, 315, -1, 315, 315, 315, 315, 315, 
+       315, -1, -1, -1, 315, 315, 315, 315, 
+       315, 315, 315, 315, 315, 315, 315, 315, 
+       315, 315, 315, 315, 315, 315, 315, 315, 
+       315, 315, 315, 315, 315, 315, 315, 315, 
+       315, 315, 315, 315, 315, 315, 315, 315, 
+       315, 315, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, 315, 315, 315, 200, -1, 
+       -1, -1, -1, 200, -1, 200, 200, -1, 
+       -1, 200, 200, 200, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       200, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, 200, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       200, 200, -1, -1, -1, 200, 200, -1, 
+       -1, 200, 200, -1, 200, 200, 200, 90, 
+       200, -1, -1, -1, -1, 200, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       200, 200, 200, 202, -1, -1, 100, 99, 
+       202, -1, 202, 202, -1, -1, 202, 202, 
+       202, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, 202, 102, -1, 
+       101, -1, 98, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       202, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, 202, 202, -1, 
+       -1, -1, 202, 202, -1, -1, 202, 202, 
+       -1, 202, 202, 202, 202, 202, -1, -1, 
+       -1, -1, 202, 219, 221, 223, 103, 264, 
+       268, 270, 272, 266, 274, 276, 280, 282, 
+       284, 278, 286, 252, 256, 258, 260, 254, 
+       262, 228, 232, 234, 236, 230, 238, 240, 
+       244, 246, 248, 242, 250, 202, 202, 202, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, 226, 225, 227, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, 91, -1, -1, 92, 93, 94, 95, 
+       96, 97, 214, -1, -1, 214, 214, 214, 
+       -1, 214, 214, 300, 303, 214, 214, 214, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, 214, 214, -1, 214, 
+       302, 214, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, 214, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, 104, 214, -1, -1, 
+       -1, 214, 214, -1, -1, 214, 214, -1, 
+       214, 214, 214, 214, 214, 301, -1, -1, 
+       -1, 214, 214, 214, 214, 214, 214, 214, 
+       214, 214, 214, 214, 214, 214, 214, 214, 
+       214, 214, 214, 214, 214, 214, 214, 214, 
+       214, 214, 214, 214, 214, 214, 214, 214, 
+       214, 214, 214, 214, 214, 214, 214, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       214, 214, 214, 55, -1, -1, -1, -1, 
+       -1, -1, 63, -1, -1, -1, -1, 17, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       56, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, 316, 57, -1, -1, 326, 328, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, 61, 59, 60, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, 58, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, 310, 
+       312, -1, -1, 62, 55, -1, -1, -1, 
+       -1, -1, -1, 63, -1, -1, -1, -1, 
+       17, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, 56, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, 316, 57, -1, -1, 326, 
+       328, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 61, 59, 
+       60, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, 58, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       311, 312, -1, -1, 62, 313, -1, -1, 
+       313, 313, 313, -1, 313, 313, 313, 313, 
+       313, 313, 313, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, 313, 
+       313, -1, 313, 313, 313, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, 313, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, 313, 
+       313, -1, -1, -1, 313, 313, -1, -1, 
+       313, 313, 322, 313, 313, 313, 313, 313, 
+       313, -1, -1, -1, 313, 313, 313, 313, 
+       313, 313, 313, 313, 313, 313, 313, 313, 
+       313, 313, 313, 313, 313, 313, 313, 313, 
+       313, 313, 313, 313, 313, 313, 313, 313, 
+       313, 313, 313, 313, 313, 313, 313, 313, 
+       313, 313, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, 313, 313, 313, 314, -1, 
+       -1, 314, 314, 314, -1, 314, 314, 314, 
+       314, 314, 314, 314, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       314, 314, -1, 314, 314, 314, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, 314, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       314, 314, -1, -1, -1, 314, 314, -1, 
+       -1, 314, 314, 324, 314, 314, 314, 314, 
+       314, 314, -1, -1, -1, 314, 314, 314, 
+       314, 314, 314, 314, 314, 314, 314, 314, 
+       314, 314, 314, 314, 314, 314, 314, 314, 
+       314, 314, 314, 314, 314, 314, 314, 314, 
+       314, 314, 314, 314, 314, 314, 314, 314, 
+       314, 314, 314, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, 314, 314, 314, 338, 
+       -1, -1, -1, 338, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       79, 338, -1, -1, -1, 338, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, 80, 330, 330, 330, -1, 330, 
+       -1, -1, 330, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       78, 105, 55, -1, -1, -1, -1, -1, 
+       -1, 63, -1, -1, -1, -1, 17, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, 56, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, 50, 57, -1, -1, 326, 328, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, 61, 59, 60, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, 76, 
+       -1, 58, -1, -1, -1, -1, -1, -1, 
+       -1, 48, 191, 49, 198, 52, -1, 53, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, 54, -1, -1, -1, 308, 312, 
+       -1, -1, 62, 164, 81, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, 175, 55, -1, -1, -1, 
+       -1, -1, -1, 63, -1, -1, -1, -1, 
+       17, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, 56, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, 51, 57, -1, -1, 326, 
+       328, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 61, 59, 
+       60, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 4, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, 158, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, 180, -1, 179, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 160, 108, 
+       -1, 107, -1, 58, -1, -1, 106, 178, 
+       -1, -1, -1, 48, 191, 49, 198, 52, 
+       -1, 53, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, 54, -1, -1, -1, 
+       308, 312, -1, -1, 62, 384, 391, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, 109, 376, 377, 378, 
+       -1, 375, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       354, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, 374, -1, -1, 
+       -1, 372, 373, -1, -1, -1, -1, -1, 
+       -1, -1, -1, 379, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       368, 369, 370, 371, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, 380, 381, -1, -1, -1, 
+       382, 383, 30, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, 365, -1, 367, -1, 
+       363, 366, 355, 364, 364, 364, -1, 364, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 364, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, 364, -1, -1, -1, 364, 
+       364, -1, -1, -1, -1, -1, -1, -1, 
+       -1, 364, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 364, 364, 
+       364, 364, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, 364, 364, -1, -1, -1, 364, 364, 
+       364, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, 110, 359, 364, 364, 
+       364, -1, 364, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, 364, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 364, -1, 
+       -1, -1, 364, 364, -1, -1, -1, -1, 
+       -1, -1, -1, -1, 364, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, 364, 364, 364, 364, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, 364, 364, -1, -1, 
+       -1, 364, 364, 364, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, 111, 
+       357, 364, 364, 364, -1, 364, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, 364, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, 364, -1, -1, -1, 364, 364, -1, 
+       -1, -1, -1, -1, -1, -1, -1, 364, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, 364, 364, 364, 364, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, 364, 
+       364, -1, -1, -1, 364, 364, 364, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, 112, 321, -1, -1, 81, 55, 
+       -1, -1, -1, -1, -1, -1, 63, -1, 
+       -1, -1, -1, 17, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, 56, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 50, 57, 
+       -1, -1, 326, 328, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, 61, 59, 60, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 58, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, 199, 52, -1, 53, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, 54, 
+       -1, -1, -1, 308, 312, -1, -1, 62, 
+       319, 114, 115, -1, 335, -1, -1, 336, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, 329, 
+       113, 317, -1, -1, -1, 116, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, 337, 
+       318, -1, -1, -1, 116, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 337, 55, 
+       -1, -1, -1, -1, -1, -1, 63, -1, 
+       -1, -1, -1, 17, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, 56, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 50, 57, 
+       -1, -1, 326, 328, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, 61, 59, 60, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 58, -1, 
+       -1, -1, -1, -1, -1, -1, 117, 191, 
+       49, 198, 52, -1, 53, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, 54, 
+       -1, -1, -1, 308, 312, -1, -1, 62, 
+       55, -1, -1, -1, -1, -1, -1, 63, 
+       -1, -1, -1, -1, 17, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, 56, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, 50, 
+       57, -1, -1, 326, 328, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, 61, 59, 60, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, 58, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       187, 49, 198, 52, -1, 53, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       54, -1, -1, -1, 308, 312, -1, -1, 
+       62, 55, -1, -1, -1, -1, -1, -1, 
+       63, -1, -1, -1, -1, 17, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 56, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       50, 57, -1, -1, 326, 328, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, 61, 59, 60, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       58, -1, -1, -1, -1, -1, -1, -1, 
+       -1, 188, 49, 198, 52, -1, 53, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, 54, -1, -1, -1, 308, 312, -1, 
+       -1, 62, 55, -1, -1, -1, -1, -1, 
+       -1, 63, -1, -1, -1, -1, 17, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, 56, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, 50, 57, -1, -1, 326, 328, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, 61, 59, 60, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, 58, -1, -1, -1, -1, -1, -1, 
+       -1, -1, 189, 49, 198, 52, -1, 53, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, 54, -1, -1, -1, 308, 312, 
+       -1, -1, 62, 55, -1, -1, -1, -1, 
+       -1, -1, 63, -1, -1, -1, -1, 17, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       56, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, 50, 57, -1, -1, 326, 328, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, 61, 59, 60, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, 58, -1, -1, -1, -1, -1, 
+       -1, -1, -1, 190, 49, 198, 52, -1, 
+       53, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, 54, -1, -1, -1, 308, 
+       312, -1, -1, 62, 55, -1, -1, -1, 
+       -1, -1, -1, 63, -1, -1, -1, -1, 
+       17, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, 56, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, 50, 57, -1, -1, 326, 
+       328, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 61, 59, 
+       60, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, 58, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 194, 52, 
+       -1, 53, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, 54, -1, -1, -1, 
+       308, 312, -1, -1, 62, 55, -1, -1, 
+       -1, -1, -1, -1, 63, -1, -1, -1, 
+       -1, 17, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, 56, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, 50, 57, -1, -1, 
+       326, 328, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, 61, 
+       59, 60, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, 58, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, 195, 
+       52, -1, 53, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, 54, -1, -1, 
+       -1, 308, 312, -1, -1, 62, 55, -1, 
+       -1, -1, -1, -1, -1, 63, -1, -1, 
+       -1, -1, 17, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, 56, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, 50, 57, -1, 
+       -1, 326, 328, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       61, 59, 60, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, 58, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       196, 52, -1, 53, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 54, -1, 
+       -1, -1, 308, 312, -1, -1, 62, 55, 
+       -1, -1, -1, -1, -1, -1, 63, -1, 
+       -1, -1, -1, 17, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, 56, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 50, 57, 
+       -1, -1, 326, 328, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, 61, 59, 60, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 58, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, 197, 52, -1, 53, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, 54, 
+       -1, -1, -1, 308, 312, -1, -1, 62, 
+       386, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, 201, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, 118, 119, -1, 
+       -1, 121, -1, 122, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, 120, -1, -1, -1, -1, 292, -1, 
+       -1, -1, 296, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, 203, 290, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 204, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       288, 295, 123, -1, -1, -1, -1, -1, 
+       -1, 124, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, 120, -1, -1, -1, 
+       -1, 292, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, 206, 
+       290, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, 288, 124, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, 120, 
+       -1, -1, -1, -1, 292, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, 208, 290, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 288, 124, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, 120, -1, -1, -1, -1, 292, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, 209, 290, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, 288, 124, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, 120, -1, -1, 
+       -1, -1, 292, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       210, 290, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, 288, 124, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       120, -1, -1, -1, -1, 292, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, 211, 290, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, 288, 
+       125, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, 120, -1, -1, -1, -1, 
+       292, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 212, 290, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, 288, 215, -1, -1, 215, -1, 
+       215, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 215, -1, 
+       -1, -1, -1, 215, -1, -1, -1, 215, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, 261, 273, 285, 
+       237, 249, 216, -1, -1, 216, -1, 216, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, 216, -1, -1, 
+       -1, -1, 216, -1, -1, -1, 216, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, 224, -1, 259, 271, 283, 235, 
+       247, 217, -1, -1, 217, -1, 217, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, 217, -1, -1, -1, 
+       -1, 217, -1, -1, -1, 217, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, 222, -1, 257, 269, 281, 233, 245, 
+       218, -1, -1, 218, -1, 218, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, 218, -1, -1, -1, -1, 
+       218, -1, -1, -1, 218, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       220, -1, 253, 265, 277, 229, 241, 255, 
+       267, 279, 231, 243, 263, 275, 287, 239, 
+       251, 127, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, 309, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, 126, 17, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 323, -1, 
+       -1, 326, 328, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, 325, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 320, 55, 
+       -1, -1, -1, -1, -1, -1, 63, -1, 
+       131, -1, -1, 17, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, 56, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 51, 57, 
+       -1, -1, 326, 328, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, 61, 59, 60, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, 4, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, 158, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, 180, -1, 179, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, 160, 108, -1, 107, -1, 58, -1, 
+       -1, -1, 177, -1, -1, -1, 48, 191, 
+       49, 198, 52, -1, 53, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, 54, 
+       -1, -1, -1, 308, 312, -1, -1, 62, 
+       81, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, 184, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, 120, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, 130, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, 129, -1, 183, 165, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, 128, 387, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, 387, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, 132, 
+       376, 377, 378, -1, 375, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, 356, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       374, -1, -1, -1, 372, 373, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 379, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, 368, 369, 370, 371, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 380, 381, 
+       -1, -1, -1, 382, 383, 30, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, 365, 
+       -1, 367, -1, 363, 366, 376, 377, 378, 
+       -1, 375, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       360, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, 374, -1, -1, 
+       -1, 372, 373, -1, -1, -1, -1, -1, 
+       -1, -1, -1, 379, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       368, 369, 370, 371, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, 380, 381, -1, -1, -1, 
+       382, 383, 30, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, 365, -1, 367, -1, 
+       363, 366, 376, 377, 378, -1, 375, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, 358, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, 374, -1, -1, -1, 372, 373, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       379, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, 368, 369, 370, 
+       371, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       380, 381, -1, -1, -1, 382, 383, 30, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, 365, -1, 367, -1, 363, 366, 332, 
+       332, 332, -1, 332, 331, -1, 332, 338, 
+       -1, -1, -1, 338, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       133, 338, -1, -1, -1, 338, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, 134, 339, -1, -1, 135, 339, 
+       83, -1, -1, 185, -1, -1, 185, 84, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, 185, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, 185, 82, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, 185, -1, -1, 
+       -1, -1, 85, 391, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, 136, 139, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, 137, -1, -1, -1, -1, 
+       -1, -1, -1, -1, 138, 342, 342, 342, 
+       -1, 342, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       342, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, 342, -1, -1, 342, -1, -1, 
+       -1, 342, 342, -1, -1, -1, -1, -1, 
+       -1, -1, -1, 342, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       342, 342, 342, 342, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       342, 342, 342, 342, 342, 342, 342, 342, 
+       342, 342, 342, 342, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, 140, 
+       297, 298, 124, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, 120, -1, -1, 
+       -1, -1, 292, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       207, 290, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, 288, 292, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, 138, 
+       142, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       141, -1, 138, 144, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, 304, 309, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, 143, 35, 181, 
+       124, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, 120, -1, -1, -1, -1, 
+       292, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 182, 290, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, 288, 176, 390, 333, -1, -1, 
+       -1, 116, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, 337, 334, -1, -1, -1, 
+       116, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, 337, 340, 385, -1, -1, -1, 
+       -1, 385, -1, 385, 385, -1, -1, 385, 
+       385, 385, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 385, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, 385, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 385, 385, 
+       -1, -1, -1, 385, 385, -1, -1, 385, 
+       385, -1, 385, 385, 385, 385, 385, -1, 
+       -1, 132, -1, 385, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 385, 385, 
+       385, 145, 289, 291, -1, -1, 294, 348, 
+       349, 350, -1, 346, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, 347, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, 293, -1, -1, 374, 
+       -1, -1, -1, 372, 373, -1, -1, -1, 
+       -1, -1, -1, -1, -1, 351, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, 368, 369, 370, 371, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, 45, 40, 39, 380, 381, 41, 
+       43, 44, 382, 383, 30, 42, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, 341, 345, 343, 344, 
+       352, 146, 291, -1, -1, 299, 305, 306, 
+       -1, -1, -1, -1, -1, -1, 309, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 147, 121, 
+       -1, 122, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       296, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, 148, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, 295, 
+       124, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, 120, -1, -1, -1, -1, 
+       292, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, 149, 290, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, -1, -1, -1, -1, -1, -1, 
+       -1, -1, 288, 307, 205, 213, 
+};
+
+unsigned short Parser_keys[] = {
+       128, 227, 225, 225, 128, 228, 128, 244, 
+       128, 245, 128, 128, 128, 128, 45, 248, 
+       40, 249, 40, 249, 128, 250, 123, 128, 
+       123, 123, 123, 123, 128, 128, 123, 123, 
+       59, 128, 45, 248, 132, 132, 40, 292, 
+       40, 242, 40, 242, 59, 59, 128, 187, 
+       40, 292, 125, 228, 61, 141, 40, 242, 
+       59, 59, 59, 59, 40, 40, 40, 289, 
+       40, 289, 40, 249, 125, 244, 33, 281, 
+       33, 281, 40, 289, 128, 295, 59, 59, 
+       40, 249, 42, 295, 42, 295, 42, 295, 
+       59, 59, 59, 59, 40, 292, 44, 59, 
+       38, 144, 33, 281, 33, 201, 33, 181, 
+       33, 271, 33, 201, 33, 281, 33, 281, 
+       33, 201, 33, 201, 182, 279, 182, 279, 
+       179, 280, 134, 134, 33, 281, 59, 59, 
+       44, 59, 33, 281, 41, 41, 128, 294, 
+       40, 292, 59, 59, 40, 249, 59, 59, 
+       40, 249, 59, 59, 40, 249, 41, 44, 
+       33, 281, 179, 283, 182, 284, 182, 284, 
+       33, 281, 33, 281, 33, 281, 33, 281, 
+       33, 281, 33, 281, 33, 281, 33, 281, 
+       33, 281, 128, 293, 40, 275, 33, 274, 
+       40, 274, 40, 274, 40, 274, 40, 274, 
+       40, 274, 40, 206, 40, 206, 40, 206, 
+       40, 206, 202, 206, 202, 206, 44, 276, 
+       45, 281, 33, 281, 44, 255, 128, 245, 
+       41, 142, 40, 292, 40, 292, 40, 292, 
+       179, 186, 182, 279, 182, 279, 182, 186, 
+       38, 144, 128, 294, 128, 274, 40, 242, 
+       132, 132, 132, 132, 40, 274, 128, 274, 
+       128, 274, 44, 125, 132, 276, 61, 61, 
+       59, 59, 40, 274, 124, 124, 128, 128, 
+       182, 284, 182, 284, 186, 186, 33, 181, 
+       44, 44, 41, 41, 41, 44, 40, 289, 
+       44, 44, 41, 44, 125, 125, 125, 276, 
+       43, 275, 40, 274, 125, 125, 41, 41, 
+       41, 41, 0, 0
+};
+
+unsigned int Parser_offsets[] = {
+       0, 100, 101, 202, 319, 437, 438, 439, 
+       643, 853, 1063, 1186, 1192, 1193, 1194, 1195, 
+       1196, 1266, 1470, 1471, 1724, 1927, 2130, 2131, 
+       2191, 2444, 2548, 2629, 2832, 2833, 2834, 2835, 
+       3085, 3335, 3545, 3665, 3914, 4163, 4413, 4581, 
+       4582, 4792, 5046, 5300, 5554, 5555, 5556, 5809, 
+       5825, 5932, 6181, 6350, 6499, 6738, 6907, 7156, 
+       7405, 7574, 7743, 7841, 7939, 8041, 8042, 8291, 
+       8292, 8308, 8557, 8558, 8725, 8978, 8979, 9189, 
+       9190, 9400, 9401, 9611, 9615, 9864, 9969, 10072, 
+       10175, 10424, 10673, 10922, 11171, 11420, 11669, 11918, 
+       12167, 12416, 12582, 12818, 13060, 13295, 13530, 13765, 
+       14000, 14235, 14402, 14569, 14736, 14903, 14908, 14913, 
+       15146, 15383, 15632, 15844, 15962, 16064, 16317, 16570, 
+       16823, 16831, 16929, 17027, 17032, 17139, 17306, 17453, 
+       17656, 17657, 17658, 17893, 18040, 18187, 18269, 18414, 
+       18415, 18416, 18651, 18652, 18653, 18756, 18859, 18860, 
+       19009, 19010, 19011, 19015, 19265, 19266, 19270, 19271, 
+       19423, 19656, 19891, 19892, 19893, 19894
+};
+
+unsigned short Parser_targs[] = {
+       1, 2, 3, 4, 5, 6, 7, 8, 
+       9, 10, 11, 12, 13, 14, 15, 16, 
+       17, 18, 18, 19, 20, 21, 22, 23, 
+       24, 25, 26, 27, 28, 29, 30, 31, 
+       32, 33, 34, 35, 36, 37, 38, 39, 
+       40, 41, 42, 43, 44, 45, 46, 47, 
+       48, 49, 50, 50, 51, 52, 53, 54, 
+       55, 56, 57, 58, 59, 60, 61, 62, 
+       63, 64, 65, 66, 67, 68, 69, 70, 
+       71, 72, 73, 74, 75, 76, 77, 78, 
+       79, 80, 81, 82, 83, 84, 85, 86, 
+       87, 88, 89, 90, 91, 92, 93, 94, 
+       95, 96, 97, 98, 99, 100, 101, 102, 
+       103, 104, 105, 106, 107, 108, 109, 110, 
+       111, 112, 113, 114, 115, 116, 117, 118, 
+       119, 120, 121, 122, 123, 124, 125, 126, 
+       127, 128, 129, 130, 131, 132, 133, 134, 
+       135, 136, 137, 138, 139, 140, 141, 142, 
+       143, 144, 145, 146, 147, 148, 149, 149, 
+       149, 149, 149, 149, 149, 149, 149, 149, 
+       149, 149, 149, 149, 149, 149, 149, 149, 
+       149, 149, 149, 149, 149, 149, 149, 149, 
+       149, 149, 149, 149, 149, 149, 149, 149, 
+       149, 149, 149, 149, 149, 149, 149, 149, 
+       149, 149, 149, 149, 149, 149, 149, 149, 
+       149, 149, 149, 149, 149, 149, 149, 149, 
+       149, 149, 149, 149, 149, 149, 149, 149, 
+       149, 149, 149, 149, 149, 149, 149, 149, 
+       149, 149, 149, 149, 149, 149, 149, 149, 
+       149, 149, 149, 149, 149, 149, 149, 149, 
+       149, 149, 149, 149, 149, 149, 149, 149, 
+       149, 149, 149, 149, 149, 149, 149, 149, 
+       149, 149, 149, 149, 149, 149, 149, 149, 
+       149, 149, 149, 149, 149, 149, 149, 149, 
+       149, 149, 149, 149, 149, 149, 149, 149, 
+       149, 149, 149, 149, 149, 149, 149, 149, 
+       149, 149, 149, 149, 149, 149, 149, 149, 
+       149, 149, 149, 149, 149, 149, 149, 149, 
+       149, 149, 149, 149, 149, 149, 149, 149, 
+       149, 149, 149, 149, 149, 149, 149, 149, 
+       149, 149, 149, 149, 149, 149, 149, 149, 
+       149, 149, 149, 149, 149, 149, 149, 149, 
+       149, 149, 149, 149, 149, 149, 149, 149, 
+       149, 149, 149, 149, 149, 149, 149, 149, 
+       149, 149, 149, 149, 149, 149, 149, 149, 
+       149, 149, 149, 149, 149, 149, 149, 149, 
+       149, 149, 149, 149, 149, 149, 149, 149, 
+       149, 149, 149, 149, 149, 149, 149, 149, 
+       149, 149, 149, 149, 149, 149, 149, 149, 
+       149, 149, 149, 149, 149, 149, 149, 149, 
+       149, 149, 149, 149, 149
+};
+
+unsigned int Parser_actInds[] = {
+       0, 2, 4, 6, 8, 10, 12, 14, 
+       16, 18, 20, 22, 24, 26, 28, 30, 
+       32, 34, 36, 39, 41, 43, 45, 47, 
+       49, 51, 53, 55, 57, 59, 61, 63, 
+       65, 67, 69, 71, 73, 75, 77, 79, 
+       81, 83, 85, 87, 89, 91, 93, 95, 
+       97, 99, 101, 103, 106, 108, 110, 112, 
+       114, 116, 118, 120, 122, 124, 126, 128, 
+       130, 132, 134, 136, 138, 140, 142, 144, 
+       146, 148, 150, 152, 154, 156, 158, 160, 
+       162, 164, 166, 168, 170, 172, 174, 176, 
+       178, 180, 182, 184, 186, 188, 190, 192, 
+       194, 196, 198, 200, 202, 204, 206, 208, 
+       210, 213, 215, 217, 219, 221, 223, 225, 
+       227, 229, 231, 233, 235, 237, 239, 241, 
+       243, 245, 247, 249, 251, 253, 255, 257, 
+       259, 261, 263, 265, 267, 269, 271, 273, 
+       275, 277, 279, 281, 283, 285, 287, 289, 
+       291, 293, 295, 297, 299, 301, 303, 305, 
+       307, 309, 311, 313, 315, 317, 319, 321, 
+       323, 325, 327, 329, 331, 333, 335, 337, 
+       339, 341, 343, 345, 347, 349, 351, 353, 
+       355, 357, 359, 361, 363, 365, 367, 369, 
+       371, 373, 375, 377, 379, 381, 383, 385, 
+       387, 389, 391, 393, 395, 397, 399, 401, 
+       403, 405, 407, 409, 411, 413, 415, 417, 
+       419, 421, 423, 425, 427, 429, 431, 433, 
+       435, 437, 439, 441, 443, 445, 447, 449, 
+       451, 453, 455, 457, 459, 461, 463, 465, 
+       467, 469, 471, 473, 475, 477, 479, 481, 
+       483, 485, 487, 489, 491, 493, 495, 497, 
+       499, 501, 503, 505, 507, 509, 511, 513, 
+       515, 517, 519, 521, 523, 525, 527, 529, 
+       531, 533, 535, 537, 539, 541, 543, 545, 
+       547, 549, 551, 553, 555, 557, 559, 561, 
+       563, 565, 567, 569, 571, 573, 575, 577, 
+       579, 581, 583, 585, 587, 589, 591, 593, 
+       595, 597, 599, 601, 603, 605, 607, 609, 
+       611, 613, 615, 617, 619, 621, 623, 625, 
+       627, 629, 631, 633, 635, 637, 639, 641, 
+       643, 645, 647, 649, 651, 653, 655, 657, 
+       659, 661, 663, 665, 667, 669, 671, 673, 
+       675, 677, 679, 681, 683, 685, 687, 689, 
+       691, 693, 695, 697, 699, 701, 703, 705, 
+       707, 709, 711, 713, 715, 717, 719, 721, 
+       723, 725, 727, 729, 731, 733, 735, 737, 
+       739, 741, 743, 745, 747, 749, 751, 753, 
+       755, 757, 759, 761, 763, 765, 767, 769, 
+       771, 773, 775, 777, 779, 781, 783, 785, 
+       787, 789, 791, 793, 795, 797, 799, 801, 
+       803, 805, 807, 809, 811
+};
+
+unsigned int Parser_actions[] = {
+       1, 0, 1, 0, 1, 0, 1, 0, 
+       1, 0, 1, 0, 1, 0, 1, 0, 
+       1, 0, 1, 0, 1, 0, 1, 0, 
+       1, 0, 1, 0, 1, 0, 1, 0, 
+       1, 0, 1, 0, 214, 1, 0, 1, 
+       0, 1, 0, 1, 0, 1, 0, 1, 
+       0, 1, 0, 1, 0, 1, 0, 1, 
+       0, 1, 0, 1, 0, 1, 0, 1, 
+       0, 1, 0, 1, 0, 1, 0, 1, 
+       0, 1, 0, 1, 0, 1, 0, 1, 
+       0, 1, 0, 1, 0, 1, 0, 1, 
+       0, 1, 0, 1, 0, 1, 0, 1, 
+       0, 1, 0, 1, 0, 1, 0, 90, 
+       1, 0, 1, 0, 1, 0, 1, 0, 
+       1, 0, 1, 0, 1, 0, 1, 0, 
+       1, 0, 1, 0, 1, 0, 1, 0, 
+       1, 0, 1, 0, 1, 0, 1, 0, 
+       1, 0, 1, 0, 1, 0, 1, 0, 
+       1, 0, 1, 0, 1, 0, 1, 0, 
+       1, 0, 1, 0, 1, 0, 1, 0, 
+       1, 0, 1, 0, 1, 0, 1, 0, 
+       1, 0, 1, 0, 1, 0, 1, 0, 
+       1, 0, 1, 0, 1, 0, 1, 0, 
+       1, 0, 1, 0, 1, 0, 1, 0, 
+       1, 0, 1, 0, 1, 0, 1, 0, 
+       1, 0, 1, 0, 1, 0, 1, 0, 
+       1, 0, 1, 302, 0, 1, 0, 1, 
+       0, 1, 0, 1, 0, 1, 0, 1, 
+       0, 1, 0, 1, 0, 1, 0, 1, 
+       0, 1, 0, 1, 0, 1, 0, 1, 
+       0, 1, 0, 1, 0, 1, 0, 1, 
+       0, 1, 0, 1, 0, 1, 0, 1, 
+       0, 1, 0, 1, 0, 1, 0, 1, 
+       0, 1, 0, 1, 0, 1, 0, 1, 
+       0, 1, 0, 1, 0, 1, 0, 1, 
+       0, 1, 0, 1, 0, 1, 0, 1, 
+       0, 1, 0, 1, 0, 1, 0, 1, 
+       0, 1, 0, 1, 0, 1, 0, 2, 
+       0, 7, 0, 10, 0, 15, 0, 18, 
+       0, 71, 0, 75, 0, 79, 0, 83, 
+       0, 86, 0, 87, 0, 90, 0, 95, 
+       0, 99, 0, 103, 0, 107, 0, 111, 
+       0, 115, 0, 119, 0, 123, 0, 127, 
+       0, 131, 0, 135, 0, 139, 0, 142, 
+       0, 146, 0, 151, 0, 155, 0, 159, 
+       0, 163, 0, 167, 0, 171, 0, 175, 
+       0, 179, 0, 182, 0, 186, 0, 190, 
+       0, 195, 0, 199, 0, 203, 0, 207, 
+       0, 211, 0, 214, 0, 219, 0, 223, 
+       0, 227, 0, 231, 0, 235, 0, 239, 
+       0, 243, 0, 246, 0, 251, 0, 254, 
+       0, 259, 0, 263, 0, 267, 0, 271, 
+       0, 275, 0, 279, 0, 283, 0, 287, 
+       0, 291, 0, 295, 0, 299, 0, 302, 
+       0, 306, 0, 310, 0, 314, 0, 318, 
+       0, 323, 0, 327, 0, 331, 0, 335, 
+       0, 339, 0, 343, 0, 347, 0, 351, 
+       0, 355, 0, 359, 0, 363, 0, 367, 
+       0, 371, 0, 375, 0, 379, 0, 383, 
+       0, 387, 0, 391, 0, 395, 0, 399, 
+       0, 403, 0, 407, 0, 411, 0, 415, 
+       0, 419, 0, 423, 0, 427, 0, 431, 
+       0, 435, 0, 439, 0, 443, 0, 447, 
+       0, 451, 0, 455, 0, 459, 0, 463, 
+       0, 467, 0, 471, 0, 475, 0, 479, 
+       0, 483, 0, 487, 0, 491, 0, 495, 
+       0, 499, 0, 503, 0, 507, 0, 511, 
+       0, 515, 0, 519, 0, 523, 0, 527, 
+       0, 531, 0, 535, 0, 539, 0, 543, 
+       0, 547, 0, 551, 0, 555, 0, 559, 
+       0, 563, 0, 567, 0, 571, 0, 575, 
+       0, 579, 0, 583, 0, 587, 0, 591, 
+       0, 595, 0, 599, 0, 603, 0, 607, 
+       0, 610, 0, 611, 0, 615, 0, 618, 
+       0, 623, 0, 627, 0, 631, 0, 635, 
+       0, 638, 0, 643, 0, 647, 0, 651, 
+       0, 655, 0, 659, 0, 663, 0, 667, 
+       0, 671, 0, 675, 0, 679, 0, 683, 
+       0, 687, 0, 691, 0, 694, 0, 698, 
+       0, 702, 0, 703, 0, 707, 0, 711, 
+       0, 715, 0, 719, 0, 723, 0, 726, 
+       0, 727, 0, 730, 0, 731, 0, 735, 
+       0, 739, 0, 743, 0, 747, 0, 750, 
+       0, 755, 0, 758, 0, 763, 0, 767, 
+       0, 771, 0, 775, 0, 779, 0, 782, 
+       0, 786, 0, 791, 0, 795, 0, 798, 
+       0, 803, 0, 807, 0, 811, 0, 815, 
+       0, 819, 0, 823, 0, 827, 0, 831, 
+       0, 835, 0, 839, 0, 843, 0, 847, 
+       0, 851, 0, 855, 0, 859, 0, 863, 
+       0, 867, 0, 871, 0, 875, 0, 879, 
+       0, 883, 0, 886, 0, 891, 0, 895, 
+       0, 899, 0, 903, 0, 907, 0, 911, 
+       0, 915, 0, 919, 0, 923, 0, 927, 
+       0, 931, 0, 935, 0, 939, 0, 943, 
+       0, 947, 0, 951, 0, 955, 0, 959, 
+       0, 963, 0, 967, 0, 970, 0, 974, 
+       0, 978, 0, 983, 0, 986, 0, 991, 
+       0, 995, 0, 23, 0, 27, 0, 31, 
+       0, 35, 0, 39, 0, 43, 0, 47, 
+       0, 51, 0, 55, 0, 59, 0, 63, 
+       0, 67, 0, 1, 0
+};
+
+int Parser_commitLen[] = {
+       0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 0, 0, 0, 0, 0, 0, 
+       1, 1, 1, 1, 1, 1, 1, 1, 
+       1, 1, 1, 1, 2
+};
+
+char Parser_prodLengths[] = {
+       1, 3, 0, 2, 0, 1, 1, 1, 
+       1, 1, 1, 1, 1, 1, 1, 1, 
+       1, 3, 4, 4, 1, 1, 0, 4, 
+       5, 5, 1, 5, 4, 3, 4, 3, 
+       3, 5, 2, 0, 1, 4, 2, 1, 
+       1, 1, 3, 2, 1, 0, 3, 1, 
+       3, 3, 3, 3, 1, 1, 2, 3, 
+       3, 3, 3, 1, 3, 1, 3, 1, 
+       3, 3, 7, 3, 4, 3, 3, 3, 
+       3, 3, 7, 1, 1, 1, 1, 1, 
+       1, 2, 1, 2, 1, 2, 1, 1, 
+       1, 1, 2, 1, 2, 1, 2, 1, 
+       2, 1, 2, 1, 2, 1, 2, 1, 
+       2, 1, 2, 1, 2, 1, 2, 1, 
+       2, 1, 2, 1, 2, 1, 2, 1, 
+       2, 1, 2, 1, 2, 1, 2, 1, 
+       2, 1, 2, 1, 2, 1, 2, 1, 
+       2, 1, 2, 1, 2, 1, 2, 1, 
+       2, 1, 2, 1, 2, 1, 3, 1, 
+       1, 3, 1, 1, 1, 2, 2, 1, 
+       2, 2, 2, 2, 4, 5, 5, 6, 
+       1, 1, 2, 2, 1, 1, 1, 1, 
+       3, 3, 3, 3, 3, 1, 1, 1, 
+       2, 1, 2, 0, 2, 1, 3, 3, 
+       1, 1, 2, 0, 1, 3, 2, 0, 
+       1, 1, 1, 1, 1, 1, 1, 1, 
+       1, 1, 2, 3, 3, 4, 3, 4, 
+       3, 4, 2, 2, 2, 0, 1, 1, 
+       1, 1, 1, 1, 1, 1, 1, 1, 
+       1, 1, 1, 1, 1, 1, 1, 1, 
+       1, 4, 2, 0, 2, 1, 0, 3, 
+       1, 1
+};
+
+unsigned short Parser_prodLhsIds[] = {
+       227, 226, 226, 228, 228, 229, 229, 229, 
+       229, 229, 229, 229, 229, 229, 229, 229, 
+       229, 241, 239, 240, 243, 244, 244, 238, 
+       230, 231, 245, 232, 233, 233, 234, 235, 
+       236, 237, 250, 250, 247, 247, 251, 251, 
+       252, 252, 252, 253, 253, 253, 246, 246, 
+       256, 256, 256, 256, 256, 257, 258, 258, 
+       258, 258, 258, 258, 259, 259, 260, 260, 
+       262, 262, 262, 262, 262, 262, 262, 262, 
+       262, 262, 262, 262, 263, 263, 263, 263, 
+       266, 266, 266, 266, 266, 266, 266, 266, 
+       266, 267, 267, 267, 267, 267, 267, 267, 
+       267, 267, 267, 267, 267, 268, 268, 268, 
+       268, 268, 268, 268, 268, 268, 268, 268, 
+       268, 269, 269, 269, 269, 269, 269, 269, 
+       269, 269, 269, 269, 269, 270, 270, 270, 
+       270, 270, 270, 270, 270, 270, 270, 270, 
+       270, 271, 271, 271, 271, 271, 271, 271, 
+       271, 271, 271, 271, 271, 254, 254, 254, 
+       274, 255, 265, 264, 275, 275, 275, 272, 
+       273, 273, 273, 273, 273, 273, 273, 273, 
+       273, 276, 277, 277, 277, 278, 278, 278, 
+       278, 278, 278, 278, 278, 281, 281, 248, 
+       248, 248, 280, 280, 282, 282, 283, 283, 
+       283, 283, 279, 279, 284, 284, 242, 242, 
+       285, 285, 285, 288, 288, 288, 288, 288, 
+       288, 286, 286, 286, 286, 286, 286, 286, 
+       286, 286, 286, 286, 249, 249, 291, 291, 
+       291, 287, 287, 287, 287, 287, 287, 287, 
+       292, 292, 292, 292, 292, 289, 289, 289, 
+       289, 289, 261, 293, 290, 295, 295, 294, 
+       294, 296
+};
+
+const char *Parser_prodNames[] = {
+       "start-1",
+       "section_list-1",
+       "section_list-2",
+       "statement_list-1",
+       "statement_list-2",
+       "statement-1",
+       "statement-2",
+       "statement-3",
+       "statement-4",
+       "statement-5",
+       "statement-6",
+       "statement-7",
+       "statement-8",
+       "statement-9",
+       "statement-10",
+       "statement-11",
+       "statement-12",
+       "length_spec-1",
+       "pre_push_spec-1",
+       "post_pop_spec-1",
+       "export_open-1",
+       "opt_export-1",
+       "opt_export-2",
+       "export_block-1",
+       "assignment-1",
+       "instantiation-1",
+       "machine_name-1",
+       "action_spec-1",
+       "alphtype_spec-1",
+       "alphtype_spec-2",
+       "range_spec-1",
+       "getkey_spec-1",
+       "access_spec-1",
+       "variable_spec-1",
+       "opt_whitespace-1",
+       "opt_whitespace-2",
+       "join_or_lm-1",
+       "join_or_lm-2",
+       "lm_part_list-1",
+       "lm_part_list-2",
+       "longest_match_part-1",
+       "longest_match_part-2",
+       "longest_match_part-3",
+       "opt_lm_part_action-1",
+       "opt_lm_part_action-2",
+       "opt_lm_part_action-3",
+       "join-1",
+       "join-2",
+       "expression-1",
+       "expression-2",
+       "expression-3",
+       "expression-4",
+       "expression-5",
+       "term_short-1",
+       "term-1",
+       "term-2",
+       "term-3",
+       "term-4",
+       "term-5",
+       "term-6",
+       "factor_with_label-1",
+       "factor_with_label-2",
+       "factor_with_ep-1",
+       "factor_with_ep-2",
+       "factor_with_aug-1",
+       "factor_with_aug-2",
+       "factor_with_aug-3",
+       "factor_with_aug-4",
+       "factor_with_aug-5",
+       "factor_with_aug-6",
+       "factor_with_aug-7",
+       "factor_with_aug-8",
+       "factor_with_aug-9",
+       "factor_with_aug-10",
+       "factor_with_aug-11",
+       "factor_with_aug-12",
+       "aug_type_base-1",
+       "aug_type_base-2",
+       "aug_type_base-3",
+       "aug_type_base-4",
+       "aug_type_cond-1",
+       "aug_type_cond-2",
+       "aug_type_cond-3",
+       "aug_type_cond-4",
+       "aug_type_cond-5",
+       "aug_type_cond-6",
+       "aug_type_cond-7",
+       "aug_type_cond-8",
+       "aug_type_cond-9",
+       "aug_type_to_state-1",
+       "aug_type_to_state-2",
+       "aug_type_to_state-3",
+       "aug_type_to_state-4",
+       "aug_type_to_state-5",
+       "aug_type_to_state-6",
+       "aug_type_to_state-7",
+       "aug_type_to_state-8",
+       "aug_type_to_state-9",
+       "aug_type_to_state-10",
+       "aug_type_to_state-11",
+       "aug_type_to_state-12",
+       "aug_type_from_state-1",
+       "aug_type_from_state-2",
+       "aug_type_from_state-3",
+       "aug_type_from_state-4",
+       "aug_type_from_state-5",
+       "aug_type_from_state-6",
+       "aug_type_from_state-7",
+       "aug_type_from_state-8",
+       "aug_type_from_state-9",
+       "aug_type_from_state-10",
+       "aug_type_from_state-11",
+       "aug_type_from_state-12",
+       "aug_type_eof-1",
+       "aug_type_eof-2",
+       "aug_type_eof-3",
+       "aug_type_eof-4",
+       "aug_type_eof-5",
+       "aug_type_eof-6",
+       "aug_type_eof-7",
+       "aug_type_eof-8",
+       "aug_type_eof-9",
+       "aug_type_eof-10",
+       "aug_type_eof-11",
+       "aug_type_eof-12",
+       "aug_type_gbl_error-1",
+       "aug_type_gbl_error-2",
+       "aug_type_gbl_error-3",
+       "aug_type_gbl_error-4",
+       "aug_type_gbl_error-5",
+       "aug_type_gbl_error-6",
+       "aug_type_gbl_error-7",
+       "aug_type_gbl_error-8",
+       "aug_type_gbl_error-9",
+       "aug_type_gbl_error-10",
+       "aug_type_gbl_error-11",
+       "aug_type_gbl_error-12",
+       "aug_type_local_error-1",
+       "aug_type_local_error-2",
+       "aug_type_local_error-3",
+       "aug_type_local_error-4",
+       "aug_type_local_error-5",
+       "aug_type_local_error-6",
+       "aug_type_local_error-7",
+       "aug_type_local_error-8",
+       "aug_type_local_error-9",
+       "aug_type_local_error-10",
+       "aug_type_local_error-11",
+       "aug_type_local_error-12",
+       "action_embed-1",
+       "action_embed-2",
+       "action_embed-3",
+       "action_embed_word-1",
+       "action_embed_block-1",
+       "priority_name-1",
+       "priority_aug-1",
+       "priority_aug_num-1",
+       "priority_aug_num-2",
+       "priority_aug_num-3",
+       "local_err_name-1",
+       "factor_with_rep-1",
+       "factor_with_rep-2",
+       "factor_with_rep-3",
+       "factor_with_rep-4",
+       "factor_with_rep-5",
+       "factor_with_rep-6",
+       "factor_with_rep-7",
+       "factor_with_rep-8",
+       "factor_with_rep-9",
+       "factor_rep_num-1",
+       "factor_with_neg-1",
+       "factor_with_neg-2",
+       "factor_with_neg-3",
+       "factor-1",
+       "factor-2",
+       "factor-3",
+       "factor-4",
+       "factor-5",
+       "factor-6",
+       "factor-7",
+       "factor-8",
+       "range_lit-1",
+       "range_lit-2",
+       "alphabet_num-1",
+       "alphabet_num-2",
+       "alphabet_num-3",
+       "regular_expr-1",
+       "regular_expr-2",
+       "regular_expr_item-1",
+       "regular_expr_item-2",
+       "regular_expr_char-1",
+       "regular_expr_char-2",
+       "regular_expr_char-3",
+       "regular_expr_char-4",
+       "regular_expr_or_data-1",
+       "regular_expr_or_data-2",
+       "regular_expr_or_char-1",
+       "regular_expr_or_char-2",
+       "inline_block-1",
+       "inline_block-2",
+       "inline_block_item-1",
+       "inline_block_item-2",
+       "inline_block_item-3",
+       "inline_block_symbol-1",
+       "inline_block_symbol-2",
+       "inline_block_symbol-3",
+       "inline_block_symbol-4",
+       "inline_block_symbol-5",
+       "inline_block_symbol-6",
+       "inline_block_interpret-1",
+       "inline_block_interpret-2",
+       "inline_block_interpret-3",
+       "inline_block_interpret-4",
+       "inline_block_interpret-5",
+       "inline_block_interpret-6",
+       "inline_block_interpret-7",
+       "inline_block_interpret-8",
+       "inline_block_interpret-9",
+       "inline_block_interpret-10",
+       "inline_block_interpret-11",
+       "inline_expr-1",
+       "inline_expr-2",
+       "inline_expr_item-1",
+       "inline_expr_item-2",
+       "inline_expr_item-3",
+       "inline_expr_any-1",
+       "inline_expr_any-2",
+       "inline_expr_any-3",
+       "inline_expr_any-4",
+       "inline_expr_any-5",
+       "inline_expr_any-6",
+       "inline_expr_any-7",
+       "inline_expr_symbol-1",
+       "inline_expr_symbol-2",
+       "inline_expr_symbol-3",
+       "inline_expr_symbol-4",
+       "inline_expr_symbol-5",
+       "inline_expr_interpret-1",
+       "inline_expr_interpret-2",
+       "inline_expr_interpret-3",
+       "inline_expr_interpret-4",
+       "inline_expr_interpret-5",
+       "local_state_ref-1",
+       "no_name_sep-1",
+       "state_ref-1",
+       "opt_name_sep-1",
+       "opt_name_sep-2",
+       "state_ref_names-1",
+       "state_ref_names-2",
+       "_start-1"
+};
+
+const char *Parser_lelNames[] = {
+       "D-0",
+       "D-1",
+       "D-2",
+       "D-3",
+       "D-4",
+       "D-5",
+       "D-6",
+       "D-7",
+       "D-8",
+       "D-9",
+       "D-10",
+       "D-11",
+       "D-12",
+       "D-13",
+       "D-14",
+       "D-15",
+       "D-16",
+       "D-17",
+       "D-18",
+       "D-19",
+       "D-20",
+       "D-21",
+       "D-22",
+       "D-23",
+       "D-24",
+       "D-25",
+       "D-26",
+       "D-27",
+       "D-28",
+       "D-29",
+       "D-30",
+       "D-31",
+       "D-32",
+       "!",
+       "\"",
+       "#",
+       "$",
+       "%",
+       "&",
+       "'",
+       "(",
+       ")",
+       "*",
+       "+",
+       ",",
+       "-",
+       ".",
+       "/",
+       "0",
+       "1",
+       "2",
+       "3",
+       "4",
+       "5",
+       "6",
+       "7",
+       "8",
+       "9",
+       ":",
+       ";",
+       "<",
+       "=",
+       ">",
+       "?",
+       "@",
+       "A",
+       "B",
+       "C",
+       "D",
+       "E",
+       "F",
+       "G",
+       "H",
+       "I",
+       "J",
+       "K",
+       "L",
+       "M",
+       "N",
+       "O",
+       "P",
+       "Q",
+       "R",
+       "S",
+       "T",
+       "U",
+       "V",
+       "W",
+       "X",
+       "Y",
+       "Z",
+       "[",
+       "\\",
+       "]",
+       "^",
+       "_",
+       "`",
+       "a",
+       "b",
+       "c",
+       "d",
+       "e",
+       "f",
+       "g",
+       "h",
+       "i",
+       "j",
+       "k",
+       "l",
+       "m",
+       "n",
+       "o",
+       "p",
+       "q",
+       "r",
+       "s",
+       "t",
+       "u",
+       "v",
+       "w",
+       "x",
+       "y",
+       "z",
+       "{",
+       "|",
+       "}",
+       "~",
+       "D-127",
+       "TK_Word",
+       "TK_Literal",
+       "TK_Number",
+       "TK_EndSection",
+       "TK_UInt",
+       "TK_Hex",
+       "TK_DotDot",
+       "TK_ColonGt",
+       "TK_ColonGtGt",
+       "TK_LtColon",
+       "TK_Arrow",
+       "TK_DoubleArrow",
+       "TK_StarStar",
+       "TK_ColonEquals",
+       "TK_NameSep",
+       "TK_BarStar",
+       "TK_DashDash",
+       "TK_StartCond",
+       "TK_AllCond",
+       "TK_LeavingCond",
+       "TK_Middle",
+       "TK_StartGblError",
+       "TK_AllGblError",
+       "TK_FinalGblError",
+       "TK_NotFinalGblError",
+       "TK_NotStartGblError",
+       "TK_MiddleGblError",
+       "TK_StartLocalError",
+       "TK_AllLocalError",
+       "TK_FinalLocalError",
+       "TK_NotFinalLocalError",
+       "TK_NotStartLocalError",
+       "TK_MiddleLocalError",
+       "TK_StartEOF",
+       "TK_AllEOF",
+       "TK_FinalEOF",
+       "TK_NotFinalEOF",
+       "TK_NotStartEOF",
+       "TK_MiddleEOF",
+       "TK_StartToState",
+       "TK_AllToState",
+       "TK_FinalToState",
+       "TK_NotFinalToState",
+       "TK_NotStartToState",
+       "TK_MiddleToState",
+       "TK_StartFromState",
+       "TK_AllFromState",
+       "TK_FinalFromState",
+       "TK_NotFinalFromState",
+       "TK_NotStartFromState",
+       "TK_MiddleFromState",
+       "RE_Slash",
+       "RE_SqOpen",
+       "RE_SqOpenNeg",
+       "RE_SqClose",
+       "RE_Dot",
+       "RE_Star",
+       "RE_Dash",
+       "RE_Char",
+       "IL_WhiteSpace",
+       "IL_Comment",
+       "IL_Literal",
+       "IL_Symbol",
+       "KW_Machine",
+       "KW_Include",
+       "KW_Import",
+       "KW_Write",
+       "KW_Action",
+       "KW_AlphType",
+       "KW_Range",
+       "KW_GetKey",
+       "KW_InWhen",
+       "KW_When",
+       "KW_OutWhen",
+       "KW_Eof",
+       "KW_Err",
+       "KW_Lerr",
+       "KW_To",
+       "KW_From",
+       "KW_Export",
+       "KW_PrePush",
+       "KW_PostPop",
+       "KW_Length",
+       "KW_Break",
+       "KW_Exec",
+       "KW_Hold",
+       "KW_PChar",
+       "KW_Char",
+       "KW_Goto",
+       "KW_Call",
+       "KW_Ret",
+       "KW_CurState",
+       "KW_TargState",
+       "KW_Entry",
+       "KW_Next",
+       "KW_Variable",
+       "KW_Access",
+       "Parser_tk_eof",
+       "section_list",
+       "start",
+       "statement_list",
+       "statement",
+       "assignment",
+       "instantiation",
+       "action_spec",
+       "alphtype_spec",
+       "range_spec",
+       "getkey_spec",
+       "access_spec",
+       "variable_spec",
+       "export_block",
+       "pre_push_spec",
+       "post_pop_spec",
+       "length_spec",
+       "inline_block",
+       "export_open",
+       "opt_export",
+       "machine_name",
+       "join",
+       "join_or_lm",
+       "alphabet_num",
+       "inline_expr",
+       "opt_whitespace",
+       "lm_part_list",
+       "longest_match_part",
+       "opt_lm_part_action",
+       "action_embed",
+       "action_embed_block",
+       "expression",
+       "term_short",
+       "term",
+       "factor_with_label",
+       "factor_with_ep",
+       "local_state_ref",
+       "factor_with_aug",
+       "aug_type_base",
+       "priority_aug",
+       "priority_name",
+       "aug_type_cond",
+       "aug_type_to_state",
+       "aug_type_from_state",
+       "aug_type_eof",
+       "aug_type_gbl_error",
+       "aug_type_local_error",
+       "local_err_name",
+       "factor_with_rep",
+       "action_embed_word",
+       "priority_aug_num",
+       "factor_rep_num",
+       "factor_with_neg",
+       "factor",
+       "regular_expr_or_data",
+       "regular_expr",
+       "range_lit",
+       "regular_expr_item",
+       "regular_expr_char",
+       "regular_expr_or_char",
+       "inline_block_item",
+       "inline_block_interpret",
+       "inline_expr_any",
+       "inline_block_symbol",
+       "inline_expr_interpret",
+       "state_ref",
+       "inline_expr_item",
+       "inline_expr_symbol",
+       "no_name_sep",
+       "state_ref_names",
+       "opt_name_sep",
+       "_start"
+};
+
+#line 1449 "rlparse.kl"
+
+
+void Parser::init()
+{
+       #line 3855 "rlparse.cpp"
+       curs = Parser_startState;
+       pool = 0;
+       block = (struct Parser_Block*) malloc( sizeof(struct Parser_Block) );
+       block->next = 0;
+       freshEl = block->data;
+       #ifdef KELBT_LOG_ACTIONS
+       cerr << "allocating 8128 LangEls" << endl;
+       #endif
+       stackTop = freshEl;
+       stackTop->type = 0;
+       stackTop->state = -1;
+       stackTop->next = 0;
+       stackTop->child = 0;
+       stackTop->causeReduce = 0;
+       freshPos = 1;
+       lastFinal = stackTop;
+       numRetry = 0;
+       numNodes = 0;
+       errCount = 0;
+#line 1454 "rlparse.kl"
+}
+
+int Parser::parseLangEl( int type, const Token *token )
+{
+       #line 3880 "rlparse.cpp"
+#define reject() induceReject = 1
+
+       int pos, targState;
+       unsigned int *action;
+       int rhsLen;
+       struct Parser_LangEl *rhs[32];
+       struct Parser_LangEl *lel = 0;
+       struct Parser_LangEl *input = 0;
+       struct Parser_LangEl *queue = 0;
+       char induceReject;
+
+       if ( curs < 0 )
+               return 0;
+
+       if ( pool == 0 ) {
+               if ( freshPos == 8128 ) {
+                       struct Parser_Block* newBlock  = (struct Parser_Block*) malloc( sizeof(struct Parser_Block) );
+                       newBlock->next = block;
+                       block = newBlock;
+                       freshEl = newBlock->data;
+                       #ifdef KELBT_LOG_ACTIONS
+                       cerr << "allocating 8128 LangEls" << endl;
+                       #endif
+                       freshPos = 0;
+               }
+               queue = freshEl + freshPos++;
+       }
+       else {
+               queue = pool;
+               pool = pool->next;
+       }
+       numNodes += 1;
+
+       queue->type = type;
+       queue->user.token = *token;
+       queue->next = 0;
+       queue->retry = 0;
+       queue->child = 0;
+       queue->causeReduce = 0;
+
+again:
+       if ( input == 0 ) {
+               if ( queue == 0 )
+                       goto _out;
+
+               input = queue;
+               queue = queue->next;
+               input->next = 0;
+       }
+
+       lel = input;
+       if ( lel->type < Parser_keys[curs<<1] || lel->type > Parser_keys[(curs<<1)+1] )
+               goto parseError;
+
+       pos = Parser_indicies[Parser_offsets[curs] + (lel->type - Parser_keys[curs<<1])];
+       if ( pos < 0 )
+               goto parseError;
+
+       induceReject = 0;
+       targState = Parser_targs[pos];
+       action = Parser_actions + Parser_actInds[pos];
+       if ( lel->retry & 0x0000ffff )
+               action += (lel->retry & 0x0000ffff);
+
+       if ( *action & 0x1 ) {
+               #ifdef KELBT_LOG_ACTIONS
+               cerr << "shifted: " << Parser_lelNames[lel->type];
+               #endif
+               input = input->next;
+               lel->state = curs;
+               lel->next = stackTop;
+               stackTop = lel;
+
+               if ( action[1] == 0 )
+                       lel->retry &= 0xffff0000;
+               else {
+                       lel->retry += 1;
+                       numRetry += 1;
+                       #ifdef KELBT_LOG_ACTIONS
+                       cerr << " retry: " << stackTop;
+                       #endif
+               }
+               #ifdef KELBT_LOG_ACTIONS
+               cerr << endl;
+               #endif
+       }
+
+       if ( Parser_commitLen[pos] != 0 ) {
+               struct Parser_LangEl *commitHead = stackTop, *lel;
+               int sp = 0, doExec = 0;
+               #ifdef KELBT_LOG_ACTIONS
+               cerr << "commit encountered, executing final actions" << endl;
+               #endif
+               if ( Parser_commitLen[pos] < 0 )
+                       commitHead = commitHead->next;
+
+               lel = commitHead;
+
+commit_head:
+               if ( lel == lastFinal ) {
+                       doExec = 1;
+                       goto commit_base;
+               }
+
+               if ( lel->next != 0 ) {
+                       sp += 1;
+                       lel->next->prev = lel;
+                       lel = lel->next;
+                       lel->retry = 0;
+                       goto commit_head;
+               }
+
+commit_reverse:
+
+               if ( lel->child != 0 ) {
+                       sp += 1;
+                       lel->child->prev = lel;
+                       lel = lel->child;
+                       lel->retry = 1;
+                       goto commit_head;
+               }
+
+commit_upwards:
+
+               if ( doExec ) {
+                       if ( lel->type < 226 ) {
+                       }
+                       else {
+                               struct Parser_LangEl *redLel = lel;
+                               if ( redLel->child != 0 ) {
+                                       int r = Parser_prodLengths[redLel->reduction] - 1;
+                                       struct Parser_LangEl *rhsEl = redLel->child;
+                                       while ( rhsEl != 0 ) {
+                                               rhs[r--] = rhsEl;
+                                               rhsEl = rhsEl->next;
+                                       }
+                               }
+switch ( lel->reduction ) {
+case 17: {
+#line 61 "rlparse.kl"
+
+               LengthDef *lengthDef = new LengthDef( (&rhs[1]->user.token)->data );
+               pd->lengthDefList.append( lengthDef );
+
+               /* Generic creation of machine for instantiation and assignment. */
+               MachineDef *machineDef = new MachineDef( lengthDef );
+               tryMachineDef( (&rhs[1]->user.token)->loc, (&rhs[1]->user.token)->data, machineDef, false );
+       
+
+#line 4028 "rlparse.cpp"
+} break;
+case 18: {
+#line 72 "rlparse.kl"
+
+               if ( pd->prePushExpr != 0 ) {
+                       /* Recover by just ignoring the duplicate. */
+                       error((&rhs[1]->user.token)->loc) << "pre_push code already defined" << endl;
+               }
+
+               pd->prePushExpr = (&rhs[2]->user.inline_list)->inlineList;
+       
+
+#line 4041 "rlparse.cpp"
+} break;
+case 19: {
+#line 84 "rlparse.kl"
+
+               if ( pd->postPopExpr != 0 ) {
+                       /* Recover by just ignoring the duplicate. */
+                       error((&rhs[1]->user.token)->loc) << "post_pop code already defined" << endl;
+               }
+
+               pd->postPopExpr = (&rhs[2]->user.inline_list)->inlineList;
+       
+
+#line 4054 "rlparse.cpp"
+} break;
+case 20: {
+#line 95 "rlparse.kl"
+
+               exportContext.append( true );
+       
+
+#line 4062 "rlparse.cpp"
+} break;
+case 21: {
+#line 104 "rlparse.kl"
+ (&redLel->user.opt_export)->isSet = true; 
+
+#line 4068 "rlparse.cpp"
+} break;
+case 22: {
+#line 105 "rlparse.kl"
+ (&redLel->user.opt_export)->isSet = false; 
+
+#line 4074 "rlparse.cpp"
+} break;
+case 23: {
+#line 108 "rlparse.kl"
+
+               exportContext.remove( exportContext.length()-1 );
+       
+
+#line 4082 "rlparse.cpp"
+} break;
+case 24: {
+#line 113 "rlparse.kl"
+
+               /* Main machine must be an instance. */
+               bool isInstance = false;
+               if ( strcmp((&rhs[1]->user.token_type)->token.data, mainMachine) == 0 ) {
+                       warning((&rhs[1]->user.token_type)->token.loc) << 
+                                       "main machine will be implicitly instantiated" << endl;
+                       isInstance = true;
+               }
+
+               /* Generic creation of machine for instantiation and assignment. */
+               MachineDef *machineDef = new MachineDef( (&rhs[3]->user.join)->join );
+               tryMachineDef( (&rhs[1]->user.token_type)->token.loc, (&rhs[1]->user.token_type)->token.data, machineDef, isInstance );
+
+               if ( (&rhs[0]->user.opt_export)->isSet )
+                       exportContext.remove( exportContext.length()-1 );
+
+               (&rhs[3]->user.join)->join->loc = (&rhs[2]->user.token)->loc;
+       
+
+#line 4105 "rlparse.cpp"
+} break;
+case 25: {
+#line 133 "rlparse.kl"
+
+               /* Generic creation of machine for instantiation and assignment. */
+               tryMachineDef( (&rhs[1]->user.token_type)->token.loc, (&rhs[1]->user.token_type)->token.data, (&rhs[3]->user.join_or_lm)->machineDef, true );
+
+               if ( (&rhs[0]->user.opt_export)->isSet )
+                       exportContext.remove( exportContext.length()-1 );
+
+               /* Pass a location to join_or_lm */
+               if ( (&rhs[3]->user.join_or_lm)->machineDef->join != 0 )
+                       (&rhs[3]->user.join_or_lm)->machineDef->join->loc = (&rhs[2]->user.token)->loc;
+       
+
+#line 4121 "rlparse.cpp"
+} break;
+case 26: {
+#line 153 "rlparse.kl"
+
+               /* Make/get the priority key. The name may have already been referenced
+                * and therefore exist. */
+               PriorDictEl *priorDictEl;
+               if ( pd->priorDict.insert( (&rhs[0]->user.token)->data, pd->nextPriorKey, &priorDictEl ) )
+                       pd->nextPriorKey += 1;
+               pd->curDefPriorKey = priorDictEl->value;
+
+               /* Make/get the local error key. */
+               LocalErrDictEl *localErrDictEl;
+               if ( pd->localErrDict.insert( (&rhs[0]->user.token)->data, pd->nextLocalErrKey, &localErrDictEl ) )
+                       pd->nextLocalErrKey += 1;
+               pd->curDefLocalErrKey = localErrDictEl->value;
+
+               (&redLel->user.token_type)->token = *(&rhs[0]->user.token);
+       
+
+#line 4142 "rlparse.cpp"
+} break;
+case 27: {
+#line 171 "rlparse.kl"
+
+               if ( pd->actionDict.find( (&rhs[1]->user.token)->data ) ) {
+                       /* Recover by just ignoring the duplicate. */
+                       error((&rhs[1]->user.token)->loc) << "action \"" << (&rhs[1]->user.token)->data << "\" already defined" << endl;
+               }
+               else {
+                       //cerr << "NEW ACTION " << $2->data << " " << $4->inlineList << endl;
+                       /* Add the action to the list of actions. */
+                       Action *newAction = new Action( (&rhs[2]->user.token)->loc, (&rhs[1]->user.token)->data, 
+                                       (&rhs[3]->user.inline_list)->inlineList, pd->nextCondId++ );
+
+                       /* Insert to list and dict. */
+                       pd->actionList.append( newAction );
+                       pd->actionDict.insert( newAction );
+               }
+       
+
+#line 4163 "rlparse.cpp"
+} break;
+case 28: {
+#line 191 "rlparse.kl"
+
+               if ( ! pd->setAlphType( (&rhs[0]->user.token)->loc, (&rhs[1]->user.token)->data, (&rhs[2]->user.token)->data ) ) {
+                       // Recover by ignoring the alphtype statement.
+                       error((&rhs[1]->user.token)->loc) << "\"" << (&rhs[1]->user.token)->data << 
+                                       " " << (&rhs[2]->user.token)->data << "\" is not a valid alphabet type" << endl;
+               }
+       
+
+#line 4175 "rlparse.cpp"
+} break;
+case 29: {
+#line 200 "rlparse.kl"
+
+               if ( ! pd->setAlphType( (&rhs[0]->user.token)->loc, (&rhs[1]->user.token)->data ) ) {
+                       // Recover by ignoring the alphtype statement.
+                       error((&rhs[1]->user.token)->loc) << "\"" << (&rhs[1]->user.token)->data << 
+                                       "\" is not a valid alphabet type" << endl;
+               }
+       
+
+#line 4187 "rlparse.cpp"
+} break;
+case 30: {
+#line 210 "rlparse.kl"
+
+               // Save the upper and lower ends of the range and emit the line number.
+               pd->lowerNum = (&rhs[1]->user.token_type)->token.data;
+               pd->upperNum = (&rhs[2]->user.token_type)->token.data;
+               pd->rangeLowLoc = (&rhs[1]->user.token_type)->token.loc;
+               pd->rangeHighLoc = (&rhs[2]->user.token_type)->token.loc;
+       
+
+#line 4199 "rlparse.cpp"
+} break;
+case 31: {
+#line 219 "rlparse.kl"
+
+               pd->getKeyExpr = (&rhs[1]->user.inline_list)->inlineList;
+       
+
+#line 4207 "rlparse.cpp"
+} break;
+case 32: {
+#line 224 "rlparse.kl"
+
+               pd->accessExpr = (&rhs[1]->user.inline_list)->inlineList;
+       
+
+#line 4215 "rlparse.cpp"
+} break;
+case 33: {
+#line 229 "rlparse.kl"
+
+               /* FIXME: Need to implement the rest of this. */
+               bool wasSet = pd->setVariable( (&rhs[2]->user.token)->data, (&rhs[3]->user.inline_list)->inlineList );
+               if ( !wasSet )
+                       error((&rhs[2]->user.token)->loc) << "bad variable name" << endl;
+       
+
+#line 4226 "rlparse.cpp"
+} break;
+case 36: {
+#line 249 "rlparse.kl"
+
+               (&redLel->user.join_or_lm)->machineDef = new MachineDef( (&rhs[0]->user.join)->join );
+       
+
+#line 4234 "rlparse.cpp"
+} break;
+case 37: {
+#line 253 "rlparse.kl"
+
+               /* Create a new factor going to a longest match structure. Record
+                * in the parse data that we have a longest match. */
+               LongestMatch *lm = new LongestMatch( (&rhs[0]->user.token)->loc, (&rhs[1]->user.lm_part_list)->lmPartList );
+               pd->lmList.append( lm );
+               for ( LmPartList::Iter lmp = *((&rhs[1]->user.lm_part_list)->lmPartList); lmp.lte(); lmp++ )
+                       lmp->longestMatch = lm;
+               (&redLel->user.join_or_lm)->machineDef = new MachineDef( lm );
+       
+
+#line 4248 "rlparse.cpp"
+} break;
+case 38: {
+#line 270 "rlparse.kl"
+
+               if ( (&rhs[1]->user.longest_match_part)->lmPart != 0 ) 
+                       (&rhs[0]->user.lm_part_list)->lmPartList->append( (&rhs[1]->user.longest_match_part)->lmPart );
+               (&redLel->user.lm_part_list)->lmPartList = (&rhs[0]->user.lm_part_list)->lmPartList;
+       
+
+#line 4258 "rlparse.cpp"
+} break;
+case 39: {
+#line 277 "rlparse.kl"
+
+               /* Create a new list with the part. */
+               (&redLel->user.lm_part_list)->lmPartList = new LmPartList;
+               if ( (&rhs[0]->user.longest_match_part)->lmPart != 0 )
+                       (&redLel->user.lm_part_list)->lmPartList->append( (&rhs[0]->user.longest_match_part)->lmPart );
+       
+
+#line 4269 "rlparse.cpp"
+} break;
+case 40: {
+#line 290 "rlparse.kl"
+ (&redLel->user.longest_match_part)->lmPart = 0; 
+
+#line 4275 "rlparse.cpp"
+} break;
+case 41: {
+#line 292 "rlparse.kl"
+ (&redLel->user.longest_match_part)->lmPart = 0; 
+
+#line 4281 "rlparse.cpp"
+} break;
+case 42: {
+#line 294 "rlparse.kl"
+
+               (&redLel->user.longest_match_part)->lmPart = 0;
+               Action *action = (&rhs[1]->user.opt_lm_part_action)->action;
+               if ( action != 0 )
+                       action->isLmAction = true;
+               (&redLel->user.longest_match_part)->lmPart = new LongestMatchPart( (&rhs[0]->user.join)->join, action, 
+                               (&rhs[2]->user.token)->loc, pd->nextLongestMatchId++ );
+
+               /* Provide a location to join. Unfortunately We don't
+                * have the start of the join as in other occurances. Use the end. */
+               (&rhs[0]->user.join)->join->loc = (&rhs[2]->user.token)->loc;
+       
+
+#line 4298 "rlparse.cpp"
+} break;
+case 43: {
+#line 313 "rlparse.kl"
+               (&redLel->user.opt_lm_part_action)->action = (&rhs[1]->user.action_ref)->action;
+       
+
+#line 4306 "rlparse.cpp"
+} break;
+case 44: {
+#line 317 "rlparse.kl"
+
+               (&redLel->user.opt_lm_part_action)->action = (&rhs[0]->user.action_ref)->action;
+       
+
+#line 4314 "rlparse.cpp"
+} break;
+case 45: {
+#line 321 "rlparse.kl"
+
+               (&redLel->user.opt_lm_part_action)->action = 0;
+       
+
+#line 4322 "rlparse.cpp"
+} break;
+case 46: {
+#line 332 "rlparse.kl"
+
+               /* Append the expression to the list and return it. */
+               (&rhs[0]->user.join)->join->exprList.append( (&rhs[2]->user.expression)->expression );
+               (&redLel->user.join)->join = (&rhs[0]->user.join)->join;
+       
+
+#line 4332 "rlparse.cpp"
+} break;
+case 47: {
+#line 338 "rlparse.kl"
+
+               (&redLel->user.join)->join = new Join( (&rhs[0]->user.expression)->expression );
+       
+
+#line 4340 "rlparse.cpp"
+} break;
+case 48: {
+#line 348 "rlparse.kl"
+
+               (&redLel->user.expression)->expression = new Expression( (&rhs[0]->user.expression)->expression, 
+                               (&rhs[2]->user.term_short)->term, Expression::OrType );
+       
+
+#line 4349 "rlparse.cpp"
+} break;
+case 49: {
+#line 353 "rlparse.kl"
+
+               (&redLel->user.expression)->expression = new Expression( (&rhs[0]->user.expression)->expression, 
+                               (&rhs[2]->user.term_short)->term, Expression::IntersectType );
+       
+
+#line 4358 "rlparse.cpp"
+} break;
+case 50: {
+#line 358 "rlparse.kl"
+
+               (&redLel->user.expression)->expression = new Expression( (&rhs[0]->user.expression)->expression, 
+                               (&rhs[2]->user.term_short)->term, Expression::SubtractType );
+       
+
+#line 4367 "rlparse.cpp"
+} break;
+case 51: {
+#line 363 "rlparse.kl"
+
+               (&redLel->user.expression)->expression = new Expression( (&rhs[0]->user.expression)->expression, 
+                               (&rhs[2]->user.term_short)->term, Expression::StrongSubtractType );
+       
+
+#line 4376 "rlparse.cpp"
+} break;
+case 52: {
+#line 368 "rlparse.kl"
+
+               (&redLel->user.expression)->expression = new Expression( (&rhs[0]->user.term_short)->term );
+       
+
+#line 4384 "rlparse.cpp"
+} break;
+case 53: {
+#line 389 "rlparse.kl"
+
+               (&redLel->user.term_short)->term = (&rhs[0]->user.term)->term;
+       
+
+#line 4392 "rlparse.cpp"
+} break;
+case 54: {
+#line 399 "rlparse.kl"
+
+               (&redLel->user.term)->term = new Term( (&rhs[0]->user.term)->term, (&rhs[1]->user.factor_with_label)->factorWithAug );
+       
+
+#line 4400 "rlparse.cpp"
+} break;
+case 55: {
+#line 403 "rlparse.kl"
+
+               (&redLel->user.term)->term = new Term( (&rhs[0]->user.term)->term, (&rhs[2]->user.factor_with_label)->factorWithAug );
+       
+
+#line 4408 "rlparse.cpp"
+} break;
+case 56: {
+#line 407 "rlparse.kl"
+
+               (&redLel->user.term)->term = new Term( (&rhs[0]->user.term)->term, (&rhs[2]->user.factor_with_label)->factorWithAug, Term::RightStartType );
+       
+
+#line 4416 "rlparse.cpp"
+} break;
+case 57: {
+#line 411 "rlparse.kl"
+
+               (&redLel->user.term)->term = new Term( (&rhs[0]->user.term)->term, (&rhs[2]->user.factor_with_label)->factorWithAug, Term::RightFinishType );
+       
+
+#line 4424 "rlparse.cpp"
+} break;
+case 58: {
+#line 415 "rlparse.kl"
+
+               (&redLel->user.term)->term = new Term( (&rhs[0]->user.term)->term, 
+                               (&rhs[2]->user.factor_with_label)->factorWithAug, Term::LeftType );
+       
+
+#line 4433 "rlparse.cpp"
+} break;
+case 59: {
+#line 420 "rlparse.kl"
+
+               (&redLel->user.term)->term = new Term( (&rhs[0]->user.factor_with_label)->factorWithAug );
+       
+
+#line 4441 "rlparse.cpp"
+} break;
+case 60: {
+#line 430 "rlparse.kl"
+               /* Add the label to the list and pass the factor up. */
+               (&rhs[2]->user.factor_with_label)->factorWithAug->labels.prepend( Label((&rhs[0]->user.token)->loc, (&rhs[0]->user.token)->data) );
+               (&redLel->user.factor_with_label)->factorWithAug = (&rhs[2]->user.factor_with_label)->factorWithAug; 
+       
+
+#line 4451 "rlparse.cpp"
+} break;
+case 61: {
+#line 436 "rlparse.kl"
+
+               (&redLel->user.factor_with_label)->factorWithAug = (&rhs[0]->user.factor_with_ep)->factorWithAug;
+       
+
+#line 4459 "rlparse.cpp"
+} break;
+case 62: {
+#line 446 "rlparse.kl"
+               /* Add the target to the list and return the factor object. */
+               (&rhs[0]->user.factor_with_ep)->factorWithAug->epsilonLinks.append( EpsilonLink( (&rhs[1]->user.token)->loc, nameRef ) );
+               (&redLel->user.factor_with_ep)->factorWithAug = (&rhs[0]->user.factor_with_ep)->factorWithAug; 
+       
+
+#line 4469 "rlparse.cpp"
+} break;
+case 63: {
+#line 452 "rlparse.kl"
+
+               (&redLel->user.factor_with_ep)->factorWithAug = (&rhs[0]->user.factor_with_aug)->factorWithAug;
+       
+
+#line 4477 "rlparse.cpp"
+} break;
+case 64: {
+#line 462 "rlparse.kl"
+
+               /* Append the action to the factorWithAug, record the refernce from 
+                * factorWithAug to the action and pass up the factorWithAug. */
+               (&rhs[0]->user.factor_with_aug)->factorWithAug->actions.append( 
+                               ParserAction( (&rhs[1]->user.aug_type)->loc, (&rhs[1]->user.aug_type)->augType, 0, (&rhs[2]->user.action_ref)->action ) );
+               (&redLel->user.factor_with_aug)->factorWithAug = (&rhs[0]->user.factor_with_aug)->factorWithAug;
+       
+
+#line 4489 "rlparse.cpp"
+} break;
+case 65: {
+#line 470 "rlparse.kl"
+
+               /* Append the named priority to the factorWithAug and pass it up. */
+               (&rhs[0]->user.factor_with_aug)->factorWithAug->priorityAugs.append( 
+                               PriorityAug( (&rhs[1]->user.aug_type)->augType, pd->curDefPriorKey, (&rhs[2]->user.priority_aug)->priorityNum ) );
+               (&redLel->user.factor_with_aug)->factorWithAug = (&rhs[0]->user.factor_with_aug)->factorWithAug;
+       
+
+#line 4500 "rlparse.cpp"
+} break;
+case 66: {
+#line 477 "rlparse.kl"
+
+               /* Append the priority using a default name. */
+               (&rhs[0]->user.factor_with_aug)->factorWithAug->priorityAugs.append( 
+                               PriorityAug( (&rhs[1]->user.aug_type)->augType, (&rhs[3]->user.priority_name)->priorityName, (&rhs[5]->user.priority_aug)->priorityNum ) );
+               (&redLel->user.factor_with_aug)->factorWithAug = (&rhs[0]->user.factor_with_aug)->factorWithAug;
+       
+
+#line 4511 "rlparse.cpp"
+} break;
+case 67: {
+#line 484 "rlparse.kl"
+
+               (&rhs[0]->user.factor_with_aug)->factorWithAug->conditions.append( ConditionTest( (&rhs[1]->user.aug_type)->loc, 
+                               (&rhs[1]->user.aug_type)->augType, (&rhs[2]->user.action_ref)->action, true ) );
+               (&redLel->user.factor_with_aug)->factorWithAug = (&rhs[0]->user.factor_with_aug)->factorWithAug;
+       
+
+#line 4521 "rlparse.cpp"
+} break;
+case 68: {
+#line 490 "rlparse.kl"
+
+               (&rhs[0]->user.factor_with_aug)->factorWithAug->conditions.append( ConditionTest( (&rhs[1]->user.aug_type)->loc, 
+                               (&rhs[1]->user.aug_type)->augType, (&rhs[3]->user.action_ref)->action, false ) );
+               (&redLel->user.factor_with_aug)->factorWithAug = (&rhs[0]->user.factor_with_aug)->factorWithAug;
+       
+
+#line 4531 "rlparse.cpp"
+} break;
+case 69: {
+#line 496 "rlparse.kl"
+
+               /* Append the action, pass it up. */
+               (&rhs[0]->user.factor_with_aug)->factorWithAug->actions.append( ParserAction( (&rhs[1]->user.aug_type)->loc, 
+                               (&rhs[1]->user.aug_type)->augType, 0, (&rhs[2]->user.action_ref)->action ) );
+               (&redLel->user.factor_with_aug)->factorWithAug = (&rhs[0]->user.factor_with_aug)->factorWithAug;
+       
+
+#line 4542 "rlparse.cpp"
+} break;
+case 70: {
+#line 503 "rlparse.kl"
+
+               /* Append the action, pass it up. */
+               (&rhs[0]->user.factor_with_aug)->factorWithAug->actions.append( ParserAction( (&rhs[1]->user.aug_type)->loc,
+                               (&rhs[1]->user.aug_type)->augType, 0, (&rhs[2]->user.action_ref)->action ) );
+               (&redLel->user.factor_with_aug)->factorWithAug = (&rhs[0]->user.factor_with_aug)->factorWithAug;
+       
+
+#line 4553 "rlparse.cpp"
+} break;
+case 71: {
+#line 510 "rlparse.kl"
+
+               /* Append the action, pass it up. */
+               (&rhs[0]->user.factor_with_aug)->factorWithAug->actions.append( ParserAction( (&rhs[1]->user.aug_type)->loc,
+                               (&rhs[1]->user.aug_type)->augType, 0, (&rhs[2]->user.action_ref)->action ) );
+               (&redLel->user.factor_with_aug)->factorWithAug = (&rhs[0]->user.factor_with_aug)->factorWithAug;
+       
+
+#line 4564 "rlparse.cpp"
+} break;
+case 72: {
+#line 517 "rlparse.kl"
+
+               /* Append the action to the factorWithAug, record the refernce from 
+                * factorWithAug to the action and pass up the factorWithAug. */
+               (&rhs[0]->user.factor_with_aug)->factorWithAug->actions.append( ParserAction( (&rhs[1]->user.aug_type)->loc,
+                               (&rhs[1]->user.aug_type)->augType, pd->curDefLocalErrKey, (&rhs[2]->user.action_ref)->action ) );
+               (&redLel->user.factor_with_aug)->factorWithAug = (&rhs[0]->user.factor_with_aug)->factorWithAug;
+       
+
+#line 4576 "rlparse.cpp"
+} break;
+case 73: {
+#line 525 "rlparse.kl"
+
+               /* Append the action to the factorWithAug, record the refernce from 
+                * factorWithAug to the action and pass up the factorWithAug. */
+               (&rhs[0]->user.factor_with_aug)->factorWithAug->actions.append( ParserAction( (&rhs[1]->user.aug_type)->loc, 
+                               (&rhs[1]->user.aug_type)->augType, pd->curDefLocalErrKey, (&rhs[2]->user.action_ref)->action ) );
+               (&redLel->user.factor_with_aug)->factorWithAug = (&rhs[0]->user.factor_with_aug)->factorWithAug;
+       
+
+#line 4588 "rlparse.cpp"
+} break;
+case 74: {
+#line 533 "rlparse.kl"
+
+               /* Append the action to the factorWithAug, record the refernce from
+                * factorWithAug to the action and pass up the factorWithAug. */
+               (&rhs[0]->user.factor_with_aug)->factorWithAug->actions.append( ParserAction( (&rhs[1]->user.aug_type)->loc,
+                               (&rhs[1]->user.aug_type)->augType, (&rhs[3]->user.local_err_name)->error_name, (&rhs[5]->user.action_ref)->action ) );
+               (&redLel->user.factor_with_aug)->factorWithAug = (&rhs[0]->user.factor_with_aug)->factorWithAug;
+       
+
+#line 4600 "rlparse.cpp"
+} break;
+case 75: {
+#line 541 "rlparse.kl"
+
+               (&redLel->user.factor_with_aug)->factorWithAug = new FactorWithAug( (&rhs[0]->user.factor_with_rep)->factorWithRep );
+       
+
+#line 4608 "rlparse.cpp"
+} break;
+case 76: {
+#line 554 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_finish; 
+
+#line 4614 "rlparse.cpp"
+} break;
+case 77: {
+#line 555 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_leave; 
+
+#line 4620 "rlparse.cpp"
+} break;
+case 78: {
+#line 556 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_all; 
+
+#line 4626 "rlparse.cpp"
+} break;
+case 79: {
+#line 557 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_start; 
+
+#line 4632 "rlparse.cpp"
+} break;
+case 80: {
+#line 562 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_start; 
+
+#line 4638 "rlparse.cpp"
+} break;
+case 81: {
+#line 563 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_start; 
+
+#line 4644 "rlparse.cpp"
+} break;
+case 82: {
+#line 564 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_all; 
+
+#line 4650 "rlparse.cpp"
+} break;
+case 83: {
+#line 565 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_all; 
+
+#line 4656 "rlparse.cpp"
+} break;
+case 84: {
+#line 566 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_leave; 
+
+#line 4662 "rlparse.cpp"
+} break;
+case 85: {
+#line 567 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_leave; 
+
+#line 4668 "rlparse.cpp"
+} break;
+case 86: {
+#line 568 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_all; 
+
+#line 4674 "rlparse.cpp"
+} break;
+case 87: {
+#line 569 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_start; 
+
+#line 4680 "rlparse.cpp"
+} break;
+case 88: {
+#line 570 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_leave; 
+
+#line 4686 "rlparse.cpp"
+} break;
+case 89: {
+#line 579 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_start_to_state; 
+
+#line 4692 "rlparse.cpp"
+} break;
+case 90: {
+#line 581 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_start_to_state; 
+
+#line 4698 "rlparse.cpp"
+} break;
+case 91: {
+#line 584 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_not_start_to_state; 
+
+#line 4704 "rlparse.cpp"
+} break;
+case 92: {
+#line 586 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_not_start_to_state; 
+
+#line 4710 "rlparse.cpp"
+} break;
+case 93: {
+#line 589 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_all_to_state; 
+
+#line 4716 "rlparse.cpp"
+} break;
+case 94: {
+#line 591 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_all_to_state; 
+
+#line 4722 "rlparse.cpp"
+} break;
+case 95: {
+#line 594 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_final_to_state; 
+
+#line 4728 "rlparse.cpp"
+} break;
+case 96: {
+#line 596 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_final_to_state; 
+
+#line 4734 "rlparse.cpp"
+} break;
+case 97: {
+#line 599 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_not_final_to_state; 
+
+#line 4740 "rlparse.cpp"
+} break;
+case 98: {
+#line 601 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_not_final_to_state; 
+
+#line 4746 "rlparse.cpp"
+} break;
+case 99: {
+#line 604 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_middle_to_state; 
+
+#line 4752 "rlparse.cpp"
+} break;
+case 100: {
+#line 606 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_middle_to_state; 
+
+#line 4758 "rlparse.cpp"
+} break;
+case 101: {
+#line 615 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_start_from_state; 
+
+#line 4764 "rlparse.cpp"
+} break;
+case 102: {
+#line 617 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_start_from_state; 
+
+#line 4770 "rlparse.cpp"
+} break;
+case 103: {
+#line 620 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_not_start_from_state; 
+
+#line 4776 "rlparse.cpp"
+} break;
+case 104: {
+#line 622 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_not_start_from_state; 
+
+#line 4782 "rlparse.cpp"
+} break;
+case 105: {
+#line 625 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_all_from_state; 
+
+#line 4788 "rlparse.cpp"
+} break;
+case 106: {
+#line 627 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_all_from_state; 
+
+#line 4794 "rlparse.cpp"
+} break;
+case 107: {
+#line 630 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_final_from_state; 
+
+#line 4800 "rlparse.cpp"
+} break;
+case 108: {
+#line 632 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_final_from_state; 
+
+#line 4806 "rlparse.cpp"
+} break;
+case 109: {
+#line 635 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_not_final_from_state; 
+
+#line 4812 "rlparse.cpp"
+} break;
+case 110: {
+#line 637 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_not_final_from_state; 
+
+#line 4818 "rlparse.cpp"
+} break;
+case 111: {
+#line 640 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_middle_from_state; 
+
+#line 4824 "rlparse.cpp"
+} break;
+case 112: {
+#line 642 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_middle_from_state; 
+
+#line 4830 "rlparse.cpp"
+} break;
+case 113: {
+#line 651 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_start_eof; 
+
+#line 4836 "rlparse.cpp"
+} break;
+case 114: {
+#line 653 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_start_eof; 
+
+#line 4842 "rlparse.cpp"
+} break;
+case 115: {
+#line 656 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_not_start_eof; 
+
+#line 4848 "rlparse.cpp"
+} break;
+case 116: {
+#line 658 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_not_start_eof; 
+
+#line 4854 "rlparse.cpp"
+} break;
+case 117: {
+#line 661 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_all_eof; 
+
+#line 4860 "rlparse.cpp"
+} break;
+case 118: {
+#line 663 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_all_eof; 
+
+#line 4866 "rlparse.cpp"
+} break;
+case 119: {
+#line 666 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_final_eof; 
+
+#line 4872 "rlparse.cpp"
+} break;
+case 120: {
+#line 668 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_final_eof; 
+
+#line 4878 "rlparse.cpp"
+} break;
+case 121: {
+#line 671 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_not_final_eof; 
+
+#line 4884 "rlparse.cpp"
+} break;
+case 122: {
+#line 673 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_not_final_eof; 
+
+#line 4890 "rlparse.cpp"
+} break;
+case 123: {
+#line 676 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_middle_eof; 
+
+#line 4896 "rlparse.cpp"
+} break;
+case 124: {
+#line 678 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_middle_eof; 
+
+#line 4902 "rlparse.cpp"
+} break;
+case 125: {
+#line 687 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_start_gbl_error; 
+
+#line 4908 "rlparse.cpp"
+} break;
+case 126: {
+#line 689 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_start_gbl_error; 
+
+#line 4914 "rlparse.cpp"
+} break;
+case 127: {
+#line 692 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_not_start_gbl_error; 
+
+#line 4920 "rlparse.cpp"
+} break;
+case 128: {
+#line 694 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_not_start_gbl_error; 
+
+#line 4926 "rlparse.cpp"
+} break;
+case 129: {
+#line 697 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_all_gbl_error; 
+
+#line 4932 "rlparse.cpp"
+} break;
+case 130: {
+#line 699 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_all_gbl_error; 
+
+#line 4938 "rlparse.cpp"
+} break;
+case 131: {
+#line 702 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_final_gbl_error; 
+
+#line 4944 "rlparse.cpp"
+} break;
+case 132: {
+#line 704 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_final_gbl_error; 
+
+#line 4950 "rlparse.cpp"
+} break;
+case 133: {
+#line 707 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_not_final_gbl_error; 
+
+#line 4956 "rlparse.cpp"
+} break;
+case 134: {
+#line 709 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_not_final_gbl_error; 
+
+#line 4962 "rlparse.cpp"
+} break;
+case 135: {
+#line 712 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_middle_gbl_error; 
+
+#line 4968 "rlparse.cpp"
+} break;
+case 136: {
+#line 714 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_middle_gbl_error; 
+
+#line 4974 "rlparse.cpp"
+} break;
+case 137: {
+#line 724 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_start_local_error; 
+
+#line 4980 "rlparse.cpp"
+} break;
+case 138: {
+#line 726 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_start_local_error; 
+
+#line 4986 "rlparse.cpp"
+} break;
+case 139: {
+#line 729 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_not_start_local_error; 
+
+#line 4992 "rlparse.cpp"
+} break;
+case 140: {
+#line 731 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_not_start_local_error; 
+
+#line 4998 "rlparse.cpp"
+} break;
+case 141: {
+#line 734 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_all_local_error; 
+
+#line 5004 "rlparse.cpp"
+} break;
+case 142: {
+#line 736 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_all_local_error; 
+
+#line 5010 "rlparse.cpp"
+} break;
+case 143: {
+#line 739 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_final_local_error; 
+
+#line 5016 "rlparse.cpp"
+} break;
+case 144: {
+#line 741 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_final_local_error; 
+
+#line 5022 "rlparse.cpp"
+} break;
+case 145: {
+#line 744 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_not_final_local_error; 
+
+#line 5028 "rlparse.cpp"
+} break;
+case 146: {
+#line 746 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_not_final_local_error; 
+
+#line 5034 "rlparse.cpp"
+} break;
+case 147: {
+#line 749 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_middle_local_error; 
+
+#line 5040 "rlparse.cpp"
+} break;
+case 148: {
+#line 751 "rlparse.kl"
+ (&redLel->user.aug_type)->loc = (&rhs[0]->user.token)->loc; (&redLel->user.aug_type)->augType = at_middle_local_error; 
+
+#line 5046 "rlparse.cpp"
+} break;
+case 149: {
+#line 764 "rlparse.kl"
+ (&redLel->user.action_ref)->action = (&rhs[0]->user.action_ref)->action; 
+
+#line 5052 "rlparse.cpp"
+} break;
+case 150: {
+#line 765 "rlparse.kl"
+ (&redLel->user.action_ref)->action = (&rhs[1]->user.action_ref)->action; 
+
+#line 5058 "rlparse.cpp"
+} break;
+case 151: {
+#line 766 "rlparse.kl"
+ (&redLel->user.action_ref)->action = (&rhs[0]->user.action_ref)->action; 
+
+#line 5064 "rlparse.cpp"
+} break;
+case 152: {
+#line 771 "rlparse.kl"
+
+               /* Set the name in the actionDict. */
+               Action *action = pd->actionDict.find( (&rhs[0]->user.token)->data );
+               if ( action != 0 ) {
+                       /* Pass up the action element */
+                       (&redLel->user.action_ref)->action = action;
+               }
+               else {
+                       /* Will recover by returning null as the action. */
+                       error((&rhs[0]->user.token)->loc) << "action lookup of \"" << (&rhs[0]->user.token)->data << "\" failed" << endl;
+                       (&redLel->user.action_ref)->action = 0;
+               }
+       
+
+#line 5082 "rlparse.cpp"
+} break;
+case 153: {
+#line 788 "rlparse.kl"
+
+               /* Create the action, add it to the list and pass up. */
+               Action *newAction = new Action( (&rhs[0]->user.token)->loc, 0, (&rhs[1]->user.inline_list)->inlineList, pd->nextCondId++ );
+               pd->actionList.append( newAction );
+               (&redLel->user.action_ref)->action = newAction;
+       
+
+#line 5093 "rlparse.cpp"
+} break;
+case 154: {
+#line 803 "rlparse.kl"
+
+               // Lookup/create the priority key.
+               PriorDictEl *priorDictEl;
+               if ( pd->priorDict.insert( (&rhs[0]->user.token)->data, pd->nextPriorKey, &priorDictEl ) )
+                       pd->nextPriorKey += 1;
+
+               // Use the inserted/found priority key.
+               (&redLel->user.priority_name)->priorityName = priorDictEl->value;
+       
+
+#line 5107 "rlparse.cpp"
+} break;
+case 155: {
+#line 820 "rlparse.kl"
+
+               // Convert the priority number to a long. Check for overflow.
+               errno = 0;
+               //cerr << "PRIOR AUG: " << $1->token.data << endl;
+               long aug = strtol( (&rhs[0]->user.token_type)->token.data, 0, 10 );
+               if ( errno == ERANGE && aug == LONG_MAX ) {
+                       /* Priority number too large. Recover by setting the priority to 0. */
+                       error((&rhs[0]->user.token_type)->token.loc) << "priority number " << (&rhs[0]->user.token_type)->token.data << 
+                                       " overflows" << endl;
+                       (&redLel->user.priority_aug)->priorityNum = 0;
+               }
+               else if ( errno == ERANGE && aug == LONG_MIN ) {
+                       /* Priority number too large in the neg. Recover by using 0. */
+                       error((&rhs[0]->user.token_type)->token.loc) << "priority number " << (&rhs[0]->user.token_type)->token.data << 
+                                       " underflows" << endl;
+                       (&redLel->user.priority_aug)->priorityNum = 0;
+               }
+               else {
+                       /* No overflow or underflow. */
+                       (&redLel->user.priority_aug)->priorityNum = aug;
+               }
+       
+
+#line 5134 "rlparse.cpp"
+} break;
+case 156: {
+#line 846 "rlparse.kl"
+
+               (&redLel->user.token_type)->token = *(&rhs[0]->user.token);
+       
+
+#line 5142 "rlparse.cpp"
+} break;
+case 157: {
+#line 850 "rlparse.kl"
+
+               (&redLel->user.token_type)->token.set( "+", 1 );
+               (&redLel->user.token_type)->token.loc = (&rhs[0]->user.token)->loc;
+               (&redLel->user.token_type)->token.append( *(&rhs[1]->user.token) );
+       
+
+#line 5152 "rlparse.cpp"
+} break;
+case 158: {
+#line 856 "rlparse.kl"
+
+               (&redLel->user.token_type)->token.set( "-", 1 );
+               (&redLel->user.token_type)->token.loc = (&rhs[0]->user.token)->loc;
+               (&redLel->user.token_type)->token.append( *(&rhs[1]->user.token) );
+       
+
+#line 5162 "rlparse.cpp"
+} break;
+case 159: {
+#line 868 "rlparse.kl"
+
+               /* Lookup/create the priority key. */
+               LocalErrDictEl *localErrDictEl;
+               if ( pd->localErrDict.insert( (&rhs[0]->user.token)->data, pd->nextLocalErrKey, &localErrDictEl ) )
+                       pd->nextLocalErrKey += 1;
+
+               /* Use the inserted/found priority key. */
+               (&redLel->user.local_err_name)->error_name = localErrDictEl->value;
+       
+
+#line 5176 "rlparse.cpp"
+} break;
+case 160: {
+#line 889 "rlparse.kl"
+
+               (&redLel->user.factor_with_rep)->factorWithRep = new FactorWithRep( (&rhs[1]->user.token)->loc, (&rhs[0]->user.factor_with_rep)->factorWithRep, 
+                               0, 0, FactorWithRep::StarType );
+       
+
+#line 5185 "rlparse.cpp"
+} break;
+case 161: {
+#line 894 "rlparse.kl"
+
+               (&redLel->user.factor_with_rep)->factorWithRep = new FactorWithRep( (&rhs[1]->user.token)->loc, (&rhs[0]->user.factor_with_rep)->factorWithRep, 
+                               0, 0, FactorWithRep::StarStarType );
+       
+
+#line 5194 "rlparse.cpp"
+} break;
+case 162: {
+#line 899 "rlparse.kl"
+
+               (&redLel->user.factor_with_rep)->factorWithRep = new FactorWithRep( (&rhs[1]->user.token)->loc, (&rhs[0]->user.factor_with_rep)->factorWithRep, 
+                               0, 0, FactorWithRep::OptionalType );
+       
+
+#line 5203 "rlparse.cpp"
+} break;
+case 163: {
+#line 904 "rlparse.kl"
+
+               (&redLel->user.factor_with_rep)->factorWithRep = new FactorWithRep( (&rhs[1]->user.token)->loc, (&rhs[0]->user.factor_with_rep)->factorWithRep, 
+                               0, 0, FactorWithRep::PlusType );
+       
+
+#line 5212 "rlparse.cpp"
+} break;
+case 164: {
+#line 909 "rlparse.kl"
+
+               (&redLel->user.factor_with_rep)->factorWithRep = new FactorWithRep( (&rhs[1]->user.token)->loc, (&rhs[0]->user.factor_with_rep)->factorWithRep, 
+                               (&rhs[2]->user.factor_rep_num)->rep, 0, FactorWithRep::ExactType );
+       
+
+#line 5221 "rlparse.cpp"
+} break;
+case 165: {
+#line 914 "rlparse.kl"
+
+               (&redLel->user.factor_with_rep)->factorWithRep = new FactorWithRep( (&rhs[1]->user.token)->loc, (&rhs[0]->user.factor_with_rep)->factorWithRep, 
+                               0, (&rhs[3]->user.factor_rep_num)->rep, FactorWithRep::MaxType );
+       
+
+#line 5230 "rlparse.cpp"
+} break;
+case 166: {
+#line 919 "rlparse.kl"
+
+               (&redLel->user.factor_with_rep)->factorWithRep = new FactorWithRep( (&rhs[1]->user.token)->loc, (&rhs[0]->user.factor_with_rep)->factorWithRep,
+                               (&rhs[2]->user.factor_rep_num)->rep, 0, FactorWithRep::MinType );
+       
+
+#line 5239 "rlparse.cpp"
+} break;
+case 167: {
+#line 924 "rlparse.kl"
+
+               (&redLel->user.factor_with_rep)->factorWithRep = new FactorWithRep( (&rhs[1]->user.token)->loc, (&rhs[0]->user.factor_with_rep)->factorWithRep, 
+                               (&rhs[2]->user.factor_rep_num)->rep, (&rhs[4]->user.factor_rep_num)->rep, FactorWithRep::RangeType );
+       
+
+#line 5248 "rlparse.cpp"
+} break;
+case 168: {
+#line 929 "rlparse.kl"
+
+               (&redLel->user.factor_with_rep)->factorWithRep = new FactorWithRep( (&rhs[0]->user.factor_with_neg)->factorWithNeg );
+       
+
+#line 5256 "rlparse.cpp"
+} break;
+case 169: {
+#line 939 "rlparse.kl"
+
+               // Convert the priority number to a long. Check for overflow.
+               errno = 0;
+               long rep = strtol( (&rhs[0]->user.token)->data, 0, 10 );
+               if ( errno == ERANGE && rep == LONG_MAX ) {
+                       // Repetition too large. Recover by returing repetition 1. */
+                       error((&rhs[0]->user.token)->loc) << "repetition number " << (&rhs[0]->user.token)->data << " overflows" << endl;
+                       (&redLel->user.factor_rep_num)->rep = 1;
+               }
+               else {
+                       // Cannot be negative, so no overflow.
+                       (&redLel->user.factor_rep_num)->rep = rep;
+               }
+       
+
+#line 5275 "rlparse.cpp"
+} break;
+case 170: {
+#line 965 "rlparse.kl"
+
+               (&redLel->user.factor_with_neg)->factorWithNeg = new FactorWithNeg( (&rhs[0]->user.token)->loc,
+                               (&rhs[1]->user.factor_with_neg)->factorWithNeg, FactorWithNeg::NegateType );
+       
+
+#line 5284 "rlparse.cpp"
+} break;
+case 171: {
+#line 970 "rlparse.kl"
+
+               (&redLel->user.factor_with_neg)->factorWithNeg = new FactorWithNeg( (&rhs[0]->user.token)->loc,
+                               (&rhs[1]->user.factor_with_neg)->factorWithNeg, FactorWithNeg::CharNegateType );
+       
+
+#line 5293 "rlparse.cpp"
+} break;
+case 172: {
+#line 975 "rlparse.kl"
+
+               (&redLel->user.factor_with_neg)->factorWithNeg = new FactorWithNeg( (&rhs[0]->user.factor)->factor );
+       
+
+#line 5301 "rlparse.cpp"
+} break;
+case 173: {
+#line 985 "rlparse.kl"
+
+               /* Create a new factor node going to a concat literal. */
+               (&redLel->user.factor)->factor = new Factor( new Literal( *(&rhs[0]->user.token), Literal::LitString ) );
+       
+
+#line 5310 "rlparse.cpp"
+} break;
+case 174: {
+#line 990 "rlparse.kl"
+
+               /* Create a new factor node going to a literal number. */
+               (&redLel->user.factor)->factor = new Factor( new Literal( (&rhs[0]->user.token_type)->token, Literal::Number ) );
+       
+
+#line 5319 "rlparse.cpp"
+} break;
+case 175: {
+#line 995 "rlparse.kl"
+
+               /* Find the named graph. */
+               GraphDictEl *gdNode = pd->graphDict.find( (&rhs[0]->user.token)->data );
+               if ( gdNode == 0 ) {
+                       /* Recover by returning null as the factor node. */
+                       error((&rhs[0]->user.token)->loc) << "graph lookup of \"" << (&rhs[0]->user.token)->data << "\" failed" << endl;
+                       (&redLel->user.factor)->factor = 0;
+               }
+               else if ( gdNode->isInstance ) {
+                       /* Recover by retuning null as the factor node. */
+                       error((&rhs[0]->user.token)->loc) << "references to graph instantiations not allowed "
+                                       "in expressions" << endl;
+                       (&redLel->user.factor)->factor = 0;
+               }
+               else {
+                       /* Create a factor node that is a lookup of an expression. */
+                       (&redLel->user.factor)->factor = new Factor( (&rhs[0]->user.token)->loc, gdNode->value );
+               }
+       
+
+#line 5343 "rlparse.cpp"
+} break;
+case 176: {
+#line 1015 "rlparse.kl"
+
+               /* Create a new factor node going to an OR expression. */
+               (&redLel->user.factor)->factor = new Factor( new ReItem( (&rhs[0]->user.token)->loc, (&rhs[1]->user.regular_expr_or_data)->reOrBlock, ReItem::OrBlock ) );
+       
+
+#line 5352 "rlparse.cpp"
+} break;
+case 177: {
+#line 1020 "rlparse.kl"
+
+               /* Create a new factor node going to a negated OR expression. */
+               (&redLel->user.factor)->factor = new Factor( new ReItem( (&rhs[0]->user.token)->loc, (&rhs[1]->user.regular_expr_or_data)->reOrBlock, ReItem::NegOrBlock ) );
+       
+
+#line 5361 "rlparse.cpp"
+} break;
+case 178: {
+#line 1025 "rlparse.kl"
+
+               if ( (&rhs[2]->user.token)->length > 1 ) {
+                       for ( char *p = (&rhs[2]->user.token)->data; *p != 0; p++ ) {
+                               if ( *p == 'i' )
+                                       (&rhs[1]->user.regular_expr)->regExpr->caseInsensitive = true;
+                       }
+               }
+
+               /* Create a new factor node going to a regular exp. */
+               (&redLel->user.factor)->factor = new Factor( (&rhs[1]->user.regular_expr)->regExpr );
+       
+
+#line 5377 "rlparse.cpp"
+} break;
+case 179: {
+#line 1037 "rlparse.kl"
+
+               /* Create a new factor node going to a range. */
+               (&redLel->user.factor)->factor = new Factor( new Range( (&rhs[0]->user.range_lit)->literal, (&rhs[2]->user.range_lit)->literal ) );
+       
+
+#line 5386 "rlparse.cpp"
+} break;
+case 180: {
+#line 1042 "rlparse.kl"
+
+               /* Create a new factor going to a parenthesized join. */
+               (&redLel->user.factor)->factor = new Factor( (&rhs[1]->user.join)->join );
+               (&rhs[1]->user.join)->join->loc = (&rhs[0]->user.token)->loc;
+       
+
+#line 5396 "rlparse.cpp"
+} break;
+case 181: {
+#line 1055 "rlparse.kl"
+
+               /* Range literas must have only one char. We restrict this in the parse tree. */
+               (&redLel->user.range_lit)->literal = new Literal( *(&rhs[0]->user.token), Literal::LitString );
+       
+
+#line 5405 "rlparse.cpp"
+} break;
+case 182: {
+#line 1060 "rlparse.kl"
+
+               /* Create a new literal number. */
+               (&redLel->user.range_lit)->literal = new Literal( (&rhs[0]->user.token_type)->token, Literal::Number );
+       
+
+#line 5414 "rlparse.cpp"
+} break;
+case 183: {
+#line 1069 "rlparse.kl"
+               (&redLel->user.token_type)->token = *(&rhs[0]->user.token);
+       
+
+#line 5422 "rlparse.cpp"
+} break;
+case 184: {
+#line 1073 "rlparse.kl"
+               (&redLel->user.token_type)->token.set( "-", 1 );
+               (&redLel->user.token_type)->token.loc = (&rhs[0]->user.token)->loc;
+               (&redLel->user.token_type)->token.append( *(&rhs[1]->user.token) );
+       
+
+#line 5432 "rlparse.cpp"
+} break;
+case 185: {
+#line 1079 "rlparse.kl"
+               (&redLel->user.token_type)->token = *(&rhs[0]->user.token);
+       
+
+#line 5440 "rlparse.cpp"
+} break;
+case 186: {
+#line 1094 "rlparse.kl"
+
+               /* An optimization to lessen the tree size. If a non-starred char is
+                * directly under the left side on the right and the right side is
+                * another non-starred char then paste them together and return the
+                * left side. Otherwise just put the two under a new reg exp node. */
+               if ( (&rhs[1]->user.regular_expr_item)->reItem->type == ReItem::Data && !(&rhs[1]->user.regular_expr_item)->reItem->star &&
+                       (&rhs[0]->user.regular_expr)->regExpr->type == RegExpr::RecurseItem &&
+                       (&rhs[0]->user.regular_expr)->regExpr->item->type == ReItem::Data && !(&rhs[0]->user.regular_expr)->regExpr->item->star )
+               {
+                       /* Append the right side to the right side of the left and toss the
+                        * right side. */
+                       (&rhs[0]->user.regular_expr)->regExpr->item->token.append( (&rhs[1]->user.regular_expr_item)->reItem->token );
+                       delete (&rhs[1]->user.regular_expr_item)->reItem;
+                       (&redLel->user.regular_expr)->regExpr = (&rhs[0]->user.regular_expr)->regExpr;
+               }
+               else {
+                       (&redLel->user.regular_expr)->regExpr = new RegExpr( (&rhs[0]->user.regular_expr)->regExpr, (&rhs[1]->user.regular_expr_item)->reItem );
+               }
+       
+
+#line 5464 "rlparse.cpp"
+} break;
+case 187: {
+#line 1114 "rlparse.kl"
+
+               /* Can't optimize the tree. */
+               (&redLel->user.regular_expr)->regExpr = new RegExpr();
+       
+
+#line 5473 "rlparse.cpp"
+} break;
+case 188: {
+#line 1126 "rlparse.kl"
+
+               (&rhs[0]->user.regular_expr_char)->reItem->star = true;
+               (&redLel->user.regular_expr_item)->reItem = (&rhs[0]->user.regular_expr_char)->reItem;
+       
+
+#line 5482 "rlparse.cpp"
+} break;
+case 189: {
+#line 1131 "rlparse.kl"
+
+               (&redLel->user.regular_expr_item)->reItem = (&rhs[0]->user.regular_expr_char)->reItem;
+       
+
+#line 5490 "rlparse.cpp"
+} break;
+case 190: {
+#line 1143 "rlparse.kl"
+
+               (&redLel->user.regular_expr_char)->reItem = new ReItem( (&rhs[0]->user.token)->loc, (&rhs[1]->user.regular_expr_or_data)->reOrBlock, ReItem::OrBlock );
+       
+
+#line 5498 "rlparse.cpp"
+} break;
+case 191: {
+#line 1147 "rlparse.kl"
+
+               (&redLel->user.regular_expr_char)->reItem = new ReItem( (&rhs[0]->user.token)->loc, (&rhs[1]->user.regular_expr_or_data)->reOrBlock, ReItem::NegOrBlock );
+       
+
+#line 5506 "rlparse.cpp"
+} break;
+case 192: {
+#line 1151 "rlparse.kl"
+
+               (&redLel->user.regular_expr_char)->reItem = new ReItem( (&rhs[0]->user.token)->loc, ReItem::Dot );
+       
+
+#line 5514 "rlparse.cpp"
+} break;
+case 193: {
+#line 1155 "rlparse.kl"
+
+               (&redLel->user.regular_expr_char)->reItem = new ReItem( (&rhs[0]->user.token)->loc, *(&rhs[0]->user.token) );
+       
+
+#line 5522 "rlparse.cpp"
+} break;
+case 194: {
+#line 1167 "rlparse.kl"
+
+               /* An optimization to lessen the tree size. If an or char is directly
+                * under the left side on the right and the right side is another or
+                * char then paste them together and return the left side. Otherwise
+                * just put the two under a new or data node. */
+               if ( (&rhs[1]->user.regular_expr_or_char)->reOrItem->type == ReOrItem::Data &&
+                               (&rhs[0]->user.regular_expr_or_data)->reOrBlock->type == ReOrBlock::RecurseItem &&
+                               (&rhs[0]->user.regular_expr_or_data)->reOrBlock->item->type == ReOrItem::Data )
+               {
+                       /* Append the right side to right side of the left and toss the
+                        * right side. */
+                       (&rhs[0]->user.regular_expr_or_data)->reOrBlock->item->token.append( (&rhs[1]->user.regular_expr_or_char)->reOrItem->token );
+                       delete (&rhs[1]->user.regular_expr_or_char)->reOrItem;
+                       (&redLel->user.regular_expr_or_data)->reOrBlock = (&rhs[0]->user.regular_expr_or_data)->reOrBlock;
+               }
+               else {
+                       /* Can't optimize, put the left and right under a new node. */
+                       (&redLel->user.regular_expr_or_data)->reOrBlock = new ReOrBlock( (&rhs[0]->user.regular_expr_or_data)->reOrBlock, (&rhs[1]->user.regular_expr_or_char)->reOrItem );
+               }
+       
+
+#line 5547 "rlparse.cpp"
+} break;
+case 195: {
+#line 1188 "rlparse.kl"
+
+               (&redLel->user.regular_expr_or_data)->reOrBlock = new ReOrBlock();
+       
+
+#line 5555 "rlparse.cpp"
+} break;
+case 196: {
+#line 1200 "rlparse.kl"
+
+               (&redLel->user.regular_expr_or_char)->reOrItem = new ReOrItem( (&rhs[0]->user.token)->loc, *(&rhs[0]->user.token) );
+       
+
+#line 5563 "rlparse.cpp"
+} break;
+case 197: {
+#line 1204 "rlparse.kl"
+
+               (&redLel->user.regular_expr_or_char)->reOrItem = new ReOrItem( (&rhs[1]->user.token)->loc, (&rhs[0]->user.token)->data[0], (&rhs[2]->user.token)->data[0] );
+       
+
+#line 5571 "rlparse.cpp"
+} break;
+case 198: {
+#line 1221 "rlparse.kl"
+
+               /* Append the item to the list, return the list. */
+               (&redLel->user.inline_list)->inlineList = (&rhs[0]->user.inline_list)->inlineList;
+               (&redLel->user.inline_list)->inlineList->append( (&rhs[1]->user.inline_item)->inlineItem );
+       
+
+#line 5581 "rlparse.cpp"
+} break;
+case 199: {
+#line 1228 "rlparse.kl"
+
+               /* Start with empty list. */
+               (&redLel->user.inline_list)->inlineList = new InlineList;
+       
+
+#line 5590 "rlparse.cpp"
+} break;
+case 200: {
+#line 1243 "rlparse.kl"
+
+               (&redLel->user.inline_item)->inlineItem = new InlineItem( (&rhs[0]->user.token_type)->token.loc, (&rhs[0]->user.token_type)->token.data, InlineItem::Text );
+       
+
+#line 5598 "rlparse.cpp"
+} break;
+case 201: {
+#line 1249 "rlparse.kl"
+
+               (&redLel->user.inline_item)->inlineItem = new InlineItem( (&rhs[0]->user.token_type)->token.loc, (&rhs[0]->user.token_type)->token.data, InlineItem::Text );
+       
+
+#line 5606 "rlparse.cpp"
+} break;
+case 202: {
+#line 1255 "rlparse.kl"
+
+               /* Pass the inline item up. */
+               (&redLel->user.inline_item)->inlineItem = (&rhs[0]->user.inline_item)->inlineItem;
+       
+
+#line 5615 "rlparse.cpp"
+} break;
+case 203: {
+#line 1262 "rlparse.kl"
+ (&redLel->user.token_type)->token = *(&rhs[0]->user.token); 
+
+#line 5621 "rlparse.cpp"
+} break;
+case 204: {
+#line 1263 "rlparse.kl"
+ (&redLel->user.token_type)->token = *(&rhs[0]->user.token); 
+
+#line 5627 "rlparse.cpp"
+} break;
+case 205: {
+#line 1264 "rlparse.kl"
+ (&redLel->user.token_type)->token = *(&rhs[0]->user.token); 
+
+#line 5633 "rlparse.cpp"
+} break;
+case 206: {
+#line 1265 "rlparse.kl"
+ (&redLel->user.token_type)->token = *(&rhs[0]->user.token); 
+
+#line 5639 "rlparse.cpp"
+} break;
+case 207: {
+#line 1266 "rlparse.kl"
+ (&redLel->user.token_type)->token = *(&rhs[0]->user.token); 
+
+#line 5645 "rlparse.cpp"
+} break;
+case 208: {
+#line 1267 "rlparse.kl"
+ (&redLel->user.token_type)->token = *(&rhs[0]->user.token); 
+
+#line 5651 "rlparse.cpp"
+} break;
+case 209: {
+#line 1271 "rlparse.kl"
+
+               /* Pass up interpreted items of inline expressions. */
+               (&redLel->user.inline_item)->inlineItem = (&rhs[0]->user.inline_item)->inlineItem;
+       
+
+#line 5660 "rlparse.cpp"
+} break;
+case 210: {
+#line 1276 "rlparse.kl"
+
+               (&redLel->user.inline_item)->inlineItem = new InlineItem( (&rhs[0]->user.token)->loc, InlineItem::Hold );
+       
+
+#line 5668 "rlparse.cpp"
+} break;
+case 211: {
+#line 1280 "rlparse.kl"
+
+               (&redLel->user.inline_item)->inlineItem = new InlineItem( (&rhs[0]->user.token)->loc, InlineItem::Exec );
+               (&redLel->user.inline_item)->inlineItem->children = (&rhs[1]->user.inline_list)->inlineList;
+       
+
+#line 5677 "rlparse.cpp"
+} break;
+case 212: {
+#line 1285 "rlparse.kl"
+               (&redLel->user.inline_item)->inlineItem = new InlineItem( (&rhs[0]->user.token)->loc, 
+                               new NameRef(nameRef), InlineItem::Goto );
+       
+
+#line 5686 "rlparse.cpp"
+} break;
+case 213: {
+#line 1290 "rlparse.kl"
+
+               (&redLel->user.inline_item)->inlineItem = new InlineItem( (&rhs[0]->user.token)->loc, InlineItem::GotoExpr );
+               (&redLel->user.inline_item)->inlineItem->children = (&rhs[2]->user.inline_list)->inlineList;
+       
+
+#line 5695 "rlparse.cpp"
+} break;
+case 214: {
+#line 1295 "rlparse.kl"
+               (&redLel->user.inline_item)->inlineItem = new InlineItem( (&rhs[0]->user.token)->loc, new NameRef(nameRef), InlineItem::Next );
+       
+
+#line 5703 "rlparse.cpp"
+} break;
+case 215: {
+#line 1299 "rlparse.kl"
+
+               (&redLel->user.inline_item)->inlineItem = new InlineItem( (&rhs[0]->user.token)->loc, InlineItem::NextExpr );
+               (&redLel->user.inline_item)->inlineItem->children = (&rhs[2]->user.inline_list)->inlineList;
+       
+
+#line 5712 "rlparse.cpp"
+} break;
+case 216: {
+#line 1304 "rlparse.kl"
+
+               (&redLel->user.inline_item)->inlineItem = new InlineItem( (&rhs[0]->user.token)->loc, new NameRef(nameRef), InlineItem::Call );
+       
+
+#line 5720 "rlparse.cpp"
+} break;
+case 217: {
+#line 1308 "rlparse.kl"
+
+               (&redLel->user.inline_item)->inlineItem = new InlineItem( (&rhs[0]->user.token)->loc, InlineItem::CallExpr );
+               (&redLel->user.inline_item)->inlineItem->children = (&rhs[2]->user.inline_list)->inlineList;
+       
+
+#line 5729 "rlparse.cpp"
+} break;
+case 218: {
+#line 1313 "rlparse.kl"
+
+               (&redLel->user.inline_item)->inlineItem = new InlineItem( (&rhs[0]->user.token)->loc, InlineItem::Ret );
+       
+
+#line 5737 "rlparse.cpp"
+} break;
+case 219: {
+#line 1317 "rlparse.kl"
+
+               (&redLel->user.inline_item)->inlineItem = new InlineItem( (&rhs[0]->user.token)->loc, InlineItem::Break );
+       
+
+#line 5745 "rlparse.cpp"
+} break;
+case 220: {
+#line 1325 "rlparse.kl"
+
+               (&redLel->user.inline_list)->inlineList = (&rhs[0]->user.inline_list)->inlineList;
+               (&redLel->user.inline_list)->inlineList->append( (&rhs[1]->user.inline_item)->inlineItem );
+       
+
+#line 5754 "rlparse.cpp"
+} break;
+case 221: {
+#line 1330 "rlparse.kl"
+
+               /* Init the list used for this expr. */
+               (&redLel->user.inline_list)->inlineList = new InlineList;
+       
+
+#line 5763 "rlparse.cpp"
+} break;
+case 222: {
+#line 1339 "rlparse.kl"
+
+               /* Return a text segment. */
+               (&redLel->user.inline_item)->inlineItem = new InlineItem( (&rhs[0]->user.token_type)->token.loc, (&rhs[0]->user.token_type)->token.data, InlineItem::Text );
+       
+
+#line 5772 "rlparse.cpp"
+} break;
+case 223: {
+#line 1345 "rlparse.kl"
+
+               /* Return a text segment, must heap alloc the text. */
+               (&redLel->user.inline_item)->inlineItem = new InlineItem( (&rhs[0]->user.token_type)->token.loc, (&rhs[0]->user.token_type)->token.data, InlineItem::Text );
+       
+
+#line 5781 "rlparse.cpp"
+} break;
+case 224: {
+#line 1351 "rlparse.kl"
+
+               /* Pass the inline item up. */
+               (&redLel->user.inline_item)->inlineItem = (&rhs[0]->user.inline_item)->inlineItem;
+       
+
+#line 5790 "rlparse.cpp"
+} break;
+case 237: {
+#line 1381 "rlparse.kl"
+
+               (&redLel->user.inline_item)->inlineItem = new InlineItem( (&rhs[0]->user.token)->loc, InlineItem::PChar );
+       
+
+#line 5798 "rlparse.cpp"
+} break;
+case 238: {
+#line 1386 "rlparse.kl"
+
+               (&redLel->user.inline_item)->inlineItem = new InlineItem( (&rhs[0]->user.token)->loc, InlineItem::Char );
+       
+
+#line 5806 "rlparse.cpp"
+} break;
+case 239: {
+#line 1391 "rlparse.kl"
+
+               (&redLel->user.inline_item)->inlineItem = new InlineItem( (&rhs[0]->user.token)->loc, InlineItem::Curs );
+       
+
+#line 5814 "rlparse.cpp"
+} break;
+case 240: {
+#line 1396 "rlparse.kl"
+
+               (&redLel->user.inline_item)->inlineItem = new InlineItem( (&rhs[0]->user.token)->loc, InlineItem::Targs );
+       
+
+#line 5822 "rlparse.cpp"
+} break;
+case 241: {
+#line 1401 "rlparse.kl"
+
+               (&redLel->user.inline_item)->inlineItem = new InlineItem( (&rhs[0]->user.token)->loc, 
+                       new NameRef(nameRef), InlineItem::Entry );
+       
+
+#line 5831 "rlparse.cpp"
+} break;
+case 243: {
+#line 1412 "rlparse.kl"
+
+               nameRef.empty();
+       
+
+#line 5839 "rlparse.cpp"
+} break;
+case 245: {
+#line 1422 "rlparse.kl"
+
+               /* Insert an initial null pointer val to indicate the existence of the
+                * initial name seperator. */
+               nameRef.setAs( 0 );
+       
+
+#line 5849 "rlparse.cpp"
+} break;
+case 246: {
+#line 1428 "rlparse.kl"
+
+               nameRef.empty();
+       
+
+#line 5857 "rlparse.cpp"
+} break;
+case 247: {
+#line 1435 "rlparse.kl"
+
+               nameRef.append( (&rhs[2]->user.token)->data );
+       
+
+#line 5865 "rlparse.cpp"
+} break;
+case 248: {
+#line 1440 "rlparse.kl"
+
+               nameRef.append( (&rhs[0]->user.token)->data );
+       
+
+#line 5873 "rlparse.cpp"
+} break;
+}
+                       }
+
+                       if ( lel->child != 0 ) {
+                               struct Parser_LangEl *first = lel->child;
+                               struct Parser_LangEl *child = lel->child;
+                               lel->child = 0;
+                               while ( 1 ) {
+                                       if ( child->type < 226 ) {
+                                       }
+                                       else {
+                                       }
+                                       numNodes -= 1;
+                                       if ( child->next == 0 )
+                                               break;
+                                       child = child->next;
+                               }
+                               child->next = pool;
+                               pool = first;
+                       }
+               }
+
+commit_base:
+               if ( sp > 0 ) {
+                       sp -= 1;
+                       if ( lel->retry == 0 ) {
+                               lel = lel->prev;
+                               goto commit_reverse;
+                       }
+                       else {
+                               lel->retry = 0;
+                               lel = lel->prev;
+                               goto commit_upwards;
+                       }
+               }
+               lel->retry = 0;
+
+               lastFinal = lel;
+               numRetry = 0;
+       }
+
+       if ( *action & 0x2 ) {
+               int reduction = *action >> 2;
+               struct Parser_LangEl *redLel;
+
+               if ( input != 0 )
+                       input->causeReduce += 1;
+
+       if ( pool == 0 ) {
+               if ( freshPos == 8128 ) {
+                       struct Parser_Block* newBlock  = (struct Parser_Block*) malloc( sizeof(struct Parser_Block) );
+                       newBlock->next = block;
+                       block = newBlock;
+                       freshEl = newBlock->data;
+                       #ifdef KELBT_LOG_ACTIONS
+                       cerr << "allocating 8128 LangEls" << endl;
+                       #endif
+                       freshPos = 0;
+               }
+               redLel = freshEl + freshPos++;
+       }
+       else {
+               redLel = pool;
+               pool = pool->next;
+       }
+       numNodes += 1;
+
+               redLel->type = Parser_prodLhsIds[reduction];
+               redLel->reduction = reduction;
+               redLel->child = 0;
+               redLel->next = 0;
+               redLel->retry = (lel->retry << 16);
+               redLel->causeReduce = 0;
+               lel->retry &= 0xffff0000;
+
+               rhsLen = Parser_prodLengths[reduction];
+               if ( rhsLen > 0 ) {
+                       int r;
+                       for ( r = rhsLen-1; r > 0; r-- ) {
+                               rhs[r] = stackTop;
+                               stackTop = stackTop->next;
+                       }
+                       rhs[0] = stackTop;
+                       stackTop = stackTop->next;
+                       rhs[0]->next = 0;
+               }
+switch ( reduction ) {
+case 225: {
+#line 1358 "rlparse.kl"
+ (&redLel->user.token_type)->token = *(&rhs[0]->user.token); 
+
+#line 5966 "rlparse.cpp"
+} break;
+case 226: {
+#line 1359 "rlparse.kl"
+ (&redLel->user.token_type)->token = *(&rhs[0]->user.token); 
+
+#line 5972 "rlparse.cpp"
+} break;
+case 227: {
+#line 1360 "rlparse.kl"
+ (&redLel->user.token_type)->token = *(&rhs[0]->user.token); 
+
+#line 5978 "rlparse.cpp"
+} break;
+case 228: {
+#line 1361 "rlparse.kl"
+ (&redLel->user.token_type)->token = *(&rhs[0]->user.token); 
+
+#line 5984 "rlparse.cpp"
+} break;
+case 229: {
+#line 1362 "rlparse.kl"
+ (&redLel->user.token_type)->token = *(&rhs[0]->user.token); 
+
+#line 5990 "rlparse.cpp"
+} break;
+case 230: {
+#line 1363 "rlparse.kl"
+ (&redLel->user.token_type)->token = *(&rhs[0]->user.token); 
+
+#line 5996 "rlparse.cpp"
+} break;
+case 231: {
+#line 1364 "rlparse.kl"
+ (&redLel->user.token_type)->token = *(&rhs[0]->user.token); 
+
+#line 6002 "rlparse.cpp"
+} break;
+case 232: {
+#line 1371 "rlparse.kl"
+ (&redLel->user.token_type)->token = *(&rhs[0]->user.token); 
+
+#line 6008 "rlparse.cpp"
+} break;
+case 233: {
+#line 1372 "rlparse.kl"
+ (&redLel->user.token_type)->token = *(&rhs[0]->user.token); 
+
+#line 6014 "rlparse.cpp"
+} break;
+case 234: {
+#line 1373 "rlparse.kl"
+ (&redLel->user.token_type)->token = *(&rhs[0]->user.token); 
+
+#line 6020 "rlparse.cpp"
+} break;
+case 235: {
+#line 1374 "rlparse.kl"
+ (&redLel->user.token_type)->token = *(&rhs[0]->user.token); 
+
+#line 6026 "rlparse.cpp"
+} break;
+case 236: {
+#line 1375 "rlparse.kl"
+ (&redLel->user.token_type)->token = *(&rhs[0]->user.token); 
+
+#line 6032 "rlparse.cpp"
+} break;
+}
+               #ifdef KELBT_LOG_ACTIONS
+               cerr << "reduced: "
+                               << Parser_prodNames[reduction]
+                               << " rhsLen: " << rhsLen;
+               #endif
+               if ( action[1] == 0 )
+                       redLel->retry = 0;
+               else {
+                       redLel->retry += 0x10000;
+                       numRetry += 1;
+                       #ifdef KELBT_LOG_ACTIONS
+                       cerr << " retry: " << redLel;
+                       #endif
+               }
+
+               #ifdef KELBT_LOG_ACTIONS
+               cerr << endl;
+               #endif
+
+               if ( rhsLen == 0 ) {
+                       redLel->file = lel->file;
+                       redLel->line = lel->line;
+                       targState = curs;
+               }
+               else {
+                       redLel->child = rhs[rhsLen-1];
+                       redLel->file = rhs[0]->file;
+                       redLel->line = rhs[0]->line;
+                       targState = rhs[0]->state;
+               }
+
+               if ( induceReject ) {
+                       #ifdef KELBT_LOG_ACTIONS
+                       cerr << "error induced during reduction of " <<
+                                       Parser_lelNames[redLel->type] << endl;
+                       #endif
+                       redLel->state = curs;
+                       redLel->next = stackTop;
+                       stackTop = redLel;
+                       curs = targState;
+                       goto parseError;
+               }
+               else {
+                       redLel->next = input;
+                       input = redLel;
+               }
+       }
+
+
+       curs = targState;
+       goto again;
+
+parseError:
+       #ifdef KELBT_LOG_BACKTRACK
+       cerr << "hit error" << endl;
+       #endif
+       if ( numRetry > 0 ) {
+               struct Parser_LangEl *redLel;
+
+               if ( input != 0 ) {
+                       redLel = input;
+                       goto have_undo_element;
+               }
+
+               while ( 1 ) {
+                       redLel = stackTop;
+                       if ( stackTop->type < 226 ) {
+                               #ifdef KELBT_LOG_BACKTRACK
+                               cerr << "backing up over terminal: " <<
+                                               Parser_lelNames[stackTop->type] << endl;
+                               #endif
+                               stackTop = stackTop->next;
+                               redLel->next = input;
+                               input = redLel;
+                       }
+                       else {
+                               #ifdef KELBT_LOG_BACKTRACK
+                               cerr << "backing up over non-terminal: " <<
+                                               Parser_lelNames[stackTop->type] << endl;
+                               #endif
+                               stackTop = stackTop->next;
+                               struct Parser_LangEl *first = redLel->child;
+                               if ( first == 0 )
+                                       rhsLen = 0;
+                               else {
+                                       rhsLen = 1;
+                                       while ( first->next != 0 ) {
+                                               first = first->next;
+                                               rhsLen += 1;
+                                       }
+                                       first->next = stackTop;
+                                       stackTop = redLel->child;
+
+                                       struct Parser_LangEl *rhsEl = stackTop;
+                                       int p = rhsLen;
+                                       while ( p > 0 ) {
+                                               rhs[--p] = rhsEl;
+                                               rhsEl = rhsEl->next;
+                                       }
+                               }
+                               redLel->next = pool;
+                               pool = redLel;
+                               numNodes -= 1;
+
+                               if ( input != 0 )
+                                       input->causeReduce -= 1;
+                       }
+
+have_undo_element:
+                       if ( redLel->retry == 0 ) {
+                               if ( input != 0 && input->causeReduce == 0 ) {
+                                       #ifdef KELBT_LOG_BACKTRACK
+                                       cerr << "pushing back: " << Parser_lelNames[input->type] << endl;
+                                       #endif
+                                       input->next = queue;
+                                       queue = input;
+                                       input = 0;
+                               }
+                       }
+                       else {
+                               #ifdef KELBT_LOG_BACKTRACK
+                               cerr << "found retry targ: " << redLel << endl;
+                               #endif
+                               numRetry -= 1;
+                               #ifdef KELBT_LOG_BACKTRACK
+                               cerr << "found retry: " << redLel << endl;
+                               #endif
+                               if ( redLel->retry & 0x0000ffff )
+                                       curs = input->state;
+                               else {
+                                       input->retry = redLel->retry >> 16;
+                                       if ( stackTop->state < 0 )
+                                               curs = Parser_startState;
+                                       else {
+                                               curs = Parser_targs[(int)Parser_indicies[Parser_offsets[stackTop->state] + (stackTop->type - Parser_keys[stackTop->state<<1])]];
+                                       }
+                               }
+                               goto again;
+                       }
+               }
+       }
+       curs = -1;
+       errCount += 1;
+_out: {}
+#line 1459 "rlparse.kl"
+       return errCount == 0 ? 0 : -1;
+}
+
+void Parser::tryMachineDef( InputLoc &loc, char *name, 
+               MachineDef *machineDef, bool isInstance )
+{
+       GraphDictEl *newEl = pd->graphDict.insert( name );
+       if ( newEl != 0 ) {
+               /* New element in the dict, all good. */
+               newEl->value = new VarDef( name, machineDef );
+               newEl->isInstance = isInstance;
+               newEl->loc = loc;
+               newEl->value->isExport = exportContext[exportContext.length()-1];
+
+               /* It it is an instance, put on the instance list. */
+               if ( isInstance )
+                       pd->instanceList.append( newEl );
+       }
+       else {
+               // Recover by ignoring the duplicate.
+               error(loc) << "fsm \"" << name << "\" previously defined" << endl;
+       }
+}
+
+ostream &Parser::parse_error( int tokId, Token &token )
+{
+       /* Maintain the error count. */
+       gblErrorCount += 1;
+
+       cerr << token.loc << ": ";
+       cerr << "at token ";
+       if ( tokId < 128 )
+               cerr << "\"" << Parser_lelNames[tokId] << "\"";
+       else 
+               cerr << Parser_lelNames[tokId];
+       if ( token.data != 0 )
+               cerr << " with data \"" << token.data << "\"";
+       cerr << ": ";
+       
+       return cerr;
+}
+
+int Parser::token( InputLoc &loc, int tokId, char *tokstart, int toklen )
+{
+       Token token;
+       token.data = tokstart;
+       token.length = toklen;
+       token.loc = loc;
+       int res = parseLangEl( tokId, &token );
+       if ( res < 0 ) {
+               parse_error(tokId, token) << "parse error" << endl;
+               exit(1);
+       }
+       return res;
+}
diff --git a/ragel/rlparse.h b/ragel/rlparse.h
new file mode 100644 (file)
index 0000000..e3f7c3c
--- /dev/null
@@ -0,0 +1,210 @@
+/* Automatically generated by Kelbt from "rlparse.kh".
+ *
+ * Parts of this file are copied from Kelbt source covered by the GNU
+ * GPL. As a special exception, you may use the parts of this file copied
+ * from Kelbt source without restriction. The remainder is derived from
+ * "rlparse.kh" and inherits the copyright status of that file.
+ */
+
+#line 1 "rlparse.kh"
+/*
+ *  Copyright 2001-2007 Adrian Thurston <thurston@complang.org>
+ */
+
+/*  This file is part of Ragel.
+ *
+ *  Ragel is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ * 
+ *  Ragel is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ * 
+ *  You should have received a copy of the GNU General Public License
+ *  along with Ragel; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 
+ */
+
+#ifndef _RLPARSE_H
+#define _RLPARSE_H
+
+#include <iostream>
+#include "avltree.h"
+#include "parsedata.h"
+
+
+/* Import scanner tokens. */
+#define IMP_Word 128
+#define IMP_Literal 129
+#define IMP_UInt 130
+#define IMP_Define 131
+
+/* This is used for tracking the include files/machine pairs. */
+struct IncludeHistoryItem
+{
+       IncludeHistoryItem( const char *fileName, const char *sectionName )
+               : fileName(fileName), sectionName(sectionName) {}
+
+       const char *fileName;
+       const char *sectionName;
+};
+
+typedef Vector<IncludeHistoryItem> IncludeHistory;
+
+struct Parser
+{
+#line 102 "rlparse.kh"
+
+
+       #line 63 "rlparse.h"
+       struct Parser_Block *block;
+       struct Parser_LangEl *freshEl;
+       int freshPos;
+       struct Parser_LangEl *pool;
+       int numRetry;
+       int numNodes;
+       struct Parser_LangEl *stackTop;
+       struct Parser_LangEl *lastFinal;
+       int errCount;
+       int curs;
+#line 105 "rlparse.kh"
+
+       void init();
+       int parseLangEl( int type, const Token *token );
+
+       Parser( const char *fileName, char *sectionName, InputLoc &sectionLoc )
+               : sectionName(sectionName)
+       {
+               pd = new ParseData( fileName, sectionName, sectionLoc );
+               exportContext.append( false );
+               includeHistory.append( IncludeHistoryItem( 
+                               fileName, sectionName ) );
+       }
+
+       int token( InputLoc &loc, int tokId, char *tokstart, int toklen );
+       void tryMachineDef( InputLoc &loc, char *name, 
+               MachineDef *machineDef, bool isInstance );
+
+       /* Report an error encountered by the parser. */
+       ostream &parse_error( int tokId, Token &token );
+
+       ParseData *pd;
+
+       /* The name of the root section, this does not change during an include. */
+       char *sectionName;
+
+       NameRef nameRef;
+       NameRefList nameRefList;
+
+       Vector<bool> exportContext;
+       IncludeHistory includeHistory;
+
+       Parser *prev, *next;
+};
+
+#line 109 "rlparse.h"
+#define TK_Word 128
+#define TK_Literal 129
+#define TK_Number 130
+#define TK_EndSection 131
+#define TK_UInt 132
+#define TK_Hex 133
+#define TK_DotDot 134
+#define TK_ColonGt 135
+#define TK_ColonGtGt 136
+#define TK_LtColon 137
+#define TK_Arrow 138
+#define TK_DoubleArrow 139
+#define TK_StarStar 140
+#define TK_ColonEquals 141
+#define TK_NameSep 142
+#define TK_BarStar 143
+#define TK_DashDash 144
+#define TK_StartCond 145
+#define TK_AllCond 146
+#define TK_LeavingCond 147
+#define TK_Middle 148
+#define TK_StartGblError 149
+#define TK_AllGblError 150
+#define TK_FinalGblError 151
+#define TK_NotFinalGblError 152
+#define TK_NotStartGblError 153
+#define TK_MiddleGblError 154
+#define TK_StartLocalError 155
+#define TK_AllLocalError 156
+#define TK_FinalLocalError 157
+#define TK_NotFinalLocalError 158
+#define TK_NotStartLocalError 159
+#define TK_MiddleLocalError 160
+#define TK_StartEOF 161
+#define TK_AllEOF 162
+#define TK_FinalEOF 163
+#define TK_NotFinalEOF 164
+#define TK_NotStartEOF 165
+#define TK_MiddleEOF 166
+#define TK_StartToState 167
+#define TK_AllToState 168
+#define TK_FinalToState 169
+#define TK_NotFinalToState 170
+#define TK_NotStartToState 171
+#define TK_MiddleToState 172
+#define TK_StartFromState 173
+#define TK_AllFromState 174
+#define TK_FinalFromState 175
+#define TK_NotFinalFromState 176
+#define TK_NotStartFromState 177
+#define TK_MiddleFromState 178
+#define RE_Slash 179
+#define RE_SqOpen 180
+#define RE_SqOpenNeg 181
+#define RE_SqClose 182
+#define RE_Dot 183
+#define RE_Star 184
+#define RE_Dash 185
+#define RE_Char 186
+#define IL_WhiteSpace 187
+#define IL_Comment 188
+#define IL_Literal 189
+#define IL_Symbol 190
+#define KW_Machine 191
+#define KW_Include 192
+#define KW_Import 193
+#define KW_Write 194
+#define KW_Action 195
+#define KW_AlphType 196
+#define KW_Range 197
+#define KW_GetKey 198
+#define KW_InWhen 199
+#define KW_When 200
+#define KW_OutWhen 201
+#define KW_Eof 202
+#define KW_Err 203
+#define KW_Lerr 204
+#define KW_To 205
+#define KW_From 206
+#define KW_Export 207
+#define KW_PrePush 208
+#define KW_PostPop 209
+#define KW_Length 210
+#define KW_Break 211
+#define KW_Exec 212
+#define KW_Hold 213
+#define KW_PChar 214
+#define KW_Char 215
+#define KW_Goto 216
+#define KW_Call 217
+#define KW_Ret 218
+#define KW_CurState 219
+#define KW_TargState 220
+#define KW_Entry 221
+#define KW_Next 222
+#define KW_Variable 223
+#define KW_Access 224
+#define Parser_tk_eof 225
+
+#line 140 "rlparse.kh"
+
+#endif
diff --git a/ragel/rlscan.cpp b/ragel/rlscan.cpp
new file mode 100644 (file)
index 0000000..7f27795
--- /dev/null
@@ -0,0 +1,7218 @@
+
+#line 1 "rlscan.rl"
+/*
+ *  Copyright 2006-2007 Adrian Thurston <thurston@complang.org>
+ */
+
+/*  This file is part of Ragel.
+ *
+ *  Ragel is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ * 
+ *  Ragel is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ * 
+ *  You should have received a copy of the GNU General Public License
+ *  along with Ragel; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 
+ */
+
+#include <iostream>
+#include <fstream>
+#include <string.h>
+
+#include "ragel.h"
+#include "rlscan.h"
+#include "inputdata.h"
+
+//#define LOG_TOKENS
+
+using std::ifstream;
+using std::istream;
+using std::ostream;
+using std::cout;
+using std::cerr;
+using std::endl;
+
+enum InlineBlockType
+{
+       CurlyDelimited,
+       SemiTerminated
+};
+
+#ifdef _WIN32
+#define PATH_SEP '\\'
+#else
+#define PATH_SEP '/'
+#endif
+
+
+/*
+ * The Scanner for Importing
+ */
+
+
+#line 124 "rlscan.rl"
+
+
+
+#line 64 "rlscan.cpp"
+static const int inline_token_scan_start = 2;
+static const int inline_token_scan_first_final = 2;
+static const int inline_token_scan_error = -1;
+
+static const int inline_token_scan_en_main = 2;
+
+
+#line 127 "rlscan.rl"
+
+void Scanner::flushImport()
+{
+       int *p = token_data;
+       int *pe = token_data + cur_token;
+       int *eof = 0;
+
+       
+#line 81 "rlscan.cpp"
+       {
+        tok_cs = inline_token_scan_start;
+        tok_ts = 0;
+        tok_te = 0;
+        tok_act = 0;
+       }
+
+#line 89 "rlscan.cpp"
+       {
+       if ( p == pe )
+               goto _test_eof;
+       switch (  tok_cs )
+       {
+tr0:
+#line 122 "rlscan.rl"
+       {{p = (( tok_te))-1;}}
+       goto st2;
+tr1:
+#line 108 "rlscan.rl"
+       { tok_te = p+1;{ 
+                       int base = tok_ts - token_data;
+                       int nameOff = 0;
+                       int litOff = 2;
+
+                       directToParser( inclToParser, fileName, line, column, TK_Word, 
+                                       token_strings[base+nameOff], token_lens[base+nameOff] );
+                       directToParser( inclToParser, fileName, line, column, '=', 0, 0 );
+                       directToParser( inclToParser, fileName, line, column, TK_Literal,
+                                       token_strings[base+litOff], token_lens[base+litOff] );
+                       directToParser( inclToParser, fileName, line, column, ';', 0, 0 );
+               }}
+       goto st2;
+tr2:
+#line 80 "rlscan.rl"
+       { tok_te = p+1;{ 
+                       int base = tok_ts - token_data;
+                       int nameOff = 0;
+                       int numOff = 2;
+
+                       directToParser( inclToParser, fileName, line, column, TK_Word, 
+                                       token_strings[base+nameOff], token_lens[base+nameOff] );
+                       directToParser( inclToParser, fileName, line, column, '=', 0, 0 );
+                       directToParser( inclToParser, fileName, line, column, TK_UInt,
+                                       token_strings[base+numOff], token_lens[base+numOff] );
+                       directToParser( inclToParser, fileName, line, column, ';', 0, 0 );
+               }}
+       goto st2;
+tr3:
+#line 94 "rlscan.rl"
+       { tok_te = p+1;{ 
+                       int base = tok_ts - token_data;
+                       int nameOff = 1;
+                       int litOff = 2;
+
+                       directToParser( inclToParser, fileName, line, column, TK_Word, 
+                                       token_strings[base+nameOff], token_lens[base+nameOff] );
+                       directToParser( inclToParser, fileName, line, column, '=', 0, 0 );
+                       directToParser( inclToParser, fileName, line, column, TK_Literal,
+                                       token_strings[base+litOff], token_lens[base+litOff] );
+                       directToParser( inclToParser, fileName, line, column, ';', 0, 0 );
+               }}
+       goto st2;
+tr4:
+#line 66 "rlscan.rl"
+       { tok_te = p+1;{ 
+                       int base = tok_ts - token_data;
+                       int nameOff = 1;
+                       int numOff = 2;
+
+                       directToParser( inclToParser, fileName, line, column, TK_Word, 
+                                       token_strings[base+nameOff], token_lens[base+nameOff] );
+                       directToParser( inclToParser, fileName, line, column, '=', 0, 0 );
+                       directToParser( inclToParser, fileName, line, column, TK_UInt,
+                                       token_strings[base+numOff], token_lens[base+numOff] );
+                       directToParser( inclToParser, fileName, line, column, ';', 0, 0 );
+               }}
+       goto st2;
+tr5:
+#line 122 "rlscan.rl"
+       { tok_te = p+1;}
+       goto st2;
+tr8:
+#line 122 "rlscan.rl"
+       { tok_te = p;p--;}
+       goto st2;
+st2:
+#line 1 "rlscan.rl"
+       { tok_ts = 0;}
+       if ( ++p == pe )
+               goto _test_eof2;
+case 2:
+#line 1 "rlscan.rl"
+       { tok_ts = p;}
+#line 175 "rlscan.cpp"
+       switch( (*p) ) {
+               case 128: goto tr6;
+               case 131: goto tr7;
+       }
+       goto tr5;
+tr6:
+#line 1 "rlscan.rl"
+       { tok_te = p+1;}
+       goto st3;
+st3:
+       if ( ++p == pe )
+               goto _test_eof3;
+case 3:
+#line 189 "rlscan.cpp"
+       if ( (*p) == 61 )
+               goto st0;
+       goto tr8;
+st0:
+       if ( ++p == pe )
+               goto _test_eof0;
+case 0:
+       switch( (*p) ) {
+               case 129: goto tr1;
+               case 130: goto tr2;
+       }
+       goto tr0;
+tr7:
+#line 1 "rlscan.rl"
+       { tok_te = p+1;}
+       goto st4;
+st4:
+       if ( ++p == pe )
+               goto _test_eof4;
+case 4:
+#line 210 "rlscan.cpp"
+       if ( (*p) == 128 )
+               goto st1;
+       goto tr8;
+st1:
+       if ( ++p == pe )
+               goto _test_eof1;
+case 1:
+       switch( (*p) ) {
+               case 129: goto tr3;
+               case 130: goto tr4;
+       }
+       goto tr0;
+       }
+       _test_eof2:  tok_cs = 2; goto _test_eof; 
+       _test_eof3:  tok_cs = 3; goto _test_eof; 
+       _test_eof0:  tok_cs = 0; goto _test_eof; 
+       _test_eof4:  tok_cs = 4; goto _test_eof; 
+       _test_eof1:  tok_cs = 1; goto _test_eof; 
+
+       _test_eof: {}
+       if ( p == eof )
+       {
+       switch (  tok_cs ) {
+       case 3: goto tr8;
+       case 0: goto tr0;
+       case 4: goto tr8;
+       case 1: goto tr0;
+       }
+       }
+
+       }
+
+#line 138 "rlscan.rl"
+
+
+       if ( tok_ts == 0 )
+               cur_token = 0;
+       else {
+               cur_token = pe - tok_ts;
+               int ts_offset = tok_ts - token_data;
+               memmove( token_data, token_data+ts_offset, cur_token*sizeof(token_data[0]) );
+               memmove( token_strings, token_strings+ts_offset, cur_token*sizeof(token_strings[0]) );
+               memmove( token_lens, token_lens+ts_offset, cur_token*sizeof(token_lens[0]) );
+       }
+}
+
+void Scanner::directToParser( Parser *toParser, const char *tokFileName, int tokLine, 
+               int tokColumn, int type, char *tokdata, int toklen )
+{
+       InputLoc loc;
+
+       #ifdef LOG_TOKENS
+       cerr << "scanner:" << tokLine << ":" << tokColumn << 
+                       ": sending token to the parser " << Parser_lelNames[type];
+       cerr << " " << toklen;
+       if ( tokdata != 0 )
+               cerr << " " << tokdata;
+       cerr << endl;
+       #endif
+
+       loc.fileName = tokFileName;
+       loc.line = tokLine;
+       loc.col = tokColumn;
+
+       toParser->token( loc, type, tokdata, toklen );
+}
+
+void Scanner::importToken( int token, char *start, char *end )
+{
+       if ( cur_token == max_tokens )
+               flushImport();
+
+       token_data[cur_token] = token;
+       if ( start == 0 ) {
+               token_strings[cur_token] = 0;
+               token_lens[cur_token] = 0;
+       }
+       else {
+               int toklen = end-start;
+               token_lens[cur_token] = toklen;
+               token_strings[cur_token] = new char[toklen+1];
+               memcpy( token_strings[cur_token], start, toklen );
+               token_strings[cur_token][toklen] = 0;
+       }
+       cur_token++;
+}
+
+void Scanner::pass( int token, char *start, char *end )
+{
+       if ( importMachines )
+               importToken( token, start, end );
+       pass();
+}
+
+void Scanner::pass()
+{
+       updateCol();
+
+       /* If no errors and we are at the bottom of the include stack (the
+        * source file listed on the command line) then write out the data. */
+       if ( includeDepth == 0 && machineSpec == 0 && machineName == 0 )
+               id.inputItems.tail->data.write( ts, te-ts );
+}
+
+/*
+ * The scanner for processing sections, includes, imports, etc.
+ */
+
+
+#line 320 "rlscan.cpp"
+static const int section_parse_start = 10;
+static const int section_parse_first_final = 10;
+static const int section_parse_error = 0;
+
+static const int section_parse_en_main = 10;
+
+
+#line 217 "rlscan.rl"
+
+
+
+void Scanner::init( )
+{
+       
+#line 335 "rlscan.cpp"
+       {
+       cs = section_parse_start;
+       }
+
+#line 223 "rlscan.rl"
+}
+
+bool Scanner::active()
+{
+       if ( ignoreSection )
+               return false;
+
+       if ( parser == 0 && ! parserExistsError ) {
+               scan_error() << "this specification has no name, nor does any previous"
+                       " specification" << endl;
+               parserExistsError = true;
+       }
+
+       if ( parser == 0 )
+               return false;
+
+       return true;
+}
+
+ostream &Scanner::scan_error()
+{
+       /* Maintain the error count. */
+       gblErrorCount += 1;
+       cerr << makeInputLoc( fileName, line, column ) << ": ";
+       return cerr;
+}
+
+/* An approximate check for duplicate includes. Due to aliasing of files it's
+ * possible for duplicates to creep in. */
+bool Scanner::duplicateInclude( char *inclFileName, char *inclSectionName )
+{
+       for ( IncludeHistory::Iter hi = parser->includeHistory; hi.lte(); hi++ ) {
+               if ( strcmp( hi->fileName, inclFileName ) == 0 &&
+                               strcmp( hi->sectionName, inclSectionName ) == 0 )
+               {
+                       return true;
+               }
+       }
+       return false;   
+}
+
+void Scanner::updateCol()
+{
+       char *from = lastnl;
+       if ( from == 0 )
+               from = ts;
+       //cerr << "adding " << te - from << " to column" << endl;
+       column += te - from;
+       lastnl = 0;
+}
+
+void Scanner::handleMachine()
+{
+       /* Assign a name to the machine. */
+       char *machine = word;
+
+       if ( !importMachines && inclSectionTarg == 0 ) {
+               ignoreSection = false;
+
+               ParserDictEl *pdEl = id.parserDict.find( machine );
+               if ( pdEl == 0 ) {
+                       pdEl = new ParserDictEl( machine );
+                       pdEl->value = new Parser( fileName, machine, sectionLoc );
+                       pdEl->value->init();
+                       id.parserDict.insert( pdEl );
+                       id.parserList.append( pdEl->value );
+               }
+
+               parser = pdEl->value;
+       }
+       else if ( !importMachines && strcmp( inclSectionTarg, machine ) == 0 ) {
+               /* found include target */
+               ignoreSection = false;
+               parser = inclToParser;
+       }
+       else {
+               /* ignoring section */
+               ignoreSection = true;
+               parser = 0;
+       }
+}
+
+void Scanner::handleInclude()
+{
+       if ( active() ) {
+               char *inclSectionName = word;
+               char **includeChecks = 0;
+
+               /* Implement defaults for the input file and section name. */
+               if ( inclSectionName == 0 )
+                       inclSectionName = parser->sectionName;
+
+               if ( lit != 0 )
+                       includeChecks = makeIncludePathChecks( fileName, lit, lit_len );
+               else {
+                       char *test = new char[strlen(fileName)+1];
+                       strcpy( test, fileName );
+
+                       includeChecks = new char*[2];
+
+                       includeChecks[0] = test;
+                       includeChecks[1] = 0;
+               }
+
+               long found = 0;
+               ifstream *inFile = tryOpenInclude( includeChecks, found );
+               if ( inFile == 0 ) {
+                       scan_error() << "include: failed to locate file" << endl;
+                       char **tried = includeChecks;
+                       while ( *tried != 0 )
+                               scan_error() << "include: attempted: \"" << *tried++ << '\"' << endl;
+               }
+               else {
+                       /* Don't include anything that's already been included. */
+                       if ( !duplicateInclude( includeChecks[found], inclSectionName ) ) {
+                               parser->includeHistory.append( IncludeHistoryItem( 
+                                               includeChecks[found], inclSectionName ) );
+
+                               Scanner scanner( id, includeChecks[found], *inFile, parser,
+                                               inclSectionName, includeDepth+1, false );
+                               scanner.do_scan( );
+                               delete inFile;
+                       }
+               }
+       }
+}
+
+void Scanner::handleImport()
+{
+       if ( active() ) {
+               char **importChecks = makeIncludePathChecks( fileName, lit, lit_len );
+
+               /* Open the input file for reading. */
+               long found = 0;
+               ifstream *inFile = tryOpenInclude( importChecks, found );
+               if ( inFile == 0 ) {
+                       scan_error() << "import: could not open import file " <<
+                                       "for reading" << endl;
+                       char **tried = importChecks;
+                       while ( *tried != 0 )
+                               scan_error() << "import: attempted: \"" << *tried++ << '\"' << endl;
+               }
+
+               Scanner scanner( id, importChecks[found], *inFile, parser,
+                               0, includeDepth+1, true );
+               scanner.do_scan( );
+               scanner.importToken( 0, 0, 0 );
+               scanner.flushImport();
+               delete inFile;
+       }
+}
+
+
+#line 460 "rlscan.rl"
+
+
+void Scanner::token( int type, char c )
+{
+       token( type, &c, &c + 1 );
+}
+
+void Scanner::token( int type )
+{
+       token( type, 0, 0 );
+}
+
+void Scanner::token( int type, char *start, char *end )
+{
+       char *tokdata = 0;
+       int toklen = 0;
+       if ( start != 0 ) {
+               toklen = end-start;
+               tokdata = new char[toklen+1];
+               memcpy( tokdata, start, toklen );
+               tokdata[toklen] = 0;
+       }
+
+       processToken( type, tokdata, toklen );
+}
+
+void Scanner::processToken( int type, char *tokdata, int toklen )
+{
+       int *p, *pe, *eof;
+
+       if ( type < 0 )
+               p = pe = eof = 0;
+       else {
+               p = &type;
+               pe = &type + 1;
+               eof = 0;
+       }
+
+       
+#line 534 "rlscan.cpp"
+       {
+       if ( p == pe )
+               goto _test_eof;
+       switch ( cs )
+       {
+tr2:
+#line 390 "rlscan.rl"
+       { handleMachine(); }
+       goto st10;
+tr6:
+#line 391 "rlscan.rl"
+       { handleInclude(); }
+       goto st10;
+tr10:
+#line 392 "rlscan.rl"
+       { handleImport(); }
+       goto st10;
+tr13:
+#line 432 "rlscan.rl"
+       {
+               if ( active() && machineSpec == 0 && machineName == 0 )
+                       id.inputItems.tail->writeArgs.append( 0 );
+       }
+       goto st10;
+tr14:
+#line 443 "rlscan.rl"
+       {
+               /* Send the token off to the parser. */
+               if ( active() )
+                       directToParser( parser, fileName, line, column, type, tokdata, toklen );
+       }
+       goto st10;
+st10:
+       if ( ++p == pe )
+               goto _test_eof10;
+case 10:
+#line 571 "rlscan.cpp"
+       switch( (*p) ) {
+               case 191: goto st1;
+               case 192: goto st3;
+               case 193: goto st6;
+               case 194: goto tr18;
+       }
+       goto tr14;
+st1:
+       if ( ++p == pe )
+               goto _test_eof1;
+case 1:
+       if ( (*p) == 128 )
+               goto tr1;
+       goto tr0;
+tr0:
+#line 385 "rlscan.rl"
+       { scan_error() << "bad machine statement" << endl; }
+       goto st0;
+tr3:
+#line 386 "rlscan.rl"
+       { scan_error() << "bad include statement" << endl; }
+       goto st0;
+tr8:
+#line 387 "rlscan.rl"
+       { scan_error() << "bad import statement" << endl; }
+       goto st0;
+tr11:
+#line 388 "rlscan.rl"
+       { scan_error() << "bad write statement" << endl; }
+       goto st0;
+#line 602 "rlscan.cpp"
+st0:
+cs = 0;
+       goto _out;
+tr1:
+#line 382 "rlscan.rl"
+       { word = tokdata; word_len = toklen; }
+       goto st2;
+st2:
+       if ( ++p == pe )
+               goto _test_eof2;
+case 2:
+#line 614 "rlscan.cpp"
+       if ( (*p) == 59 )
+               goto tr2;
+       goto tr0;
+st3:
+       if ( ++p == pe )
+               goto _test_eof3;
+case 3:
+       switch( (*p) ) {
+               case 128: goto tr4;
+               case 129: goto tr5;
+       }
+       goto tr3;
+tr4:
+#line 381 "rlscan.rl"
+       { word = lit = 0; word_len = lit_len = 0; }
+#line 382 "rlscan.rl"
+       { word = tokdata; word_len = toklen; }
+       goto st4;
+st4:
+       if ( ++p == pe )
+               goto _test_eof4;
+case 4:
+#line 637 "rlscan.cpp"
+       switch( (*p) ) {
+               case 59: goto tr6;
+               case 129: goto tr7;
+       }
+       goto tr3;
+tr5:
+#line 381 "rlscan.rl"
+       { word = lit = 0; word_len = lit_len = 0; }
+#line 383 "rlscan.rl"
+       { lit = tokdata; lit_len = toklen; }
+       goto st5;
+tr7:
+#line 383 "rlscan.rl"
+       { lit = tokdata; lit_len = toklen; }
+       goto st5;
+st5:
+       if ( ++p == pe )
+               goto _test_eof5;
+case 5:
+#line 657 "rlscan.cpp"
+       if ( (*p) == 59 )
+               goto tr6;
+       goto tr3;
+st6:
+       if ( ++p == pe )
+               goto _test_eof6;
+case 6:
+       if ( (*p) == 129 )
+               goto tr9;
+       goto tr8;
+tr9:
+#line 383 "rlscan.rl"
+       { lit = tokdata; lit_len = toklen; }
+       goto st7;
+st7:
+       if ( ++p == pe )
+               goto _test_eof7;
+case 7:
+#line 676 "rlscan.cpp"
+       if ( (*p) == 59 )
+               goto tr10;
+       goto tr8;
+tr18:
+#line 412 "rlscan.rl"
+       {
+               if ( active() && machineSpec == 0 && machineName == 0 ) {
+                       InputItem *inputItem = new InputItem;
+                       inputItem->type = InputItem::Write;
+                       inputItem->loc.fileName = fileName;
+                       inputItem->loc.line = line;
+                       inputItem->loc.col = column;
+                       inputItem->name = parser->sectionName;
+                       inputItem->pd = parser->pd;
+                       id.inputItems.append( inputItem );
+               }
+       }
+       goto st8;
+st8:
+       if ( ++p == pe )
+               goto _test_eof8;
+case 8:
+#line 699 "rlscan.cpp"
+       if ( (*p) == 128 )
+               goto tr12;
+       goto tr11;
+tr12:
+#line 426 "rlscan.rl"
+       {
+               if ( active() && machineSpec == 0 && machineName == 0 )
+                       id.inputItems.tail->writeArgs.append( strdup(tokdata) );
+       }
+       goto st9;
+st9:
+       if ( ++p == pe )
+               goto _test_eof9;
+case 9:
+#line 714 "rlscan.cpp"
+       switch( (*p) ) {
+               case 59: goto tr13;
+               case 128: goto tr12;
+       }
+       goto tr11;
+       }
+       _test_eof10: cs = 10; goto _test_eof; 
+       _test_eof1: cs = 1; goto _test_eof; 
+       _test_eof2: cs = 2; goto _test_eof; 
+       _test_eof3: cs = 3; goto _test_eof; 
+       _test_eof4: cs = 4; goto _test_eof; 
+       _test_eof5: cs = 5; goto _test_eof; 
+       _test_eof6: cs = 6; goto _test_eof; 
+       _test_eof7: cs = 7; goto _test_eof; 
+       _test_eof8: cs = 8; goto _test_eof; 
+       _test_eof9: cs = 9; goto _test_eof; 
+
+       _test_eof: {}
+       if ( p == eof )
+       {
+       switch ( cs ) {
+       case 1: 
+       case 2: 
+#line 385 "rlscan.rl"
+       { scan_error() << "bad machine statement" << endl; }
+       break;
+       case 3: 
+       case 4: 
+       case 5: 
+#line 386 "rlscan.rl"
+       { scan_error() << "bad include statement" << endl; }
+       break;
+       case 6: 
+       case 7: 
+#line 387 "rlscan.rl"
+       { scan_error() << "bad import statement" << endl; }
+       break;
+       case 8: 
+       case 9: 
+#line 388 "rlscan.rl"
+       { scan_error() << "bad write statement" << endl; }
+       break;
+#line 757 "rlscan.cpp"
+       }
+       }
+
+       _out: {}
+       }
+
+#line 501 "rlscan.rl"
+
+
+       updateCol();
+
+       /* Record the last token for use in controlling the scan of subsequent
+        * tokens. */
+       lastToken = type;
+}
+
+void Scanner::startSection( )
+{
+       parserExistsError = false;
+
+       sectionLoc.fileName = fileName;
+       sectionLoc.line = line;
+       sectionLoc.col = column;
+}
+
+void Scanner::endSection( )
+{
+       /* Execute the eof actions for the section parser. */
+       processToken( -1, 0, 0 );
+
+       /* Close off the section with the parser. */
+       if ( active() ) {
+               InputLoc loc;
+               loc.fileName = fileName;
+               loc.line = line;
+               loc.col = column;
+
+               parser->token( loc, TK_EndSection, 0, 0 );
+       }
+
+       if ( includeDepth == 0 ) {
+               if ( machineSpec == 0 && machineName == 0 ) {
+                       /* The end section may include a newline on the end, so
+                        * we use the last line, which will count the newline. */
+                       InputItem *inputItem = new InputItem;
+                       inputItem->type = InputItem::HostData;
+                       inputItem->loc.line = line;
+                       inputItem->loc.col = column;
+                       id.inputItems.append( inputItem );
+               }
+       }
+}
+
+bool isAbsolutePath( const char *path )
+{
+#ifdef _WIN32
+       return isalpha( path[0] ) && path[1] == ':' && path[2] == '\\';
+#else
+       return path[0] == '/';
+#endif
+}
+
+char **Scanner::makeIncludePathChecks( const char *thisFileName, 
+               const char *fileName, int fnlen )
+{
+       char **checks = 0;
+       long nextCheck = 0;
+       long length = 0;
+       bool caseInsensitive = false;
+       char *data = prepareLitString( InputLoc(), fileName, fnlen, 
+                       length, caseInsensitive );
+
+       /* Absolute path? */
+       if ( isAbsolutePath( data ) ) {
+               checks = new char*[2];
+               checks[nextCheck++] = data;
+       }
+       else {
+               checks = new char*[2 + id.includePaths.length()];
+
+               /* Search from the the location of the current file. */
+               const char *lastSlash = strrchr( thisFileName, PATH_SEP );
+               if ( lastSlash == 0 )
+                       checks[nextCheck++] = data;
+               else {
+                       long givenPathLen = (lastSlash - thisFileName) + 1;
+                       long checklen = givenPathLen + length;
+                       char *check = new char[checklen+1];
+                       memcpy( check, thisFileName, givenPathLen );
+                       memcpy( check+givenPathLen, data, length );
+                       check[checklen] = 0;
+                       checks[nextCheck++] = check;
+               }
+
+               /* Search from the include paths given on the command line. */
+               for ( ArgsVector::Iter incp = id.includePaths; incp.lte(); incp++ ) {
+                       long pathLen = strlen( *incp );
+                       long checkLen = pathLen + 1 + length;
+                       char *check = new char[checkLen+1];
+                       memcpy( check, *incp, pathLen );
+                       check[pathLen] = PATH_SEP;
+                       memcpy( check+pathLen+1, data, length );
+                       check[checkLen] = 0;
+                       checks[nextCheck++] = check;
+               }
+       }
+
+       checks[nextCheck] = 0;
+       return checks;
+}
+
+ifstream *Scanner::tryOpenInclude( char **pathChecks, long &found )
+{
+       char **check = pathChecks;
+       ifstream *inFile = new ifstream;
+       
+       while ( *check != 0 ) {
+               inFile->open( *check );
+               if ( inFile->is_open() ) {
+                       found = check - pathChecks;
+                       return inFile;
+               }
+               check += 1;
+       }
+
+       found = -1;
+       delete inFile;
+       return 0;
+}
+
+
+#line 1162 "rlscan.rl"
+
+
+
+#line 893 "rlscan.cpp"
+static const int rlscan_start = 38;
+static const int rlscan_first_final = 38;
+static const int rlscan_error = 0;
+
+static const int rlscan_en_inline_code_ruby = 52;
+static const int rlscan_en_inline_code = 95;
+static const int rlscan_en_or_literal = 137;
+static const int rlscan_en_ragel_re_literal = 139;
+static const int rlscan_en_write_statement = 143;
+static const int rlscan_en_parser_def = 146;
+static const int rlscan_en_main_ruby = 253;
+static const int rlscan_en_main = 38;
+
+
+#line 1165 "rlscan.rl"
+
+void Scanner::do_scan()
+{
+       int bufsize = 8;
+       char *buf = new char[bufsize];
+       int cs, act, have = 0;
+       int top;
+
+       /* The stack is two deep, one level for going into ragel defs from the main
+        * machines which process outside code, and another for going into or literals
+        * from either a ragel spec, or a regular expression. */
+       int stack[2];
+       int curly_count = 0;
+       bool execute = true;
+       bool singleLineSpec = false;
+       InlineBlockType inlineBlockType = CurlyDelimited;
+
+       /* Init the section parser and the character scanner. */
+       init();
+       
+#line 929 "rlscan.cpp"
+       {
+       cs = rlscan_start;
+       top = 0;
+       ts = 0;
+       te = 0;
+       act = 0;
+       }
+
+#line 1185 "rlscan.rl"
+
+       /* Set up the start state. FIXME: After 5.20 is released the nocs write
+        * init option should be used, the main machine eliminated and this statement moved
+        * above the write init. */
+       if ( hostLang->lang == HostLang::Ruby )
+               cs = rlscan_en_main_ruby;
+       else
+               cs = rlscan_en_main;
+       
+       while ( execute ) {
+               char *p = buf + have;
+               int space = bufsize - have;
+
+               if ( space == 0 ) {
+                       /* We filled up the buffer trying to scan a token. Grow it. */
+                       bufsize = bufsize * 2;
+                       char *newbuf = new char[bufsize];
+
+                       /* Recompute p and space. */
+                       p = newbuf + have;
+                       space = bufsize - have;
+
+                       /* Patch up pointers possibly in use. */
+                       if ( ts != 0 )
+                               ts = newbuf + ( ts - buf );
+                       te = newbuf + ( te - buf );
+
+                       /* Copy the new buffer in. */
+                       memcpy( newbuf, buf, have );
+                       delete[] buf;
+                       buf = newbuf;
+               }
+
+               input.read( p, space );
+               int len = input.gcount();
+               char *pe = p + len;
+
+               /* If we see eof then append the eof var. */
+               char *eof = 0;
+               if ( len == 0 ) {
+                       eof = pe;
+                       execute = false;
+               }
+
+               
+#line 984 "rlscan.cpp"
+       {
+       if ( p == pe )
+               goto _test_eof;
+       goto _resume;
+
+_again:
+       switch ( cs ) {
+               case 38: goto st38;
+               case 39: goto st39;
+               case 40: goto st40;
+               case 1: goto st1;
+               case 2: goto st2;
+               case 41: goto st41;
+               case 42: goto st42;
+               case 43: goto st43;
+               case 3: goto st3;
+               case 4: goto st4;
+               case 44: goto st44;
+               case 5: goto st5;
+               case 6: goto st6;
+               case 7: goto st7;
+               case 45: goto st45;
+               case 46: goto st46;
+               case 47: goto st47;
+               case 48: goto st48;
+               case 49: goto st49;
+               case 50: goto st50;
+               case 51: goto st51;
+               case 52: goto st52;
+               case 53: goto st53;
+               case 54: goto st54;
+               case 8: goto st8;
+               case 9: goto st9;
+               case 55: goto st55;
+               case 10: goto st10;
+               case 56: goto st56;
+               case 11: goto st11;
+               case 12: goto st12;
+               case 57: goto st57;
+               case 13: goto st13;
+               case 14: goto st14;
+               case 58: goto st58;
+               case 59: goto st59;
+               case 15: goto st15;
+               case 60: goto st60;
+               case 61: goto st61;
+               case 62: goto st62;
+               case 63: goto st63;
+               case 64: goto st64;
+               case 65: goto st65;
+               case 66: goto st66;
+               case 67: goto st67;
+               case 68: goto st68;
+               case 69: goto st69;
+               case 70: goto st70;
+               case 71: goto st71;
+               case 72: goto st72;
+               case 73: goto st73;
+               case 74: goto st74;
+               case 75: goto st75;
+               case 76: goto st76;
+               case 77: goto st77;
+               case 78: goto st78;
+               case 79: goto st79;
+               case 80: goto st80;
+               case 81: goto st81;
+               case 82: goto st82;
+               case 83: goto st83;
+               case 84: goto st84;
+               case 85: goto st85;
+               case 86: goto st86;
+               case 87: goto st87;
+               case 88: goto st88;
+               case 89: goto st89;
+               case 90: goto st90;
+               case 91: goto st91;
+               case 92: goto st92;
+               case 93: goto st93;
+               case 94: goto st94;
+               case 95: goto st95;
+               case 96: goto st96;
+               case 97: goto st97;
+               case 16: goto st16;
+               case 17: goto st17;
+               case 98: goto st98;
+               case 18: goto st18;
+               case 19: goto st19;
+               case 99: goto st99;
+               case 20: goto st20;
+               case 21: goto st21;
+               case 22: goto st22;
+               case 100: goto st100;
+               case 101: goto st101;
+               case 23: goto st23;
+               case 102: goto st102;
+               case 103: goto st103;
+               case 104: goto st104;
+               case 105: goto st105;
+               case 106: goto st106;
+               case 107: goto st107;
+               case 108: goto st108;
+               case 109: goto st109;
+               case 110: goto st110;
+               case 111: goto st111;
+               case 112: goto st112;
+               case 113: goto st113;
+               case 114: goto st114;
+               case 115: goto st115;
+               case 116: goto st116;
+               case 117: goto st117;
+               case 118: goto st118;
+               case 119: goto st119;
+               case 120: goto st120;
+               case 121: goto st121;
+               case 122: goto st122;
+               case 123: goto st123;
+               case 124: goto st124;
+               case 125: goto st125;
+               case 126: goto st126;
+               case 127: goto st127;
+               case 128: goto st128;
+               case 129: goto st129;
+               case 130: goto st130;
+               case 131: goto st131;
+               case 132: goto st132;
+               case 133: goto st133;
+               case 134: goto st134;
+               case 135: goto st135;
+               case 136: goto st136;
+               case 137: goto st137;
+               case 138: goto st138;
+               case 139: goto st139;
+               case 140: goto st140;
+               case 141: goto st141;
+               case 142: goto st142;
+               case 143: goto st143;
+               case 0: goto st0;
+               case 144: goto st144;
+               case 145: goto st145;
+               case 146: goto st146;
+               case 147: goto st147;
+               case 148: goto st148;
+               case 24: goto st24;
+               case 149: goto st149;
+               case 25: goto st25;
+               case 150: goto st150;
+               case 26: goto st26;
+               case 151: goto st151;
+               case 152: goto st152;
+               case 153: goto st153;
+               case 27: goto st27;
+               case 28: goto st28;
+               case 154: goto st154;
+               case 155: goto st155;
+               case 156: goto st156;
+               case 157: goto st157;
+               case 158: goto st158;
+               case 29: goto st29;
+               case 159: goto st159;
+               case 160: goto st160;
+               case 161: goto st161;
+               case 162: goto st162;
+               case 163: goto st163;
+               case 164: goto st164;
+               case 165: goto st165;
+               case 166: goto st166;
+               case 167: goto st167;
+               case 168: goto st168;
+               case 169: goto st169;
+               case 170: goto st170;
+               case 171: goto st171;
+               case 172: goto st172;
+               case 173: goto st173;
+               case 174: goto st174;
+               case 175: goto st175;
+               case 176: goto st176;
+               case 177: goto st177;
+               case 178: goto st178;
+               case 179: goto st179;
+               case 180: goto st180;
+               case 181: goto st181;
+               case 182: goto st182;
+               case 183: goto st183;
+               case 184: goto st184;
+               case 185: goto st185;
+               case 186: goto st186;
+               case 187: goto st187;
+               case 188: goto st188;
+               case 189: goto st189;
+               case 190: goto st190;
+               case 191: goto st191;
+               case 192: goto st192;
+               case 193: goto st193;
+               case 194: goto st194;
+               case 195: goto st195;
+               case 196: goto st196;
+               case 197: goto st197;
+               case 198: goto st198;
+               case 199: goto st199;
+               case 200: goto st200;
+               case 201: goto st201;
+               case 202: goto st202;
+               case 203: goto st203;
+               case 204: goto st204;
+               case 205: goto st205;
+               case 206: goto st206;
+               case 207: goto st207;
+               case 208: goto st208;
+               case 209: goto st209;
+               case 210: goto st210;
+               case 211: goto st211;
+               case 212: goto st212;
+               case 213: goto st213;
+               case 214: goto st214;
+               case 215: goto st215;
+               case 216: goto st216;
+               case 217: goto st217;
+               case 218: goto st218;
+               case 219: goto st219;
+               case 220: goto st220;
+               case 221: goto st221;
+               case 222: goto st222;
+               case 223: goto st223;
+               case 224: goto st224;
+               case 225: goto st225;
+               case 226: goto st226;
+               case 227: goto st227;
+               case 228: goto st228;
+               case 229: goto st229;
+               case 230: goto st230;
+               case 231: goto st231;
+               case 232: goto st232;
+               case 233: goto st233;
+               case 234: goto st234;
+               case 235: goto st235;
+               case 236: goto st236;
+               case 237: goto st237;
+               case 238: goto st238;
+               case 239: goto st239;
+               case 240: goto st240;
+               case 241: goto st241;
+               case 242: goto st242;
+               case 243: goto st243;
+               case 244: goto st244;
+               case 245: goto st245;
+               case 246: goto st246;
+               case 247: goto st247;
+               case 248: goto st248;
+               case 249: goto st249;
+               case 250: goto st250;
+               case 251: goto st251;
+               case 252: goto st252;
+               case 30: goto st30;
+               case 253: goto st253;
+               case 254: goto st254;
+               case 255: goto st255;
+               case 31: goto st31;
+               case 32: goto st32;
+               case 256: goto st256;
+               case 33: goto st33;
+               case 257: goto st257;
+               case 258: goto st258;
+               case 259: goto st259;
+               case 34: goto st34;
+               case 35: goto st35;
+               case 260: goto st260;
+               case 36: goto st36;
+               case 37: goto st37;
+               case 261: goto st261;
+               case 262: goto st262;
+       default: break;
+       }
+
+       if ( ++p == pe )
+               goto _test_eof;
+_resume:
+       switch ( cs )
+       {
+tr0:
+#line 1160 "rlscan.rl"
+       {{p = ((te))-1;}{ pass( *ts, 0, 0 ); }}
+       goto st38;
+tr3:
+#line 1144 "rlscan.rl"
+       {te = p+1;{ pass( IMP_Literal, ts, te ); }}
+       goto st38;
+tr11:
+#line 1143 "rlscan.rl"
+       {te = p+1;{ pass(); }}
+       goto st38;
+tr13:
+#line 630 "rlscan.rl"
+       { 
+               lastnl = p; 
+               column = 0;
+               line++;
+       }
+#line 1143 "rlscan.rl"
+       {te = p+1;{ pass(); }}
+       goto st38;
+tr71:
+#line 1160 "rlscan.rl"
+       {te = p+1;{ pass( *ts, 0, 0 ); }}
+       goto st38;
+tr72:
+#line 1159 "rlscan.rl"
+       {te = p+1;}
+       goto st38;
+tr82:
+#line 1158 "rlscan.rl"
+       {te = p;p--;{ pass(); }}
+       goto st38;
+tr83:
+#line 1160 "rlscan.rl"
+       {te = p;p--;{ pass( *ts, 0, 0 ); }}
+       goto st38;
+tr85:
+#line 1152 "rlscan.rl"
+       {te = p;p--;{ 
+                       updateCol();
+                       singleLineSpec = true;
+                       startSection();
+                       {stack[top++] = 38; goto st146;}
+               }}
+       goto st38;
+tr86:
+#line 1146 "rlscan.rl"
+       {te = p+1;{ 
+                       updateCol();
+                       singleLineSpec = false;
+                       startSection();
+                       {stack[top++] = 38; goto st146;}
+               }}
+       goto st38;
+tr87:
+#line 1142 "rlscan.rl"
+       {te = p;p--;{ pass( IMP_UInt, ts, te ); }}
+       goto st38;
+tr88:
+#line 1 "rlscan.rl"
+       {       switch( act ) {
+       case 176:
+       {{p = ((te))-1;} pass( IMP_Define, 0, 0 ); }
+       break;
+       case 177:
+       {{p = ((te))-1;} pass( IMP_Word, ts, te ); }
+       break;
+       }
+       }
+       goto st38;
+tr89:
+#line 1141 "rlscan.rl"
+       {te = p;p--;{ pass( IMP_Word, ts, te ); }}
+       goto st38;
+st38:
+#line 1 "rlscan.rl"
+       {ts = 0;}
+       if ( ++p == pe )
+               goto _test_eof38;
+case 38:
+#line 1 "rlscan.rl"
+       {ts = p;}
+#line 1347 "rlscan.cpp"
+       switch( (*p) ) {
+               case 0: goto tr72;
+               case 9: goto st39;
+               case 10: goto tr74;
+               case 32: goto st39;
+               case 34: goto tr75;
+               case 37: goto st41;
+               case 39: goto tr77;
+               case 47: goto tr78;
+               case 95: goto tr80;
+               case 100: goto st47;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto st45;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr80;
+       } else
+               goto tr80;
+       goto tr71;
+tr74:
+#line 630 "rlscan.rl"
+       { 
+               lastnl = p; 
+               column = 0;
+               line++;
+       }
+       goto st39;
+st39:
+       if ( ++p == pe )
+               goto _test_eof39;
+case 39:
+#line 1381 "rlscan.cpp"
+       switch( (*p) ) {
+               case 9: goto st39;
+               case 10: goto tr74;
+               case 32: goto st39;
+       }
+       goto tr82;
+tr75:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+       goto st40;
+st40:
+       if ( ++p == pe )
+               goto _test_eof40;
+case 40:
+#line 1396 "rlscan.cpp"
+       switch( (*p) ) {
+               case 10: goto tr2;
+               case 34: goto tr3;
+               case 92: goto st2;
+       }
+       goto st1;
+tr2:
+#line 630 "rlscan.rl"
+       { 
+               lastnl = p; 
+               column = 0;
+               line++;
+       }
+       goto st1;
+st1:
+       if ( ++p == pe )
+               goto _test_eof1;
+case 1:
+#line 1415 "rlscan.cpp"
+       switch( (*p) ) {
+               case 10: goto tr2;
+               case 34: goto tr3;
+               case 92: goto st2;
+       }
+       goto st1;
+st2:
+       if ( ++p == pe )
+               goto _test_eof2;
+case 2:
+       if ( (*p) == 10 )
+               goto tr2;
+       goto st1;
+st41:
+       if ( ++p == pe )
+               goto _test_eof41;
+case 41:
+       if ( (*p) == 37 )
+               goto st42;
+       goto tr83;
+st42:
+       if ( ++p == pe )
+               goto _test_eof42;
+case 42:
+       if ( (*p) == 123 )
+               goto tr86;
+       goto tr85;
+tr77:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+       goto st43;
+st43:
+       if ( ++p == pe )
+               goto _test_eof43;
+case 43:
+#line 1451 "rlscan.cpp"
+       switch( (*p) ) {
+               case 10: goto tr6;
+               case 39: goto tr3;
+               case 92: goto st4;
+       }
+       goto st3;
+tr6:
+#line 630 "rlscan.rl"
+       { 
+               lastnl = p; 
+               column = 0;
+               line++;
+       }
+       goto st3;
+st3:
+       if ( ++p == pe )
+               goto _test_eof3;
+case 3:
+#line 1470 "rlscan.cpp"
+       switch( (*p) ) {
+               case 10: goto tr6;
+               case 39: goto tr3;
+               case 92: goto st4;
+       }
+       goto st3;
+st4:
+       if ( ++p == pe )
+               goto _test_eof4;
+case 4:
+       if ( (*p) == 10 )
+               goto tr6;
+       goto st3;
+tr78:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+       goto st44;
+st44:
+       if ( ++p == pe )
+               goto _test_eof44;
+case 44:
+#line 1492 "rlscan.cpp"
+       switch( (*p) ) {
+               case 42: goto st5;
+               case 47: goto st7;
+       }
+       goto tr83;
+tr9:
+#line 630 "rlscan.rl"
+       { 
+               lastnl = p; 
+               column = 0;
+               line++;
+       }
+       goto st5;
+st5:
+       if ( ++p == pe )
+               goto _test_eof5;
+case 5:
+#line 1510 "rlscan.cpp"
+       switch( (*p) ) {
+               case 10: goto tr9;
+               case 42: goto st6;
+       }
+       goto st5;
+st6:
+       if ( ++p == pe )
+               goto _test_eof6;
+case 6:
+       switch( (*p) ) {
+               case 10: goto tr9;
+               case 42: goto st6;
+               case 47: goto tr11;
+       }
+       goto st5;
+st7:
+       if ( ++p == pe )
+               goto _test_eof7;
+case 7:
+       if ( (*p) == 10 )
+               goto tr13;
+       goto st7;
+st45:
+       if ( ++p == pe )
+               goto _test_eof45;
+case 45:
+       if ( 48 <= (*p) && (*p) <= 57 )
+               goto st45;
+       goto tr87;
+tr80:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+#line 1141 "rlscan.rl"
+       {act = 177;}
+       goto st46;
+tr94:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+#line 1140 "rlscan.rl"
+       {act = 176;}
+       goto st46;
+st46:
+       if ( ++p == pe )
+               goto _test_eof46;
+case 46:
+#line 1556 "rlscan.cpp"
+       if ( (*p) == 95 )
+               goto tr80;
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr80;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr80;
+       } else
+               goto tr80;
+       goto tr88;
+st47:
+       if ( ++p == pe )
+               goto _test_eof47;
+case 47:
+       switch( (*p) ) {
+               case 95: goto tr80;
+               case 101: goto st48;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr80;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr80;
+       } else
+               goto tr80;
+       goto tr89;
+st48:
+       if ( ++p == pe )
+               goto _test_eof48;
+case 48:
+       switch( (*p) ) {
+               case 95: goto tr80;
+               case 102: goto st49;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr80;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr80;
+       } else
+               goto tr80;
+       goto tr89;
+st49:
+       if ( ++p == pe )
+               goto _test_eof49;
+case 49:
+       switch( (*p) ) {
+               case 95: goto tr80;
+               case 105: goto st50;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr80;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr80;
+       } else
+               goto tr80;
+       goto tr89;
+st50:
+       if ( ++p == pe )
+               goto _test_eof50;
+case 50:
+       switch( (*p) ) {
+               case 95: goto tr80;
+               case 110: goto st51;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr80;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr80;
+       } else
+               goto tr80;
+       goto tr89;
+st51:
+       if ( ++p == pe )
+               goto _test_eof51;
+case 51:
+       switch( (*p) ) {
+               case 95: goto tr80;
+               case 101: goto tr94;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr80;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr80;
+       } else
+               goto tr80;
+       goto tr89;
+tr14:
+#line 759 "rlscan.rl"
+       {{p = ((te))-1;}{ token( IL_Symbol, ts, te ); }}
+       goto st52;
+tr17:
+#line 705 "rlscan.rl"
+       {te = p+1;{ token( IL_Literal, ts, te ); }}
+       goto st52;
+tr20:
+#line 630 "rlscan.rl"
+       { 
+               lastnl = p; 
+               column = 0;
+               line++;
+       }
+#line 712 "rlscan.rl"
+       {te = p+1;{ token( IL_Comment, ts, te ); }}
+       goto st52;
+tr27:
+#line 701 "rlscan.rl"
+       {{p = ((te))-1;}{ token( TK_UInt, ts, te ); }}
+       goto st52;
+tr95:
+#line 759 "rlscan.rl"
+       {te = p+1;{ token( IL_Symbol, ts, te ); }}
+       goto st52;
+tr96:
+#line 754 "rlscan.rl"
+       {te = p+1;{
+                       scan_error() << "unterminated code block" << endl;
+               }}
+       goto st52;
+tr102:
+#line 734 "rlscan.rl"
+       {te = p+1;{ token( *ts, ts, te ); }}
+       goto st52;
+tr103:
+#line 729 "rlscan.rl"
+       {te = p+1;{ 
+                       whitespaceOn = true;
+                       token( *ts, ts, te );
+               }}
+       goto st52;
+tr108:
+#line 722 "rlscan.rl"
+       {te = p+1;{
+                       whitespaceOn = true;
+                       token( *ts, ts, te );
+                       if ( inlineBlockType == SemiTerminated )
+                               {cs = stack[--top];goto _again;}
+               }}
+       goto st52;
+tr111:
+#line 736 "rlscan.rl"
+       {te = p+1;{ 
+                       token( IL_Symbol, ts, te );
+                       curly_count += 1; 
+               }}
+       goto st52;
+tr112:
+#line 741 "rlscan.rl"
+       {te = p+1;{ 
+                       if ( --curly_count == 0 && inlineBlockType == CurlyDelimited ) {
+                               /* Inline code block ends. */
+                               token( '}' );
+                               {cs = stack[--top];goto _again;}
+                       }
+                       else {
+                               /* Either a semi terminated inline block or only the closing
+                                * brace of some inner scope, not the block's closing brace. */
+                               token( IL_Symbol, ts, te );
+                       }
+               }}
+       goto st52;
+tr113:
+#line 707 "rlscan.rl"
+       {te = p;p--;{ 
+                       if ( whitespaceOn ) 
+                               token( IL_WhiteSpace, ts, te );
+               }}
+       goto st52;
+tr114:
+#line 759 "rlscan.rl"
+       {te = p;p--;{ token( IL_Symbol, ts, te ); }}
+       goto st52;
+tr115:
+#line 701 "rlscan.rl"
+       {te = p;p--;{ token( TK_UInt, ts, te ); }}
+       goto st52;
+tr117:
+#line 702 "rlscan.rl"
+       {te = p;p--;{ token( TK_Hex, ts, te ); }}
+       goto st52;
+tr118:
+#line 714 "rlscan.rl"
+       {te = p+1;{ token( TK_NameSep, ts, te ); }}
+       goto st52;
+tr119:
+#line 1 "rlscan.rl"
+       {       switch( act ) {
+       case 1:
+       {{p = ((te))-1;} token( KW_PChar ); }
+       break;
+       case 3:
+       {{p = ((te))-1;} token( KW_CurState ); }
+       break;
+       case 4:
+       {{p = ((te))-1;} token( KW_TargState ); }
+       break;
+       case 5:
+       {{p = ((te))-1;} 
+                       whitespaceOn = false; 
+                       token( KW_Entry );
+               }
+       break;
+       case 6:
+       {{p = ((te))-1;} 
+                       whitespaceOn = false; 
+                       token( KW_Hold );
+               }
+       break;
+       case 7:
+       {{p = ((te))-1;} token( KW_Exec, 0, 0 ); }
+       break;
+       case 8:
+       {{p = ((te))-1;} 
+                       whitespaceOn = false; 
+                       token( KW_Goto );
+               }
+       break;
+       case 9:
+       {{p = ((te))-1;} 
+                       whitespaceOn = false; 
+                       token( KW_Next );
+               }
+       break;
+       case 10:
+       {{p = ((te))-1;} 
+                       whitespaceOn = false; 
+                       token( KW_Call );
+               }
+       break;
+       case 11:
+       {{p = ((te))-1;} 
+                       whitespaceOn = false; 
+                       token( KW_Ret );
+               }
+       break;
+       case 12:
+       {{p = ((te))-1;} 
+                       whitespaceOn = false; 
+                       token( KW_Break );
+               }
+       break;
+       case 13:
+       {{p = ((te))-1;} token( TK_Word, ts, te ); }
+       break;
+       }
+       }
+       goto st52;
+tr120:
+#line 699 "rlscan.rl"
+       {te = p;p--;{ token( TK_Word, ts, te ); }}
+       goto st52;
+tr134:
+#line 664 "rlscan.rl"
+       {te = p;p--;{ token( KW_Char ); }}
+       goto st52;
+st52:
+#line 1 "rlscan.rl"
+       {ts = 0;}
+       if ( ++p == pe )
+               goto _test_eof52;
+case 52:
+#line 1 "rlscan.rl"
+       {ts = p;}
+#line 1829 "rlscan.cpp"
+       switch( (*p) ) {
+               case 0: goto tr96;
+               case 9: goto st53;
+               case 10: goto tr98;
+               case 32: goto st53;
+               case 34: goto tr99;
+               case 35: goto tr100;
+               case 39: goto tr101;
+               case 40: goto tr102;
+               case 44: goto tr102;
+               case 47: goto tr104;
+               case 48: goto tr105;
+               case 58: goto st61;
+               case 59: goto tr108;
+               case 95: goto tr109;
+               case 102: goto st63;
+               case 123: goto tr111;
+               case 125: goto tr112;
+       }
+       if ( (*p) < 49 ) {
+               if ( 41 <= (*p) && (*p) <= 42 )
+                       goto tr103;
+       } else if ( (*p) > 57 ) {
+               if ( (*p) > 90 ) {
+                       if ( 97 <= (*p) && (*p) <= 122 )
+                               goto tr109;
+               } else if ( (*p) >= 65 )
+                       goto tr109;
+       } else
+               goto st59;
+       goto tr95;
+tr98:
+#line 630 "rlscan.rl"
+       { 
+               lastnl = p; 
+               column = 0;
+               line++;
+       }
+       goto st53;
+st53:
+       if ( ++p == pe )
+               goto _test_eof53;
+case 53:
+#line 1873 "rlscan.cpp"
+       switch( (*p) ) {
+               case 9: goto st53;
+               case 10: goto tr98;
+               case 32: goto st53;
+       }
+       goto tr113;
+tr99:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+       goto st54;
+st54:
+       if ( ++p == pe )
+               goto _test_eof54;
+case 54:
+#line 1888 "rlscan.cpp"
+       switch( (*p) ) {
+               case 10: goto tr16;
+               case 34: goto tr17;
+               case 92: goto st9;
+       }
+       goto st8;
+tr16:
+#line 630 "rlscan.rl"
+       { 
+               lastnl = p; 
+               column = 0;
+               line++;
+       }
+       goto st8;
+st8:
+       if ( ++p == pe )
+               goto _test_eof8;
+case 8:
+#line 1907 "rlscan.cpp"
+       switch( (*p) ) {
+               case 10: goto tr16;
+               case 34: goto tr17;
+               case 92: goto st9;
+       }
+       goto st8;
+st9:
+       if ( ++p == pe )
+               goto _test_eof9;
+case 9:
+       if ( (*p) == 10 )
+               goto tr16;
+       goto st8;
+tr100:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+       goto st55;
+st55:
+       if ( ++p == pe )
+               goto _test_eof55;
+case 55:
+#line 1929 "rlscan.cpp"
+       if ( (*p) == 10 )
+               goto tr20;
+       goto st10;
+st10:
+       if ( ++p == pe )
+               goto _test_eof10;
+case 10:
+       if ( (*p) == 10 )
+               goto tr20;
+       goto st10;
+tr101:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+       goto st56;
+st56:
+       if ( ++p == pe )
+               goto _test_eof56;
+case 56:
+#line 1948 "rlscan.cpp"
+       switch( (*p) ) {
+               case 10: goto tr22;
+               case 39: goto tr17;
+               case 92: goto st12;
+       }
+       goto st11;
+tr22:
+#line 630 "rlscan.rl"
+       { 
+               lastnl = p; 
+               column = 0;
+               line++;
+       }
+       goto st11;
+st11:
+       if ( ++p == pe )
+               goto _test_eof11;
+case 11:
+#line 1967 "rlscan.cpp"
+       switch( (*p) ) {
+               case 10: goto tr22;
+               case 39: goto tr17;
+               case 92: goto st12;
+       }
+       goto st11;
+st12:
+       if ( ++p == pe )
+               goto _test_eof12;
+case 12:
+       if ( (*p) == 10 )
+               goto tr22;
+       goto st11;
+tr104:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+       goto st57;
+st57:
+       if ( ++p == pe )
+               goto _test_eof57;
+case 57:
+#line 1989 "rlscan.cpp"
+       switch( (*p) ) {
+               case 10: goto tr25;
+               case 47: goto tr17;
+               case 92: goto st14;
+       }
+       goto st13;
+tr25:
+#line 630 "rlscan.rl"
+       { 
+               lastnl = p; 
+               column = 0;
+               line++;
+       }
+       goto st13;
+st13:
+       if ( ++p == pe )
+               goto _test_eof13;
+case 13:
+#line 2008 "rlscan.cpp"
+       switch( (*p) ) {
+               case 10: goto tr25;
+               case 47: goto tr17;
+               case 92: goto st14;
+       }
+       goto st13;
+st14:
+       if ( ++p == pe )
+               goto _test_eof14;
+case 14:
+       if ( (*p) == 10 )
+               goto tr25;
+       goto st13;
+tr105:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+       goto st58;
+st58:
+       if ( ++p == pe )
+               goto _test_eof58;
+case 58:
+#line 2030 "rlscan.cpp"
+       if ( (*p) == 120 )
+               goto st15;
+       if ( 48 <= (*p) && (*p) <= 57 )
+               goto st59;
+       goto tr115;
+st59:
+       if ( ++p == pe )
+               goto _test_eof59;
+case 59:
+       if ( 48 <= (*p) && (*p) <= 57 )
+               goto st59;
+       goto tr115;
+st15:
+       if ( ++p == pe )
+               goto _test_eof15;
+case 15:
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto st60;
+       } else if ( (*p) > 70 ) {
+               if ( 97 <= (*p) && (*p) <= 102 )
+                       goto st60;
+       } else
+               goto st60;
+       goto tr27;
+st60:
+       if ( ++p == pe )
+               goto _test_eof60;
+case 60:
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto st60;
+       } else if ( (*p) > 70 ) {
+               if ( 97 <= (*p) && (*p) <= 102 )
+                       goto st60;
+       } else
+               goto st60;
+       goto tr117;
+st61:
+       if ( ++p == pe )
+               goto _test_eof61;
+case 61:
+       if ( (*p) == 58 )
+               goto tr118;
+       goto tr114;
+tr109:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+#line 699 "rlscan.rl"
+       {act = 13;}
+       goto st62;
+tr133:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+#line 694 "rlscan.rl"
+       {act = 12;}
+       goto st62;
+tr138:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+#line 686 "rlscan.rl"
+       {act = 10;}
+       goto st62;
+tr140:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+#line 665 "rlscan.rl"
+       {act = 3;}
+       goto st62;
+tr145:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+#line 667 "rlscan.rl"
+       {act = 5;}
+       goto st62;
+tr147:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+#line 677 "rlscan.rl"
+       {act = 7;}
+       goto st62;
+tr150:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+#line 678 "rlscan.rl"
+       {act = 8;}
+       goto st62;
+tr153:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+#line 673 "rlscan.rl"
+       {act = 6;}
+       goto st62;
+tr156:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+#line 682 "rlscan.rl"
+       {act = 9;}
+       goto st62;
+tr157:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+#line 663 "rlscan.rl"
+       {act = 1;}
+       goto st62;
+tr159:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+#line 690 "rlscan.rl"
+       {act = 11;}
+       goto st62;
+tr163:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+#line 666 "rlscan.rl"
+       {act = 4;}
+       goto st62;
+st62:
+       if ( ++p == pe )
+               goto _test_eof62;
+case 62:
+#line 2152 "rlscan.cpp"
+       if ( (*p) == 95 )
+               goto tr109;
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr109;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr109;
+       } else
+               goto tr109;
+       goto tr119;
+st63:
+       if ( ++p == pe )
+               goto _test_eof63;
+case 63:
+       switch( (*p) ) {
+               case 95: goto tr109;
+               case 98: goto st64;
+               case 99: goto st68;
+               case 101: goto st73;
+               case 103: goto st79;
+               case 104: goto st82;
+               case 110: goto st85;
+               case 112: goto st88;
+               case 114: goto st89;
+               case 116: goto st91;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr109;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr109;
+       } else
+               goto tr109;
+       goto tr120;
+st64:
+       if ( ++p == pe )
+               goto _test_eof64;
+case 64:
+       switch( (*p) ) {
+               case 95: goto tr109;
+               case 114: goto st65;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr109;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr109;
+       } else
+               goto tr109;
+       goto tr120;
+st65:
+       if ( ++p == pe )
+               goto _test_eof65;
+case 65:
+       switch( (*p) ) {
+               case 95: goto tr109;
+               case 101: goto st66;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr109;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr109;
+       } else
+               goto tr109;
+       goto tr120;
+st66:
+       if ( ++p == pe )
+               goto _test_eof66;
+case 66:
+       switch( (*p) ) {
+               case 95: goto tr109;
+               case 97: goto st67;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr109;
+       } else if ( (*p) > 90 ) {
+               if ( 98 <= (*p) && (*p) <= 122 )
+                       goto tr109;
+       } else
+               goto tr109;
+       goto tr120;
+st67:
+       if ( ++p == pe )
+               goto _test_eof67;
+case 67:
+       switch( (*p) ) {
+               case 95: goto tr109;
+               case 107: goto tr133;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr109;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr109;
+       } else
+               goto tr109;
+       goto tr120;
+st68:
+       if ( ++p == pe )
+               goto _test_eof68;
+case 68:
+       switch( (*p) ) {
+               case 95: goto tr109;
+               case 97: goto st69;
+               case 117: goto st71;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr109;
+       } else if ( (*p) > 90 ) {
+               if ( 98 <= (*p) && (*p) <= 122 )
+                       goto tr109;
+       } else
+               goto tr109;
+       goto tr134;
+st69:
+       if ( ++p == pe )
+               goto _test_eof69;
+case 69:
+       switch( (*p) ) {
+               case 95: goto tr109;
+               case 108: goto st70;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr109;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr109;
+       } else
+               goto tr109;
+       goto tr120;
+st70:
+       if ( ++p == pe )
+               goto _test_eof70;
+case 70:
+       switch( (*p) ) {
+               case 95: goto tr109;
+               case 108: goto tr138;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr109;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr109;
+       } else
+               goto tr109;
+       goto tr120;
+st71:
+       if ( ++p == pe )
+               goto _test_eof71;
+case 71:
+       switch( (*p) ) {
+               case 95: goto tr109;
+               case 114: goto st72;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr109;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr109;
+       } else
+               goto tr109;
+       goto tr120;
+st72:
+       if ( ++p == pe )
+               goto _test_eof72;
+case 72:
+       switch( (*p) ) {
+               case 95: goto tr109;
+               case 115: goto tr140;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr109;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr109;
+       } else
+               goto tr109;
+       goto tr120;
+st73:
+       if ( ++p == pe )
+               goto _test_eof73;
+case 73:
+       switch( (*p) ) {
+               case 95: goto tr109;
+               case 110: goto st74;
+               case 120: goto st77;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr109;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr109;
+       } else
+               goto tr109;
+       goto tr120;
+st74:
+       if ( ++p == pe )
+               goto _test_eof74;
+case 74:
+       switch( (*p) ) {
+               case 95: goto tr109;
+               case 116: goto st75;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr109;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr109;
+       } else
+               goto tr109;
+       goto tr120;
+st75:
+       if ( ++p == pe )
+               goto _test_eof75;
+case 75:
+       switch( (*p) ) {
+               case 95: goto tr109;
+               case 114: goto st76;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr109;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr109;
+       } else
+               goto tr109;
+       goto tr120;
+st76:
+       if ( ++p == pe )
+               goto _test_eof76;
+case 76:
+       switch( (*p) ) {
+               case 95: goto tr109;
+               case 121: goto tr145;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr109;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr109;
+       } else
+               goto tr109;
+       goto tr120;
+st77:
+       if ( ++p == pe )
+               goto _test_eof77;
+case 77:
+       switch( (*p) ) {
+               case 95: goto tr109;
+               case 101: goto st78;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr109;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr109;
+       } else
+               goto tr109;
+       goto tr120;
+st78:
+       if ( ++p == pe )
+               goto _test_eof78;
+case 78:
+       switch( (*p) ) {
+               case 95: goto tr109;
+               case 99: goto tr147;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr109;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr109;
+       } else
+               goto tr109;
+       goto tr120;
+st79:
+       if ( ++p == pe )
+               goto _test_eof79;
+case 79:
+       switch( (*p) ) {
+               case 95: goto tr109;
+               case 111: goto st80;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr109;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr109;
+       } else
+               goto tr109;
+       goto tr120;
+st80:
+       if ( ++p == pe )
+               goto _test_eof80;
+case 80:
+       switch( (*p) ) {
+               case 95: goto tr109;
+               case 116: goto st81;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr109;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr109;
+       } else
+               goto tr109;
+       goto tr120;
+st81:
+       if ( ++p == pe )
+               goto _test_eof81;
+case 81:
+       switch( (*p) ) {
+               case 95: goto tr109;
+               case 111: goto tr150;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr109;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr109;
+       } else
+               goto tr109;
+       goto tr120;
+st82:
+       if ( ++p == pe )
+               goto _test_eof82;
+case 82:
+       switch( (*p) ) {
+               case 95: goto tr109;
+               case 111: goto st83;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr109;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr109;
+       } else
+               goto tr109;
+       goto tr120;
+st83:
+       if ( ++p == pe )
+               goto _test_eof83;
+case 83:
+       switch( (*p) ) {
+               case 95: goto tr109;
+               case 108: goto st84;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr109;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr109;
+       } else
+               goto tr109;
+       goto tr120;
+st84:
+       if ( ++p == pe )
+               goto _test_eof84;
+case 84:
+       switch( (*p) ) {
+               case 95: goto tr109;
+               case 100: goto tr153;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr109;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr109;
+       } else
+               goto tr109;
+       goto tr120;
+st85:
+       if ( ++p == pe )
+               goto _test_eof85;
+case 85:
+       switch( (*p) ) {
+               case 95: goto tr109;
+               case 101: goto st86;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr109;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr109;
+       } else
+               goto tr109;
+       goto tr120;
+st86:
+       if ( ++p == pe )
+               goto _test_eof86;
+case 86:
+       switch( (*p) ) {
+               case 95: goto tr109;
+               case 120: goto st87;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr109;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr109;
+       } else
+               goto tr109;
+       goto tr120;
+st87:
+       if ( ++p == pe )
+               goto _test_eof87;
+case 87:
+       switch( (*p) ) {
+               case 95: goto tr109;
+               case 116: goto tr156;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr109;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr109;
+       } else
+               goto tr109;
+       goto tr120;
+st88:
+       if ( ++p == pe )
+               goto _test_eof88;
+case 88:
+       switch( (*p) ) {
+               case 95: goto tr109;
+               case 99: goto tr157;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr109;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr109;
+       } else
+               goto tr109;
+       goto tr120;
+st89:
+       if ( ++p == pe )
+               goto _test_eof89;
+case 89:
+       switch( (*p) ) {
+               case 95: goto tr109;
+               case 101: goto st90;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr109;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr109;
+       } else
+               goto tr109;
+       goto tr120;
+st90:
+       if ( ++p == pe )
+               goto _test_eof90;
+case 90:
+       switch( (*p) ) {
+               case 95: goto tr109;
+               case 116: goto tr159;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr109;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr109;
+       } else
+               goto tr109;
+       goto tr120;
+st91:
+       if ( ++p == pe )
+               goto _test_eof91;
+case 91:
+       switch( (*p) ) {
+               case 95: goto tr109;
+               case 97: goto st92;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr109;
+       } else if ( (*p) > 90 ) {
+               if ( 98 <= (*p) && (*p) <= 122 )
+                       goto tr109;
+       } else
+               goto tr109;
+       goto tr120;
+st92:
+       if ( ++p == pe )
+               goto _test_eof92;
+case 92:
+       switch( (*p) ) {
+               case 95: goto tr109;
+               case 114: goto st93;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr109;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr109;
+       } else
+               goto tr109;
+       goto tr120;
+st93:
+       if ( ++p == pe )
+               goto _test_eof93;
+case 93:
+       switch( (*p) ) {
+               case 95: goto tr109;
+               case 103: goto st94;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr109;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr109;
+       } else
+               goto tr109;
+       goto tr120;
+st94:
+       if ( ++p == pe )
+               goto _test_eof94;
+case 94:
+       switch( (*p) ) {
+               case 95: goto tr109;
+               case 115: goto tr163;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr109;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr109;
+       } else
+               goto tr109;
+       goto tr120;
+tr29:
+#line 862 "rlscan.rl"
+       {{p = ((te))-1;}{ token( IL_Symbol, ts, te ); }}
+       goto st95;
+tr32:
+#line 808 "rlscan.rl"
+       {te = p+1;{ token( IL_Literal, ts, te ); }}
+       goto st95;
+tr40:
+#line 815 "rlscan.rl"
+       {te = p+1;{ token( IL_Comment, ts, te ); }}
+       goto st95;
+tr42:
+#line 630 "rlscan.rl"
+       { 
+               lastnl = p; 
+               column = 0;
+               line++;
+       }
+#line 815 "rlscan.rl"
+       {te = p+1;{ token( IL_Comment, ts, te ); }}
+       goto st95;
+tr43:
+#line 804 "rlscan.rl"
+       {{p = ((te))-1;}{ token( TK_UInt, ts, te ); }}
+       goto st95;
+tr164:
+#line 862 "rlscan.rl"
+       {te = p+1;{ token( IL_Symbol, ts, te ); }}
+       goto st95;
+tr165:
+#line 857 "rlscan.rl"
+       {te = p+1;{
+                       scan_error() << "unterminated code block" << endl;
+               }}
+       goto st95;
+tr170:
+#line 837 "rlscan.rl"
+       {te = p+1;{ token( *ts, ts, te ); }}
+       goto st95;
+tr171:
+#line 832 "rlscan.rl"
+       {te = p+1;{ 
+                       whitespaceOn = true;
+                       token( *ts, ts, te );
+               }}
+       goto st95;
+tr176:
+#line 825 "rlscan.rl"
+       {te = p+1;{
+                       whitespaceOn = true;
+                       token( *ts, ts, te );
+                       if ( inlineBlockType == SemiTerminated )
+                               {cs = stack[--top];goto _again;}
+               }}
+       goto st95;
+tr179:
+#line 839 "rlscan.rl"
+       {te = p+1;{ 
+                       token( IL_Symbol, ts, te );
+                       curly_count += 1; 
+               }}
+       goto st95;
+tr180:
+#line 844 "rlscan.rl"
+       {te = p+1;{ 
+                       if ( --curly_count == 0 && inlineBlockType == CurlyDelimited ) {
+                               /* Inline code block ends. */
+                               token( '}' );
+                               {cs = stack[--top];goto _again;}
+                       }
+                       else {
+                               /* Either a semi terminated inline block or only the closing
+                                * brace of some inner scope, not the block's closing brace. */
+                               token( IL_Symbol, ts, te );
+                       }
+               }}
+       goto st95;
+tr181:
+#line 810 "rlscan.rl"
+       {te = p;p--;{ 
+                       if ( whitespaceOn ) 
+                               token( IL_WhiteSpace, ts, te );
+               }}
+       goto st95;
+tr182:
+#line 862 "rlscan.rl"
+       {te = p;p--;{ token( IL_Symbol, ts, te ); }}
+       goto st95;
+tr183:
+#line 804 "rlscan.rl"
+       {te = p;p--;{ token( TK_UInt, ts, te ); }}
+       goto st95;
+tr185:
+#line 805 "rlscan.rl"
+       {te = p;p--;{ token( TK_Hex, ts, te ); }}
+       goto st95;
+tr186:
+#line 817 "rlscan.rl"
+       {te = p+1;{ token( TK_NameSep, ts, te ); }}
+       goto st95;
+tr187:
+#line 1 "rlscan.rl"
+       {       switch( act ) {
+       case 27:
+       {{p = ((te))-1;} token( KW_PChar ); }
+       break;
+       case 29:
+       {{p = ((te))-1;} token( KW_CurState ); }
+       break;
+       case 30:
+       {{p = ((te))-1;} token( KW_TargState ); }
+       break;
+       case 31:
+       {{p = ((te))-1;} 
+                       whitespaceOn = false; 
+                       token( KW_Entry );
+               }
+       break;
+       case 32:
+       {{p = ((te))-1;} 
+                       whitespaceOn = false; 
+                       token( KW_Hold );
+               }
+       break;
+       case 33:
+       {{p = ((te))-1;} token( KW_Exec, 0, 0 ); }
+       break;
+       case 34:
+       {{p = ((te))-1;} 
+                       whitespaceOn = false; 
+                       token( KW_Goto );
+               }
+       break;
+       case 35:
+       {{p = ((te))-1;} 
+                       whitespaceOn = false; 
+                       token( KW_Next );
+               }
+       break;
+       case 36:
+       {{p = ((te))-1;} 
+                       whitespaceOn = false; 
+                       token( KW_Call );
+               }
+       break;
+       case 37:
+       {{p = ((te))-1;} 
+                       whitespaceOn = false; 
+                       token( KW_Ret );
+               }
+       break;
+       case 38:
+       {{p = ((te))-1;} 
+                       whitespaceOn = false; 
+                       token( KW_Break );
+               }
+       break;
+       case 39:
+       {{p = ((te))-1;} token( TK_Word, ts, te ); }
+       break;
+       }
+       }
+       goto st95;
+tr188:
+#line 802 "rlscan.rl"
+       {te = p;p--;{ token( TK_Word, ts, te ); }}
+       goto st95;
+tr202:
+#line 767 "rlscan.rl"
+       {te = p;p--;{ token( KW_Char ); }}
+       goto st95;
+st95:
+#line 1 "rlscan.rl"
+       {ts = 0;}
+       if ( ++p == pe )
+               goto _test_eof95;
+case 95:
+#line 1 "rlscan.rl"
+       {ts = p;}
+#line 2898 "rlscan.cpp"
+       switch( (*p) ) {
+               case 0: goto tr165;
+               case 9: goto st96;
+               case 10: goto tr167;
+               case 32: goto st96;
+               case 34: goto tr168;
+               case 39: goto tr169;
+               case 40: goto tr170;
+               case 44: goto tr170;
+               case 47: goto tr172;
+               case 48: goto tr173;
+               case 58: goto st103;
+               case 59: goto tr176;
+               case 95: goto tr177;
+               case 102: goto st105;
+               case 123: goto tr179;
+               case 125: goto tr180;
+       }
+       if ( (*p) < 49 ) {
+               if ( 41 <= (*p) && (*p) <= 42 )
+                       goto tr171;
+       } else if ( (*p) > 57 ) {
+               if ( (*p) > 90 ) {
+                       if ( 97 <= (*p) && (*p) <= 122 )
+                               goto tr177;
+               } else if ( (*p) >= 65 )
+                       goto tr177;
+       } else
+               goto st101;
+       goto tr164;
+tr167:
+#line 630 "rlscan.rl"
+       { 
+               lastnl = p; 
+               column = 0;
+               line++;
+       }
+       goto st96;
+st96:
+       if ( ++p == pe )
+               goto _test_eof96;
+case 96:
+#line 2941 "rlscan.cpp"
+       switch( (*p) ) {
+               case 9: goto st96;
+               case 10: goto tr167;
+               case 32: goto st96;
+       }
+       goto tr181;
+tr168:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+       goto st97;
+st97:
+       if ( ++p == pe )
+               goto _test_eof97;
+case 97:
+#line 2956 "rlscan.cpp"
+       switch( (*p) ) {
+               case 10: goto tr31;
+               case 34: goto tr32;
+               case 92: goto st17;
+       }
+       goto st16;
+tr31:
+#line 630 "rlscan.rl"
+       { 
+               lastnl = p; 
+               column = 0;
+               line++;
+       }
+       goto st16;
+st16:
+       if ( ++p == pe )
+               goto _test_eof16;
+case 16:
+#line 2975 "rlscan.cpp"
+       switch( (*p) ) {
+               case 10: goto tr31;
+               case 34: goto tr32;
+               case 92: goto st17;
+       }
+       goto st16;
+st17:
+       if ( ++p == pe )
+               goto _test_eof17;
+case 17:
+       if ( (*p) == 10 )
+               goto tr31;
+       goto st16;
+tr169:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+       goto st98;
+st98:
+       if ( ++p == pe )
+               goto _test_eof98;
+case 98:
+#line 2997 "rlscan.cpp"
+       switch( (*p) ) {
+               case 10: goto tr35;
+               case 39: goto tr32;
+               case 92: goto st19;
+       }
+       goto st18;
+tr35:
+#line 630 "rlscan.rl"
+       { 
+               lastnl = p; 
+               column = 0;
+               line++;
+       }
+       goto st18;
+st18:
+       if ( ++p == pe )
+               goto _test_eof18;
+case 18:
+#line 3016 "rlscan.cpp"
+       switch( (*p) ) {
+               case 10: goto tr35;
+               case 39: goto tr32;
+               case 92: goto st19;
+       }
+       goto st18;
+st19:
+       if ( ++p == pe )
+               goto _test_eof19;
+case 19:
+       if ( (*p) == 10 )
+               goto tr35;
+       goto st18;
+tr172:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+       goto st99;
+st99:
+       if ( ++p == pe )
+               goto _test_eof99;
+case 99:
+#line 3038 "rlscan.cpp"
+       switch( (*p) ) {
+               case 42: goto st20;
+               case 47: goto st22;
+       }
+       goto tr182;
+tr38:
+#line 630 "rlscan.rl"
+       { 
+               lastnl = p; 
+               column = 0;
+               line++;
+       }
+       goto st20;
+st20:
+       if ( ++p == pe )
+               goto _test_eof20;
+case 20:
+#line 3056 "rlscan.cpp"
+       switch( (*p) ) {
+               case 10: goto tr38;
+               case 42: goto st21;
+       }
+       goto st20;
+st21:
+       if ( ++p == pe )
+               goto _test_eof21;
+case 21:
+       switch( (*p) ) {
+               case 10: goto tr38;
+               case 42: goto st21;
+               case 47: goto tr40;
+       }
+       goto st20;
+st22:
+       if ( ++p == pe )
+               goto _test_eof22;
+case 22:
+       if ( (*p) == 10 )
+               goto tr42;
+       goto st22;
+tr173:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+       goto st100;
+st100:
+       if ( ++p == pe )
+               goto _test_eof100;
+case 100:
+#line 3087 "rlscan.cpp"
+       if ( (*p) == 120 )
+               goto st23;
+       if ( 48 <= (*p) && (*p) <= 57 )
+               goto st101;
+       goto tr183;
+st101:
+       if ( ++p == pe )
+               goto _test_eof101;
+case 101:
+       if ( 48 <= (*p) && (*p) <= 57 )
+               goto st101;
+       goto tr183;
+st23:
+       if ( ++p == pe )
+               goto _test_eof23;
+case 23:
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto st102;
+       } else if ( (*p) > 70 ) {
+               if ( 97 <= (*p) && (*p) <= 102 )
+                       goto st102;
+       } else
+               goto st102;
+       goto tr43;
+st102:
+       if ( ++p == pe )
+               goto _test_eof102;
+case 102:
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto st102;
+       } else if ( (*p) > 70 ) {
+               if ( 97 <= (*p) && (*p) <= 102 )
+                       goto st102;
+       } else
+               goto st102;
+       goto tr185;
+st103:
+       if ( ++p == pe )
+               goto _test_eof103;
+case 103:
+       if ( (*p) == 58 )
+               goto tr186;
+       goto tr182;
+tr177:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+#line 802 "rlscan.rl"
+       {act = 39;}
+       goto st104;
+tr201:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+#line 797 "rlscan.rl"
+       {act = 38;}
+       goto st104;
+tr206:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+#line 789 "rlscan.rl"
+       {act = 36;}
+       goto st104;
+tr208:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+#line 768 "rlscan.rl"
+       {act = 29;}
+       goto st104;
+tr213:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+#line 770 "rlscan.rl"
+       {act = 31;}
+       goto st104;
+tr215:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+#line 780 "rlscan.rl"
+       {act = 33;}
+       goto st104;
+tr218:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+#line 781 "rlscan.rl"
+       {act = 34;}
+       goto st104;
+tr221:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+#line 776 "rlscan.rl"
+       {act = 32;}
+       goto st104;
+tr224:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+#line 785 "rlscan.rl"
+       {act = 35;}
+       goto st104;
+tr225:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+#line 766 "rlscan.rl"
+       {act = 27;}
+       goto st104;
+tr227:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+#line 793 "rlscan.rl"
+       {act = 37;}
+       goto st104;
+tr231:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+#line 769 "rlscan.rl"
+       {act = 30;}
+       goto st104;
+st104:
+       if ( ++p == pe )
+               goto _test_eof104;
+case 104:
+#line 3209 "rlscan.cpp"
+       if ( (*p) == 95 )
+               goto tr177;
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr177;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr177;
+       } else
+               goto tr177;
+       goto tr187;
+st105:
+       if ( ++p == pe )
+               goto _test_eof105;
+case 105:
+       switch( (*p) ) {
+               case 95: goto tr177;
+               case 98: goto st106;
+               case 99: goto st110;
+               case 101: goto st115;
+               case 103: goto st121;
+               case 104: goto st124;
+               case 110: goto st127;
+               case 112: goto st130;
+               case 114: goto st131;
+               case 116: goto st133;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr177;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr177;
+       } else
+               goto tr177;
+       goto tr188;
+st106:
+       if ( ++p == pe )
+               goto _test_eof106;
+case 106:
+       switch( (*p) ) {
+               case 95: goto tr177;
+               case 114: goto st107;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr177;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr177;
+       } else
+               goto tr177;
+       goto tr188;
+st107:
+       if ( ++p == pe )
+               goto _test_eof107;
+case 107:
+       switch( (*p) ) {
+               case 95: goto tr177;
+               case 101: goto st108;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr177;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr177;
+       } else
+               goto tr177;
+       goto tr188;
+st108:
+       if ( ++p == pe )
+               goto _test_eof108;
+case 108:
+       switch( (*p) ) {
+               case 95: goto tr177;
+               case 97: goto st109;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr177;
+       } else if ( (*p) > 90 ) {
+               if ( 98 <= (*p) && (*p) <= 122 )
+                       goto tr177;
+       } else
+               goto tr177;
+       goto tr188;
+st109:
+       if ( ++p == pe )
+               goto _test_eof109;
+case 109:
+       switch( (*p) ) {
+               case 95: goto tr177;
+               case 107: goto tr201;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr177;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr177;
+       } else
+               goto tr177;
+       goto tr188;
+st110:
+       if ( ++p == pe )
+               goto _test_eof110;
+case 110:
+       switch( (*p) ) {
+               case 95: goto tr177;
+               case 97: goto st111;
+               case 117: goto st113;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr177;
+       } else if ( (*p) > 90 ) {
+               if ( 98 <= (*p) && (*p) <= 122 )
+                       goto tr177;
+       } else
+               goto tr177;
+       goto tr202;
+st111:
+       if ( ++p == pe )
+               goto _test_eof111;
+case 111:
+       switch( (*p) ) {
+               case 95: goto tr177;
+               case 108: goto st112;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr177;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr177;
+       } else
+               goto tr177;
+       goto tr188;
+st112:
+       if ( ++p == pe )
+               goto _test_eof112;
+case 112:
+       switch( (*p) ) {
+               case 95: goto tr177;
+               case 108: goto tr206;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr177;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr177;
+       } else
+               goto tr177;
+       goto tr188;
+st113:
+       if ( ++p == pe )
+               goto _test_eof113;
+case 113:
+       switch( (*p) ) {
+               case 95: goto tr177;
+               case 114: goto st114;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr177;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr177;
+       } else
+               goto tr177;
+       goto tr188;
+st114:
+       if ( ++p == pe )
+               goto _test_eof114;
+case 114:
+       switch( (*p) ) {
+               case 95: goto tr177;
+               case 115: goto tr208;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr177;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr177;
+       } else
+               goto tr177;
+       goto tr188;
+st115:
+       if ( ++p == pe )
+               goto _test_eof115;
+case 115:
+       switch( (*p) ) {
+               case 95: goto tr177;
+               case 110: goto st116;
+               case 120: goto st119;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr177;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr177;
+       } else
+               goto tr177;
+       goto tr188;
+st116:
+       if ( ++p == pe )
+               goto _test_eof116;
+case 116:
+       switch( (*p) ) {
+               case 95: goto tr177;
+               case 116: goto st117;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr177;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr177;
+       } else
+               goto tr177;
+       goto tr188;
+st117:
+       if ( ++p == pe )
+               goto _test_eof117;
+case 117:
+       switch( (*p) ) {
+               case 95: goto tr177;
+               case 114: goto st118;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr177;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr177;
+       } else
+               goto tr177;
+       goto tr188;
+st118:
+       if ( ++p == pe )
+               goto _test_eof118;
+case 118:
+       switch( (*p) ) {
+               case 95: goto tr177;
+               case 121: goto tr213;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr177;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr177;
+       } else
+               goto tr177;
+       goto tr188;
+st119:
+       if ( ++p == pe )
+               goto _test_eof119;
+case 119:
+       switch( (*p) ) {
+               case 95: goto tr177;
+               case 101: goto st120;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr177;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr177;
+       } else
+               goto tr177;
+       goto tr188;
+st120:
+       if ( ++p == pe )
+               goto _test_eof120;
+case 120:
+       switch( (*p) ) {
+               case 95: goto tr177;
+               case 99: goto tr215;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr177;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr177;
+       } else
+               goto tr177;
+       goto tr188;
+st121:
+       if ( ++p == pe )
+               goto _test_eof121;
+case 121:
+       switch( (*p) ) {
+               case 95: goto tr177;
+               case 111: goto st122;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr177;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr177;
+       } else
+               goto tr177;
+       goto tr188;
+st122:
+       if ( ++p == pe )
+               goto _test_eof122;
+case 122:
+       switch( (*p) ) {
+               case 95: goto tr177;
+               case 116: goto st123;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr177;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr177;
+       } else
+               goto tr177;
+       goto tr188;
+st123:
+       if ( ++p == pe )
+               goto _test_eof123;
+case 123:
+       switch( (*p) ) {
+               case 95: goto tr177;
+               case 111: goto tr218;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr177;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr177;
+       } else
+               goto tr177;
+       goto tr188;
+st124:
+       if ( ++p == pe )
+               goto _test_eof124;
+case 124:
+       switch( (*p) ) {
+               case 95: goto tr177;
+               case 111: goto st125;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr177;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr177;
+       } else
+               goto tr177;
+       goto tr188;
+st125:
+       if ( ++p == pe )
+               goto _test_eof125;
+case 125:
+       switch( (*p) ) {
+               case 95: goto tr177;
+               case 108: goto st126;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr177;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr177;
+       } else
+               goto tr177;
+       goto tr188;
+st126:
+       if ( ++p == pe )
+               goto _test_eof126;
+case 126:
+       switch( (*p) ) {
+               case 95: goto tr177;
+               case 100: goto tr221;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr177;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr177;
+       } else
+               goto tr177;
+       goto tr188;
+st127:
+       if ( ++p == pe )
+               goto _test_eof127;
+case 127:
+       switch( (*p) ) {
+               case 95: goto tr177;
+               case 101: goto st128;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr177;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr177;
+       } else
+               goto tr177;
+       goto tr188;
+st128:
+       if ( ++p == pe )
+               goto _test_eof128;
+case 128:
+       switch( (*p) ) {
+               case 95: goto tr177;
+               case 120: goto st129;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr177;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr177;
+       } else
+               goto tr177;
+       goto tr188;
+st129:
+       if ( ++p == pe )
+               goto _test_eof129;
+case 129:
+       switch( (*p) ) {
+               case 95: goto tr177;
+               case 116: goto tr224;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr177;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr177;
+       } else
+               goto tr177;
+       goto tr188;
+st130:
+       if ( ++p == pe )
+               goto _test_eof130;
+case 130:
+       switch( (*p) ) {
+               case 95: goto tr177;
+               case 99: goto tr225;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr177;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr177;
+       } else
+               goto tr177;
+       goto tr188;
+st131:
+       if ( ++p == pe )
+               goto _test_eof131;
+case 131:
+       switch( (*p) ) {
+               case 95: goto tr177;
+               case 101: goto st132;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr177;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr177;
+       } else
+               goto tr177;
+       goto tr188;
+st132:
+       if ( ++p == pe )
+               goto _test_eof132;
+case 132:
+       switch( (*p) ) {
+               case 95: goto tr177;
+               case 116: goto tr227;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr177;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr177;
+       } else
+               goto tr177;
+       goto tr188;
+st133:
+       if ( ++p == pe )
+               goto _test_eof133;
+case 133:
+       switch( (*p) ) {
+               case 95: goto tr177;
+               case 97: goto st134;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr177;
+       } else if ( (*p) > 90 ) {
+               if ( 98 <= (*p) && (*p) <= 122 )
+                       goto tr177;
+       } else
+               goto tr177;
+       goto tr188;
+st134:
+       if ( ++p == pe )
+               goto _test_eof134;
+case 134:
+       switch( (*p) ) {
+               case 95: goto tr177;
+               case 114: goto st135;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr177;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr177;
+       } else
+               goto tr177;
+       goto tr188;
+st135:
+       if ( ++p == pe )
+               goto _test_eof135;
+case 135:
+       switch( (*p) ) {
+               case 95: goto tr177;
+               case 103: goto st136;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr177;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr177;
+       } else
+               goto tr177;
+       goto tr188;
+st136:
+       if ( ++p == pe )
+               goto _test_eof136;
+case 136:
+       switch( (*p) ) {
+               case 95: goto tr177;
+               case 115: goto tr231;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr177;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr177;
+       } else
+               goto tr177;
+       goto tr188;
+tr232:
+#line 889 "rlscan.rl"
+       {te = p+1;{ token( RE_Char, ts, te ); }}
+       goto st137;
+tr233:
+#line 884 "rlscan.rl"
+       {te = p+1;{
+                       scan_error() << "unterminated OR literal" << endl;
+               }}
+       goto st137;
+tr234:
+#line 879 "rlscan.rl"
+       {te = p+1;{ token( RE_Dash, 0, 0 ); }}
+       goto st137;
+tr236:
+#line 882 "rlscan.rl"
+       {te = p+1;{ token( RE_SqClose ); {cs = stack[--top];goto _again;} }}
+       goto st137;
+tr237:
+#line 889 "rlscan.rl"
+       {te = p;p--;{ token( RE_Char, ts, te ); }}
+       goto st137;
+tr238:
+#line 876 "rlscan.rl"
+       {te = p+1;{ token( RE_Char, ts+1, te ); }}
+       goto st137;
+tr239:
+#line 875 "rlscan.rl"
+       {te = p+1;{ updateCol(); }}
+       goto st137;
+tr240:
+#line 867 "rlscan.rl"
+       {te = p+1;{ token( RE_Char, '\0' ); }}
+       goto st137;
+tr241:
+#line 868 "rlscan.rl"
+       {te = p+1;{ token( RE_Char, '\a' ); }}
+       goto st137;
+tr242:
+#line 869 "rlscan.rl"
+       {te = p+1;{ token( RE_Char, '\b' ); }}
+       goto st137;
+tr243:
+#line 873 "rlscan.rl"
+       {te = p+1;{ token( RE_Char, '\f' ); }}
+       goto st137;
+tr244:
+#line 871 "rlscan.rl"
+       {te = p+1;{ token( RE_Char, '\n' ); }}
+       goto st137;
+tr245:
+#line 874 "rlscan.rl"
+       {te = p+1;{ token( RE_Char, '\r' ); }}
+       goto st137;
+tr246:
+#line 870 "rlscan.rl"
+       {te = p+1;{ token( RE_Char, '\t' ); }}
+       goto st137;
+tr247:
+#line 872 "rlscan.rl"
+       {te = p+1;{ token( RE_Char, '\v' ); }}
+       goto st137;
+st137:
+#line 1 "rlscan.rl"
+       {ts = 0;}
+       if ( ++p == pe )
+               goto _test_eof137;
+case 137:
+#line 1 "rlscan.rl"
+       {ts = p;}
+#line 3845 "rlscan.cpp"
+       switch( (*p) ) {
+               case 0: goto tr233;
+               case 45: goto tr234;
+               case 92: goto st138;
+               case 93: goto tr236;
+       }
+       goto tr232;
+st138:
+       if ( ++p == pe )
+               goto _test_eof138;
+case 138:
+       switch( (*p) ) {
+               case 10: goto tr239;
+               case 48: goto tr240;
+               case 97: goto tr241;
+               case 98: goto tr242;
+               case 102: goto tr243;
+               case 110: goto tr244;
+               case 114: goto tr245;
+               case 116: goto tr246;
+               case 118: goto tr247;
+       }
+       goto tr238;
+tr248:
+#line 924 "rlscan.rl"
+       {te = p+1;{ token( RE_Char, ts, te ); }}
+       goto st139;
+tr249:
+#line 919 "rlscan.rl"
+       {te = p+1;{
+                       scan_error() << "unterminated regular expression" << endl;
+               }}
+       goto st139;
+tr250:
+#line 914 "rlscan.rl"
+       {te = p+1;{ token( RE_Star ); }}
+       goto st139;
+tr251:
+#line 913 "rlscan.rl"
+       {te = p+1;{ token( RE_Dot ); }}
+       goto st139;
+tr255:
+#line 907 "rlscan.rl"
+       {te = p;p--;{ 
+                       token( RE_Slash, ts, te ); 
+                       {goto st146;}
+               }}
+       goto st139;
+tr256:
+#line 907 "rlscan.rl"
+       {te = p+1;{ 
+                       token( RE_Slash, ts, te ); 
+                       {goto st146;}
+               }}
+       goto st139;
+tr257:
+#line 916 "rlscan.rl"
+       {te = p;p--;{ token( RE_SqOpen ); {stack[top++] = 139; goto st137;} }}
+       goto st139;
+tr258:
+#line 917 "rlscan.rl"
+       {te = p+1;{ token( RE_SqOpenNeg ); {stack[top++] = 139; goto st137;} }}
+       goto st139;
+tr259:
+#line 924 "rlscan.rl"
+       {te = p;p--;{ token( RE_Char, ts, te ); }}
+       goto st139;
+tr260:
+#line 904 "rlscan.rl"
+       {te = p+1;{ token( RE_Char, ts+1, te ); }}
+       goto st139;
+tr261:
+#line 903 "rlscan.rl"
+       {te = p+1;{ updateCol(); }}
+       goto st139;
+tr262:
+#line 895 "rlscan.rl"
+       {te = p+1;{ token( RE_Char, '\0' ); }}
+       goto st139;
+tr263:
+#line 896 "rlscan.rl"
+       {te = p+1;{ token( RE_Char, '\a' ); }}
+       goto st139;
+tr264:
+#line 897 "rlscan.rl"
+       {te = p+1;{ token( RE_Char, '\b' ); }}
+       goto st139;
+tr265:
+#line 901 "rlscan.rl"
+       {te = p+1;{ token( RE_Char, '\f' ); }}
+       goto st139;
+tr266:
+#line 899 "rlscan.rl"
+       {te = p+1;{ token( RE_Char, '\n' ); }}
+       goto st139;
+tr267:
+#line 902 "rlscan.rl"
+       {te = p+1;{ token( RE_Char, '\r' ); }}
+       goto st139;
+tr268:
+#line 898 "rlscan.rl"
+       {te = p+1;{ token( RE_Char, '\t' ); }}
+       goto st139;
+tr269:
+#line 900 "rlscan.rl"
+       {te = p+1;{ token( RE_Char, '\v' ); }}
+       goto st139;
+st139:
+#line 1 "rlscan.rl"
+       {ts = 0;}
+       if ( ++p == pe )
+               goto _test_eof139;
+case 139:
+#line 1 "rlscan.rl"
+       {ts = p;}
+#line 3961 "rlscan.cpp"
+       switch( (*p) ) {
+               case 0: goto tr249;
+               case 42: goto tr250;
+               case 46: goto tr251;
+               case 47: goto st140;
+               case 91: goto st141;
+               case 92: goto st142;
+       }
+       goto tr248;
+st140:
+       if ( ++p == pe )
+               goto _test_eof140;
+case 140:
+       if ( (*p) == 105 )
+               goto tr256;
+       goto tr255;
+st141:
+       if ( ++p == pe )
+               goto _test_eof141;
+case 141:
+       if ( (*p) == 94 )
+               goto tr258;
+       goto tr257;
+st142:
+       if ( ++p == pe )
+               goto _test_eof142;
+case 142:
+       switch( (*p) ) {
+               case 10: goto tr261;
+               case 48: goto tr262;
+               case 97: goto tr263;
+               case 98: goto tr264;
+               case 102: goto tr265;
+               case 110: goto tr266;
+               case 114: goto tr267;
+               case 116: goto tr268;
+               case 118: goto tr269;
+       }
+       goto tr260;
+tr270:
+#line 933 "rlscan.rl"
+       {te = p+1;{
+                       scan_error() << "unterminated write statement" << endl;
+               }}
+       goto st143;
+tr273:
+#line 931 "rlscan.rl"
+       {te = p+1;{ token( ';' ); {goto st146;} }}
+       goto st143;
+tr275:
+#line 930 "rlscan.rl"
+       {te = p;p--;{ updateCol(); }}
+       goto st143;
+tr276:
+#line 929 "rlscan.rl"
+       {te = p;p--;{ token( TK_Word, ts, te ); }}
+       goto st143;
+st143:
+#line 1 "rlscan.rl"
+       {ts = 0;}
+       if ( ++p == pe )
+               goto _test_eof143;
+case 143:
+#line 1 "rlscan.rl"
+       {ts = p;}
+#line 4027 "rlscan.cpp"
+       switch( (*p) ) {
+               case 0: goto tr270;
+               case 32: goto st144;
+               case 59: goto tr273;
+               case 95: goto st145;
+       }
+       if ( (*p) < 65 ) {
+               if ( 9 <= (*p) && (*p) <= 10 )
+                       goto st144;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto st145;
+       } else
+               goto st145;
+       goto st0;
+st0:
+cs = 0;
+       goto _out;
+st144:
+       if ( ++p == pe )
+               goto _test_eof144;
+case 144:
+       if ( (*p) == 32 )
+               goto st144;
+       if ( 9 <= (*p) && (*p) <= 10 )
+               goto st144;
+       goto tr275;
+st145:
+       if ( ++p == pe )
+               goto _test_eof145;
+case 145:
+       if ( (*p) == 95 )
+               goto st145;
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto st145;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto st145;
+       } else
+               goto st145;
+       goto tr276;
+tr45:
+#line 1110 "rlscan.rl"
+       {{p = ((te))-1;}{ token( *ts ); }}
+       goto st146;
+tr51:
+#line 630 "rlscan.rl"
+       { 
+               lastnl = p; 
+               column = 0;
+               line++;
+       }
+#line 1007 "rlscan.rl"
+       {te = p+1;{ updateCol(); }}
+       goto st146;
+tr55:
+#line 994 "rlscan.rl"
+       {{p = ((te))-1;}{ token( TK_UInt, ts, te ); }}
+       goto st146;
+tr57:
+#line 1075 "rlscan.rl"
+       {te = p+1;{ 
+                       updateCol();
+                       endSection();
+                       {cs = stack[--top];goto _again;}
+               }}
+       goto st146;
+tr277:
+#line 1110 "rlscan.rl"
+       {te = p+1;{ token( *ts ); }}
+       goto st146;
+tr278:
+#line 1106 "rlscan.rl"
+       {te = p+1;{
+                       scan_error() << "unterminated ragel section" << endl;
+               }}
+       goto st146;
+tr280:
+#line 630 "rlscan.rl"
+       { 
+               lastnl = p; 
+               column = 0;
+               line++;
+       }
+#line 1084 "rlscan.rl"
+       {te = p+1;{
+                       updateCol();
+                       if ( singleLineSpec ) {
+                               endSection();
+                               {cs = stack[--top];goto _again;}
+                       }
+               }}
+       goto st146;
+tr289:
+#line 1004 "rlscan.rl"
+       {te = p+1;{ token( RE_Slash ); {goto st139;} }}
+       goto st146;
+tr311:
+#line 1092 "rlscan.rl"
+       {te = p+1;{ 
+                       if ( lastToken == KW_Export || lastToken == KW_Entry )
+                               token( '{' );
+                       else {
+                               token( '{' );
+                               curly_count = 1; 
+                               inlineBlockType = CurlyDelimited;
+                               if ( hostLang->lang == HostLang::Ruby )
+                                       {stack[top++] = 146; goto st52;}
+                               else
+                                       {stack[top++] = 146; goto st95;}
+                       }
+               }}
+       goto st146;
+tr314:
+#line 1081 "rlscan.rl"
+       {te = p;p--;{ updateCol(); }}
+       goto st146;
+tr315:
+#line 1110 "rlscan.rl"
+       {te = p;p--;{ token( *ts ); }}
+       goto st146;
+tr316:
+#line 999 "rlscan.rl"
+       {te = p;p--;{ token( TK_Literal, ts, te ); }}
+       goto st146;
+tr317:
+#line 999 "rlscan.rl"
+       {te = p+1;{ token( TK_Literal, ts, te ); }}
+       goto st146;
+tr318:
+#line 1037 "rlscan.rl"
+       {te = p+1;{ token( TK_AllGblError ); }}
+       goto st146;
+tr319:
+#line 1021 "rlscan.rl"
+       {te = p+1;{ token( TK_AllFromState ); }}
+       goto st146;
+tr320:
+#line 1029 "rlscan.rl"
+       {te = p+1;{ token( TK_AllEOF ); }}
+       goto st146;
+tr321:
+#line 1056 "rlscan.rl"
+       {te = p+1;{ token( TK_AllCond ); }}
+       goto st146;
+tr322:
+#line 1045 "rlscan.rl"
+       {te = p+1;{ token( TK_AllLocalError ); }}
+       goto st146;
+tr323:
+#line 1013 "rlscan.rl"
+       {te = p+1;{ token( TK_AllToState ); }}
+       goto st146;
+tr324:
+#line 1038 "rlscan.rl"
+       {te = p+1;{ token( TK_FinalGblError ); }}
+       goto st146;
+tr325:
+#line 1022 "rlscan.rl"
+       {te = p+1;{ token( TK_FinalFromState ); }}
+       goto st146;
+tr326:
+#line 1030 "rlscan.rl"
+       {te = p+1;{ token( TK_FinalEOF ); }}
+       goto st146;
+tr327:
+#line 1057 "rlscan.rl"
+       {te = p+1;{ token( TK_LeavingCond ); }}
+       goto st146;
+tr328:
+#line 1046 "rlscan.rl"
+       {te = p+1;{ token( TK_FinalLocalError ); }}
+       goto st146;
+tr329:
+#line 1014 "rlscan.rl"
+       {te = p+1;{ token( TK_FinalToState ); }}
+       goto st146;
+tr330:
+#line 1060 "rlscan.rl"
+       {te = p+1;{ token( TK_StarStar ); }}
+       goto st146;
+tr331:
+#line 1061 "rlscan.rl"
+       {te = p+1;{ token( TK_DashDash ); }}
+       goto st146;
+tr332:
+#line 1062 "rlscan.rl"
+       {te = p+1;{ token( TK_Arrow ); }}
+       goto st146;
+tr333:
+#line 1059 "rlscan.rl"
+       {te = p+1;{ token( TK_DotDot ); }}
+       goto st146;
+tr334:
+#line 994 "rlscan.rl"
+       {te = p;p--;{ token( TK_UInt, ts, te ); }}
+       goto st146;
+tr336:
+#line 995 "rlscan.rl"
+       {te = p;p--;{ token( TK_Hex, ts, te ); }}
+       goto st146;
+tr337:
+#line 1073 "rlscan.rl"
+       {te = p+1;{ token( TK_NameSep, ts, te ); }}
+       goto st146;
+tr338:
+#line 1009 "rlscan.rl"
+       {te = p+1;{ token( TK_ColonEquals ); }}
+       goto st146;
+tr340:
+#line 1065 "rlscan.rl"
+       {te = p;p--;{ token( TK_ColonGt ); }}
+       goto st146;
+tr341:
+#line 1066 "rlscan.rl"
+       {te = p+1;{ token( TK_ColonGtGt ); }}
+       goto st146;
+tr342:
+#line 1039 "rlscan.rl"
+       {te = p+1;{ token( TK_NotStartGblError ); }}
+       goto st146;
+tr343:
+#line 1023 "rlscan.rl"
+       {te = p+1;{ token( TK_NotStartFromState ); }}
+       goto st146;
+tr344:
+#line 1031 "rlscan.rl"
+       {te = p+1;{ token( TK_NotStartEOF ); }}
+       goto st146;
+tr345:
+#line 1067 "rlscan.rl"
+       {te = p+1;{ token( TK_LtColon ); }}
+       goto st146;
+tr347:
+#line 1047 "rlscan.rl"
+       {te = p+1;{ token( TK_NotStartLocalError ); }}
+       goto st146;
+tr348:
+#line 1015 "rlscan.rl"
+       {te = p+1;{ token( TK_NotStartToState ); }}
+       goto st146;
+tr349:
+#line 1052 "rlscan.rl"
+       {te = p;p--;{ token( TK_Middle ); }}
+       goto st146;
+tr350:
+#line 1041 "rlscan.rl"
+       {te = p+1;{ token( TK_MiddleGblError ); }}
+       goto st146;
+tr351:
+#line 1025 "rlscan.rl"
+       {te = p+1;{ token( TK_MiddleFromState ); }}
+       goto st146;
+tr352:
+#line 1033 "rlscan.rl"
+       {te = p+1;{ token( TK_MiddleEOF ); }}
+       goto st146;
+tr353:
+#line 1049 "rlscan.rl"
+       {te = p+1;{ token( TK_MiddleLocalError ); }}
+       goto st146;
+tr354:
+#line 1017 "rlscan.rl"
+       {te = p+1;{ token( TK_MiddleToState ); }}
+       goto st146;
+tr355:
+#line 1063 "rlscan.rl"
+       {te = p+1;{ token( TK_DoubleArrow ); }}
+       goto st146;
+tr356:
+#line 1036 "rlscan.rl"
+       {te = p+1;{ token( TK_StartGblError ); }}
+       goto st146;
+tr357:
+#line 1020 "rlscan.rl"
+       {te = p+1;{ token( TK_StartFromState ); }}
+       goto st146;
+tr358:
+#line 1028 "rlscan.rl"
+       {te = p+1;{ token( TK_StartEOF ); }}
+       goto st146;
+tr359:
+#line 1055 "rlscan.rl"
+       {te = p+1;{ token( TK_StartCond ); }}
+       goto st146;
+tr360:
+#line 1044 "rlscan.rl"
+       {te = p+1;{ token( TK_StartLocalError ); }}
+       goto st146;
+tr361:
+#line 1012 "rlscan.rl"
+       {te = p+1;{ token( TK_StartToState ); }}
+       goto st146;
+tr362:
+#line 1040 "rlscan.rl"
+       {te = p+1;{ token( TK_NotFinalGblError ); }}
+       goto st146;
+tr363:
+#line 1024 "rlscan.rl"
+       {te = p+1;{ token( TK_NotFinalFromState ); }}
+       goto st146;
+tr364:
+#line 1032 "rlscan.rl"
+       {te = p+1;{ token( TK_NotFinalEOF ); }}
+       goto st146;
+tr365:
+#line 1048 "rlscan.rl"
+       {te = p+1;{ token( TK_NotFinalLocalError ); }}
+       goto st146;
+tr366:
+#line 1016 "rlscan.rl"
+       {te = p+1;{ token( TK_NotFinalToState ); }}
+       goto st146;
+tr367:
+#line 1 "rlscan.rl"
+       {       switch( act ) {
+       case 88:
+       {{p = ((te))-1;} token( KW_Machine ); }
+       break;
+       case 89:
+       {{p = ((te))-1;} token( KW_Include ); }
+       break;
+       case 90:
+       {{p = ((te))-1;} token( KW_Import ); }
+       break;
+       case 91:
+       {{p = ((te))-1;} 
+                       token( KW_Write );
+                       {goto st143;}
+               }
+       break;
+       case 92:
+       {{p = ((te))-1;} token( KW_Action ); }
+       break;
+       case 93:
+       {{p = ((te))-1;} token( KW_AlphType ); }
+       break;
+       case 94:
+       {{p = ((te))-1;} token( KW_PrePush ); }
+       break;
+       case 95:
+       {{p = ((te))-1;} token( KW_PostPop ); }
+       break;
+       case 96:
+       {{p = ((te))-1;} 
+                       token( KW_GetKey );
+                       inlineBlockType = SemiTerminated;
+                       if ( hostLang->lang == HostLang::Ruby )
+                               {stack[top++] = 146; goto st52;}
+                       else
+                               {stack[top++] = 146; goto st95;}
+               }
+       break;
+       case 97:
+       {{p = ((te))-1;} 
+                       token( KW_Access );
+                       inlineBlockType = SemiTerminated;
+                       if ( hostLang->lang == HostLang::Ruby )
+                               {stack[top++] = 146; goto st52;}
+                       else
+                               {stack[top++] = 146; goto st95;}
+               }
+       break;
+       case 98:
+       {{p = ((te))-1;} 
+                       token( KW_Variable );
+                       inlineBlockType = SemiTerminated;
+                       if ( hostLang->lang == HostLang::Ruby )
+                               {stack[top++] = 146; goto st52;}
+                       else
+                               {stack[top++] = 146; goto st95;}
+               }
+       break;
+       case 99:
+       {{p = ((te))-1;} token( KW_When ); }
+       break;
+       case 100:
+       {{p = ((te))-1;} token( KW_InWhen ); }
+       break;
+       case 101:
+       {{p = ((te))-1;} token( KW_OutWhen ); }
+       break;
+       case 102:
+       {{p = ((te))-1;} token( KW_Eof ); }
+       break;
+       case 103:
+       {{p = ((te))-1;} token( KW_Err ); }
+       break;
+       case 104:
+       {{p = ((te))-1;} token( KW_Lerr ); }
+       break;
+       case 105:
+       {{p = ((te))-1;} token( KW_To ); }
+       break;
+       case 106:
+       {{p = ((te))-1;} token( KW_From ); }
+       break;
+       case 107:
+       {{p = ((te))-1;} token( KW_Export ); }
+       break;
+       case 108:
+       {{p = ((te))-1;} token( TK_Word, ts, te ); }
+       break;
+       }
+       }
+       goto st146;
+tr368:
+#line 1001 "rlscan.rl"
+       {te = p;p--;{ token( RE_SqOpen ); {stack[top++] = 146; goto st137;} }}
+       goto st146;
+tr369:
+#line 1002 "rlscan.rl"
+       {te = p+1;{ token( RE_SqOpenNeg ); {stack[top++] = 146; goto st137;} }}
+       goto st146;
+tr370:
+#line 991 "rlscan.rl"
+       {te = p;p--;{ token( TK_Word, ts, te ); }}
+       goto st146;
+tr461:
+#line 1070 "rlscan.rl"
+       {te = p+1;{ token( TK_BarStar ); }}
+       goto st146;
+st146:
+#line 1 "rlscan.rl"
+       {ts = 0;}
+       if ( ++p == pe )
+               goto _test_eof146;
+case 146:
+#line 1 "rlscan.rl"
+       {ts = p;}
+#line 4459 "rlscan.cpp"
+       switch( (*p) ) {
+               case 0: goto tr278;
+               case 9: goto st147;
+               case 10: goto tr280;
+               case 13: goto st147;
+               case 32: goto st147;
+               case 34: goto tr281;
+               case 35: goto tr282;
+               case 36: goto st151;
+               case 37: goto st152;
+               case 39: goto tr285;
+               case 42: goto st154;
+               case 45: goto st155;
+               case 46: goto st156;
+               case 47: goto tr289;
+               case 48: goto tr290;
+               case 58: goto st160;
+               case 60: goto st162;
+               case 61: goto st164;
+               case 62: goto st165;
+               case 64: goto st166;
+               case 91: goto st168;
+               case 95: goto tr297;
+               case 97: goto st169;
+               case 101: goto st183;
+               case 102: goto st190;
+               case 103: goto st193;
+               case 105: goto st198;
+               case 108: goto st211;
+               case 109: goto st214;
+               case 111: goto st220;
+               case 112: goto st226;
+               case 116: goto st237;
+               case 118: goto st238;
+               case 119: goto st245;
+               case 123: goto tr311;
+               case 124: goto st251;
+               case 125: goto tr313;
+       }
+       if ( (*p) < 65 ) {
+               if ( 49 <= (*p) && (*p) <= 57 )
+                       goto st158;
+       } else if ( (*p) > 90 ) {
+               if ( 98 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr277;
+st147:
+       if ( ++p == pe )
+               goto _test_eof147;
+case 147:
+       switch( (*p) ) {
+               case 9: goto st147;
+               case 13: goto st147;
+               case 32: goto st147;
+       }
+       goto tr314;
+tr281:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+       goto st148;
+st148:
+       if ( ++p == pe )
+               goto _test_eof148;
+case 148:
+#line 4526 "rlscan.cpp"
+       switch( (*p) ) {
+               case 10: goto tr47;
+               case 34: goto st149;
+               case 92: goto st25;
+       }
+       goto st24;
+tr47:
+#line 630 "rlscan.rl"
+       { 
+               lastnl = p; 
+               column = 0;
+               line++;
+       }
+       goto st24;
+st24:
+       if ( ++p == pe )
+               goto _test_eof24;
+case 24:
+#line 4545 "rlscan.cpp"
+       switch( (*p) ) {
+               case 10: goto tr47;
+               case 34: goto st149;
+               case 92: goto st25;
+       }
+       goto st24;
+st149:
+       if ( ++p == pe )
+               goto _test_eof149;
+case 149:
+       if ( (*p) == 105 )
+               goto tr317;
+       goto tr316;
+st25:
+       if ( ++p == pe )
+               goto _test_eof25;
+case 25:
+       if ( (*p) == 10 )
+               goto tr47;
+       goto st24;
+tr282:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+       goto st150;
+st150:
+       if ( ++p == pe )
+               goto _test_eof150;
+case 150:
+#line 4574 "rlscan.cpp"
+       if ( (*p) == 10 )
+               goto tr51;
+       goto st26;
+st26:
+       if ( ++p == pe )
+               goto _test_eof26;
+case 26:
+       if ( (*p) == 10 )
+               goto tr51;
+       goto st26;
+st151:
+       if ( ++p == pe )
+               goto _test_eof151;
+case 151:
+       switch( (*p) ) {
+               case 33: goto tr318;
+               case 42: goto tr319;
+               case 47: goto tr320;
+               case 63: goto tr321;
+               case 94: goto tr322;
+               case 126: goto tr323;
+       }
+       goto tr315;
+st152:
+       if ( ++p == pe )
+               goto _test_eof152;
+case 152:
+       switch( (*p) ) {
+               case 33: goto tr324;
+               case 42: goto tr325;
+               case 47: goto tr326;
+               case 63: goto tr327;
+               case 94: goto tr328;
+               case 126: goto tr329;
+       }
+       goto tr315;
+tr285:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+       goto st153;
+st153:
+       if ( ++p == pe )
+               goto _test_eof153;
+case 153:
+#line 4619 "rlscan.cpp"
+       switch( (*p) ) {
+               case 10: goto tr53;
+               case 39: goto st149;
+               case 92: goto st28;
+       }
+       goto st27;
+tr53:
+#line 630 "rlscan.rl"
+       { 
+               lastnl = p; 
+               column = 0;
+               line++;
+       }
+       goto st27;
+st27:
+       if ( ++p == pe )
+               goto _test_eof27;
+case 27:
+#line 4638 "rlscan.cpp"
+       switch( (*p) ) {
+               case 10: goto tr53;
+               case 39: goto st149;
+               case 92: goto st28;
+       }
+       goto st27;
+st28:
+       if ( ++p == pe )
+               goto _test_eof28;
+case 28:
+       if ( (*p) == 10 )
+               goto tr53;
+       goto st27;
+st154:
+       if ( ++p == pe )
+               goto _test_eof154;
+case 154:
+       if ( (*p) == 42 )
+               goto tr330;
+       goto tr315;
+st155:
+       if ( ++p == pe )
+               goto _test_eof155;
+case 155:
+       switch( (*p) ) {
+               case 45: goto tr331;
+               case 62: goto tr332;
+       }
+       goto tr315;
+st156:
+       if ( ++p == pe )
+               goto _test_eof156;
+case 156:
+       if ( (*p) == 46 )
+               goto tr333;
+       goto tr315;
+tr290:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+       goto st157;
+st157:
+       if ( ++p == pe )
+               goto _test_eof157;
+case 157:
+#line 4683 "rlscan.cpp"
+       if ( (*p) == 120 )
+               goto st29;
+       if ( 48 <= (*p) && (*p) <= 57 )
+               goto st158;
+       goto tr334;
+st158:
+       if ( ++p == pe )
+               goto _test_eof158;
+case 158:
+       if ( 48 <= (*p) && (*p) <= 57 )
+               goto st158;
+       goto tr334;
+st29:
+       if ( ++p == pe )
+               goto _test_eof29;
+case 29:
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto st159;
+       } else if ( (*p) > 70 ) {
+               if ( 97 <= (*p) && (*p) <= 102 )
+                       goto st159;
+       } else
+               goto st159;
+       goto tr55;
+st159:
+       if ( ++p == pe )
+               goto _test_eof159;
+case 159:
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto st159;
+       } else if ( (*p) > 70 ) {
+               if ( 97 <= (*p) && (*p) <= 102 )
+                       goto st159;
+       } else
+               goto st159;
+       goto tr336;
+st160:
+       if ( ++p == pe )
+               goto _test_eof160;
+case 160:
+       switch( (*p) ) {
+               case 58: goto tr337;
+               case 61: goto tr338;
+               case 62: goto st161;
+       }
+       goto tr315;
+st161:
+       if ( ++p == pe )
+               goto _test_eof161;
+case 161:
+       if ( (*p) == 62 )
+               goto tr341;
+       goto tr340;
+st162:
+       if ( ++p == pe )
+               goto _test_eof162;
+case 162:
+       switch( (*p) ) {
+               case 33: goto tr342;
+               case 42: goto tr343;
+               case 47: goto tr344;
+               case 58: goto tr345;
+               case 62: goto st163;
+               case 94: goto tr347;
+               case 126: goto tr348;
+       }
+       goto tr315;
+st163:
+       if ( ++p == pe )
+               goto _test_eof163;
+case 163:
+       switch( (*p) ) {
+               case 33: goto tr350;
+               case 42: goto tr351;
+               case 47: goto tr352;
+               case 94: goto tr353;
+               case 126: goto tr354;
+       }
+       goto tr349;
+st164:
+       if ( ++p == pe )
+               goto _test_eof164;
+case 164:
+       if ( (*p) == 62 )
+               goto tr355;
+       goto tr315;
+st165:
+       if ( ++p == pe )
+               goto _test_eof165;
+case 165:
+       switch( (*p) ) {
+               case 33: goto tr356;
+               case 42: goto tr357;
+               case 47: goto tr358;
+               case 63: goto tr359;
+               case 94: goto tr360;
+               case 126: goto tr361;
+       }
+       goto tr315;
+st166:
+       if ( ++p == pe )
+               goto _test_eof166;
+case 166:
+       switch( (*p) ) {
+               case 33: goto tr362;
+               case 42: goto tr363;
+               case 47: goto tr364;
+               case 94: goto tr365;
+               case 126: goto tr366;
+       }
+       goto tr315;
+tr297:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+#line 991 "rlscan.rl"
+       {act = 108;}
+       goto st167;
+tr377:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+#line 964 "rlscan.rl"
+       {act = 97;}
+       goto st167;
+tr380:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+#line 948 "rlscan.rl"
+       {act = 92;}
+       goto st167;
+tr386:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+#line 949 "rlscan.rl"
+       {act = 93;}
+       goto st167;
+tr390:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+#line 983 "rlscan.rl"
+       {act = 102;}
+       goto st167;
+tr391:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+#line 984 "rlscan.rl"
+       {act = 103;}
+       goto st167;
+tr395:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+#line 988 "rlscan.rl"
+       {act = 107;}
+       goto st167;
+tr398:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+#line 987 "rlscan.rl"
+       {act = 106;}
+       goto st167;
+tr403:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+#line 956 "rlscan.rl"
+       {act = 96;}
+       goto st167;
+tr409:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+#line 943 "rlscan.rl"
+       {act = 90;}
+       goto st167;
+tr415:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+#line 942 "rlscan.rl"
+       {act = 89;}
+       goto st167;
+tr418:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+#line 981 "rlscan.rl"
+       {act = 100;}
+       goto st167;
+tr421:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+#line 985 "rlscan.rl"
+       {act = 104;}
+       goto st167;
+tr427:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+#line 941 "rlscan.rl"
+       {act = 88;}
+       goto st167;
+tr433:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+#line 982 "rlscan.rl"
+       {act = 101;}
+       goto st167;
+tr440:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+#line 951 "rlscan.rl"
+       {act = 95;}
+       goto st167;
+tr445:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+#line 950 "rlscan.rl"
+       {act = 94;}
+       goto st167;
+tr446:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+#line 986 "rlscan.rl"
+       {act = 105;}
+       goto st167;
+tr453:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+#line 972 "rlscan.rl"
+       {act = 98;}
+       goto st167;
+tr457:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+#line 980 "rlscan.rl"
+       {act = 99;}
+       goto st167;
+tr460:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+#line 944 "rlscan.rl"
+       {act = 91;}
+       goto st167;
+st167:
+       if ( ++p == pe )
+               goto _test_eof167;
+case 167:
+#line 4927 "rlscan.cpp"
+       if ( (*p) == 95 )
+               goto tr297;
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr367;
+st168:
+       if ( ++p == pe )
+               goto _test_eof168;
+case 168:
+       if ( (*p) == 94 )
+               goto tr369;
+       goto tr368;
+st169:
+       if ( ++p == pe )
+               goto _test_eof169;
+case 169:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 99: goto st170;
+               case 108: goto st177;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st170:
+       if ( ++p == pe )
+               goto _test_eof170;
+case 170:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 99: goto st171;
+               case 116: goto st174;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st171:
+       if ( ++p == pe )
+               goto _test_eof171;
+case 171:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 101: goto st172;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st172:
+       if ( ++p == pe )
+               goto _test_eof172;
+case 172:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 115: goto st173;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st173:
+       if ( ++p == pe )
+               goto _test_eof173;
+case 173:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 115: goto tr377;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st174:
+       if ( ++p == pe )
+               goto _test_eof174;
+case 174:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 105: goto st175;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st175:
+       if ( ++p == pe )
+               goto _test_eof175;
+case 175:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 111: goto st176;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st176:
+       if ( ++p == pe )
+               goto _test_eof176;
+case 176:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 110: goto tr380;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st177:
+       if ( ++p == pe )
+               goto _test_eof177;
+case 177:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 112: goto st178;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st178:
+       if ( ++p == pe )
+               goto _test_eof178;
+case 178:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 104: goto st179;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st179:
+       if ( ++p == pe )
+               goto _test_eof179;
+case 179:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 116: goto st180;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st180:
+       if ( ++p == pe )
+               goto _test_eof180;
+case 180:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 121: goto st181;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st181:
+       if ( ++p == pe )
+               goto _test_eof181;
+case 181:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 112: goto st182;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st182:
+       if ( ++p == pe )
+               goto _test_eof182;
+case 182:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 101: goto tr386;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st183:
+       if ( ++p == pe )
+               goto _test_eof183;
+case 183:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 111: goto st184;
+               case 114: goto st185;
+               case 120: goto st186;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st184:
+       if ( ++p == pe )
+               goto _test_eof184;
+case 184:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 102: goto tr390;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st185:
+       if ( ++p == pe )
+               goto _test_eof185;
+case 185:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 114: goto tr391;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st186:
+       if ( ++p == pe )
+               goto _test_eof186;
+case 186:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 112: goto st187;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st187:
+       if ( ++p == pe )
+               goto _test_eof187;
+case 187:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 111: goto st188;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st188:
+       if ( ++p == pe )
+               goto _test_eof188;
+case 188:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 114: goto st189;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st189:
+       if ( ++p == pe )
+               goto _test_eof189;
+case 189:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 116: goto tr395;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st190:
+       if ( ++p == pe )
+               goto _test_eof190;
+case 190:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 114: goto st191;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st191:
+       if ( ++p == pe )
+               goto _test_eof191;
+case 191:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 111: goto st192;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st192:
+       if ( ++p == pe )
+               goto _test_eof192;
+case 192:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 109: goto tr398;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st193:
+       if ( ++p == pe )
+               goto _test_eof193;
+case 193:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 101: goto st194;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st194:
+       if ( ++p == pe )
+               goto _test_eof194;
+case 194:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 116: goto st195;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st195:
+       if ( ++p == pe )
+               goto _test_eof195;
+case 195:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 107: goto st196;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st196:
+       if ( ++p == pe )
+               goto _test_eof196;
+case 196:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 101: goto st197;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st197:
+       if ( ++p == pe )
+               goto _test_eof197;
+case 197:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 121: goto tr403;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st198:
+       if ( ++p == pe )
+               goto _test_eof198;
+case 198:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 109: goto st199;
+               case 110: goto st203;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st199:
+       if ( ++p == pe )
+               goto _test_eof199;
+case 199:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 112: goto st200;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st200:
+       if ( ++p == pe )
+               goto _test_eof200;
+case 200:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 111: goto st201;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st201:
+       if ( ++p == pe )
+               goto _test_eof201;
+case 201:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 114: goto st202;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st202:
+       if ( ++p == pe )
+               goto _test_eof202;
+case 202:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 116: goto tr409;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st203:
+       if ( ++p == pe )
+               goto _test_eof203;
+case 203:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 99: goto st204;
+               case 119: goto st208;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st204:
+       if ( ++p == pe )
+               goto _test_eof204;
+case 204:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 108: goto st205;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st205:
+       if ( ++p == pe )
+               goto _test_eof205;
+case 205:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 117: goto st206;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st206:
+       if ( ++p == pe )
+               goto _test_eof206;
+case 206:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 100: goto st207;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st207:
+       if ( ++p == pe )
+               goto _test_eof207;
+case 207:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 101: goto tr415;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st208:
+       if ( ++p == pe )
+               goto _test_eof208;
+case 208:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 104: goto st209;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st209:
+       if ( ++p == pe )
+               goto _test_eof209;
+case 209:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 101: goto st210;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st210:
+       if ( ++p == pe )
+               goto _test_eof210;
+case 210:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 110: goto tr418;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st211:
+       if ( ++p == pe )
+               goto _test_eof211;
+case 211:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 101: goto st212;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st212:
+       if ( ++p == pe )
+               goto _test_eof212;
+case 212:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 114: goto st213;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st213:
+       if ( ++p == pe )
+               goto _test_eof213;
+case 213:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 114: goto tr421;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st214:
+       if ( ++p == pe )
+               goto _test_eof214;
+case 214:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 97: goto st215;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 98 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st215:
+       if ( ++p == pe )
+               goto _test_eof215;
+case 215:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 99: goto st216;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st216:
+       if ( ++p == pe )
+               goto _test_eof216;
+case 216:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 104: goto st217;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st217:
+       if ( ++p == pe )
+               goto _test_eof217;
+case 217:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 105: goto st218;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st218:
+       if ( ++p == pe )
+               goto _test_eof218;
+case 218:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 110: goto st219;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st219:
+       if ( ++p == pe )
+               goto _test_eof219;
+case 219:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 101: goto tr427;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st220:
+       if ( ++p == pe )
+               goto _test_eof220;
+case 220:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 117: goto st221;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st221:
+       if ( ++p == pe )
+               goto _test_eof221;
+case 221:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 116: goto st222;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st222:
+       if ( ++p == pe )
+               goto _test_eof222;
+case 222:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 119: goto st223;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st223:
+       if ( ++p == pe )
+               goto _test_eof223;
+case 223:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 104: goto st224;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st224:
+       if ( ++p == pe )
+               goto _test_eof224;
+case 224:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 101: goto st225;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st225:
+       if ( ++p == pe )
+               goto _test_eof225;
+case 225:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 110: goto tr433;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st226:
+       if ( ++p == pe )
+               goto _test_eof226;
+case 226:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 111: goto st227;
+               case 114: goto st232;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st227:
+       if ( ++p == pe )
+               goto _test_eof227;
+case 227:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 115: goto st228;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st228:
+       if ( ++p == pe )
+               goto _test_eof228;
+case 228:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 116: goto st229;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st229:
+       if ( ++p == pe )
+               goto _test_eof229;
+case 229:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 112: goto st230;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st230:
+       if ( ++p == pe )
+               goto _test_eof230;
+case 230:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 111: goto st231;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st231:
+       if ( ++p == pe )
+               goto _test_eof231;
+case 231:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 112: goto tr440;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st232:
+       if ( ++p == pe )
+               goto _test_eof232;
+case 232:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 101: goto st233;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st233:
+       if ( ++p == pe )
+               goto _test_eof233;
+case 233:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 112: goto st234;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st234:
+       if ( ++p == pe )
+               goto _test_eof234;
+case 234:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 117: goto st235;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st235:
+       if ( ++p == pe )
+               goto _test_eof235;
+case 235:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 115: goto st236;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st236:
+       if ( ++p == pe )
+               goto _test_eof236;
+case 236:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 104: goto tr445;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st237:
+       if ( ++p == pe )
+               goto _test_eof237;
+case 237:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 111: goto tr446;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st238:
+       if ( ++p == pe )
+               goto _test_eof238;
+case 238:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 97: goto st239;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 98 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st239:
+       if ( ++p == pe )
+               goto _test_eof239;
+case 239:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 114: goto st240;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st240:
+       if ( ++p == pe )
+               goto _test_eof240;
+case 240:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 105: goto st241;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st241:
+       if ( ++p == pe )
+               goto _test_eof241;
+case 241:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 97: goto st242;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 98 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st242:
+       if ( ++p == pe )
+               goto _test_eof242;
+case 242:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 98: goto st243;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st243:
+       if ( ++p == pe )
+               goto _test_eof243;
+case 243:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 108: goto st244;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st244:
+       if ( ++p == pe )
+               goto _test_eof244;
+case 244:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 101: goto tr453;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st245:
+       if ( ++p == pe )
+               goto _test_eof245;
+case 245:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 104: goto st246;
+               case 114: goto st248;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st246:
+       if ( ++p == pe )
+               goto _test_eof246;
+case 246:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 101: goto st247;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st247:
+       if ( ++p == pe )
+               goto _test_eof247;
+case 247:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 110: goto tr457;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st248:
+       if ( ++p == pe )
+               goto _test_eof248;
+case 248:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 105: goto st249;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st249:
+       if ( ++p == pe )
+               goto _test_eof249;
+case 249:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 116: goto st250;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st250:
+       if ( ++p == pe )
+               goto _test_eof250;
+case 250:
+       switch( (*p) ) {
+               case 95: goto tr297;
+               case 101: goto tr460;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto tr297;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto tr297;
+       } else
+               goto tr297;
+       goto tr370;
+st251:
+       if ( ++p == pe )
+               goto _test_eof251;
+case 251:
+       if ( (*p) == 42 )
+               goto tr461;
+       goto tr315;
+tr313:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+       goto st252;
+st252:
+       if ( ++p == pe )
+               goto _test_eof252;
+case 252:
+#line 6363 "rlscan.cpp"
+       if ( (*p) == 37 )
+               goto st30;
+       goto tr315;
+st30:
+       if ( ++p == pe )
+               goto _test_eof30;
+case 30:
+       if ( (*p) == 37 )
+               goto tr57;
+       goto tr45;
+tr58:
+#line 1135 "rlscan.rl"
+       {{p = ((te))-1;}{ pass( *ts, 0, 0 ); }}
+       goto st253;
+tr61:
+#line 1119 "rlscan.rl"
+       {te = p+1;{ pass( IMP_Literal, ts, te ); }}
+       goto st253;
+tr64:
+#line 630 "rlscan.rl"
+       { 
+               lastnl = p; 
+               column = 0;
+               line++;
+       }
+#line 1117 "rlscan.rl"
+       {te = p+1;{ pass(); }}
+       goto st253;
+tr463:
+#line 1135 "rlscan.rl"
+       {te = p+1;{ pass( *ts, 0, 0 ); }}
+       goto st253;
+tr464:
+#line 1134 "rlscan.rl"
+       {te = p+1;}
+       goto st253;
+tr474:
+#line 1133 "rlscan.rl"
+       {te = p;p--;{ pass(); }}
+       goto st253;
+tr475:
+#line 1135 "rlscan.rl"
+       {te = p;p--;{ pass( *ts, 0, 0 ); }}
+       goto st253;
+tr477:
+#line 1127 "rlscan.rl"
+       {te = p;p--;{ 
+                       updateCol();
+                       singleLineSpec = true;
+                       startSection();
+                       {stack[top++] = 253; goto st146;}
+               }}
+       goto st253;
+tr478:
+#line 1121 "rlscan.rl"
+       {te = p+1;{ 
+                       updateCol();
+                       singleLineSpec = false;
+                       startSection();
+                       {stack[top++] = 253; goto st146;}
+               }}
+       goto st253;
+tr479:
+#line 1116 "rlscan.rl"
+       {te = p;p--;{ pass( IMP_UInt, ts, te ); }}
+       goto st253;
+tr480:
+#line 1115 "rlscan.rl"
+       {te = p;p--;{ pass( IMP_Word, ts, te ); }}
+       goto st253;
+st253:
+#line 1 "rlscan.rl"
+       {ts = 0;}
+       if ( ++p == pe )
+               goto _test_eof253;
+case 253:
+#line 1 "rlscan.rl"
+       {ts = p;}
+#line 6442 "rlscan.cpp"
+       switch( (*p) ) {
+               case 0: goto tr464;
+               case 9: goto st254;
+               case 10: goto tr466;
+               case 32: goto st254;
+               case 34: goto tr467;
+               case 35: goto tr468;
+               case 37: goto st257;
+               case 39: goto tr470;
+               case 47: goto tr471;
+               case 95: goto st262;
+       }
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto st261;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto st262;
+       } else
+               goto st262;
+       goto tr463;
+tr466:
+#line 630 "rlscan.rl"
+       { 
+               lastnl = p; 
+               column = 0;
+               line++;
+       }
+       goto st254;
+st254:
+       if ( ++p == pe )
+               goto _test_eof254;
+case 254:
+#line 6476 "rlscan.cpp"
+       switch( (*p) ) {
+               case 9: goto st254;
+               case 10: goto tr466;
+               case 32: goto st254;
+       }
+       goto tr474;
+tr467:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+       goto st255;
+st255:
+       if ( ++p == pe )
+               goto _test_eof255;
+case 255:
+#line 6491 "rlscan.cpp"
+       switch( (*p) ) {
+               case 10: goto tr60;
+               case 34: goto tr61;
+               case 92: goto st32;
+       }
+       goto st31;
+tr60:
+#line 630 "rlscan.rl"
+       { 
+               lastnl = p; 
+               column = 0;
+               line++;
+       }
+       goto st31;
+st31:
+       if ( ++p == pe )
+               goto _test_eof31;
+case 31:
+#line 6510 "rlscan.cpp"
+       switch( (*p) ) {
+               case 10: goto tr60;
+               case 34: goto tr61;
+               case 92: goto st32;
+       }
+       goto st31;
+st32:
+       if ( ++p == pe )
+               goto _test_eof32;
+case 32:
+       if ( (*p) == 10 )
+               goto tr60;
+       goto st31;
+tr468:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+       goto st256;
+st256:
+       if ( ++p == pe )
+               goto _test_eof256;
+case 256:
+#line 6532 "rlscan.cpp"
+       if ( (*p) == 10 )
+               goto tr64;
+       goto st33;
+st33:
+       if ( ++p == pe )
+               goto _test_eof33;
+case 33:
+       if ( (*p) == 10 )
+               goto tr64;
+       goto st33;
+st257:
+       if ( ++p == pe )
+               goto _test_eof257;
+case 257:
+       if ( (*p) == 37 )
+               goto st258;
+       goto tr475;
+st258:
+       if ( ++p == pe )
+               goto _test_eof258;
+case 258:
+       if ( (*p) == 123 )
+               goto tr478;
+       goto tr477;
+tr470:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+       goto st259;
+st259:
+       if ( ++p == pe )
+               goto _test_eof259;
+case 259:
+#line 6565 "rlscan.cpp"
+       switch( (*p) ) {
+               case 10: goto tr66;
+               case 39: goto tr61;
+               case 92: goto st35;
+       }
+       goto st34;
+tr66:
+#line 630 "rlscan.rl"
+       { 
+               lastnl = p; 
+               column = 0;
+               line++;
+       }
+       goto st34;
+st34:
+       if ( ++p == pe )
+               goto _test_eof34;
+case 34:
+#line 6584 "rlscan.cpp"
+       switch( (*p) ) {
+               case 10: goto tr66;
+               case 39: goto tr61;
+               case 92: goto st35;
+       }
+       goto st34;
+st35:
+       if ( ++p == pe )
+               goto _test_eof35;
+case 35:
+       if ( (*p) == 10 )
+               goto tr66;
+       goto st34;
+tr471:
+#line 1 "rlscan.rl"
+       {te = p+1;}
+       goto st260;
+st260:
+       if ( ++p == pe )
+               goto _test_eof260;
+case 260:
+#line 6606 "rlscan.cpp"
+       switch( (*p) ) {
+               case 10: goto tr69;
+               case 47: goto tr61;
+               case 92: goto st37;
+       }
+       goto st36;
+tr69:
+#line 630 "rlscan.rl"
+       { 
+               lastnl = p; 
+               column = 0;
+               line++;
+       }
+       goto st36;
+st36:
+       if ( ++p == pe )
+               goto _test_eof36;
+case 36:
+#line 6625 "rlscan.cpp"
+       switch( (*p) ) {
+               case 10: goto tr69;
+               case 47: goto tr61;
+               case 92: goto st37;
+       }
+       goto st36;
+st37:
+       if ( ++p == pe )
+               goto _test_eof37;
+case 37:
+       if ( (*p) == 10 )
+               goto tr69;
+       goto st36;
+st261:
+       if ( ++p == pe )
+               goto _test_eof261;
+case 261:
+       if ( 48 <= (*p) && (*p) <= 57 )
+               goto st261;
+       goto tr479;
+st262:
+       if ( ++p == pe )
+               goto _test_eof262;
+case 262:
+       if ( (*p) == 95 )
+               goto st262;
+       if ( (*p) < 65 ) {
+               if ( 48 <= (*p) && (*p) <= 57 )
+                       goto st262;
+       } else if ( (*p) > 90 ) {
+               if ( 97 <= (*p) && (*p) <= 122 )
+                       goto st262;
+       } else
+               goto st262;
+       goto tr480;
+       }
+       _test_eof38: cs = 38; goto _test_eof; 
+       _test_eof39: cs = 39; goto _test_eof; 
+       _test_eof40: cs = 40; goto _test_eof; 
+       _test_eof1: cs = 1; goto _test_eof; 
+       _test_eof2: cs = 2; goto _test_eof; 
+       _test_eof41: cs = 41; goto _test_eof; 
+       _test_eof42: cs = 42; goto _test_eof; 
+       _test_eof43: cs = 43; goto _test_eof; 
+       _test_eof3: cs = 3; goto _test_eof; 
+       _test_eof4: cs = 4; goto _test_eof; 
+       _test_eof44: cs = 44; goto _test_eof; 
+       _test_eof5: cs = 5; goto _test_eof; 
+       _test_eof6: cs = 6; goto _test_eof; 
+       _test_eof7: cs = 7; goto _test_eof; 
+       _test_eof45: cs = 45; goto _test_eof; 
+       _test_eof46: cs = 46; goto _test_eof; 
+       _test_eof47: cs = 47; goto _test_eof; 
+       _test_eof48: cs = 48; goto _test_eof; 
+       _test_eof49: cs = 49; goto _test_eof; 
+       _test_eof50: cs = 50; goto _test_eof; 
+       _test_eof51: cs = 51; goto _test_eof; 
+       _test_eof52: cs = 52; goto _test_eof; 
+       _test_eof53: cs = 53; goto _test_eof; 
+       _test_eof54: cs = 54; goto _test_eof; 
+       _test_eof8: cs = 8; goto _test_eof; 
+       _test_eof9: cs = 9; goto _test_eof; 
+       _test_eof55: cs = 55; goto _test_eof; 
+       _test_eof10: cs = 10; goto _test_eof; 
+       _test_eof56: cs = 56; goto _test_eof; 
+       _test_eof11: cs = 11; goto _test_eof; 
+       _test_eof12: cs = 12; goto _test_eof; 
+       _test_eof57: cs = 57; goto _test_eof; 
+       _test_eof13: cs = 13; goto _test_eof; 
+       _test_eof14: cs = 14; goto _test_eof; 
+       _test_eof58: cs = 58; goto _test_eof; 
+       _test_eof59: cs = 59; goto _test_eof; 
+       _test_eof15: cs = 15; goto _test_eof; 
+       _test_eof60: cs = 60; goto _test_eof; 
+       _test_eof61: cs = 61; goto _test_eof; 
+       _test_eof62: cs = 62; goto _test_eof; 
+       _test_eof63: cs = 63; goto _test_eof; 
+       _test_eof64: cs = 64; goto _test_eof; 
+       _test_eof65: cs = 65; goto _test_eof; 
+       _test_eof66: cs = 66; goto _test_eof; 
+       _test_eof67: cs = 67; goto _test_eof; 
+       _test_eof68: cs = 68; goto _test_eof; 
+       _test_eof69: cs = 69; goto _test_eof; 
+       _test_eof70: cs = 70; goto _test_eof; 
+       _test_eof71: cs = 71; goto _test_eof; 
+       _test_eof72: cs = 72; goto _test_eof; 
+       _test_eof73: cs = 73; goto _test_eof; 
+       _test_eof74: cs = 74; goto _test_eof; 
+       _test_eof75: cs = 75; goto _test_eof; 
+       _test_eof76: cs = 76; goto _test_eof; 
+       _test_eof77: cs = 77; goto _test_eof; 
+       _test_eof78: cs = 78; goto _test_eof; 
+       _test_eof79: cs = 79; goto _test_eof; 
+       _test_eof80: cs = 80; goto _test_eof; 
+       _test_eof81: cs = 81; goto _test_eof; 
+       _test_eof82: cs = 82; goto _test_eof; 
+       _test_eof83: cs = 83; goto _test_eof; 
+       _test_eof84: cs = 84; goto _test_eof; 
+       _test_eof85: cs = 85; goto _test_eof; 
+       _test_eof86: cs = 86; goto _test_eof; 
+       _test_eof87: cs = 87; goto _test_eof; 
+       _test_eof88: cs = 88; goto _test_eof; 
+       _test_eof89: cs = 89; goto _test_eof; 
+       _test_eof90: cs = 90; goto _test_eof; 
+       _test_eof91: cs = 91; goto _test_eof; 
+       _test_eof92: cs = 92; goto _test_eof; 
+       _test_eof93: cs = 93; goto _test_eof; 
+       _test_eof94: cs = 94; goto _test_eof; 
+       _test_eof95: cs = 95; goto _test_eof; 
+       _test_eof96: cs = 96; goto _test_eof; 
+       _test_eof97: cs = 97; goto _test_eof; 
+       _test_eof16: cs = 16; goto _test_eof; 
+       _test_eof17: cs = 17; goto _test_eof; 
+       _test_eof98: cs = 98; goto _test_eof; 
+       _test_eof18: cs = 18; goto _test_eof; 
+       _test_eof19: cs = 19; goto _test_eof; 
+       _test_eof99: cs = 99; goto _test_eof; 
+       _test_eof20: cs = 20; goto _test_eof; 
+       _test_eof21: cs = 21; goto _test_eof; 
+       _test_eof22: cs = 22; goto _test_eof; 
+       _test_eof100: cs = 100; goto _test_eof; 
+       _test_eof101: cs = 101; goto _test_eof; 
+       _test_eof23: cs = 23; goto _test_eof; 
+       _test_eof102: cs = 102; goto _test_eof; 
+       _test_eof103: cs = 103; goto _test_eof; 
+       _test_eof104: cs = 104; goto _test_eof; 
+       _test_eof105: cs = 105; goto _test_eof; 
+       _test_eof106: cs = 106; goto _test_eof; 
+       _test_eof107: cs = 107; goto _test_eof; 
+       _test_eof108: cs = 108; goto _test_eof; 
+       _test_eof109: cs = 109; goto _test_eof; 
+       _test_eof110: cs = 110; goto _test_eof; 
+       _test_eof111: cs = 111; goto _test_eof; 
+       _test_eof112: cs = 112; goto _test_eof; 
+       _test_eof113: cs = 113; goto _test_eof; 
+       _test_eof114: cs = 114; goto _test_eof; 
+       _test_eof115: cs = 115; goto _test_eof; 
+       _test_eof116: cs = 116; goto _test_eof; 
+       _test_eof117: cs = 117; goto _test_eof; 
+       _test_eof118: cs = 118; goto _test_eof; 
+       _test_eof119: cs = 119; goto _test_eof; 
+       _test_eof120: cs = 120; goto _test_eof; 
+       _test_eof121: cs = 121; goto _test_eof; 
+       _test_eof122: cs = 122; goto _test_eof; 
+       _test_eof123: cs = 123; goto _test_eof; 
+       _test_eof124: cs = 124; goto _test_eof; 
+       _test_eof125: cs = 125; goto _test_eof; 
+       _test_eof126: cs = 126; goto _test_eof; 
+       _test_eof127: cs = 127; goto _test_eof; 
+       _test_eof128: cs = 128; goto _test_eof; 
+       _test_eof129: cs = 129; goto _test_eof; 
+       _test_eof130: cs = 130; goto _test_eof; 
+       _test_eof131: cs = 131; goto _test_eof; 
+       _test_eof132: cs = 132; goto _test_eof; 
+       _test_eof133: cs = 133; goto _test_eof; 
+       _test_eof134: cs = 134; goto _test_eof; 
+       _test_eof135: cs = 135; goto _test_eof; 
+       _test_eof136: cs = 136; goto _test_eof; 
+       _test_eof137: cs = 137; goto _test_eof; 
+       _test_eof138: cs = 138; goto _test_eof; 
+       _test_eof139: cs = 139; goto _test_eof; 
+       _test_eof140: cs = 140; goto _test_eof; 
+       _test_eof141: cs = 141; goto _test_eof; 
+       _test_eof142: cs = 142; goto _test_eof; 
+       _test_eof143: cs = 143; goto _test_eof; 
+       _test_eof144: cs = 144; goto _test_eof; 
+       _test_eof145: cs = 145; goto _test_eof; 
+       _test_eof146: cs = 146; goto _test_eof; 
+       _test_eof147: cs = 147; goto _test_eof; 
+       _test_eof148: cs = 148; goto _test_eof; 
+       _test_eof24: cs = 24; goto _test_eof; 
+       _test_eof149: cs = 149; goto _test_eof; 
+       _test_eof25: cs = 25; goto _test_eof; 
+       _test_eof150: cs = 150; goto _test_eof; 
+       _test_eof26: cs = 26; goto _test_eof; 
+       _test_eof151: cs = 151; goto _test_eof; 
+       _test_eof152: cs = 152; goto _test_eof; 
+       _test_eof153: cs = 153; goto _test_eof; 
+       _test_eof27: cs = 27; goto _test_eof; 
+       _test_eof28: cs = 28; goto _test_eof; 
+       _test_eof154: cs = 154; goto _test_eof; 
+       _test_eof155: cs = 155; goto _test_eof; 
+       _test_eof156: cs = 156; goto _test_eof; 
+       _test_eof157: cs = 157; goto _test_eof; 
+       _test_eof158: cs = 158; goto _test_eof; 
+       _test_eof29: cs = 29; goto _test_eof; 
+       _test_eof159: cs = 159; goto _test_eof; 
+       _test_eof160: cs = 160; goto _test_eof; 
+       _test_eof161: cs = 161; goto _test_eof; 
+       _test_eof162: cs = 162; goto _test_eof; 
+       _test_eof163: cs = 163; goto _test_eof; 
+       _test_eof164: cs = 164; goto _test_eof; 
+       _test_eof165: cs = 165; goto _test_eof; 
+       _test_eof166: cs = 166; goto _test_eof; 
+       _test_eof167: cs = 167; goto _test_eof; 
+       _test_eof168: cs = 168; goto _test_eof; 
+       _test_eof169: cs = 169; goto _test_eof; 
+       _test_eof170: cs = 170; goto _test_eof; 
+       _test_eof171: cs = 171; goto _test_eof; 
+       _test_eof172: cs = 172; goto _test_eof; 
+       _test_eof173: cs = 173; goto _test_eof; 
+       _test_eof174: cs = 174; goto _test_eof; 
+       _test_eof175: cs = 175; goto _test_eof; 
+       _test_eof176: cs = 176; goto _test_eof; 
+       _test_eof177: cs = 177; goto _test_eof; 
+       _test_eof178: cs = 178; goto _test_eof; 
+       _test_eof179: cs = 179; goto _test_eof; 
+       _test_eof180: cs = 180; goto _test_eof; 
+       _test_eof181: cs = 181; goto _test_eof; 
+       _test_eof182: cs = 182; goto _test_eof; 
+       _test_eof183: cs = 183; goto _test_eof; 
+       _test_eof184: cs = 184; goto _test_eof; 
+       _test_eof185: cs = 185; goto _test_eof; 
+       _test_eof186: cs = 186; goto _test_eof; 
+       _test_eof187: cs = 187; goto _test_eof; 
+       _test_eof188: cs = 188; goto _test_eof; 
+       _test_eof189: cs = 189; goto _test_eof; 
+       _test_eof190: cs = 190; goto _test_eof; 
+       _test_eof191: cs = 191; goto _test_eof; 
+       _test_eof192: cs = 192; goto _test_eof; 
+       _test_eof193: cs = 193; goto _test_eof; 
+       _test_eof194: cs = 194; goto _test_eof; 
+       _test_eof195: cs = 195; goto _test_eof; 
+       _test_eof196: cs = 196; goto _test_eof; 
+       _test_eof197: cs = 197; goto _test_eof; 
+       _test_eof198: cs = 198; goto _test_eof; 
+       _test_eof199: cs = 199; goto _test_eof; 
+       _test_eof200: cs = 200; goto _test_eof; 
+       _test_eof201: cs = 201; goto _test_eof; 
+       _test_eof202: cs = 202; goto _test_eof; 
+       _test_eof203: cs = 203; goto _test_eof; 
+       _test_eof204: cs = 204; goto _test_eof; 
+       _test_eof205: cs = 205; goto _test_eof; 
+       _test_eof206: cs = 206; goto _test_eof; 
+       _test_eof207: cs = 207; goto _test_eof; 
+       _test_eof208: cs = 208; goto _test_eof; 
+       _test_eof209: cs = 209; goto _test_eof; 
+       _test_eof210: cs = 210; goto _test_eof; 
+       _test_eof211: cs = 211; goto _test_eof; 
+       _test_eof212: cs = 212; goto _test_eof; 
+       _test_eof213: cs = 213; goto _test_eof; 
+       _test_eof214: cs = 214; goto _test_eof; 
+       _test_eof215: cs = 215; goto _test_eof; 
+       _test_eof216: cs = 216; goto _test_eof; 
+       _test_eof217: cs = 217; goto _test_eof; 
+       _test_eof218: cs = 218; goto _test_eof; 
+       _test_eof219: cs = 219; goto _test_eof; 
+       _test_eof220: cs = 220; goto _test_eof; 
+       _test_eof221: cs = 221; goto _test_eof; 
+       _test_eof222: cs = 222; goto _test_eof; 
+       _test_eof223: cs = 223; goto _test_eof; 
+       _test_eof224: cs = 224; goto _test_eof; 
+       _test_eof225: cs = 225; goto _test_eof; 
+       _test_eof226: cs = 226; goto _test_eof; 
+       _test_eof227: cs = 227; goto _test_eof; 
+       _test_eof228: cs = 228; goto _test_eof; 
+       _test_eof229: cs = 229; goto _test_eof; 
+       _test_eof230: cs = 230; goto _test_eof; 
+       _test_eof231: cs = 231; goto _test_eof; 
+       _test_eof232: cs = 232; goto _test_eof; 
+       _test_eof233: cs = 233; goto _test_eof; 
+       _test_eof234: cs = 234; goto _test_eof; 
+       _test_eof235: cs = 235; goto _test_eof; 
+       _test_eof236: cs = 236; goto _test_eof; 
+       _test_eof237: cs = 237; goto _test_eof; 
+       _test_eof238: cs = 238; goto _test_eof; 
+       _test_eof239: cs = 239; goto _test_eof; 
+       _test_eof240: cs = 240; goto _test_eof; 
+       _test_eof241: cs = 241; goto _test_eof; 
+       _test_eof242: cs = 242; goto _test_eof; 
+       _test_eof243: cs = 243; goto _test_eof; 
+       _test_eof244: cs = 244; goto _test_eof; 
+       _test_eof245: cs = 245; goto _test_eof; 
+       _test_eof246: cs = 246; goto _test_eof; 
+       _test_eof247: cs = 247; goto _test_eof; 
+       _test_eof248: cs = 248; goto _test_eof; 
+       _test_eof249: cs = 249; goto _test_eof; 
+       _test_eof250: cs = 250; goto _test_eof; 
+       _test_eof251: cs = 251; goto _test_eof; 
+       _test_eof252: cs = 252; goto _test_eof; 
+       _test_eof30: cs = 30; goto _test_eof; 
+       _test_eof253: cs = 253; goto _test_eof; 
+       _test_eof254: cs = 254; goto _test_eof; 
+       _test_eof255: cs = 255; goto _test_eof; 
+       _test_eof31: cs = 31; goto _test_eof; 
+       _test_eof32: cs = 32; goto _test_eof; 
+       _test_eof256: cs = 256; goto _test_eof; 
+       _test_eof33: cs = 33; goto _test_eof; 
+       _test_eof257: cs = 257; goto _test_eof; 
+       _test_eof258: cs = 258; goto _test_eof; 
+       _test_eof259: cs = 259; goto _test_eof; 
+       _test_eof34: cs = 34; goto _test_eof; 
+       _test_eof35: cs = 35; goto _test_eof; 
+       _test_eof260: cs = 260; goto _test_eof; 
+       _test_eof36: cs = 36; goto _test_eof; 
+       _test_eof37: cs = 37; goto _test_eof; 
+       _test_eof261: cs = 261; goto _test_eof; 
+       _test_eof262: cs = 262; goto _test_eof; 
+
+       _test_eof: {}
+       if ( p == eof )
+       {
+       switch ( cs ) {
+       case 39: goto tr82;
+       case 40: goto tr83;
+       case 1: goto tr0;
+       case 2: goto tr0;
+       case 41: goto tr83;
+       case 42: goto tr85;
+       case 43: goto tr83;
+       case 3: goto tr0;
+       case 4: goto tr0;
+       case 44: goto tr83;
+       case 5: goto tr0;
+       case 6: goto tr0;
+       case 7: goto tr0;
+       case 45: goto tr87;
+       case 46: goto tr88;
+       case 47: goto tr89;
+       case 48: goto tr89;
+       case 49: goto tr89;
+       case 50: goto tr89;
+       case 51: goto tr89;
+       case 53: goto tr113;
+       case 54: goto tr114;
+       case 8: goto tr14;
+       case 9: goto tr14;
+       case 55: goto tr114;
+       case 10: goto tr14;
+       case 56: goto tr114;
+       case 11: goto tr14;
+       case 12: goto tr14;
+       case 57: goto tr114;
+       case 13: goto tr14;
+       case 14: goto tr14;
+       case 58: goto tr115;
+       case 59: goto tr115;
+       case 15: goto tr27;
+       case 60: goto tr117;
+       case 61: goto tr114;
+       case 62: goto tr119;
+       case 63: goto tr120;
+       case 64: goto tr120;
+       case 65: goto tr120;
+       case 66: goto tr120;
+       case 67: goto tr120;
+       case 68: goto tr134;
+       case 69: goto tr120;
+       case 70: goto tr120;
+       case 71: goto tr120;
+       case 72: goto tr120;
+       case 73: goto tr120;
+       case 74: goto tr120;
+       case 75: goto tr120;
+       case 76: goto tr120;
+       case 77: goto tr120;
+       case 78: goto tr120;
+       case 79: goto tr120;
+       case 80: goto tr120;
+       case 81: goto tr120;
+       case 82: goto tr120;
+       case 83: goto tr120;
+       case 84: goto tr120;
+       case 85: goto tr120;
+       case 86: goto tr120;
+       case 87: goto tr120;
+       case 88: goto tr120;
+       case 89: goto tr120;
+       case 90: goto tr120;
+       case 91: goto tr120;
+       case 92: goto tr120;
+       case 93: goto tr120;
+       case 94: goto tr120;
+       case 96: goto tr181;
+       case 97: goto tr182;
+       case 16: goto tr29;
+       case 17: goto tr29;
+       case 98: goto tr182;
+       case 18: goto tr29;
+       case 19: goto tr29;
+       case 99: goto tr182;
+       case 20: goto tr29;
+       case 21: goto tr29;
+       case 22: goto tr29;
+       case 100: goto tr183;
+       case 101: goto tr183;
+       case 23: goto tr43;
+       case 102: goto tr185;
+       case 103: goto tr182;
+       case 104: goto tr187;
+       case 105: goto tr188;
+       case 106: goto tr188;
+       case 107: goto tr188;
+       case 108: goto tr188;
+       case 109: goto tr188;
+       case 110: goto tr202;
+       case 111: goto tr188;
+       case 112: goto tr188;
+       case 113: goto tr188;
+       case 114: goto tr188;
+       case 115: goto tr188;
+       case 116: goto tr188;
+       case 117: goto tr188;
+       case 118: goto tr188;
+       case 119: goto tr188;
+       case 120: goto tr188;
+       case 121: goto tr188;
+       case 122: goto tr188;
+       case 123: goto tr188;
+       case 124: goto tr188;
+       case 125: goto tr188;
+       case 126: goto tr188;
+       case 127: goto tr188;
+       case 128: goto tr188;
+       case 129: goto tr188;
+       case 130: goto tr188;
+       case 131: goto tr188;
+       case 132: goto tr188;
+       case 133: goto tr188;
+       case 134: goto tr188;
+       case 135: goto tr188;
+       case 136: goto tr188;
+       case 138: goto tr237;
+       case 140: goto tr255;
+       case 141: goto tr257;
+       case 142: goto tr259;
+       case 144: goto tr275;
+       case 145: goto tr276;
+       case 147: goto tr314;
+       case 148: goto tr315;
+       case 24: goto tr45;
+       case 149: goto tr316;
+       case 25: goto tr45;
+       case 150: goto tr315;
+       case 26: goto tr45;
+       case 151: goto tr315;
+       case 152: goto tr315;
+       case 153: goto tr315;
+       case 27: goto tr45;
+       case 28: goto tr45;
+       case 154: goto tr315;
+       case 155: goto tr315;
+       case 156: goto tr315;
+       case 157: goto tr334;
+       case 158: goto tr334;
+       case 29: goto tr55;
+       case 159: goto tr336;
+       case 160: goto tr315;
+       case 161: goto tr340;
+       case 162: goto tr315;
+       case 163: goto tr349;
+       case 164: goto tr315;
+       case 165: goto tr315;
+       case 166: goto tr315;
+       case 167: goto tr367;
+       case 168: goto tr368;
+       case 169: goto tr370;
+       case 170: goto tr370;
+       case 171: goto tr370;
+       case 172: goto tr370;
+       case 173: goto tr370;
+       case 174: goto tr370;
+       case 175: goto tr370;
+       case 176: goto tr370;
+       case 177: goto tr370;
+       case 178: goto tr370;
+       case 179: goto tr370;
+       case 180: goto tr370;
+       case 181: goto tr370;
+       case 182: goto tr370;
+       case 183: goto tr370;
+       case 184: goto tr370;
+       case 185: goto tr370;
+       case 186: goto tr370;
+       case 187: goto tr370;
+       case 188: goto tr370;
+       case 189: goto tr370;
+       case 190: goto tr370;
+       case 191: goto tr370;
+       case 192: goto tr370;
+       case 193: goto tr370;
+       case 194: goto tr370;
+       case 195: goto tr370;
+       case 196: goto tr370;
+       case 197: goto tr370;
+       case 198: goto tr370;
+       case 199: goto tr370;
+       case 200: goto tr370;
+       case 201: goto tr370;
+       case 202: goto tr370;
+       case 203: goto tr370;
+       case 204: goto tr370;
+       case 205: goto tr370;
+       case 206: goto tr370;
+       case 207: goto tr370;
+       case 208: goto tr370;
+       case 209: goto tr370;
+       case 210: goto tr370;
+       case 211: goto tr370;
+       case 212: goto tr370;
+       case 213: goto tr370;
+       case 214: goto tr370;
+       case 215: goto tr370;
+       case 216: goto tr370;
+       case 217: goto tr370;
+       case 218: goto tr370;
+       case 219: goto tr370;
+       case 220: goto tr370;
+       case 221: goto tr370;
+       case 222: goto tr370;
+       case 223: goto tr370;
+       case 224: goto tr370;
+       case 225: goto tr370;
+       case 226: goto tr370;
+       case 227: goto tr370;
+       case 228: goto tr370;
+       case 229: goto tr370;
+       case 230: goto tr370;
+       case 231: goto tr370;
+       case 232: goto tr370;
+       case 233: goto tr370;
+       case 234: goto tr370;
+       case 235: goto tr370;
+       case 236: goto tr370;
+       case 237: goto tr370;
+       case 238: goto tr370;
+       case 239: goto tr370;
+       case 240: goto tr370;
+       case 241: goto tr370;
+       case 242: goto tr370;
+       case 243: goto tr370;
+       case 244: goto tr370;
+       case 245: goto tr370;
+       case 246: goto tr370;
+       case 247: goto tr370;
+       case 248: goto tr370;
+       case 249: goto tr370;
+       case 250: goto tr370;
+       case 251: goto tr315;
+       case 252: goto tr315;
+       case 30: goto tr45;
+       case 254: goto tr474;
+       case 255: goto tr475;
+       case 31: goto tr58;
+       case 32: goto tr58;
+       case 256: goto tr475;
+       case 33: goto tr58;
+       case 257: goto tr475;
+       case 258: goto tr477;
+       case 259: goto tr475;
+       case 34: goto tr58;
+       case 35: goto tr58;
+       case 260: goto tr475;
+       case 36: goto tr58;
+       case 37: goto tr58;
+       case 261: goto tr479;
+       case 262: goto tr480;
+       }
+       }
+
+       _out: {}
+       }
+
+#line 1230 "rlscan.rl"
+
+               /* Check if we failed. */
+               if ( cs == rlscan_error ) {
+                       /* Machine failed before finding a token. I'm not yet sure if this
+                        * is reachable. */
+                       scan_error() << "scanner error" << endl;
+                       exit(1);
+               }
+
+               /* Decide if we need to preserve anything. */
+               char *preserve = ts;
+
+               /* Now set up the prefix. */
+               if ( preserve == 0 )
+                       have = 0;
+               else {
+                       /* There is data that needs to be shifted over. */
+                       have = pe - preserve;
+                       memmove( buf, preserve, have );
+                       unsigned int shiftback = preserve - buf;
+                       if ( ts != 0 )
+                               ts -= shiftback;
+                       te -= shiftback;
+
+                       preserve = buf;
+               }
+       }
+
+       delete[] buf;
+}