1 /* A Bison parser, made by GNU Bison 3.3.2.  */
2 
3 /* Bison implementation for Yacc-like parsers in C
4 
5    Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 Free Software Foundation,
6    Inc.
7 
8    This program is free software: you can redistribute it and/or modify
9    it under the terms of the GNU General Public License as published by
10    the Free Software Foundation, either version 3 of the License, or
11    (at your option) any later version.
12 
13    This program is distributed in the hope that it will be useful,
14    but WITHOUT ANY WARRANTY; without even the implied warranty of
15    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16    GNU General Public License for more details.
17 
18    You should have received a copy of the GNU General Public License
19    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
20 
21 /* As a special exception, you may create a larger work that contains
22    part or all of the Bison parser skeleton and distribute that work
23    under terms of your choice, so long as that work isn't itself a
24    parser generator using the skeleton or a modified version thereof
25    as a parser skeleton.  Alternatively, if you modify or redistribute
26    the parser skeleton itself, you may (at your option) remove this
27    special exception, which will cause the skeleton and the resulting
28    Bison output files to be licensed under the GNU General Public
29    License without this special exception.
30 
31    This special exception was added by the Free Software Foundation in
32    version 2.2 of Bison.  */
33 
34 /* C LALR(1) parser skeleton written by Richard Stallman, by
35    simplifying the original so-called "semantic" parser.  */
36 
37 /* All symbols defined below should begin with yy or YY, to avoid
38    infringing on user name space.  This should be done even for local
39    variables, as they might otherwise be expanded by user macros.
40    There are some unavoidable exceptions within include files to
41    define necessary library symbols; they are noted "INFRINGES ON
42    USER NAME SPACE" below.  */
43 
44 /* Undocumented macros, especially those whose name start with YY_,
45    are private implementation details.  Do not rely on them.  */
46 
47 /* Identify Bison output.  */
48 #define YYBISON 1
49 
50 /* Bison version.  */
51 #define YYBISON_VERSION "3.3.2"
52 
53 /* Skeleton name.  */
54 #define YYSKELETON_NAME "yacc.c"
55 
56 /* Pure parsers.  */
57 #define YYPURE 1
58 
59 /* Push parsers.  */
60 #define YYPUSH 0
61 
62 /* Pull parsers.  */
63 #define YYPULL 1
64 
65 
66 
67 
68 /* First part of user prologue.  */
69 #line 32 "lscp.y" /* yacc.c:337  */
70 
71 
72 #include "lscpparser.h"
73 #include "lscpserver.h"
74 #include "lscpevent.h"
75 
76 #if AC_APPLE_UNIVERSAL_BUILD
77 # include "lscp.tab.h"
78 #else
79 # include "lscpsymbols.h"
80 #endif
81 
82 #include <algorithm>
83 #include "lscp.h"
84 
85 namespace LinuxSampler {
86 
87 // to save us typing work in the rules action definitions
88 #define LSCPSERVER ((yyparse_param_t*) yyparse_param)->pServer
89 #define SESSION_PARAM ((yyparse_param_t*) yyparse_param)
90 #define INCREMENT_LINE { SESSION_PARAM->onNextLine(); sParsed.clear(); }
91 
92 // clears input buffer
93 void restart(yyparse_param_t* pparam, int& yychar);
94 #define RESTART restart((yyparse_param_t*) YYPARSE_PARAM, yychar)
95 
96 static char buf[1024]; // input buffer to feed the parser with new characters
97 static int bytes = 0;  // current number of characters in the input buffer
98 static int ptr   = 0;  // current position in the input buffer
99 static String sLastError; // error message of the last error occured
100 static String sParsed; ///< Characters of current line which have already been shifted (consumed/parsed) by the parser.
101 
102 // external reference to the function which actually reads from the socket
103 extern int GetLSCPCommand( void *buf, int max_size);
104 
105 // external reference to the function in lscpserver.cpp which returns the
106 // current session (only works because the server runs as singleton)
107 extern yyparse_param_t* GetCurrentYaccSession();
108 
109 // returns true if supplied characters has an ASCII code of 128 or higher
isExtendedAsciiChar(const char c)110 inline bool isExtendedAsciiChar(const char c) {
111     return (c < 0);
112 }
113 
114 // returns true if the given character is between between a to z.
isLowerCaseAlphaChar(const char c)115 inline bool isLowerCaseAlphaChar(const char c) {
116     return c >= 'a' && c <= 'z';
117 }
118 
119 // converts the given (expected) lower case character to upper case
alphaCharToUpperCase(const char c)120 inline char alphaCharToUpperCase(const char c) {
121     return (c - 'a') + 'A';
122 }
123 
124 // custom scanner function which reads from the socket
125 // (bison expects it to return the numerical ID of the next
126 // "recognized token" from the input stream)
yylex(YYSTYPE * yylval)127 int yylex(YYSTYPE* yylval) {
128     // check if we have to read new characters
129     if (ptr >= bytes) {
130         bytes = GetLSCPCommand(buf, 1023);
131         ptr   = 0;
132         if (bytes < 0) {
133             bytes = 0;
134             return 0;
135         }
136     }
137     // this is the next character in the input stream
138     const char c = buf[ptr++];
139     // increment current reading position (just for verbosity / messages)
140     GetCurrentYaccSession()->iColumn++;
141     sParsed += c;
142     // we have to handle "normal" and "extended" ASCII characters separately
143     if (isExtendedAsciiChar(c)) {
144         // workaround for characters with ASCII code higher than 127
145         yylval->Char = c;
146         return EXT_ASCII_CHAR;
147     } else {
148         // simply return the ASCII code as terminal symbol ID
149         return (int) c;
150     }
151 }
152 
153 // parser helper functions
154 
octalsToNumber(char oct_digit0,char oct_digit1='0',char oct_digit2='0')155 int octalsToNumber(char oct_digit0, char oct_digit1 = '0', char oct_digit2 = '0') {
156     const char d0[] = { oct_digit0, '\0' };
157     const char d1[] = { oct_digit1, '\0' };
158     const char d2[] = { oct_digit2, '\0' };
159     return atoi(d2)*8*8 + atoi(d1)*8 + atoi(d0);
160 }
161 
162 }
163 
164 using namespace LinuxSampler;
165 
166 static std::set<String> yyExpectedSymbols();
167 
168 /**
169  * Will be called when an error occured (usually syntax error).
170  *
171  * We provide our own version of yyerror() so we a) don't have to link against
172  * the yacc library and b) can render more helpful syntax error messages.
173  */
yyerror(void * x,const char * s)174 void yyerror(void* x, const char* s) {
175     yyparse_param_t* param = GetCurrentYaccSession();
176 
177     // get the text part already parsed (of current line)
178     const bool bContainsLineFeed =
179         sParsed.find('\r') != std::string::npos ||
180         sParsed.find('\n') != std::string::npos;
181     // remove potential line feed characters
182     if (bContainsLineFeed) {
183         for (size_t p = sParsed.find('\r'); p != std::string::npos;
184              p = sParsed.find('\r')) sParsed.erase(p);
185         for (size_t p = sParsed.find('\n'); p != std::string::npos;
186              p = sParsed.find('\n')) sParsed.erase(p);
187     }
188 
189     // start assembling the error message with Bison's own message
190     String txt = s;
191 
192     // append exact position info of syntax error
193     txt += (" (line:"  + ToString(param->iLine+1)) +
194            (",column:" + ToString(param->iColumn)) + ")";
195 
196     // append the part of the lined that has already been parsed
197     txt += ". Context: \"" + sParsed;
198     if (txt.empty() || bContainsLineFeed)
199         txt += "^";
200     else
201         txt.insert(txt.size() - 1, "^");
202     txt += "...\"";
203 
204     // append the non-terminal symbols expected now/next
205     std::set<String> expectedSymbols = yyExpectedSymbols();
206     for (std::set<String>::const_iterator it = expectedSymbols.begin();
207          it != expectedSymbols.end(); ++it)
208     {
209         if (it == expectedSymbols.begin())
210             txt += " -> Should be: " + *it;
211         else
212             txt += " | " + *it;
213     }
214 
215     dmsg(2,("LSCPParser: %s\n", txt.c_str()));
216     sLastError = txt;
217 }
218 
219 
220 #line 221 "y.tab.c" /* yacc.c:337  */
221 # ifndef YY_NULLPTR
222 #  if defined __cplusplus
223 #   if 201103L <= __cplusplus
224 #    define YY_NULLPTR nullptr
225 #   else
226 #    define YY_NULLPTR 0
227 #   endif
228 #  else
229 #   define YY_NULLPTR ((void*)0)
230 #  endif
231 # endif
232 
233 /* Enabling verbose error messages.  */
234 #ifdef YYERROR_VERBOSE
235 # undef YYERROR_VERBOSE
236 # define YYERROR_VERBOSE 1
237 #else
238 # define YYERROR_VERBOSE 1
239 #endif
240 
241 
242 /* Debug traces.  */
243 #ifndef YYDEBUG
244 # define YYDEBUG 0
245 #endif
246 #if YYDEBUG
247 extern int yydebug;
248 #endif
249 
250 /* Token type.  */
251 #ifndef YYTOKENTYPE
252 # define YYTOKENTYPE
253   enum yytokentype
254   {
255     EXT_ASCII_CHAR = 258
256   };
257 #endif
258 /* Tokens.  */
259 #define EXT_ASCII_CHAR 258
260 
261 /* Value type.  */
262 
263 
264 
265 int yyparse (void* yyparse_param);
266 
267 
268 
269 
270 
271 #ifdef short
272 # undef short
273 #endif
274 
275 #ifdef YYTYPE_UINT8
276 typedef YYTYPE_UINT8 yytype_uint8;
277 #else
278 typedef unsigned char yytype_uint8;
279 #endif
280 
281 #ifdef YYTYPE_INT8
282 typedef YYTYPE_INT8 yytype_int8;
283 #else
284 typedef signed char yytype_int8;
285 #endif
286 
287 #ifdef YYTYPE_UINT16
288 typedef YYTYPE_UINT16 yytype_uint16;
289 #else
290 typedef unsigned short yytype_uint16;
291 #endif
292 
293 #ifdef YYTYPE_INT16
294 typedef YYTYPE_INT16 yytype_int16;
295 #else
296 typedef short yytype_int16;
297 #endif
298 
299 #ifndef YYSIZE_T
300 # ifdef __SIZE_TYPE__
301 #  define YYSIZE_T __SIZE_TYPE__
302 # elif defined size_t
303 #  define YYSIZE_T size_t
304 # elif ! defined YYSIZE_T
305 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
306 #  define YYSIZE_T size_t
307 # else
308 #  define YYSIZE_T unsigned
309 # endif
310 #endif
311 
312 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
313 
314 #ifndef YY_
315 # if defined YYENABLE_NLS && YYENABLE_NLS
316 #  if ENABLE_NLS
317 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
318 #   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
319 #  endif
320 # endif
321 # ifndef YY_
322 #  define YY_(Msgid) Msgid
323 # endif
324 #endif
325 
326 #ifndef YY_ATTRIBUTE
327 # if (defined __GNUC__                                               \
328       && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \
329      || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
330 #  define YY_ATTRIBUTE(Spec) __attribute__(Spec)
331 # else
332 #  define YY_ATTRIBUTE(Spec) /* empty */
333 # endif
334 #endif
335 
336 #ifndef YY_ATTRIBUTE_PURE
337 # define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
338 #endif
339 
340 #ifndef YY_ATTRIBUTE_UNUSED
341 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
342 #endif
343 
344 /* Suppress unused-variable warnings by "using" E.  */
345 #if ! defined lint || defined __GNUC__
346 # define YYUSE(E) ((void) (E))
347 #else
348 # define YYUSE(E) /* empty */
349 #endif
350 
351 #if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
352 /* Suppress an incorrect diagnostic about yylval being uninitialized.  */
353 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
354     _Pragma ("GCC diagnostic push") \
355     _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
356     _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
357 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
358     _Pragma ("GCC diagnostic pop")
359 #else
360 # define YY_INITIAL_VALUE(Value) Value
361 #endif
362 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
363 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
364 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
365 #endif
366 #ifndef YY_INITIAL_VALUE
367 # define YY_INITIAL_VALUE(Value) /* Nothing. */
368 #endif
369 
370 
371 #if ! defined yyoverflow || YYERROR_VERBOSE
372 
373 /* The parser invokes alloca or malloc; define the necessary symbols.  */
374 
375 # ifdef YYSTACK_USE_ALLOCA
376 #  if YYSTACK_USE_ALLOCA
377 #   ifdef __GNUC__
378 #    define YYSTACK_ALLOC __builtin_alloca
379 #   elif defined __BUILTIN_VA_ARG_INCR
380 #    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
381 #   elif defined _AIX
382 #    define YYSTACK_ALLOC __alloca
383 #   elif defined _MSC_VER
384 #    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
385 #    define alloca _alloca
386 #   else
387 #    define YYSTACK_ALLOC alloca
388 #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
389 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
390       /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
391 #     ifndef EXIT_SUCCESS
392 #      define EXIT_SUCCESS 0
393 #     endif
394 #    endif
395 #   endif
396 #  endif
397 # endif
398 
399 # ifdef YYSTACK_ALLOC
400    /* Pacify GCC's 'empty if-body' warning.  */
401 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
402 #  ifndef YYSTACK_ALLOC_MAXIMUM
403     /* The OS might guarantee only one guard page at the bottom of the stack,
404        and a page size can be as small as 4096 bytes.  So we cannot safely
405        invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
406        to allow for a few compiler-allocated temporary stack slots.  */
407 #   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
408 #  endif
409 # else
410 #  define YYSTACK_ALLOC YYMALLOC
411 #  define YYSTACK_FREE YYFREE
412 #  ifndef YYSTACK_ALLOC_MAXIMUM
413 #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
414 #  endif
415 #  if (defined __cplusplus && ! defined EXIT_SUCCESS \
416        && ! ((defined YYMALLOC || defined malloc) \
417              && (defined YYFREE || defined free)))
418 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
419 #   ifndef EXIT_SUCCESS
420 #    define EXIT_SUCCESS 0
421 #   endif
422 #  endif
423 #  ifndef YYMALLOC
424 #   define YYMALLOC malloc
425 #   if ! defined malloc && ! defined EXIT_SUCCESS
426 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
427 #   endif
428 #  endif
429 #  ifndef YYFREE
430 #   define YYFREE free
431 #   if ! defined free && ! defined EXIT_SUCCESS
432 void free (void *); /* INFRINGES ON USER NAME SPACE */
433 #   endif
434 #  endif
435 # endif
436 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
437 
438 
439 #if (! defined yyoverflow \
440      && (! defined __cplusplus \
441          || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
442 
443 /* A type that is properly aligned for any stack member.  */
444 union yyalloc
445 {
446   yytype_int16 yyss_alloc;
447   YYSTYPE yyvs_alloc;
448 };
449 
450 /* The size of the maximum gap between one aligned stack and the next.  */
451 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
452 
453 /* The size of an array large to enough to hold all stacks, each with
454    N elements.  */
455 # define YYSTACK_BYTES(N) \
456      ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
457       + YYSTACK_GAP_MAXIMUM)
458 
459 # define YYCOPY_NEEDED 1
460 
461 /* Relocate STACK from its old location to the new one.  The
462    local variables YYSIZE and YYSTACKSIZE give the old and new number of
463    elements in the stack, and YYPTR gives the new location of the
464    stack.  Advance YYPTR to a properly aligned location for the next
465    stack.  */
466 # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
467     do                                                                  \
468       {                                                                 \
469         YYSIZE_T yynewbytes;                                            \
470         YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
471         Stack = &yyptr->Stack_alloc;                                    \
472         yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
473         yyptr += yynewbytes / sizeof (*yyptr);                          \
474       }                                                                 \
475     while (0)
476 
477 #endif
478 
479 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
480 /* Copy COUNT objects from SRC to DST.  The source and destination do
481    not overlap.  */
482 # ifndef YYCOPY
483 #  if defined __GNUC__ && 1 < __GNUC__
484 #   define YYCOPY(Dst, Src, Count) \
485       __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
486 #  else
487 #   define YYCOPY(Dst, Src, Count)              \
488       do                                        \
489         {                                       \
490           YYSIZE_T yyi;                         \
491           for (yyi = 0; yyi < (Count); yyi++)   \
492             (Dst)[yyi] = (Src)[yyi];            \
493         }                                       \
494       while (0)
495 #  endif
496 # endif
497 #endif /* !YYCOPY_NEEDED */
498 
499 /* YYFINAL -- State number of the termination state.  */
500 #define YYFINAL  64
501 /* YYLAST -- Last index in YYTABLE.  */
502 #define YYLAST   5021
503 
504 /* YYNTOKENS -- Number of terminals.  */
505 #define YYNTOKENS  100
506 /* YYNNTS -- Number of nonterminals.  */
507 #define YYNNTS  233
508 /* YYNRULES -- Number of rules.  */
509 #define YYNRULES  669
510 /* YYNSTATES -- Number of states.  */
511 #define YYNSTATES  2662
512 
513 #define YYUNDEFTOK  2
514 #define YYMAXUTOK   258
515 
516 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
517    as returned by yylex, with out-of-bounds checking.  */
518 #define YYTRANSLATE(YYX)                                                \
519   ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
520 
521 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
522    as returned by yylex.  */
523 static const yytype_uint8 yytranslate[] =
524 {
525        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
526       98,     2,     2,    99,     2,     2,     2,     2,     2,     2,
527        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
528        2,     2,    97,    77,    33,     4,    78,    79,    80,    32,
529       81,    82,    83,     8,     6,     9,     7,    34,    10,    11,
530       12,    13,    14,    15,    16,    17,    18,    19,    35,    84,
531       85,     5,    86,    87,    88,    26,    27,    28,    29,    30,
532       31,    37,    38,    39,    40,    41,    42,    43,    44,    45,
533       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
534       56,    89,    36,    90,    91,    92,     2,    20,    21,    22,
535       23,    24,    25,    57,    58,    59,    60,    61,    62,    63,
536       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
537       74,    75,    76,    93,    94,    95,    96,     2,     2,     2,
538        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
539        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
540        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
541        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
542        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
543        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
544        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
545        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
546        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
547        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
548        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
549        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
550        2,     2,     2,     2,     2,     2,     1,     2,     3
551 };
552 
553 #if YYDEBUG
554   /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
555 static const yytype_uint16 yyrline[] =
556 {
557        0,   227,   227,   228,   231,   232,   235,   236,   237,   240,
558      241,   242,   243,   244,   247,   248,   249,   250,   251,   252,
559      253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
560      263,   264,   265,   266,   267,   268,   269,   270,   273,   274,
561      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
562      285,   286,   287,   290,   291,   292,   293,   294,   295,   296,
563      297,   298,   299,   300,   301,   302,   303,   304,   305,   306,
564      307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
565      317,   318,   319,   322,   323,   324,   325,   326,   327,   328,
566      329,   330,   331,   332,   333,   334,   335,   336,   337,   338,
567      339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
568      349,   350,   351,   354,   355,   356,   357,   360,   363,   364,
569      365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
570      377,   378,   379,   380,   381,   382,   383,   384,   385,   386,
571      387,   388,   389,   390,   391,   392,   393,   394,   395,   396,
572      397,   398,   399,   400,   401,   402,   403,   404,   405,   406,
573      407,   408,   409,   410,   411,   412,   413,   414,   415,   416,
574      417,   418,   419,   420,   421,   422,   423,   424,   425,   426,
575      427,   428,   429,   432,   433,   434,   435,   436,   437,   438,
576      439,   440,   441,   442,   443,   444,   445,   446,   447,   448,
577      449,   450,   451,   452,   453,   454,   455,   456,   459,   460,
578      461,   462,   463,   464,   465,   466,   469,   472,   473,   476,
579      477,   478,   479,   480,   483,   484,   487,   488,   491,   492,
580      493,   494,   497,   498,   501,   504,   507,   508,   509,   510,
581      511,   512,   513,   514,   515,   516,   517,   518,   519,   520,
582      523,   526,   529,   530,   533,   534,   537,   538,   541,   542,
583      543,   544,   545,   546,   547,   548,   549,   550,   551,   552,
584      553,   554,   555,   556,   557,   558,   559,   562,   565,   566,
585      569,   572,   573,   574,   577,   580,   583,   586,   589,   592,
586      593,   596,   599,   602,   605,   608,   611,   612,   615,   618,
587      621,   624,   627,   630,   640,   643,   646,   649,   652,   655,
588      658,   661,   664,   667,   668,   672,   673,   674,   675,   678,
589      679,   682,   683,   686,   687,   688,   691,   694,   702,   703,
590      706,   707,   708,   711,   712,   713,   714,   715,   716,   720,
591      721,   724,   725,   726,   727,   728,   729,   730,   731,   732,
592      733,   736,   737,   738,   739,   740,   741,   742,   743,   746,
593      747,   748,   749,   750,   751,   752,   753,   754,   755,   756,
594      757,   758,   759,   760,   761,   762,   763,   764,   765,   766,
595      767,   770,   771,   772,   773,   774,   775,   776,   777,   778,
596      779,   782,   783,   786,   789,   790,   793,   794,   795,   798,
597      799,   802,   803,   806,   807,   808,   809,   813,   814,   815,
598      816,   819,   820,   821,   822,   825,   826,   829,   830,   831,
599      832,   836,   837,   838,   842,   842,   842,   842,   842,   842,
600      842,   842,   842,   842,   842,   842,   842,   842,   842,   842,
601      842,   842,   842,   842,   842,   842,   842,   842,   842,   842,
602      843,   843,   843,   843,   843,   843,   843,   843,   843,   843,
603      843,   843,   843,   843,   843,   843,   843,   843,   843,   843,
604      843,   843,   843,   843,   843,   843,   847,   848,   848,   848,
605      848,   848,   848,   848,   848,   848,   848,   849,   849,   849,
606      849,   849,   849,   849,   849,   849,   849,   849,   849,   850,
607      850,   850,   850,   850,   850,   850,   851,   851,   851,   851,
608      852,   852,   852,   852,   853,   856,   857,   858,   859,   860,
609      861,   862,   863,   864,   865,   866,   869,   870,   871,   874,
610      875,   880,   883,   886,   889,   892,   895,   898,   901,   904,
611      907,   910,   913,   916,   919,   922,   925,   928,   931,   934,
612      937,   940,   943,   946,   949,   952,   955,   958,   961,   964,
613      967,   970,   973,   976,   979,   982,   985,   988,   991,   994,
614      997,  1000,  1003,  1006,  1009,  1012,  1015,  1018,  1021,  1024,
615     1027,  1030,  1033,  1036,  1039,  1042,  1045,  1048,  1051,  1054,
616     1057,  1060,  1063,  1066,  1069,  1072,  1075,  1078,  1081,  1084,
617     1087,  1090,  1093,  1096,  1099,  1102,  1105,  1108,  1111,  1114,
618     1117,  1120,  1123,  1126,  1129,  1132,  1135,  1138,  1141,  1144,
619     1147,  1150,  1153,  1156,  1159,  1162,  1165,  1168,  1171,  1174,
620     1177,  1180,  1183,  1186,  1189,  1192,  1195,  1198,  1201,  1204,
621     1207,  1210,  1213,  1216,  1219,  1222,  1225,  1228,  1231,  1234,
622     1237,  1240,  1243,  1246,  1249,  1252,  1255,  1258,  1261,  1264,
623     1267,  1270,  1273,  1276,  1279,  1282,  1285,  1288,  1291,  1294
624 };
625 #endif
626 
627 #if YYDEBUG || YYERROR_VERBOSE || 1
628 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
629    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
630 static const char *const yytname[] =
631 {
632   "$end", "error", "$undefined", "EXT_ASCII_CHAR", "'#'", "'='", "','",
633   "'.'", "'+'", "'-'", "'0'", "'1'", "'2'", "'3'", "'4'", "'5'", "'6'",
634   "'7'", "'8'", "'9'", "'a'", "'b'", "'c'", "'d'", "'e'", "'f'", "'A'",
635   "'B'", "'C'", "'D'", "'E'", "'F'", "'\\''", "'\"'", "'/'", "':'",
636   "'\\\\'", "'G'", "'H'", "'I'", "'J'", "'K'", "'L'", "'M'", "'N'", "'O'",
637   "'P'", "'Q'", "'R'", "'S'", "'T'", "'U'", "'V'", "'W'", "'X'", "'Y'",
638   "'Z'", "'g'", "'h'", "'i'", "'j'", "'k'", "'l'", "'m'", "'n'", "'o'",
639   "'p'", "'q'", "'r'", "'s'", "'t'", "'u'", "'v'", "'w'", "'x'", "'y'",
640   "'z'", "'!'", "'$'", "'%'", "'&'", "'('", "')'", "'*'", "';'", "'<'",
641   "'>'", "'?'", "'@'", "'['", "']'", "'^'", "'_'", "'{'", "'|'", "'}'",
642   "'~'", "' '", "'\\n'", "'\\r'", "$accept", "input", "line", "statement",
643   "comment", "command", "add_instruction", "subscribe_event",
644   "unsubscribe_event", "map_instruction", "unmap_instruction",
645   "remove_instruction", "get_instruction", "set_instruction",
646   "create_instruction", "reset_instruction", "clear_instruction",
647   "find_instruction", "move_instruction", "copy_instruction",
648   "destroy_instruction", "load_instruction", "append_instruction",
649   "insert_instruction", "set_chan_instruction", "edit_instruction",
650   "format_instruction", "modal_arg", "key_val_list", "buffer_size_type",
651   "list_instruction", "send_instruction", "load_instr_args",
652   "load_engine_args", "instr_load_mode", "effect_instance", "device_index",
653   "audio_channel_index", "audio_output_type_name", "midi_input_port_index",
654   "midi_input_channel_index", "midi_input_type_name", "midi_map",
655   "midi_bank", "midi_prog", "midi_ctrl", "volume_value", "control_value",
656   "sampler_channel", "instrument_index", "fx_send_id", "engine_name",
657   "filename", "db_path", "map_name", "entry_name", "fx_send_name",
658   "effect_name", "effect_index", "effect_chain", "chain_pos",
659   "input_control", "param_val_list", "param_val", "query_val_list",
660   "query_val", "scan_mode", "effect_system", "module", "boolean", "dotnum",
661   "real", "digits", "digit", "digit_oct", "digit_hex", "number", "path",
662   "path_base", "path_prefix", "path_body", "stringval",
663   "stringval_escaped", "text", "text_escaped_base", "text_escaped",
664   "string", "string_escaped", "char", "alpha_char", "char_base",
665   "escape_seq", "escape_seq_octal", "escape_seq_hex", "SP", "LF", "CR",
666   "ADD", "GET", "MAP", "UNMAP", "CLEAR", "FIND", "FILE_AS_DIR", "MOVE",
667   "COPY", "CREATE", "DESTROY", "LIST", "LOAD", "ALL", "NONE", "DEFAULT",
668   "NON_MODAL", "REMOVE", "SET", "SHELL", "INTERACT", "AUTO_CORRECT",
669   "APPEND", "INSERT", "SUBSCRIBE", "UNSUBSCRIBE", "CHANNEL",
670   "AVAILABLE_ENGINES", "AVAILABLE_AUDIO_OUTPUT_DRIVERS", "CHANNELS",
671   "INFO", "AUDIO_OUTPUT_DEVICE_COUNT", "AUDIO_OUTPUT_DEVICE_INFO",
672   "MIDI_INPUT_DEVICE_COUNT", "MIDI_INPUT_DEVICE_INFO",
673   "MIDI_INSTRUMENT_MAP_COUNT", "MIDI_INSTRUMENT_MAP_INFO",
674   "MIDI_INSTRUMENT_COUNT", "MIDI_INSTRUMENT_INFO",
675   "DB_INSTRUMENT_DIRECTORY_COUNT", "DB_INSTRUMENT_DIRECTORY_INFO",
676   "DB_INSTRUMENT_COUNT", "DB_INSTRUMENT_INFO", "DB_INSTRUMENT_FILES",
677   "DB_INSTRUMENTS_JOB_INFO", "CHANNEL_COUNT", "CHANNEL_MIDI",
678   "DEVICE_MIDI", "CHANNEL_INFO", "FX_SEND_COUNT", "FX_SEND_INFO",
679   "BUFFER_FILL", "STREAM_COUNT", "VOICE_COUNT", "TOTAL_STREAM_COUNT",
680   "TOTAL_VOICE_COUNT", "TOTAL_VOICE_COUNT_MAX", "GLOBAL_INFO",
681   "EFFECT_INSTANCE_COUNT", "EFFECT_INSTANCE_INFO",
682   "SEND_EFFECT_CHAIN_COUNT", "SEND_EFFECT_CHAIN_INFO", "INSTRUMENT",
683   "INSTRUMENTS", "ENGINE", "ON_DEMAND", "ON_DEMAND_HOLD", "PERSISTENT",
684   "AUDIO_OUTPUT_DEVICE_PARAMETER", "AUDIO_OUTPUT_DEVICES",
685   "AUDIO_OUTPUT_DEVICE", "AUDIO_OUTPUT_DRIVER_PARAMETER",
686   "AUDIO_OUTPUT_DRIVER", "AUDIO_OUTPUT_CHANNEL_PARAMETER",
687   "AUDIO_OUTPUT_CHANNEL", "AUDIO_OUTPUT_TYPE", "AVAILABLE_EFFECTS",
688   "EFFECT", "EFFECT_INSTANCE", "EFFECT_INSTANCES",
689   "EFFECT_INSTANCE_INPUT_CONTROL", "SEND_EFFECT_CHAIN",
690   "SEND_EFFECT_CHAINS", "AVAILABLE_MIDI_INPUT_DRIVERS",
691   "MIDI_INPUT_DEVICE_PARAMETER", "MIDI_INPUT_PORT_PARAMETER",
692   "MIDI_INPUT_DEVICES", "MIDI_INPUT_DEVICE", "MIDI_INPUT_DRIVER_PARAMETER",
693   "MIDI_INSTRUMENT", "MIDI_INSTRUMENTS", "MIDI_INSTRUMENT_MAP",
694   "MIDI_INSTRUMENT_MAPS", "MIDI_INPUT_DRIVER", "MIDI_INPUT_PORT",
695   "MIDI_INPUT_CHANNEL", "MIDI_INPUT_TYPE", "MIDI_INPUT", "MIDI_INPUTS",
696   "MIDI_CONTROLLER", "SEND", "FX_SEND", "FX_SENDS",
697   "DB_INSTRUMENT_DIRECTORY", "DB_INSTRUMENT_DIRECTORIES", "DB_INSTRUMENTS",
698   "DB_INSTRUMENT", "DB_INSTRUMENTS_JOB", "INSTRUMENTS_DB", "DESCRIPTION",
699   "FORCE", "FLAT", "RECURSIVE", "NON_RECURSIVE", "LOST", "FILE_PATH",
700   "SERVER", "VOLUME", "LEVEL", "VALUE", "MUTE", "SOLO", "VOICES",
701   "STREAMS", "BYTES", "PERCENTAGE", "FILE", "EDIT", "FORMAT", "MIDI_DATA",
702   "RESET", "MISCELLANEOUS", "NAME", "ECHO", "DOC", "QUIT", YY_NULLPTR
703 };
704 #endif
705 
706 # ifdef YYPRINT
707 /* YYTOKNUM[NUM] -- (External) token number corresponding to the
708    (internal) symbol number NUM (which must be that of a token).  */
709 static const yytype_uint16 yytoknum[] =
710 {
711        0,   256,   257,   258,    35,    61,    44,    46,    43,    45,
712       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
713       97,    98,    99,   100,   101,   102,    65,    66,    67,    68,
714       69,    70,    39,    34,    47,    58,    92,    71,    72,    73,
715       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
716       84,    85,    86,    87,    88,    89,    90,   103,   104,   105,
717      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
718      116,   117,   118,   119,   120,   121,   122,    33,    36,    37,
719       38,    40,    41,    42,    59,    60,    62,    63,    64,    91,
720       93,    94,    95,   123,   124,   125,   126,    32,    10,    13
721 };
722 # endif
723 
724 #define YYPACT_NINF -1718
725 
726 #define yypact_value_is_default(Yystate) \
727   (!!((Yystate) == (-1718)))
728 
729 #define YYTABLE_NINF -382
730 
731 #define yytable_value_is_error(Yytable_value) \
732   0
733 
734   /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
735      STATE-NUM.  */
736 static const yytype_int16 yypact[] =
737 {
738      893, -1718, -1718,   116,   128,    47,    75,    95,   145,   246,
739      379,   148,   194,   268,    91,   381,   395, -1718,   358,  3095,
740    -1718,   411,   411,   411,   411,   411,   411,   411,   411,   411,
741      411,   411,   411,   411,   411,   411,   411,   411,   411,   411,
742      411,   411,   411, -1718,   492,   482,   510,   503,   592,   594,
743      587,   601,   605,   651,   670,   674,   702,   698,   716,   715,
744      548,   455,   742,   555, -1718, -1718, -1718, -1718,   673, -1718,
745    -1718, -1718, -1718, -1718, -1718, -1718, -1718,   892,   892,   892,
746      892,   892,   892,   892,   892,   892, -1718, -1718, -1718, -1718,
747    -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718,
748    -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718,
749    -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718,
750    -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718,
751    -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718,
752    -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718,
753    -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718,
754    -1718, -1718, -1718, -1718,  3853, -1718, -1718, -1718, -1718,   201,
755      496,   729,   729,   730,   174,   745,   745,   422,   422,   301,
756      138,   415,   580,   726,   726,   466,   466,   749,   749,   740,
757      749, -1718,   751,   756,   736,   768,   747,   748,   766,   765,
758    -1718,   782,   763,   785, -1718,   801,   788,   770,   815,   819,
759    -1718,   803,   827,   804, -1718, -1718, -1718, -1718, -1718, -1718,
760    -1718, -1718, -1718, -1718, -1718,   892, -1718,   892,   892,   892,
761      892,   892,   892,   892,   892, -1718, -1718, -1718, -1718, -1718,
762    -1718, -1718, -1718, -1718, -1718, -1718, -1718,   818,   830,   820,
763      831, -1718,   411,   411,   411,   411,   411,   161,   822,   835,
764      355,   215,   824,   102,   821,   828, -1718,   411, -1718, -1718,
765    -1718, -1718, -1718, -1718,   411, -1718,   411,   411,   411,   411,
766      411, -1718,   411,   411, -1718,   411,   411,   411, -1718,   411,
767    -1718,   411,   411,   411,   411,   411, -1718,   411,   411,   411,
768      411,   411,   411,   411,   411,   411,   411, -1718, -1718, -1718,
769      411,   833, -1718,   411, -1718,   411,   836, -1718,   411,   840,
770      829, -1718,   411,   411,   411,   842, -1718,   411,   411, -1718,
771      411,   411,   825,   846,   839,   856, -1718,   411,   411,   411,
772      411, -1718,   411,   411,   411,   411,   544,   847,   295,   857,
773      868, -1718,   411, -1718, -1718, -1718, -1718, -1718, -1718,   411,
774    -1718, -1718,   411, -1718,   411,   411,   411,   411,   869,   871,
775    -1718,   411,   411, -1718,   411,   411,   411,   411,   411,   411,
776      849,   333,   877,   278, -1718,   411,   411,   411,   411,   411,
777      411,   411,   411,   411,   411,   411,   411,   411,   411,   411,
778    -1718,   411, -1718,   411,   866,   867,   887,   335,   895,   875,
779      885,   894,   107,   886,   889, -1718, -1718, -1718, -1718, -1718,
780    -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718,
781    -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718,
782    -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718,
783    -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718,
784    -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718,
785    -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718,   411, -1718,
786      411,   899, -1718, -1718, -1718,   411,   901,   890, -1718,   896,
787      891, -1718, -1718,   911,   900, -1718, -1718, -1718, -1718,   897,
788      913, -1718,   923,   918,   938, -1718,   941,   876,   942,   931,
789      945,  1195,   598,   653,   269,   955,   960,   964,   902,   962,
790      959,   956,   905,   971,   167,   953,   952,   433,   114,   965,
791      965,   965,   965,   965,   965,   965,   965,   965,   965,  1195,
792      965,   965,   965,   965,   873,   965,   965,   965,   965,  1195,
793      965,   208,   208,   965,   965,   965,   966,   977,   963,  1195,
794      979,   873,   917,   961,   382,   382,   982,   929,   653,   653,
795      653,   653,   993,   992,   932,   999,  3853,  3947,  3853,  1195,
796     1195,  1195,  1195,  1195,  1000,  1001,   939,  1004,   986,   994,
797     1195,   873,  1195,   208,   208,   996,   987,   500,  3853,   394,
798      547,   873,  1008,   627,   653,  1011,  1003,  1012,  1013,  1016,
799      491,    81,  1195,  1195,   995,  1195,  1195,  1017,   359,   310,
800      416,  1507,  1195,  1195,  3947,  1008,  1008,  1027,  1029,  1036,
801      972,  1014,  1034,   975,  1023,   130,  1031,  1025,  1026,  1040,
802     1042,  1044,  1028,  1195,  1052, -1718,  1056,  1043,  1037,  1039,
803     1060, -1718,  1045, -1718,  1046,  1047,  1055,  1057,  1068,  1062,
804      411,   892,   892,   892,   892,   892,   892,   892,   892,   892,
805    -1718, -1718,  3190,  3190, -1718, -1718,  2355,  2355, -1718, -1718,
806     1063,  1054,  1077,   411,   411,   411, -1718, -1718, -1718,  1070,
807     1072,  1069,  1075,  1085,  1078,  1086,  1071,  1080,  1092,  1073,
808     1096,  1101,  1102,  1081,  1087,  1079,   411,   411,   411,   411,
809      411,   411,   411,   411,   411,   411,   411,   411,   411,   411,
810    -1718,   411,   411,   411,   411,  1091, -1718, -1718, -1718,   411,
811      411,   411,   411, -1718, -1718,   411, -1718,   411, -1718,   411,
812      411,   411, -1718,  1090,   411,   411,  1097,  1098,  1195,   411,
813      411,  1103, -1718, -1718,  1107,  1094,  1104,   411,   411,   411,
814      411,  1114, -1718,  1109,   411,   411,   411,   411,  1111,  1121,
815     1106,  1113,  3285, -1718,   411, -1718,  3853,  3285,   411, -1718,
816    -1718, -1718,   411,  1115,  1126,  1108,  1119,  1131,  1122,   411,
817    -1718, -1718, -1718, -1718, -1718,   411, -1718,   411,  1118,   411,
818     1117, -1718,   411, -1718,   411, -1718,   411,  3853, -1718,   411,
819     1133,   411,   411, -1718, -1718,   411,  1120, -1718,   411, -1718,
820     1132,  1125,  1142,  1137,  1138,  1128,  1136,  1140,   411,   411,
821      411,  1134,   349,  1141,  1143, -1718,   411,   411,   411,   411,
822      411,   411,   411,   411,   411,   411,   411,   411,   411,   411,
823     1161,   411,   411,   411,  1163,   411,  1145,  1162,  1152,   411,
824      411,   411,   411,   411,  1164,   411,   411,  1154,   411,   411,
825      411,   892,   892, -1718, -1718,   943,    57, -1718, -1718, -1718,
826    -1718, -1718,  3853,   411,   411,  1158,  1167,  1155,  1178,  1182,
827     1171,  1180,  1200,  1191,  1203,  1204,  1202,  1208,  1207,  1198,
828      411,   411,  1189, -1718, -1718, -1718,  1186, -1718, -1718, -1718,
829     1217,  1214,  1213,  1215,  1166,  1168,  1232,  1195, -1718,  1038,
830     3570,  2710,  4793, -1718, -1718, -1718, -1718, -1718,  2810, -1718,
831     1242, -1718,  1241,  1245,  1254,  1238,  1255,   653,   676,   456,
832     1239,  1248,  1249,  1253,  1270,  1268, -1718,  1283,  1222,  1223,
833     1286,  1293,  1276,  1290,  1278,  1291,  1195,   225,  1195,  1195,
834     3853,  1195,  3853,  3853,  1195,  1195,  1195,  1195,  1195,  1195,
835     1195,  1195,  3853,  1195,  1294,  1195,  3853,  1195,  1195,   653,
836      653,   653,   653,  1195,  1288,   965,   653,  1246,  1295,   411,
837    -1718,  1195,  1250,  1296, -1718,  1297,  3853,   653,  3853,   653,
838     1251,  1300,   653,   653,   653,   653,  1303,  1321,  1320,  1259,
839     3853,   653,  3853,  1195,  1195,  1307,  1326,  1325,  1264,  1265,
840     1330,  1195,   653,   653,  1312,   653,  1314,  1195,   653,  1195,
841     1195,  1332,  1195,  1195,  1195,  1318,   653,  1319, -1718,  1350,
842     1287,  1338,  1331,  1354,  1333,  3947,  3947,  3947,  1355,  1356,
843     1336,  1345,  1346,  1195,  1195,  1195,  1195,  1195,  1195,  1195,
844     1195,  1195,  1195,  1195,  1195,  3853,  1195,  1348,  1195,  3853,
845     1195,  1349,  1195,  1362,  1343,  1378,  1195,  1195,  1195,  1195,
846     1195,  1359,   653,   653,  1367,   653,   653,   653,  1236,  1292,
847      892,  1195,  1195,  1365,  1381,  1368,  1369,  1391,  1395,  1394,
848     1399,  1334,  1397,  1337,  1404,  1389,  1402,  1405,  3853,  1195,
849     1385, -1718,  1408,  1388,  1407,  1393,  1406,  1414,  1409,   411,
850    -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718,
851    -1718, -1718, -1718, -1718, -1718, -1718, -1718,  1980,   790,  4793,
852    -1718, -1718, -1718,  3570, -1718, -1718, -1718, -1718,  3380,  1412,
853    -1718,  1400,  1357,  1396,   411,  1413,   411,   411,   411,   411,
854     1370,  1425,  1424,  1411,  1415,  1427,  1417,  1428,  1433,  1390,
855     1421,  1374,  1419,  1439,  1432, -1718,  1429,  1442,   411, -1718,
856    -1718, -1718, -1718, -1718, -1718,  3285,  3853,   411,   411, -1718,
857    -1718, -1718,   411,   411,   411, -1718,  3285,   411, -1718, -1718,
858     3853,   411,   411, -1718, -1718, -1718, -1718, -1718,  1437,   411,
859    -1718,  1444,  1398,  1195,   411, -1718,  1449,  1440,  1418,   411,
860     4041,   411,   411,   411,  1452,  1443, -1718, -1718, -1718, -1718,
861     1435,  1448,  1455,  1461,   411,  4135, -1718,   411,   411,   411,
862    -1718, -1718, -1718,  1436,  1451,  1459,  1465,  1475,  1467, -1718,
863    -1718, -1718,  1483, -1718,  1458,   411, -1718,   411, -1718,   411,
864     1504, -1718, -1718,   411,   411,  1510, -1718,  1447,  1490,  1505,
865    -1718,  1498, -1718,  1515, -1718, -1718, -1718,  1508,  1509,  1519,
866     1506,   411,   411,   411,   411,   411,   411,   411,   411,   411,
867      411,   411,   411,  4229,   411,  1499,   411,  4323,   411,  1524,
868      411,  1516,  1526,  1518,   411,   411,   411,   411,   411,  1530,
869      411,   411,  1529,   411,   411,   411,   892,   892,   892,   411,
870      411,  1468,  1513,  1532,  1520,  1535,  1517,  1527,  1528,  1533,
871     1531,  1538,  1534,  1484,  1486,  1536,  3285, -1718,  1539,  1549,
872     1541,  1540,  1542,  1547,  1552,  1494,  1195, -1718, -1718, -1718,
873    -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718,
874    -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718,  1980,
875      790, -1718,  3570, -1718, -1718,   294,  1545,  1195,  1553,   653,
876      653,   653,   676,  1551,  1567,  1555,  1561,  1521, -1718,  1583,
877     1570,  1585, -1718,  1568,   501, -1718, -1718, -1718,  1569,  1572,
878     1195,  3853,  1195,  1195,  1195,  1195,  1195,  3853,  1195,  1195,
879     1195,  1573,   653,  1574,  1580,   411,  1195,  1581,  1576,  1579,
880     3853,  2615,  3853,  3853,  1584,  1586,  1589,  1543,  1595,  1593,
881     3853,  3665,   598,   598,  1599,  1546,  1611,  1601,  1615,  1556,
882     1602,  1604,  1195,  1195,  1195,  1621,  1195,  1195,  1622,  1606,
883     1562,  1609,  1563,  1608,  1614,  1571, -1718, -1718,  1195,  1195,
884     3853,  1195,   209,  1195,   873,  3853,  1195,  1507,  3947,  3947,
885     3665,  3853,  1630,  1195,  3665,  3853, -1718,   598,  1616,  1620,
886     1578,  1195,  1195,  1195,  1195,  1195,  1617,   598,   598,  1582,
887      598,   653,   598,   892,   892,  1195,  1195,  1619,  1587,  1624,
888     1623,  1588,  1594,  1642,  1597,  1628,  1633,  1645,  1598,   518,
889     1649,  1600,  1195,  1635, -1718,  1654, -1718,  1637,  1634,  1656,
890     1652,   411, -1718, -1718,  1648,  1664,  1650, -1718,  1668, -1718,
891      411,   411,   411,   411,  1655,  1658,  1660,  1653,  1671,  1662,
892      523,  1672, -1718,  1657,  1667,  1683,  1686, -1718,  3285,   411,
893    -1718, -1718, -1718, -1718,   411,  3285,   411, -1718, -1718,  1665,
894      411,  1666,  1195, -1718, -1718,  1669,  1673,  4417, -1718, -1718,
895     3475,   411,   411,  1670,  1675,  1674,  1678, -1718,  1680,  4511,
896      892,   892,  3285,  3285,  1714, -1718, -1718, -1718, -1718,  3853,
897    -1718, -1718, -1718, -1718,  1676,  1689,  1662,   632,  1699,  1694,
898     1685,  1704, -1718,   411,   411,  1687,   411, -1718, -1718,  1688,
899     1703,   633,  1710,  1717,  1659,  1705, -1718,   411, -1718, -1718,
900     3853, -1718,  1716,  1702, -1718, -1718, -1718, -1718, -1718, -1718,
901    -1718, -1718, -1718,  3853,   411, -1718, -1718, -1718,  1714,  4605,
902    -1718,   411,  1714,  4699, -1718,  1661, -1718,  1721,   411,   411,
903      411,   411,   411,  1715, -1718, -1718,  1709, -1718, -1718, -1718,
904      411,   411,  1706,  1725,  1681,  1711,  1719,  1729,  1682,  1736,
905      634,  1732,  1749,  1755,  1739,  1740,  1757,   411,  1758,  1759,
906     1741,  1737,  1761,  1751,  1195,  1767,  1769,  1760,  1708,   653,
907     1195,   653,   653,  1748,  1771, -1718,  1752,  1762, -1718,  1753,
908     1763,  1772,  1764,  1766,  1768,  1777,  3853,  3853,  3853,  3853,
909     1195,  1765,  1195,  1770,   411,  1773,  1775,  2615,  1774,  1776,
910     1778,  1785,  1779,  3665,  2905,  3853, -1718,  3000,  3665,  1781,
911     1788,  1782,  1786,  1780,  1793,  1796,  1797,  1195,  1195, -1718,
912     1195,  1790,  1798,  1792,  1801,  1783,  1804,  1806,  1195,  1791,
913     1807,  1195,  3665,  1591,  3759,  1808,  1809,  1195,  1195,  1195,
914     1507,   598,  1810,  1826,  1195,  1195,  1811,  1818,   353,  1812,
915     1819,  1815,   452,  1816,  1817,  1820,  1822,  1789,  1824,  1823,
916     1821,  1841,  1195,  1827, -1718,  1830,  1828,  1846,  1832, -1718,
917     1853,  1829,  1831,  1855, -1718, -1718, -1718,   411,  1836,  1794,
918     1842,  1835,  1837,  1840,  1861,  1860,  1863, -1718,  1848,   411,
919     3853,  3853,   411, -1718,  1865, -1718,  1845,  3853,  1849,  1856,
920    -1718,  1852,  1859,  1850,  1854,  1857,  1714, -1718,  3853, -1718,
921    -1718, -1718,  1858,  1862,  1864,  1867,  1877,  1866,  1876,  1868,
922    -1718, -1718, -1718, -1718,  1870,  1871,  1869,  1873,  1872,  1875,
923      683, -1718,  1882,  1879,   411,  1714,   892,   892, -1718, -1718,
924     1316,  1702,  1714, -1718,  1878,  1880,   411,   411, -1718, -1718,
925    -1718,  1883,  1884, -1718,   411,  1881,  1886,  1885,  1892,  1898,
926     1874,  1894,  1889,  1895,  1897,  1908,  1893,  1896,  1912,  1917,
927     1899,  1918,  1903,  1901,   411,  1902,  1919,  1904,  1906,  1907,
928     1915,  1900,  1929,  1913,   653,  1914,   476,  1933,  1920,  1888,
929     1916,  1921,  1942,  1939,  1922,  1930,  1924,   411,  1925,  1943,
930     1926,  1948,  1931,  1936,  1891,  1937,  1962,  1923,  1963,  1966,
931     1967,  1969, -1718,  1968,  1970,  1932,  1973, -1718,  1975,  1972,
932     1976, -1718,   873,  1358,  1387,   892,  1981,  1982,  1195,  1195,
933     1978,  1949,  1195,  1979,  1984,  1983,  1950,  2004,  2005,  1997,
934     1987,  1988,  2007,  1995,  1951,  1990,  1999,  1992,  2001,  2016,
935     1998,  2021,  1195,  2000,  2006,  2008,  1960,  2003, -1718,  2009,
936    -1718,  1964, -1718,  2010,  2011,   419,  2018,  2015,  2029,   132,
937     2022,  1974,  2024,  1977,  2042,  2020,  2030,   653,  2032,  2028,
938     2033,  2034,  2027,  2054,  2052,  2035,  2056,  2055,  2043,  1996,
939     2037,  2039,  2040,  2065,   260,  2062,  2047,  2044,  2053, -1718,
940      892,   892,   892,  2050,  2049, -1718, -1718,  2057, -1718, -1718,
941     2048, -1718,  2063,  2061,  2060,  2064, -1718,  2074,  2066,  2067,
942    -1718,  2072,  2070,  2058,  2023,  2068,  2025, -1718, -1718, -1718,
943     2031,  2069,  2084,  2088, -1718,  2081,  2092,  2036,  2093,  2094,
944     2087,  2098,  2079,  2086,   247,  2091,  2101,  2104,  2041,  2109,
945     2103,  2089,  2111,   411,  2112,  2095,  2113,  2096,  2059,  2100,
946     2117,  2080,  2105,  2118,  2122,  2125,  2106,  2089,  2083,  2110,
947     2141,  2128,  2149,  2127,  2102,  2130,   892,   892,  2135,  2142,
948     2144,  2108,  2140, -1718, -1718,  2143,  2151,  2146, -1718,  2167,
949     2168,  2152,  2174, -1718,  2175,  2176,    19,  2160,  2171,  2154,
950     2173,   686,  2177,  2180,  2178,  2179,    24,  2185,  2163,  2181,
951     2182,  2183,  2184,  2191,  2186,  2193, -1718,  2188,  1195,  2189,
952       27,  2192,  2129,  2195,  2197,  2187,  2199,  2198,  2190,  2201,
953     2203, -1718,   708,  2207,  2194,  2200,  2202,  2204,   264, -1718,
954     2205,  2208, -1718,  2214, -1718,    30,  2219, -1718,  2206,  2209,
955    -1718,  2211,  2212,  2224, -1718,  2227,  2210,  2233,  2231,  2215,
956     2226,   267,  2217,  2237,  2223,  2196,  2213,  2239,  2240,  2230,
957     2220,  2221,  2225,  2247,  2229,  2228, -1718,  2232,   411,  2234,
958     2248,  2235,  2246,  2250,  2242,  2253,  2256,  2252,  2243,  2261,
959     2251,  2262,  2267,  2259,  2249, -1718,  2216,  2263,  2255,  1754,
960     2218,  2236,  2272,  2222,    41,  2273,  2265,  2257,  2280,  2258,
961    -1718,  2274,  2238,  2276, -1718, -1718,  2285,  2260,  2277,  2241,
962     2268,  2287,  2281,  2279,  2282,    46,  2294,  2293,  2244,    66,
963     2286,  2275,  2283, -1718,  1507,  2288,  2289,  2254,  2290, -1718,
964     2296,  2291,  2292,  2301,    68,  2295,  2305,  2297,  2264,  2304,
965     2244,   189,  2309,  2299,  2298,  2310,  2315,  2302,  2300,  2303,
966     2311,  2313,  2266,  2325,  2269,  2316,  2318,  2312,  2320,  2321,
967     2322,  2328,  2307,  2319,  2338,  2341,  2324,  2329,  2343, -1718,
968     2330,  2340,  2384,  2387, -1718,  2391,  2392,  2393,  2385,   411,
969     2390,  2308,  2400,  2410,  2402,  2412,  2401,  2399,  2405,  2406,
970     2416,  2413,  2395,  2408,  2403,  2424,  2407,  2417,  2414,  2409,
971     2415,  2426,   462,  2428,   412,  2418,  2411,  2434,  2439, -1718,
972     2422,  2440,  2437,  2419, -1718, -1718,  2423,  2444,  2442,  2429,
973     2425,  2388,  2453,  2455,  2433,  2435,  2394,   542,  2454,  2448,
974     2460, -1718,  2461,  2425,  2457,  2433,  2446,  2463,  2420,  2466,
975     2449,  2450, -1718, -1718, -1718,  2469,  2471,  2456,  2472,  2458,
976     2459,  2462,  2421,  2464,  2467,  2473,  2427, -1718,  2479,  2468,
977     2478,  2480,  2470,  2451,  2465, -1718,  2487,  2474, -1718,  2475,
978     2476,  2477, -1718, -1718,  2482,  2483,  2492,   411, -1718, -1718,
979    -1718, -1718, -1718,  2489,  2484,  2498,  2499,  2485,  2500,  2502,
980     2488,  2491,  2503,  2506,  2507,  2447,  2490,  2510, -1718,  2493,
981     2511,   562,  2494,  2512,  2495,   577,  2496, -1718,  2508,  2504,
982     2481,  2505,  2509,  2513,  2497,  2523,  2526,  2515,  2528,  2486,
983     2514,   598,  2516,  2525, -1718,  2504,  2515,  2518,  2501,  2530,
984     2517, -1718,  2527,  2519,  2529, -1718,  2520,  2521,  2522,  2531,
985     2533,  2535,  2536,  2524,  2537,  2539,  2540,  2651, -1718,  2534,
986     2538,  2716,  2542,  2541,  2544,  2532, -1718,  2543,  2545,  2546,
987    -1718,  2549,  2547,  2651,  2552,  2551,  2554, -1718,   612,  2556,
988     2557,  2553, -1718,  2550,  2559,  2558, -1718,   624,  2555,  2573,
989     2561,  2564,  2562,  2563,  2578,  2566,  2717,  2586,  2585, -1718,
990     2780,  2772,  2764, -1718,  2912,  3006,  3085,  3083,  3178,  3192,
991     3269, -1718,  3274,  3367, -1718,  3368,  3463,  3464,  3557,  3548,
992     3578,  3837,  3794,  3931,   296,  3952,  4030,  4024,  4124,  4119,
993     4222,  4214,  4312, -1718,  4305,  4418,  4405,  4488,  4494, -1718,
994     4586,  4607,  4681, -1718, -1718,  4684,  4799,  4797,  4788,  4860,
995     4846,  4862,  4863,  4868,  4845,  4870,  4867,  4854,  4855, -1718,
996     4807, -1718,  4857,  4858, -1718,  4876,  4861,  4859,  4853,  4864,
997     4865,  4856,  4866,  4871,  4878,  4869,  4872,  4873, -1718,   678,
998     4874, -1718,  4875,  4880,  4877,  4881, -1718,  4879,  4887, -1718,
999     4890,  4882,  4891,  4895, -1718,  4883,  4886, -1718,  4897,  4884,
1000     4885,  4888,  4892,  4893,  4828,  4889,  4894,  4898,  4896,  4900,
1001     4899,  4902,  4903,  4901,  4906, -1718,  4904, -1718,  4905, -1718,
1002     4908,  4909,  4913,  4907,  4910, -1718,  4911,  4912,  4914,  4915,
1003    -1718,  4916, -1718,  4917, -1718,  4918, -1718, -1718, -1718, -1718,
1004     4919, -1718
1005 };
1006 
1007   /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
1008      Performed when YYTABLE does not specify something else to do.  Zero
1009      means the default is an error.  */
1010 static const yytype_uint16 yydefact[] =
1011 {
1012        0,     3,     9,     0,     0,     0,     0,     0,     0,     0,
1013        0,     0,     0,     0,     0,     0,     0,     2,     0,     7,
1014        8,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1015        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1016        0,     0,    36,    37,     0,     0,     0,     0,     0,     0,
1017        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1018        0,     0,     0,     0,     1,   532,   533,     4,     0,   514,
1019       10,   502,   498,   497,   495,   496,   341,   342,   343,   344,
1020      345,   346,   347,   348,   349,   350,   450,   451,   452,   453,
1021      454,   455,   424,   425,   426,   427,   428,   429,   423,   499,
1022      422,   430,   431,   432,   433,   434,   435,   436,   437,   438,
1023      439,   440,   441,   442,   443,   444,   445,   446,   447,   448,
1024      449,   456,   457,   458,   459,   460,   461,   462,   463,   464,
1025      465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
1026      475,   487,   489,   490,   491,   492,   493,   494,   500,   501,
1027      503,   504,   505,   506,   507,   508,   509,   510,   511,   512,
1028      513,   531,   381,    12,    13,   415,   476,   421,    11,     0,
1029        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1030        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1031        0,   534,     0,     0,     0,     0,     0,     0,     0,     0,
1032      535,     0,     0,     0,   536,     0,     0,     0,     0,     0,
1033      552,     0,     0,     0,     5,   341,   342,   343,   344,   345,
1034      346,   347,   348,   349,   350,   382,   339,   383,   384,   385,
1035      386,   387,   388,   389,   390,   488,   477,   478,   479,   480,
1036      481,   482,   483,   484,   485,   486,   416,     0,     0,     0,
1037        0,    14,    38,     0,    50,     0,     0,     0,     0,     0,
1038        0,     0,     0,     0,     0,     0,    17,     0,   130,   142,
1039      154,   161,   162,   163,     0,   146,     0,     0,     0,     0,
1040        0,   131,     0,     0,   132,     0,     0,     0,   138,     0,
1041      147,     0,     0,     0,     0,     0,   167,     0,     0,     0,
1042        0,     0,     0,     0,     0,     0,     0,   178,   179,   180,
1043        0,     0,    15,     0,    16,     0,     0,    27,     0,     0,
1044        0,    28,     0,     0,     0,     0,    29,     0,     0,    30,
1045        0,     0,     0,     0,     0,     0,    18,     0,     0,     0,
1046        0,    19,     0,     0,     0,     0,     0,     0,     0,     0,
1047        0,    20,     0,   262,   267,   260,   258,   263,   264,     0,
1048      266,   259,     0,   270,     0,     0,     0,     0,     0,     0,
1049       21,     0,     0,    22,     0,     0,     0,     0,     0,     0,
1050        0,     0,     0,     0,    23,     0,     0,     0,     0,     0,
1051        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1052       34,     0,    35,     0,     0,     0,     0,     0,     0,     0,
1053        0,     0,     0,     0,     0,    24,    53,    54,    55,    56,
1054       66,    67,    68,    69,    70,    71,    72,    73,    74,    57,
1055       58,    59,    63,    64,    65,    62,    61,    60,    76,    77,
1056       78,    79,    80,    81,    82,    75,    25,    83,    84,    85,
1057       86,    96,    97,    98,    99,   100,   101,   102,   103,   104,
1058       87,    88,    89,    93,    94,    95,    92,    91,    90,   106,
1059      107,   108,   109,   110,   111,   112,   105,    33,     0,    31,
1060        0,     0,    32,   251,    26,     0,     0,     0,   542,     0,
1061        0,   661,   539,     0,     0,   545,   546,   541,   669,     0,
1062        0,   634,     0,     0,     0,   340,     0,     0,     0,     0,
1063        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1064        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1065        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1066        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1067        0,     0,     0,     0,     0,     0,     0,     0,   252,     0,
1068        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1069        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1070        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1071        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1072        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1073        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1074        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1075        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1076        0,     0,     0,     0,     0,   538,     0,     0,     0,     0,
1077        0,   664,     0,   537,     0,     0,     0,     0,     0,     0,
1078        0,   342,   343,   344,   345,   346,   347,   348,   349,   350,
1079       52,   285,     0,     0,    51,   305,     0,     0,    41,   304,
1080        0,     0,     0,     0,     0,     0,   325,   323,   324,     0,
1081        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1082        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1083        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1084      136,     0,     0,     0,     0,     0,   164,   292,   165,     0,
1085        0,     0,     0,   169,   299,     0,   172,     0,   175,     0,
1086        0,     0,   160,     0,     0,     0,     0,     0,     0,     0,
1087        0,     0,   217,   218,     0,     0,     0,     0,     0,     0,
1088        0,     0,   223,     0,     0,     0,     0,     0,     0,     0,
1089        0,     0,   209,   214,     0,   309,   326,   211,     0,   228,
1090      231,   229,     0,     0,     0,     0,     0,     0,     0,     0,
1091      265,   268,   269,   271,   273,     0,   275,     0,     0,     0,
1092        0,   232,     0,   303,     0,   233,     0,   302,   118,     0,
1093        0,     0,     0,   122,   123,     0,     0,   128,     0,   129,
1094        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1095        0,     0,     0,     0,     0,   189,     0,     0,     0,     0,
1096        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1097        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1098        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1099        0,     0,     0,   205,   296,     0,   339,   297,   206,   207,
1100      201,   328,   329,     0,     0,     0,     0,     0,     0,     0,
1101        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1102        0,     0,     0,   216,   556,   543,     0,   662,   557,   551,
1103        0,     0,     0,     0,     0,     0,     0,     0,   411,     0,
1104      412,     0,   408,   417,   418,   524,   525,   407,     0,   394,
1105        0,   396,     0,     0,     0,     0,     0,     0,     0,     0,
1106        0,     0,     0,     0,     0,     0,   660,     0,     0,     0,
1107        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1108        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1109        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1110        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1111      253,     0,     0,     0,   648,     0,     0,     0,     0,     0,
1112        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1113        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1114        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1115        0,     0,     0,     0,     0,     0,     0,     0,   667,     0,
1116        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1117        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1118        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1119        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1120        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1121        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1122        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1123        0,   544,     0,     0,     0,     0,     0,     0,     0,     0,
1124      351,   352,   353,   354,   355,   356,   357,   358,   521,   515,
1125      516,   518,   517,   519,   520,   522,   523,     0,   526,   410,
1126      409,   401,   413,   414,   419,   420,   402,   391,   393,     0,
1127      392,     0,     0,     0,    48,     0,     0,     0,     0,     0,
1128        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1129        0,     0,     0,     0,     0,   155,     0,     0,     0,   256,
1130      257,   157,   158,   159,   148,     0,   143,     0,     0,   133,
1131      134,   284,     0,     0,     0,   149,     0,     0,   547,   168,
1132      139,     0,     0,   173,   171,   174,   176,   177,     0,     0,
1133      181,     0,     0,     0,     0,   293,     0,     0,     0,   222,
1134        0,     0,   220,     0,     0,     0,   224,   225,   226,   227,
1135        0,     0,     0,     0,   208,     0,   327,     0,   210,   212,
1136      295,   230,   301,     0,     0,     0,     0,     0,     0,   261,
1137      272,   274,     0,   276,     0,     0,   300,     0,   280,   119,
1138        0,   124,   310,     0,     0,     0,   127,     0,     0,     0,
1139      553,     0,   668,     0,   202,   203,   204,     0,     0,     0,
1140        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1141        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1142        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1143        0,     0,     0,     0,     0,     0,     0,     0,   330,     0,
1144        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1145        0,     0,     0,     0,     0,     0,     0,   250,     0,     0,
1146        0,     0,     0,     0,     0,     0,     0,   359,   360,   361,
1147      362,   363,   364,   365,   366,   367,   368,   369,   370,   371,
1148      372,   373,   374,   375,   376,   377,   378,   379,   380,   529,
1149      527,   397,   398,   395,   645,     0,     0,     0,     0,     0,
1150        0,     0,     0,     0,     0,     0,     0,   611,   598,     0,
1151        0,     0,   650,     0,     0,   656,   651,   564,     0,     0,
1152        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1153        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1154        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1155        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1156        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1157        0,     0,     0,     0,     0,     0,   654,   655,     0,     0,
1158        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1159        0,     0,     0,     0,     0,     0,   666,     0,     0,     0,
1160        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1161        0,     0,     0,   331,   332,     0,     0,     0,     0,     0,
1162        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1163        0,     0,     0,     0,   558,     0,   560,     0,     0,     0,
1164        0,    39,   530,   528,     0,     0,     0,    49,     0,    44,
1165        0,    46,     0,     0,     0,     0,   560,     0,     0,   635,
1166        0,     0,   657,     0,     0,     0,     0,   156,   144,     0,
1167      152,   135,   312,   137,     0,   140,     0,   150,   170,     0,
1168        0,     0,     0,   117,   294,     0,     0,     0,   319,   322,
1169      321,   221,   219,     0,     0,     0,     0,   635,     0,     0,
1170      495,   496,     0,     0,   254,   313,   318,   317,   316,   315,
1171      215,   308,   213,   307,     0,     0,     0,     0,     0,     0,
1172        0,     0,   278,     0,   120,     0,     0,   126,   644,     0,
1173        0,     0,     0,     0,     0,     0,   236,     0,   286,   238,
1174      287,   240,     0,     0,   247,   248,   249,   241,   288,   242,
1175      289,   290,   243,   291,     0,   244,   245,   246,   183,     0,
1176      653,     0,   185,     0,   190,     0,   652,     0,     0,     0,
1177        0,     0,     0,     0,   197,   196,     0,   199,   200,   198,
1178        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1179        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1180        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1181        0,     0,     0,     0,     0,   563,     0,     0,   636,     0,
1182        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1183        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1184        0,     0,     0,     0,     0,   404,   403,     0,     0,     0,
1185        0,     0,     0,     0,     0,     0,     0,     0,     0,   611,
1186        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1187        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1188        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1189        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1190        0,     0,     0,     0,   559,     0,     0,     0,     0,    40,
1191        0,     0,     0,     0,    45,    47,    42,     0,     0,     0,
1192        0,     0,     0,     0,     0,     0,     0,   658,     0,   145,
1193      153,   151,   141,   166,     0,   182,     0,     0,     0,     0,
1194      320,     0,     0,     0,     0,     0,   255,   399,   406,   405,
1195      400,   314,     0,     0,     0,     0,     0,     0,     0,     0,
1196      279,   121,   125,   311,     0,     0,     0,     0,     0,     0,
1197        0,   237,     0,     0,     0,   184,     0,     0,   188,   298,
1198      336,   437,   187,   186,     0,     0,     0,     0,   193,   194,
1199      191,     0,     0,   234,     0,     0,     0,     0,     0,     0,
1200        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1201        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1202        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1203        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1204        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1205        0,     0,   596,     0,     0,     0,     0,   554,     0,     0,
1206        0,   548,     0,   337,   338,     0,     0,     0,     0,     0,
1207        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1208        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1209        0,     0,     0,     0,     0,     0,     0,     0,   550,     0,
1210      646,     0,    43,     0,     0,     0,     0,     0,     0,     0,
1211        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1212        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1213        0,     0,     0,     0,     0,     0,     0,     0,     0,   239,
1214        0,     0,   333,     0,     0,   192,   195,     0,   649,   235,
1215        0,   585,     0,     0,     0,     0,   581,     0,     0,     0,
1216      591,     0,     0,     0,     0,     0,     0,   587,   663,   277,
1217        0,     0,     0,     0,   631,     0,     0,     0,     0,     0,
1218        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1219        0,   596,     0,     0,     0,     0,     0,     0,     0,     0,
1220        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1221        0,     0,     0,     0,   631,     0,   334,   335,     0,     0,
1222        0,     0,     0,   582,   580,     0,     0,     0,   584,     0,
1223        0,     0,     0,   586,     0,     0,     0,     0,     0,     0,
1224        0,     0,     0,     0,     0,     0,   640,     0,     0,     0,
1225        0,     0,     0,     0,     0,     0,   597,     0,     0,     0,
1226        0,     0,   640,     0,     0,     0,     0,     0,     0,     0,
1227        0,   632,     0,     0,     0,     0,     0,     0,     0,   549,
1228        0,     0,   643,     0,   579,     0,     0,   583,     0,     0,
1229      665,     0,     0,     0,   639,     0,     0,     0,     0,     0,
1230        0,     0,     0,     0,     0,     0,   639,     0,     0,     0,
1231        0,     0,     0,     0,     0,     0,   659,     0,     0,     0,
1232        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1233        0,     0,     0,     0,     0,   555,     0,     0,     0,     0,
1234        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1235      642,     0,     0,     0,   647,   540,     0,     0,     0,     0,
1236        0,     0,     0,     0,     0,   612,     0,     0,   628,   623,
1237        0,     0,     0,   623,     0,     0,     0,     0,     0,   612,
1238        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1239        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1240        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1241        0,     0,     0,     0,     0,     0,     0,     0,     0,   613,
1242        0,     0,     0,     0,   624,     0,     0,     0,     0,   113,
1243        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1244        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1245        0,     0,     0,     0,     0,     0,     0,     0,     0,   615,
1246        0,     0,     0,     0,   610,   561,     0,     0,     0,     0,
1247      621,   627,     0,     0,   615,     0,   589,     0,     0,     0,
1248        0,   621,     0,     0,     0,     0,     0,     0,     0,     0,
1249        0,     0,   628,   630,   633,     0,     0,     0,     0,     0,
1250        0,     0,     0,     0,     0,     0,     0,   589,     0,     0,
1251        0,     0,     0,     0,     0,   641,     0,     0,   620,     0,
1252        0,     0,   616,   588,     0,     0,     0,   114,   115,   306,
1253      281,   282,   283,     0,     0,     0,     0,     0,     0,     0,
1254        0,     0,     0,     0,     0,     0,     0,     0,   576,     0,
1255        0,     0,     0,     0,     0,     0,     0,   625,     0,   604,
1256      606,     0,     0,     0,     0,     0,     0,   625,     0,     0,
1257        0,     0,     0,     0,   604,     0,     0,     0,     0,     0,
1258        0,   609,     0,     0,     0,   575,     0,     0,     0,     0,
1259        0,     0,     0,     0,     0,     0,     0,   608,   603,     0,
1260        0,     0,     0,     0,     0,     0,   626,     0,     0,     0,
1261      116,     0,     0,     0,     0,     0,     0,   629,     0,     0,
1262        0,     0,   593,     0,     0,     0,   572,     0,     0,     0,
1263        0,     0,     0,     0,     0,     0,     0,     0,     0,   590,
1264        0,     0,     0,   577,     0,     0,     0,     0,     0,     0,
1265        0,   592,     0,     0,   571,     0,     0,     0,     0,     0,
1266        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1267        0,     0,     0,   608,     0,     0,     0,     0,     0,   568,
1268        0,     0,     0,   595,   637,     0,     0,     0,     0,     0,
1269        0,     0,     0,     0,     0,     0,     0,     0,     0,   578,
1270        0,   567,     0,     0,   594,     0,     0,     0,     0,     0,
1271        0,     0,     0,     0,     0,     0,     0,     0,   566,     0,
1272        0,   570,     0,     0,     0,     0,   638,     0,     0,   619,
1273        0,     0,     0,     0,   565,     0,     0,   569,     0,     0,
1274        0,     0,     0,     0,   599,     0,     0,     0,     0,     0,
1275        0,     0,     0,     0,     0,   622,     0,   601,     0,   618,
1276        0,     0,     0,     0,     0,   617,     0,     0,     0,     0,
1277      574,     0,   605,     0,   614,     0,   602,   573,   607,   562,
1278        0,   600
1279 };
1280 
1281   /* YYPGOTO[NTERM-NUM].  */
1282 static const yytype_int16 yypgoto[] =
1283 {
1284    -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718,
1285    -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718,
1286    -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718,  -982, -1718,
1287    -1718, -1718, -1718, -1718, -1718,  -925,  -492, -1683, -1718, -1620,
1288      -32, -1718,  -534, -1177, -1500,   798, -1438, -1718,  1105, -1349,
1289    -1335,  -959,  -905,  -468,  1095,   120,   797, -1718,  3972, -1368,
1290    -1717,  3472, -1416,  3228,  -954,  3242,  4022, -1718, -1718,  -986,
1291     -597, -1718,     8,   351, -1082,  3594,    12,  -544,  4290, -1718,
1292    -1718, -1718, -1323,  3385,  -886,    70,   769,  -894,   346,    73,
1293     -501,  -888, -1718, -1718,   -19,  4920, -1718, -1718, -1718, -1718,
1294    -1718, -1718, -1718,  3587, -1718, -1718, -1718, -1718, -1718, -1718,
1295     -462,  3216, -1718,  -453, -1718, -1718, -1718, -1718, -1718, -1718,
1296    -1718, -1718, -1718,   467,  4792,  4794,  4795,  -346,  4786,  4789,
1297     4790,  4791,  4796,  4798,  4800,  4801,  4803,  4804,  4805,  4806,
1298    -1718,  4808,  4809,  4810,  4811,  4812,  4813,  4814,  -145,  -141,
1299     -131,   566,   571, -1718,  4815,  4816,  4817,  4818,  4819,  -490,
1300     4383,  4826, -1718, -1718, -1718, -1718,  4802,  -138, -1718, -1718,
1301     4825,  -220, -1718,  4829,  -420,   584,  4830,  4831,   437,  4832,
1302     4833, -1718,  4834,  4835,  -126, -1718,   593,   471,  -132,  4836,
1303    -1718,  4368, -1718, -1718,  -113, -1718, -1718, -1718,    65,  4838,
1304      486,   275,   373,   241, -1718, -1718,  4360, -1718, -1718,  -480,
1305      202, -1718, -1718, -1718,  -149, -1718, -1718, -1718, -1718,  4837,
1306     4839, -1718, -1718,  4841, -1718, -1718, -1718, -1718,  4824,   115,
1307    -1718, -1718, -1718
1308 };
1309 
1310   /* YYDEFGOTO[NTERM-NUM].  */
1311 static const yytype_int16 yydefgoto[] =
1312 {
1313       -1,    16,    17,    18,    19,    20,   251,   415,   446,   312,
1314      314,   373,   266,   384,   336,   484,   317,   321,   326,   329,
1315      341,   370,   400,   402,   835,   479,   482,   748,  1234,  1178,
1316      351,   477,   801,   805,  2407,  1190,   670,  1617,  1619,  1627,
1317     1629,  1632,   726,  1214,  1563,  1239,   873,  1858,   733,  1255,
1318     1241,   806,   802,   678,   674,  2408,  1592,  1590,   773,  1261,
1319     1842,  1551,  1584,  1585,  1219,  1568,   684,   774,  1237,   880,
1320     1586,  1859,   875,   162,  1138,  1369,   734,   679,   930,   931,
1321     1148,  1588,   675,  1724,   920,  1570,  1589,   922,   165,   166,
1322      167,   924,   925,   926,   927,    67,    68,    21,    22,    23,
1323       24,    25,    26,  1157,    27,    28,    29,    30,    31,    32,
1324     1631,  1625,  1626,   685,    33,    34,   385,   828,   829,    35,
1325       36,    37,    38,   252,   268,   269,   270,   706,   416,   417,
1326      418,   419,   420,   421,   422,   423,   424,   425,   426,   427,
1327      762,   428,   429,   430,   431,   432,   433,   434,   435,   436,
1328      437,   271,   272,   273,   440,   441,   442,   443,   444,   371,
1329      745,   274,  2410,  2411,  2412,   387,   275,   276,   277,   278,
1330      279,   280,   838,   281,   282,   283,   284,   285,   253,   287,
1331      288,   390,   289,   290,   291,   292,   293,   294,   254,   296,
1332      297,   298,   842,   843,   660,   789,   861,    39,   299,   300,
1333      255,   302,   256,   304,   305,   483,   865,   818,   686,   687,
1334      688,   324,   869,   306,   307,   862,   851,   846,   847,   308,
1335      309,  1179,  1180,   310,    40,    41,   900,    42,   445,   855,
1336      399,   830,    43
1337 };
1338 
1339   /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
1340      positive, shift that token.  If negative, reduce the rule whose
1341      number is the opposite.  If YYTABLE_NINF, syntax error.  */
1342 static const yytype_int16 yytable[] =
1343 {
1344      168,  1183,   169,   170,   171,   172,   173,   174,   175,   176,
1345      177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
1346      187,   188,   189,   190,   874,   750,  1139,   752,  1527,  1635,
1347     1238,   163,  1154,   396,  1145,  1143,  1415,  1553,   295,   337,
1348      342,   466,  1143,  1192,  1222,   467,   683,   720,  1874,   376,
1349      392,   339,   344,   803,  1638,   468,  1370,   791,  1642,  1274,
1350     1275,  1276,  1714,  -381,  1789,  1851,   744,   813,  2174,  2279,
1351     2280,   737,   739,  2186,  1866,  1558,  2174,    49,  1606,  2223,
1352     2281,  1210,   728,   736,   738,   225,   227,   228,   229,   230,
1353      231,   232,   233,   234,  1603,  2299,   757,   759,  1569,   753,
1354      764,   765,   766,   767,    50,   749,  1236,   831,   811,  1591,
1355     1593,  2175,  1607,   795,   797,  2304,  2187,  2304,  1841,  2200,
1356     1253,    61,  2224,  1257,   832,   794,   796,  1660,  1661,   792,
1357      833,  1854,   524,   834,    51,   817,   819,   636,  2300,   814,
1358       52,   405,    62,  1296,   804,    44,  1648,  1649,  1650,  1651,
1359     1652,   901,   525,   704,  -381,  -381,  -381,   637,  2305,   893,
1360     2316,  2064,    45,   705,  1654,  1655,   414,  1657,   368,  1659,
1361       46,   923,   923,    47,    57,    53,    48,   369,  2065,   894,
1362      812,  1314,   815,   710,   711,   712,   713,   714,   715,   716,
1363      717,   718,   719,    58,   721,   722,   723,   724,   860,   729,
1364      730,   731,   732,   319,   735,   883,   884,   740,   741,   742,
1365     1813,   698,   515,   516,   989,   699,   320,  2321,  2202,   215,
1366      661,   662,   663,   664,   665,   666,   667,   668,   669,   247,
1367      248,  1556,  2026,   510,   511,   512,   513,   514,  1622,  2322,
1368      676,   677,   340,   345,   249,    59,   377,   393,   528,  1139,
1369      250,  1145,  1176,  1623,   521,   529,   682,   530,   531,   532,
1370      533,   534,  1372,   535,   536,  2025,   537,   538,   539,   522,
1371      540,  1177,   541,   542,   543,   544,   545,  2128,   546,   547,
1372      548,   549,   550,   551,   552,   553,   554,   555,  1523,  2090,
1373       54,   556,  2217,  2080,   558,  2129,   559,  2237,    60,   561,
1374      680,   676,   677,   564,   565,   566,  2091,  1826,   568,   569,
1375     2218,   570,   571,   681,  2219,  2238,   609,   682,   576,   577,
1376      578,   579,  1869,   580,   581,   582,   583,   346,   525,   258,
1377      319,   347,   348,   589,   521,  2569,  1855,  1524,  1862,   864,
1378      590,  1795,  1525,   591,   349,   592,   593,   594,   595,   586,
1379      350,  2564,   597,   598,   854,   599,   600,   601,   602,   603,
1380      604,   606,   630,  1815,   607,   631,   610,   611,   612,   613,
1381      614,   615,   616,   617,   618,   619,   620,   621,   622,   623,
1382      624,  1877,   625,   707,   626,   856,   519,   708,  1049,   810,
1383     1867,   837,  1878,   803,  1569,    64,  1879,   709,   859,   520,
1384     1050,   857,   858,   854,   215,   661,   662,   663,   664,   665,
1385      666,   667,   668,   669,   676,   677,   328,   331,    55,   923,
1386      923,  1144,   379,   395,    56,    63,   756,   923,   226,   226,
1387      226,   226,   226,   226,   226,   226,   226,   659,  1593,  1197,
1388     2383,  1199,   803,   247,   325,   864,   334,   867,   332,   322,
1389     2059,  2384,   333,   334,   365,  2385,    65,    66,   249,   640,
1390      854,   641,   845,  2060,   250,   335,   643,   803,  1571,  1572,
1391     1156,  1158,   702,   836,  1529,   703,  1531,  1193,  1139,   840,
1392     1883,   803,  1636,  1637,   803,   839,   809,   680,   676,   677,
1393     2380,  1884,   404,   405,   406,   407,   408,   409,   844,   209,
1394      756,  2381,  1984,   410,   682,   210,  1985,  1560,   161,   411,
1395      246,  1203,  1204,  1205,  1206,   412,   413,   825,   414,  1986,
1396      826,   191,   257,   671,   258,   259,   260,   261,   192,  1221,
1397      827,  1223,   676,   677,  1226,  1227,  1228,  1229,  1300,   262,
1398      193,  1263,   803,   303,   747,   263,   264,   323,   265,   194,
1399     1543,   671,   366,  1544,  1250,  1251,   727,   215,   661,   662,
1400      663,   664,   665,   666,   667,   668,   669,  1543,  1266,  1699,
1401     1674,   727,  1700,   727,   672,   673,   505,   810,   505,   505,
1402      505,   505,   505,   505,   505,   505,  1658,  2405,  2406,   775,
1403     2469,   207,   779,   780,   781,   584,   516,   208,   212,  1319,
1404     1320,  2470,   790,   727,   213,  2474,   380,   286,   247,   325,
1405      381,   334,   671,   727,  1310,  1311,  2475,  1313,   375,  1315,
1406      401,   403,   195,   382,   848,   849,   197,   852,   853,   383,
1407      672,   673,   265,   877,   878,   879,   881,   267,  1144,  1209,
1408     2527,   917,   923,   196,   318,   198,   352,   923,   374,   386,
1409      362,  2528,  2535,   199,   478,   480,   301,   485,   816,   676,
1410      677,   327,   330,  2536,   937,   938,   939,   378,   394,   225,
1411      227,   228,   229,   230,   231,   232,   233,   234,  1731,  1743,
1412     1774,  1732,  1681,  1775,  1143,   676,   677,   956,   957,   958,
1413      959,   960,   961,   962,   963,   964,   965,   966,   967,   968,
1414      969,   200,   970,   971,   972,   973,  2615,  1155,   676,   677,
1415      975,   976,   977,   978,  2180,  2181,   979,  2616,   980,   201,
1416      981,   982,   983,   202,  1809,   985,   986,  1812,   203,  1939,
1417      990,   991,  1681,   863,   866,   870,  2210,  2211,   996,   997,
1418      998,   999,   921,   928,   204,  1002,  1003,  1004,  1005,   932,
1419      932,   438,   469,  1010,   206,  1011,   439,   470,  1012,  1013,
1420      727,   338,   343,  1014,   313,   315,   758,   760,   205,   211,
1421     1021,    65,   311,   316,   325,   250,  1022,   247,  1023,   481,
1422     1025,   486,   487,  1027,  1794,  1028,  1796,  1029,   164,  2198,
1423     1030,   488,  1032,  1033,   489,   492,  1034,   490,   491,  1036,
1424     1120,  1121,  1122,  1123,  1124,  1125,  1126,  1127,   493,  1045,
1425     1046,  1047,   494,   495,   496,   499,  2309,  1053,  1054,  1055,
1426     1056,  1057,  1058,  1059,  1060,  1061,  1062,  1063,  1064,  1065,
1427     1066,   497,  1068,  1069,  1070,   803,  1072,   803,   498,  1873,
1428     1076,  1077,  1078,  1079,  1080,   500,  1082,  1083,   501,  1085,
1429     1086,  1087,   502,   503,  1521,   504,   506,   507,  1917,   508,
1430      517,   509,   518,   523,  1091,  1092,   526,   562,   803,   567,
1431      874,   923,   557,   527,   563,   560,   572,   573,   585,  1088,
1432     1089,  1108,  1109,   215,   661,   662,   663,   664,   665,   666,
1433      667,   668,   669,   574,     1,   575,   587,     2,   588,   725,
1434      605,  1140,   215,   216,   217,   218,   219,   220,   221,   222,
1435      223,   224,  1530,   520,  1532,   596,   608,   627,   628,     3,
1436      923,     4,     5,     6,     7,   629,   632,   634,  1624,   633,
1437        8,   638,     9,   635,   639,    10,    11,   648,   645,   647,
1438       12,    13,    14,   642,    15,   644,   646,   803,   649,   650,
1439     1090,   652,  1604,   215,   216,   217,   218,   219,   220,   221,
1440      222,   223,   224,   651,   653,   654,  1616,   655,   656,  1621,
1441     1213,   657,   876,  1184,  1634,   658,  1187,  1188,   775,  1191,
1442     1191,   671,  1194,  1195,   689,   727,   690,   727,   659,  1201,
1443      691,    -6,    -6,   693,   692,  1207,   694,   696,   695,  1982,
1444      697,   700,   701,  1215,   704,   743,   746,   747,   751,   754,
1445      755,   761,   226,   226,   226,   226,   226,   226,   226,   226,
1446      226,   763,   768,   769,   770,  1240,  1242,  2029,   771,   783,
1447      787,   785,   784,   786,  2409,   798,   800,   788,   810,  1256,
1448      820,   821,   823,   822,  1262,   671,   824,   850,  1120,  1121,
1449     1122,  1123,  1124,  1125,  1126,  1127,   885,   881,   881,   881,
1450      886,   854,   887,  1128,   888,   890,   889,   891,   892,   923,
1451     1129,  1130,  1131,   896,  1132,   895,   897,   902,  1294,   898,
1452     1191,   904,  1298,   369,   727,   899,   905,   907,   906,   908,
1453      909,   912,  2073,   910,   913,   911,   914,   915,  1318,   935,
1454     1346,   916,  1133,   671,   671,   934,  1134,   936,  1135,   940,
1455     1136,   941,  1137,   942,   943,   944,   946,   945,   246,   948,
1456      947,   949,   246,   246,  1140,   950,   951,   952,  2409,   637,
1457      953,   955,   954,   974,   984,  1377,   987,  1379,  1380,  1381,
1458     1382,  1000,   992,   988,   994,   803,   993,   803,  1001,   995,
1459     1006,  1007,  1009,   246,  1015,  1008,  1016,  1017,  1018,  1400,
1460     1019,  1020,  1024,   874,  1031,  1035,  1401,  1026,  1402,  1403,
1461     1038,  1037,  1039,  1404,  1405,  1406,  1040,  1407,  1408,  1042,
1462     1041,  1043,  1409,  1410,  1044,  1048,  1051,  1067,  1052,  1071,
1463     1412,  1075,  1074,  1084,  1081,  1416,  1073,  1093,  1094,  1095,
1464     1420,  1098,  1422,  1420,  1423,   215,   661,   662,   663,   664,
1465      665,   666,   667,   668,   669,  1430,   923,  1096,  1432,  1430,
1466     1433,  1097,   226,   226,  1797,  1215,   505,  1100,   246,  1099,
1467     1101,  1102,  1104,  1103,  1105,  1106,  1442,  1107,  1443,  1110,
1468     1444,  1111,  1113,  1316,  1446,  1447,   215,   216,   217,   218,
1469      219,   220,   221,   222,   223,   224,  1112,  1114,  1116,  1115,
1470     1117,  1118,  1458,  1459,  1460,  1461,  1462,  1463,  1464,  1465,
1471     1466,  1467,  1468,  1469,  1147,  1471,  1149,  1473,  1150,  1475,
1472     1151,  1477,  1152,  1153,  1160,  1481,  1482,  1483,  1484,  1485,
1473     1161,  1487,  1488,  1162,  1490,  1491,  1492,  1163,  1164,  1317,
1474     1495,  1496,   215,   216,   217,   218,   219,   220,   221,   222,
1475      223,   224,  1165,  1166,  1167,  1168,  1169,  1512,  1171,  1170,
1476     1172,  1173,  1174,  1945,  1493,  1494,   215,   216,   217,   218,
1477      219,   220,   221,   222,   223,   224,  1198,  1208,  1211,  1212,
1478     1217,  1218,  1216,  1224,  1225,   772,   776,   777,  1230,  1231,
1479     1232,  1233,  1243,  1140,  1244,  1245,  1246,  1247,   671,  1248,
1480      803,  1252,  1254,  1260,  1267,  2020,  1265,   807,   215,   216,
1481      217,   218,   219,   220,   221,   222,   223,   224,  1268,  1269,
1482     1270,  1271,  1272,  1273,  1277,  1278,  1279,  1280,   703,  1256,
1483     1295,  1301,  1299,   882,  2021,  1302,  1562,   215,   216,   217,
1484      218,   219,   220,   221,   222,   223,   224,  1303,  1309,  1312,
1485     1321,  1322,  1323,  1324,  1549,  1550,  1552,  1262,  1554,  1325,
1486     1215,  1557,  1242,  1326,  1327,  1328,  1329,  1330,  1564,  1331,
1487     1332,  1333,  1334,  1338,  1335,  1339,  1340,  1341,  1392,   505,
1488      505,   226,  1342,  1587,  1344,  1343,  1373,  1376,  1345,  1375,
1489     1374,  1384,  1378,   803,  1385,  1256,   671,  1388,  1262,  1242,
1490     1386,  1389,  1383,  1391,  1393,  1387,  1394,  1390,  1395,  1396,
1491      671,  1618,  1399,   671,   727,  1628,  1630,  1397,   671,   877,
1492      881,   881,  1587,  1413,  1398,  1552,  1587,  1411,  1417,  1418,
1493     1414,  1424,  1425,  1242,  1242,  1242,  1242,  1242,  1427,  1428,
1494     1429,  1435,  1684,  1436,  1437,  1438,  1439,  1262,  1262,  1441,
1495     1419,  1689,  1690,  1691,  1692,   871,   872,   215,   661,   662,
1496      663,   664,   665,   666,   667,   668,   669,  1426,  1434,  1706,
1497     1707,   246,   246,  1440,  1445,  1708,  1709,  1710,  1448,  1449,
1498     1450,  1712,   246,  1452,  1451,  1453,   246,  1454,  1455,  1456,
1499     1472,  1457,  1420,  1420,  1476,  1478,  1479,  1480,  1486,  1489,
1500     1497,  1498,  1499,  1726,  1726,  1501,   246,  1502,  1507,  1500,
1501     1504,  1503,  1505,  1506,  1564,  1511,  1509,  1508,  1510,  1514,
1502     1515,   246,  1516,  1519,  1737,  1738,  1520,  1740,  1088,  1089,
1503     1513,  1518,  1517,  1526,  1535,  1528,  1534,  1536,  1748,  1856,
1504     1857,   215,   216,   217,   218,   219,   220,   221,   222,   223,
1505      224,  1537,  1539,  1538,  1540,  1751,  1541,  1542,  1561,  1545,
1506     1546,  1559,  1753,  1524,  1577,  1565,  1566,  1525,  1573,  1757,
1507     1758,  1759,  1760,  1761,  1575,  1576,  1574,  1578,  1595,   246,
1508     1596,  1764,  1765,   246,  1594,  1597,  1598,  1601,  1599,  1605,
1509     1600,  1609,  1608,  1611,  1610,  1612,  1613,   874,  1782,  1614,
1510     1640,  1645,  1646,  1615,  1662,  1653,  1664,   226,   226,   505,
1511     1647,  1668,  1670,  1665,  1656,  1671,  1672,  1675,  1678,  1663,
1512     1666,  1679,   246,  1681,   778,  1680,  1667,  1682,   782,  1669,
1513     1673,  1683,  1676,  1685,  1686,  1817,  1628,   793,  1688,  1687,
1514     1694,  1696,  1256,  1701,   808,  1829,  1693,  1702,  1829,  1695,
1515     1697,  1698,  1703,  1704,  1705,  1713,  1711,  1721,  1715,  1718,
1516     1728,  1716,  1564,  1719,  1256,  1720,  1722,  1729,  1730,   807,
1517     1733,  1185,  1186,  1734,  1736,  1587,  1735,  1739,  1744,  1741,
1518     1587,  1196,  1742,  1745,  1747,  1200,  1749,  1750,   903,  1756,
1519     1628,  1746,  1843,  1755,  1762,  1763,  1767,  1766,  1776,  1769,
1520     1618,  1860,  1770,  1628,  1587,  1220,  1587,  1220,  1771,  1618,
1521     1262,  1240,   877,  1768,  1772,  1773,  1191,  1843,  1904,  1235,
1522     1777,  1235,   876,  1778,  1779,  1780,  1781,  1786,  1783,  1784,
1523     1430,  1787,  1785,  1430,  1894,  1788,  1790,  1791,  1798,  1792,
1524     1793,  1799,  1804,  1800,  1802,  1806,  1801,  1808,  1814,  2274,
1525     1836,  1848,  1805,  1803,   882,   882,   882,  1807,   876,  1889,
1526     1816,   876,  1852,  1818,  1821,   876,  1819,  1822,  1823,  1824,
1527     1825,  1832,  1833,  1834,  1293,  1942,  1835,  1837,  1297,  1838,
1528     1844,  1839,  1845,  1846,   505,   505,  1847,  1948,  1949,  1849,
1529     1850,  1853,  1872,  1864,  1865,  1952,  1871,  1876,  1881,  1882,
1530     1885,  1875,  1891,  1880,  1943,  1944,  1888,  1893,  1886,  1890,
1531     1887,  1895,  1892,  1896,  1898,  1972,  1897,  1336,  1899,  1900,
1532     1901,  1903,  1905,  1902,  1908,  1907,  1906,  1909,  1910,  1911,
1533     1912,  1913,  1914,  1916,   246,  1915,  1922,  1918,  1997,  1919,
1534     1920,   246,  1921,  1923,  1925,  1929,  1931,  1924,  1940,  1941,
1535     2019,  1926,  1930,   246,  1927,  1928,  1933,  1958,  1932,  1935,
1536     1934,  1936,  1937,  1959,  1947,   246,  1938,  1953,  1954,  1946,
1537     1955,   226,   226,  1950,  1951,   246,  1956,  1957,  1960,  1963,
1538     1961,  1962,  1966,  1964,  1965,  1967,  1969,  1970,  1979,  1974,
1539     1968,  1971,  1973,  2022,  1630,  1975,  1976,  1978,  1977,  1980,
1540     1618,  1843,  1981,  1987,  1191,  1983,   246,  1990,  1992,  1993,
1541     1988,  1991,  1994,  1999,  1995,  1996,  1998,  2000,  2001,   246,
1542     1989,  2033,  2002,  2004,  2049,   246,  2003,  2028,  2005,   246,
1543     1347,  1348,  1349,  1350,  1351,  1352,  1353,  1354,  1355,  1356,
1544     1357,  1358,  1359,  1360,  1361,  1362,  1363,  1364,  1365,  1366,
1545     1367,  1368,  2006,  2011,  2008,  2007,  2009,  2027,  2010,  2012,
1546     2013,  2015,  1119,  2017,  2014,  2016,  2031,  2018,  2096,  2097,
1547     2030,  2023,  2024,  2034,  2032,  2035,  2036,  2037,  2039,  2038,
1548     2040,  2042,  2044,  2041,  2043,  2045,  2046,  2048,  2047,  2050,
1549     2051,  2052,  2053,  2054,  2138,  2063,  2056,  2061,  2055,  2062,
1550     2057,  1175,  2058,  1181,  1182,  2066,  2067,  2068,  2070,  2069,
1551     2071,   246,  2075,  2072,   876,  2074,  2076,  2078,  2077,   876,
1552     2079,  2080,  2082,  1202,  2083,  2081,  2084,  2086,  2085,  2087,
1553     2088,  2089,  2092,  2093,  2094,  2095,  2098,  2099,  2101,  2104,
1554     2106,  2109,  2100,   876,   226,   876,  2103,  2102,  2105,  2111,
1555     2107,   876,  2108,  2110,  2117,  2112,  2118,  2114,  2113,  2116,
1556     2119,  2120,  2122,  2115,  2124,  2123,  1249,  2125,  2121,  2126,
1557     2127,  2131,  2132,  2133,  1258,  1259,  2130,  2134,  2136,  1264,
1558     2135,  2137,  2139,  2141,  2144,  2140,  2142,  2145,  2148,  2147,
1559     1256,  2143,  2149,  2150,  2153,  2151,   246,   246,  1281,  1282,
1560     1283,  1284,  1285,  1286,  1287,  1288,  1289,  1290,  1291,  1292,
1561     1548,  2154,  2146,  2155,   246,  2152,  1555,  2156,  2157,  2254,
1562     2159,  1304,  1305,  1306,  1307,  1308,  2160,  2161,  2162,  1567,
1563     2164,  1220,  1220,  2165,  2158,  2166,  2167,  2168,  2169,  1579,
1564     2163,  2170,  2171,  2172,  2176,  2173,  2178,   226,   226,  2177,
1565     2183,   505,  2179,  2188,  1337,  2189,  2182,  2184,  2185,  2194,
1566     2190,  2175,  2193,  2196,  2202,  2203,  2206,  2192,  2205,  1620,
1567     2191,  2195,  2197,  2199,  1633,  2212,  2201,   882,   882,  2204,
1568     1639,  2209,  2207,  2222,  1643,  2208,  2213,  2225,  2214,  2228,
1569     2221,  2230,  2215,  2227,  2216,  2220,  2231,  2229,  2226,  2233,
1570     2232,  2234,  2239,  2235,  2236,  2240,   877,  2241,  2244,  2246,
1571     2245,  2248,  2247,  2250,  2251,  2249,  2258,  2256,  2276,  2252,
1572     2259,  2260,  2253,  2261,  2255,  2257,  2262,  2265,  2242,  2266,
1573     2357,  2263,  2267,  2264,   505,   505,   226,  2268,  2269,  2270,
1574     2273,  2272,  2277,  2282,  2283,  2243,  2285,  2284,  2271,  2286,
1575     2275,  2290,  2291,  2287,  2278,  2289,  2292,  2295,  2294,  2297,
1576     2296,  2298,  2301,  2302,  2313,  2306,  2307,  2308,  2310,  2315,
1577     2288,  2318,  2320,  2293,  2317,  2323,  2303,  2304,  2321,  2359,
1578     2328,  2299,  2312,  2314,  2325,  2326,  2311,  2324,  2329,  2319,
1579     2330,  1725,  1725,  2333,  2327,  2335,  2300,  2331,  2332,  2342,
1580     2337,  2334,  2336,  2338,  2343,  2339,  2340,  2341,  2346,  2349,
1581     2350,   226,   226,   505,  2347,    86,    87,    88,    89,    90,
1582       91,    92,    93,    94,    95,    96,    97,  2344,  2451,   929,
1583     2345,  2348,   101,   102,   103,   104,   105,   106,   107,   108,
1584      109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
1585      119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
1586      129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
1587      139,   140,  2351,  2352,  2353,  2356,  2354,  2355,  2358,  2360,
1588     2361,  2362,  2363,  2365,  2364,  2367,  2368,   505,   505,  2366,
1589     2370,  2369,  2371,  2372,  2373,  2374,  2375,  2379,  2382,  2376,
1590     2377,  2387,  2386,  2378,  2388,  2389,  2390,  2392,  2391,  2394,
1591     2393,  2395,  2396,  2397,  2398,  1235,  1810,  1811,  1235,  2400,
1592     2399,  2401,  2402,  2417,  2413,  2403,  2404,  2414,  2415,  2416,
1593     2418,  2419,  2421,  1828,  2423,  2422,  1828,  2424,  2425,  2434,
1594     2426,  2441,  2427,  2428,  2429,  1547,  2430,  2436,  2438,  2432,
1595     2439,  2433,  2420,  2431,  2437,  2443,  2442,  2452,  2440,  2435,
1596     2444,  2445,  2450,  2447,  2446,  2448,  2453,  2449,  2454,  2455,
1597     2457,  2456,  2458,  2461,  2459,  2460,  2462,  2463,  2466,  2464,
1598     2465,  2473,  2468,  2472,  2467,  2471,  2476,  1602,  2483,  2484,
1599     2477,  2480,  2485,  2478,  2487,  2492,  2495,  1868,  1870,  2481,
1600     2493,  2496,  2489,  2482,  2486,  2501,  2491,  2502,  2499,  2497,
1601     2500,  2490,  1644,  2479,  2520,  2518,  2503,  2504,  2488,  2505,
1602     2512,  2506,  2508,  2509,  2526,  2510,   807,  2515,  2541,  2513,
1603     2533,  2516,  2517,  2494,  2522,  2521,  2523,  2519,  2524,  2525,
1604     2529,  2532,  2530,  2531,  2538,   876,  2537,  2543,  2534,  2539,
1605     2540,  2498,  2546,  2542,  2544,  2547,  2507,  1677,    69,   235,
1606       71,    72,    73,    74,    75,   236,   237,   238,   239,   240,
1607      241,   242,   243,   244,   245,    86,    87,    88,    89,    90,
1608       91,    92,    93,    94,    95,    96,    97,   672,   673,   918,
1609       99,   919,   101,   102,   103,   104,   105,   106,   107,   108,
1610      109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
1611      119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
1612      129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
1613      139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
1614      149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
1615      159,   160,   161,    69,   235,    71,    72,    73,    74,    75,
1616      236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
1617       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
1618       96,    97,  1141,  2511,  1142,    99,   919,   101,   102,   103,
1619      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
1620      114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
1621      124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
1622      134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
1623      144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
1624      154,   155,   156,   157,   158,   159,   160,   161,  2514,  2545,
1625     2548,  2549,  2550,    69,   235,    71,    72,    73,    74,    75,
1626      236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
1627       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
1628       96,    97,  1840,  1146,  1142,    99,   919,   101,   102,   103,
1629      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
1630      114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
1631      124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
1632      134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
1633      144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
1634      154,   155,   156,   157,   158,   159,   160,   161,    69,   235,
1635       71,    72,    73,    74,    75,   236,   237,   238,   239,   240,
1636      241,   242,   243,   244,   245,    86,    87,    88,    89,    90,
1637       91,    92,    93,    94,    95,    96,    97,  1827,  2551,    98,
1638       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
1639      109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
1640      119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
1641      129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
1642      139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
1643      149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
1644      159,   160,   161,    69,   235,    71,    72,    73,    74,    75,
1645      236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
1646       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
1647       96,    97,  2552,  1830,    98,    99,   100,   101,   102,   103,
1648      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
1649      114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
1650      124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
1651      134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
1652      144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
1653      154,   155,   156,   157,   158,   159,   160,   161,    69,    70,
1654       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
1655       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
1656       91,    92,    93,    94,    95,    96,    97,  2553,  2554,    98,
1657       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
1658      109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
1659      119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
1660      129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
1661      139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
1662      149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
1663      159,   160,   161,    69,   235,    71,    72,    73,    74,    75,
1664      236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
1665       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
1666       96,    97,  2555,  2556,   918,    99,   919,   101,   102,   103,
1667      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
1668      114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
1669      124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
1670      134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
1671      144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
1672      154,   155,   156,   157,   158,   159,   160,   161,    69,   235,
1673       71,    72,    73,    74,    75,   236,   237,   238,   239,   240,
1674      241,   242,   243,   244,   245,    86,    87,    88,    89,    90,
1675       91,    92,    93,    94,    95,    96,    97,  2557,  2558,    98,
1676       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
1677      109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
1678      119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
1679      129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
1680      139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
1681      149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
1682      159,   160,   161,    69,   235,    71,    72,    73,    74,    75,
1683      236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
1684       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
1685       96,    97,  2559,  2560,  1371,    99,   919,   101,   102,   103,
1686      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
1687      114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
1688      124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
1689      134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
1690      144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
1691      154,   155,   156,   157,   158,   159,   160,   161,    69,   235,
1692       71,    72,    73,    74,    75,   236,   237,   238,   239,   240,
1693      241,   242,   243,   244,   245,    86,    87,    88,    89,    90,
1694       91,    92,    93,    94,    95,    96,    97,  2561,  2562,  1142,
1695       99,   919,   101,   102,   103,   104,   105,   106,   107,   108,
1696      109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
1697      119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
1698      129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
1699      139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
1700      149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
1701      159,   160,   161,    69,   235,    71,    72,    73,    74,    75,
1702      236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
1703       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
1704       96,    97,  2563,  2564,  2565,    99,   919,   101,   102,   103,
1705      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
1706      114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
1707      124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
1708      134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
1709      144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
1710      154,   155,   156,   157,   158,   159,   160,   161,    69,   235,
1711       71,    72,    73,  1580,  1581,    76,    77,    78,    79,    80,
1712       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
1713       91,    92,    93,    94,    95,    96,    97,  1582,  1583,    98,
1714       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
1715      109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
1716      119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
1717      129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
1718      139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
1719      149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
1720      159,   160,    69,   235,    71,    72,    73,  1580,  1581,    76,
1721       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
1722       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
1723       97,  1582,  1583,    98,    99,   100,   101,   102,   103,   104,
1724      105,   106,   107,  1861,   109,   110,   111,   112,   113,   114,
1725      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
1726      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
1727      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
1728      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
1729      155,   156,   157,   158,   159,   160,    69,   235,    71,    72,
1730       73,    74,    75,   236,   237,   238,   239,   240,   241,   242,
1731      243,   244,   245,    86,    87,    88,    89,    90,    91,    92,
1732       93,    94,    95,    96,    97,  2566,  2567,    98,    99,   100,
1733      101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
1734      111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
1735      121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
1736      131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
1737      141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
1738      151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
1739       69,   235,    71,    72,    73,    74,    75,    76,    77,    78,
1740       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
1741       89,    90,    91,    92,    93,    94,    95,    96,    97,  2568,
1742     2570,    98,    99,   100,   101,   102,   103,   104,   105,   106,
1743      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
1744      117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
1745      127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
1746      137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
1747      147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
1748      157,   158,   159,   160,    69,   235,  1421,    72,    73,    74,
1749       75,   236,   237,   238,   239,   240,   241,   242,   243,   244,
1750      245,    86,    87,    88,    89,    90,    91,    92,    93,    94,
1751       95,    96,    97,  2571,  2572,    98,    99,   100,   101,   102,
1752      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
1753      113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
1754      123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
1755      133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
1756      143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
1757      153,   154,   155,   156,   157,   158,   159,   160,    69,   235,
1758     1431,    72,    73,    74,    75,   236,   237,   238,   239,   240,
1759      241,   242,   243,   244,   245,    86,    87,    88,    89,    90,
1760       91,    92,    93,    94,    95,    96,    97,  2573,  2574,    98,
1761       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
1762      109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
1763      119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
1764      129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
1765      139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
1766      149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
1767      159,   160,    69,   235,  1470,    72,    73,    74,    75,   236,
1768      237,   238,   239,   240,   241,   242,   243,   244,   245,    86,
1769       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
1770       97,  2569,  2575,    98,    99,   100,   101,   102,   103,   104,
1771      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
1772      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
1773      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
1774      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
1775      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
1776      155,   156,   157,   158,   159,   160,    69,   235,  1474,    72,
1777       73,    74,    75,   236,   237,   238,   239,   240,   241,   242,
1778      243,   244,   245,    86,    87,    88,    89,    90,    91,    92,
1779       93,    94,    95,    96,    97,  2576,  2577,    98,    99,   100,
1780      101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
1781      111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
1782      121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
1783      131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
1784      141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
1785      151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
1786       69,   235,  1717,    72,    73,    74,    75,   236,   237,   238,
1787      239,   240,   241,   242,   243,   244,   245,    86,    87,    88,
1788       89,    90,    91,    92,    93,    94,    95,    96,    97,  2578,
1789     2579,    98,    99,   100,   101,   102,   103,   104,   105,   106,
1790      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
1791      117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
1792      127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
1793      137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
1794      147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
1795      157,   158,   159,   160,    69,   235,  1723,    72,    73,    74,
1796       75,   236,   237,   238,   239,   240,   241,   242,   243,   244,
1797      245,    86,    87,    88,    89,    90,    91,    92,    93,    94,
1798       95,    96,    97,  2580,  2581,    98,    99,   100,   101,   102,
1799      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
1800      113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
1801      123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
1802      133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
1803      143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
1804      153,   154,   155,   156,   157,   158,   159,   160,    69,   235,
1805     1752,    72,    73,    74,    75,   236,   237,   238,   239,   240,
1806      241,   242,   243,   244,   245,    86,    87,    88,    89,    90,
1807       91,    92,    93,    94,    95,    96,    97,  2582,  2583,    98,
1808       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
1809      109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
1810      119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
1811      129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
1812      139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
1813      149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
1814      159,   160,    69,   235,  1754,    72,    73,    74,    75,   236,
1815      237,   238,   239,   240,   241,   242,   243,   244,   245,    86,
1816       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
1817       97,  2584,  2585,    98,    99,   100,   101,   102,   103,   104,
1818      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
1819      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
1820      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
1821      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
1822      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
1823      155,   156,   157,   158,   159,   160,    69,   235,    71,    72,
1824       73,    74,    75,   236,   237,   238,   239,   240,   241,   242,
1825      243,   244,   245,    86,    87,    88,    89,    90,    91,    92,
1826       93,    94,    95,    96,    97,  2586,  2587,  2588,    99,   919,
1827      101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
1828      111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
1829      121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
1830      131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
1831      141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
1832      151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
1833     2589,  2590,  2591,  2592,  2593,  2594,  2595,  2596,  2597,  2599,
1834     2598,  2600,  2602,  2601,  2603,  2605,  2608,  2604,  2611,  2607,
1835     2619,  2621,  2612,  2606,  2609,  2610,  2620,  2623,  2618,  2624,
1836     2636,  2626,  2613,  2614,  2617,  2627,  2625,  2630,  2628,  2622,
1837     2629,  2641,  2643,  2644,  2631,  2648,  2633,  2632,  1189,  2637,
1838     2634,  2635,  2647,  2651,  2638,  1641,  2639,  2640,  2661,  2642,
1839     2645,  2646,  2649,  2654,  2650,  2652,  1831,  2655,  2653,  1820,
1840     2660,  1159,  2656,  1522,  2658,  2657,  2659,   933,  1727,  1533,
1841     1863,   353,   447,   354,   355,   448,   449,   450,   799,   841,
1842      868,   356,   451,     0,   452,     0,   453,   454,   214,   455,
1843      456,   457,   458,     0,   459,   460,   461,   462,   463,   464,
1844      465,   471,   472,   473,   474,   475,   372,   388,   357,   358,
1845      476,   359,   360,   389,   361,   363,   391,   364,     0,   397,
1846      367,   398
1847 };
1848 
1849 static const yytype_int16 yycheck[] =
1850 {
1851       19,   960,    21,    22,    23,    24,    25,    26,    27,    28,
1852       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
1853       39,    40,    41,    42,   621,   559,   920,   561,  1377,  1467,
1854     1012,    19,   937,   182,   922,   921,  1213,  1405,   170,   177,
1855      178,   186,   928,   968,   998,   186,   514,   539,  1765,   181,
1856      182,   177,   178,   597,  1470,   186,  1138,   591,  1474,  1045,
1857     1046,  1047,  1562,     6,  1684,  1748,   556,   601,    49,    28,
1858       29,   551,   552,    49,  1757,  1410,    49,    30,  1446,    49,
1859       39,   986,   544,   551,   552,    77,    78,    79,    80,    81,
1860       82,    83,    84,    85,  1443,    49,   564,   565,  1421,   561,
1861      568,   569,   570,   571,    29,   558,  1011,    26,   600,  1432,
1862     1433,    92,  1447,   593,   594,    49,    92,    49,  1738,    92,
1863     1025,    30,    92,  1028,    43,   593,   594,  1495,  1496,   591,
1864       49,  1751,    30,    52,    39,   603,   604,    30,    92,   601,
1865       45,    27,    51,  1068,   597,    29,  1481,  1482,  1483,  1484,
1866     1485,   641,    50,    39,    97,    98,    99,    50,    92,    29,
1867       92,    29,    46,    49,  1487,  1488,    52,  1490,    30,  1492,
1868       42,   672,   673,    45,    26,    30,    48,    39,    46,    49,
1869      600,  1086,   602,   529,   530,   531,   532,   533,   534,   535,
1870      536,   537,   538,    45,   540,   541,   542,   543,   618,   545,
1871      546,   547,   548,    29,   550,   625,   626,   553,   554,   555,
1872     1710,    44,    51,    52,   748,    48,    42,    28,    29,    10,
1873       11,    12,    13,    14,    15,    16,    17,    18,    19,    28,
1874       29,  1408,  1949,   252,   253,   254,   255,   256,    29,    50,
1875       32,    33,   177,   178,    43,    51,   181,   182,   267,  1143,
1876       49,  1139,    27,    44,    39,   274,    48,   276,   277,   278,
1877      279,   280,  1148,   282,   283,  1948,   285,   286,   287,    54,
1878      289,    46,   291,   292,   293,   294,   295,    30,   297,   298,
1879      299,   300,   301,   302,   303,   304,   305,   306,  1370,    29,
1880       44,   310,    28,    29,   313,    48,   315,    30,    30,   318,
1881       31,    32,    33,   322,   323,   324,    46,  1723,   327,   328,
1882       46,   330,   331,    44,    50,    48,    38,    48,   337,   338,
1883      339,   340,  1760,   342,   343,   344,   345,    26,    50,    28,
1884       29,    30,    31,   352,    39,    39,  1752,    43,  1754,    29,
1885      359,  1690,    48,   362,    43,   364,   365,   366,   367,    54,
1886       49,    55,   371,   372,    44,   374,   375,   376,   377,   378,
1887      379,    28,    27,  1712,    31,    30,   385,   386,   387,   388,
1888      389,   390,   391,   392,   393,   394,   395,   396,   397,   398,
1889      399,    28,   401,   528,   403,    26,    31,   528,    39,    30,
1890     1758,   611,    39,   937,  1717,     0,    43,   528,   618,    44,
1891       51,    42,    43,    44,    10,    11,    12,    13,    14,    15,
1892       16,    17,    18,    19,    32,    33,   175,   176,    39,   920,
1893      921,   922,   181,   182,    45,    44,    44,   928,    77,    78,
1894       79,    80,    81,    82,    83,    84,    85,    43,  1761,   973,
1895       28,   975,   986,    28,    29,    29,    31,    31,    26,   174,
1896       31,    39,    30,    31,   179,    43,    98,    99,    43,   478,
1897       44,   480,   611,    44,    49,    43,   485,  1011,  1422,  1423,
1898      938,   939,    39,   611,  1379,    42,  1381,   969,  1372,   611,
1899       28,  1025,  1468,  1469,  1028,   611,   599,    31,    32,    33,
1900       28,    39,    26,    27,    28,    29,    30,    31,   611,    44,
1901       44,    39,    26,    37,    48,    50,    30,  1412,    97,    43,
1902      164,   979,   980,   981,   982,    49,    50,    26,    52,    43,
1903       29,    29,    26,   511,    28,    29,    30,    31,    46,   997,
1904       39,   999,    32,    33,  1002,  1003,  1004,  1005,  1072,    43,
1905       30,  1033,  1086,   170,    44,    49,    50,   174,    52,    46,
1906       49,   539,   179,    52,  1022,  1023,   544,    10,    11,    12,
1907       13,    14,    15,    16,    17,    18,    19,    49,  1036,    46,
1908       52,   559,    49,   561,    32,    33,   225,    30,   227,   228,
1909      229,   230,   231,   232,   233,   234,  1491,    45,    46,   577,
1910       28,    43,   580,   581,   582,    51,    52,    49,    43,  1091,
1911     1092,    39,   590,   591,    49,    28,    26,   170,    28,    29,
1912       30,    31,   600,   601,  1082,  1083,    39,  1085,   181,  1087,
1913      183,   184,    30,    43,   612,   613,    39,   615,   616,    49,
1914       32,    33,    52,   621,   622,   623,   624,   170,  1139,   985,
1915       28,   660,  1143,    49,   173,    44,   179,  1148,   181,   182,
1916      179,    39,    28,    48,   187,   188,   170,   190,    31,    32,
1917       33,   175,   176,    39,   683,   684,   685,   181,   182,   661,
1918      662,   663,   664,   665,   666,   667,   668,   669,    46,    46,
1919       46,    49,    49,    49,  1570,    32,    33,   706,   707,   708,
1920      709,   710,   711,   712,   713,   714,   715,   716,   717,   718,
1921      719,    50,   721,   722,   723,   724,    28,    31,    32,    33,
1922      729,   730,   731,   732,    28,    29,   735,    39,   737,    49,
1923      739,   740,   741,    49,  1706,   744,   745,  1709,    26,    46,
1924      749,   750,    49,   618,   619,   620,    28,    29,   757,   758,
1925      759,   760,   672,   673,    46,   764,   765,   766,   767,   676,
1926      677,   185,   186,   772,    39,   774,   185,   186,   777,   778,
1927      748,   177,   178,   782,   171,   172,   564,   565,    52,    27,
1928      789,    98,    43,    43,    29,    49,   795,    28,   797,    39,
1929      799,    30,    26,   802,  1689,   804,  1691,   806,    19,  2138,
1930      809,    55,   811,   812,    26,    29,   815,    50,    50,   818,
1931       10,    11,    12,    13,    14,    15,    16,    17,    43,   828,
1932      829,   830,    30,    50,    29,    45,  2254,   836,   837,   838,
1933      839,   840,   841,   842,   843,   844,   845,   846,   847,   848,
1934      849,    30,   851,   852,   853,  1379,   855,  1381,    50,  1764,
1935      859,   860,   861,   862,   863,    30,   865,   866,    29,   868,
1936      869,   870,    49,    26,  1346,    51,    38,    27,  1817,    39,
1937       38,    30,    27,    39,   883,   884,    45,    27,  1412,    27,
1938     1467,  1372,    39,    45,    45,    39,    51,    31,    31,   871,
1939      872,   900,   901,    10,    11,    12,    13,    14,    15,    16,
1940       17,    18,    19,    54,     1,    39,    39,     4,    30,    26,
1941       51,   920,    10,    11,    12,    13,    14,    15,    16,    17,
1942       18,    19,  1380,    44,  1382,    44,    39,    51,    51,    26,
1943     1421,    28,    29,    30,    31,    38,    31,    42,  1462,    54,
1944       37,    45,    39,    39,    45,    42,    43,    26,    48,    48,
1945       47,    48,    49,    44,    51,    44,    50,  1491,    48,    52,
1946        7,    28,  1444,    10,    11,    12,    13,    14,    15,    16,
1947       17,    18,    19,    50,    46,    27,  1458,    26,    92,  1461,
1948      989,    29,   621,   961,  1466,    44,   964,   965,   966,   967,
1949      968,   969,   970,   971,    29,   973,    26,   975,    43,   977,
1950       26,    98,    99,    31,    92,   983,    37,    92,    42,  1904,
1951       29,    48,    50,   991,    39,    39,    29,    44,    29,    92,
1952       49,    29,   661,   662,   663,   664,   665,   666,   667,   668,
1953      669,    92,    29,    31,    92,  1013,  1014,  1952,    29,    29,
1954       44,    92,    31,    29,  2357,    39,    49,    43,    30,  1027,
1955       29,    38,    29,    31,  1032,  1033,    30,    52,    10,    11,
1956       12,    13,    14,    15,    16,    17,    29,  1045,  1046,  1047,
1957       31,    44,    26,    25,    92,    31,    52,    92,    45,  1570,
1958       32,    33,    34,    48,    36,    44,    50,    49,  1066,    39,
1959     1068,    29,  1070,    39,  1072,    43,    30,    50,    45,    50,
1960       30,    44,  1997,    48,    39,    49,    39,    29,  1090,    45,
1961     1119,    39,    64,  1091,  1092,    42,    68,    30,    70,    39,
1962       72,    39,    74,    44,    39,    30,    30,    39,   772,    39,
1963       49,    29,   776,   777,  1143,    52,    30,    26,  2451,    50,
1964       28,    44,    51,    42,    44,  1154,    39,  1156,  1157,  1158,
1965     1159,    27,    39,    45,    50,  1689,    39,  1691,    39,    45,
1966       39,    30,    39,   807,    39,    49,    30,    49,    39,  1178,
1967       29,    39,    44,  1760,    31,    45,  1185,    50,  1187,  1188,
1968       45,    39,    30,  1192,  1193,  1194,    39,  1196,  1197,    51,
1969       42,    45,  1201,  1202,    44,    51,    45,    26,    45,    26,
1970     1209,    39,    30,    39,    30,  1214,    51,    39,    31,    44,
1971     1219,    30,  1221,  1222,  1223,    10,    11,    12,    13,    14,
1972       15,    16,    17,    18,    19,  1234,  1717,    39,  1237,  1238,
1973     1239,    39,   871,   872,  1692,  1213,   875,    27,   882,    49,
1974       39,    28,    30,    29,    26,    28,  1255,    39,  1257,    50,
1975     1259,    55,    28,     7,  1263,  1264,    10,    11,    12,    13,
1976       14,    15,    16,    17,    18,    19,    39,    44,    92,    44,
1977       92,    29,  1281,  1282,  1283,  1284,  1285,  1286,  1287,  1288,
1978     1289,  1290,  1291,  1292,    32,  1294,    35,  1296,    33,  1298,
1979       26,  1300,    44,    28,    45,  1304,  1305,  1306,  1307,  1308,
1980       42,  1310,  1311,    44,  1313,  1314,  1315,    44,    28,     7,
1981     1319,  1320,    10,    11,    12,    13,    14,    15,    16,    17,
1982       18,    19,    44,    30,    92,    92,    30,  1336,    42,    26,
1983       30,    43,    31,     7,  1316,  1317,    10,    11,    12,    13,
1984       14,    15,    16,    17,    18,    19,    42,    49,    92,    44,
1985       44,    44,    92,    92,    44,   576,   577,   578,    45,    28,
1986       30,    92,    45,  1372,    28,    30,    92,    92,  1346,    29,
1987     1904,    49,    48,    31,    45,     7,    48,   598,    10,    11,
1988       12,    13,    14,    15,    16,    17,    18,    19,    28,    92,
1989       42,    50,    28,    50,    29,    29,    50,    42,    42,  1377,
1990       42,    29,    43,   624,     7,    52,  1415,    10,    11,    12,
1991       13,    14,    15,    16,    17,    18,    19,    29,    49,    42,
1992       45,    30,    44,    44,  1402,  1403,  1404,  1405,  1406,    28,
1993     1408,  1409,  1410,    28,    30,    26,    92,    30,  1416,    92,
1994       26,    42,    30,    48,    29,    27,    48,    30,    48,  1088,
1995     1089,  1090,    49,  1431,    30,    39,    34,    51,    39,    92,
1996       50,    26,    39,  1997,    30,  1443,  1444,    30,  1446,  1447,
1997       49,    44,    92,    30,    43,    50,    92,    39,    49,    30,
1998     1458,  1459,    30,  1461,  1462,  1463,  1464,    45,  1466,  1467,
1999     1468,  1469,  1470,    39,    55,  1473,  1474,    50,    39,    49,
2000       92,    39,    49,  1481,  1482,  1483,  1484,  1485,    50,    44,
2001       39,    50,  1521,    44,    39,    30,    39,  1495,  1496,    51,
2002       92,  1530,  1531,  1532,  1533,     8,     9,    10,    11,    12,
2003       13,    14,    15,    16,    17,    18,    19,    92,    92,  1548,
2004     1549,  1185,  1186,    50,    30,  1554,  1555,  1556,    28,    92,
2005       50,  1560,  1196,    45,    39,    30,  1200,    39,    39,    30,
2006       51,    45,  1571,  1572,    30,    39,    30,    39,    28,    30,
2007       92,    48,    30,  1582,  1583,    30,  1220,    50,    30,    49,
2008       42,    44,    39,    42,  1562,    39,    92,    43,    92,    30,
2009       39,  1235,    42,    31,  1603,  1604,    92,  1606,  1580,  1581,
2010       51,    44,    50,    48,    27,    42,    45,    42,  1617,     8,
2011        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
2012       19,    50,    29,    92,    44,  1634,    31,    49,    44,    50,
2013       48,    48,  1641,    43,    29,    44,    50,    48,    44,  1648,
2014     1649,  1650,  1651,  1652,    45,    92,    50,    44,    92,  1293,
2015       29,  1660,  1661,  1297,    45,    44,    31,    43,    92,    28,
2016       48,    45,    30,    44,    92,    92,    48,  2254,  1677,    45,
2017       30,    45,    42,    92,    45,    48,    42,  1316,  1317,  1318,
2018       92,    29,    44,    50,    92,    42,    31,    28,    43,    92,
2019       92,    27,  1336,    49,   579,    48,    92,    31,   583,    92,
2020       92,    39,    92,    45,    30,  1714,  1684,   592,    30,    49,
2021       42,    48,  1690,    31,   599,  1724,    51,    50,  1727,    49,
2022       39,    49,    45,    30,    28,    49,    51,    39,    49,    49,
2023        6,    48,  1710,    48,  1712,    51,    46,    51,    39,   960,
2024       31,   962,   963,    39,    30,  1723,    51,    50,    28,    51,
2025     1728,   972,    39,    26,    39,   976,    30,    45,   643,    28,
2026     1738,    92,  1740,    92,    39,    46,    31,    51,    26,    48,
2027     1748,  1753,    43,  1751,  1752,   996,  1754,   998,    39,  1757,
2028     1758,  1759,  1760,    92,    92,    39,  1764,  1765,  1797,  1010,
2029       31,  1012,  1431,    28,    45,    45,    29,    50,    30,    30,
2030     1809,    30,    51,  1812,  1782,    44,    29,    28,    50,    39,
2031       92,    30,    30,    51,    51,    39,    44,    30,    43,    55,
2032       30,    28,    48,    50,  1045,  1046,  1047,    49,  1467,    30,
2033       50,  1470,    31,    50,    50,  1474,    51,    51,    50,    44,
2034       51,    50,    44,    51,  1065,  1854,    50,    44,  1069,    43,
2035       50,    44,    44,    51,  1493,  1494,    45,  1866,  1867,    45,
2036       44,    44,    26,    45,    45,  1874,    46,    39,    39,    44,
2037       44,    50,    39,    51,  1856,  1857,    44,    26,    51,    45,
2038       50,    44,    51,    43,    28,  1894,    48,  1108,    46,    26,
2039       51,    26,    46,    52,    49,    43,    92,    50,    48,    28,
2040       30,    28,    44,    48,  1548,    30,    46,    48,  1917,    43,
2041       48,  1555,    43,    49,    46,    28,    30,    50,    26,    30,
2042     1942,    49,    46,  1567,    50,    48,    46,    43,    50,    50,
2043       49,    48,    50,    29,    44,  1579,    51,    46,    42,    51,
2044       45,  1580,  1581,    50,    50,  1589,    44,    39,    49,    31,
2045       45,    44,    30,    50,    48,    28,    28,    44,    48,    30,
2046       51,    50,    50,  1945,  1942,    51,    50,    42,    51,    30,
2047     1948,  1949,    49,    30,  1952,    51,  1620,    51,    26,    30,
2048       50,    50,    50,    30,    44,    51,    51,    51,    30,  1633,
2049       92,    31,    51,    92,  1972,  1639,    50,    38,    51,  1643,
2050       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
2051       20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
2052       30,    31,    50,    44,    51,    92,    50,    39,    51,    51,
2053       50,    48,   917,    51,    92,    50,    42,    51,  2020,  2021,
2054       51,    50,    50,    29,    51,    30,    39,    50,    31,    51,
2055       45,    51,    50,    92,    45,    44,    30,    26,    50,    49,
2056       44,    43,    92,    50,  2073,    26,    92,    39,    49,    44,
2057       50,   956,    51,   958,   959,    43,    92,    43,    26,    92,
2058       50,  1725,    44,    43,  1723,    43,    43,    50,    44,  1728,
2059       26,    29,    26,   978,    29,    50,    43,    50,    92,    50,
2060       50,    26,    30,    46,    50,    42,    46,    48,    50,    39,
2061       26,    29,    45,  1752,  1753,  1754,    45,    44,    44,    51,
2062       44,  1760,    45,    43,    30,    92,    28,    92,    50,    50,
2063       39,    29,    29,    92,    37,    31,  1021,    29,    92,    50,
2064       44,    30,    28,    92,  1029,  1030,    45,    28,    49,  1034,
2065       37,    30,    30,    30,    44,    50,    50,    30,    30,    44,
2066     2138,    92,    30,    28,    44,    49,  1810,  1811,  1053,  1054,
2067     1055,  1056,  1057,  1058,  1059,  1060,  1061,  1062,  1063,  1064,
2068     1401,    30,    92,    45,  1828,    92,  1407,    28,    51,  2198,
2069       50,  1076,  1077,  1078,  1079,  1080,    51,    45,    44,  1420,
2070       50,  1422,  1423,    50,    92,    44,    50,    30,    30,  1430,
2071       92,    49,    28,    28,    44,    29,    52,  1856,  1857,    38,
2072       30,  1860,    39,    28,  1109,    52,    39,    39,    39,    28,
2073       39,    92,    38,    30,    29,    28,    28,    44,    29,  1460,
2074       48,    45,    44,    44,  1465,    28,    44,  1468,  1469,    52,
2075     1471,    38,    52,    29,  1475,    44,    52,    28,    48,    38,
2076       42,    27,    50,    44,    50,    50,    29,    45,    52,    26,
2077       50,    30,    45,    48,    38,    28,  2254,    44,    29,    39,
2078       30,    50,    52,    26,    45,    50,    30,    29,    42,    51,
2079       30,    39,    50,    30,    50,    50,    30,    26,    92,    38,
2080     2309,    39,    30,    50,  1943,  1944,  1945,    30,    39,    50,
2081       45,    38,    30,    30,    39,    92,    26,    50,    92,    51,
2082       92,    26,    52,    39,    92,    39,    39,    30,    50,    40,
2083       39,    39,    28,    30,    28,    39,    51,    44,    39,    28,
2084       92,    26,    28,    92,    39,    26,    92,    49,    28,    31,
2085       40,    49,    52,    52,    46,    30,    92,    48,    45,    52,
2086       39,  1582,  1583,    28,    52,    39,    92,    44,    92,    52,
2087       48,    92,    44,    43,    45,    44,    44,    39,    44,    39,
2088       30,  2020,  2021,  2022,    45,    20,    21,    22,    23,    24,
2089       25,    26,    27,    28,    29,    30,    31,    49,  2407,    34,
2090       49,    48,    37,    38,    39,    40,    41,    42,    43,    44,
2091       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
2092       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
2093       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
2094       75,    76,    48,    46,    43,    50,    44,    44,    48,    39,
2095       30,    39,    30,    44,    43,    39,    30,  2096,  2097,    44,
2096       55,    38,    44,    50,    30,    48,    39,    31,    30,    45,
2097       51,    50,    44,    48,    30,    26,    44,    30,    28,    46,
2098       51,    27,    30,    44,    49,  1706,  1707,  1708,  1709,    26,
2099       92,    26,    49,    26,    30,    50,    92,    39,    28,    28,
2100       44,    28,    26,  1724,    44,    46,  1727,    28,    27,    26,
2101       44,    50,    30,    45,    45,  1400,    44,    28,    30,    45,
2102       30,    44,    92,    92,    46,    28,    51,    28,    48,    92,
2103       46,    46,    30,    46,    48,    43,    42,    44,    30,    30,
2104       30,    46,    30,    30,    46,    44,    30,    30,    28,    92,
2105       50,    46,    31,    31,    51,    51,    50,  1442,    51,    26,
2106       42,    46,    26,    49,    26,    30,    26,  1759,  1761,    50,
2107       42,    44,    48,    50,    49,    44,    50,    45,    39,    42,
2108       50,  2451,  1477,    92,    29,    43,    45,    44,    92,    44,
2109       46,    45,    45,    44,    30,    45,  1817,    45,    26,    51,
2110       31,    50,    48,    92,    45,    49,    49,    54,    46,    48,
2111       44,    51,    45,    50,    31,  2254,    51,    29,    50,    48,
2112       46,    92,    26,    50,    48,    30,    92,  1512,     3,     4,
2113        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
2114       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
2115       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
2116       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2117       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
2118       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
2119       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
2120       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
2121       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
2122       95,    96,    97,     3,     4,     5,     6,     7,     8,     9,
2123       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
2124       20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
2125       30,    31,    32,    92,    34,    35,    36,    37,    38,    39,
2126       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2127       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
2128       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
2129       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
2130       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
2131       90,    91,    92,    93,    94,    95,    96,    97,    92,    92,
2132       30,    39,    48,     3,     4,     5,     6,     7,     8,     9,
2133       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
2134       20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
2135       30,    31,  1737,    33,    34,    35,    36,    37,    38,    39,
2136       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2137       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
2138       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
2139       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
2140       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
2141       90,    91,    92,    93,    94,    95,    96,    97,     3,     4,
2142        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
2143       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
2144       25,    26,    27,    28,    29,    30,    31,    32,    26,    34,
2145       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2146       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
2147       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
2148       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
2149       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
2150       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
2151       95,    96,    97,     3,     4,     5,     6,     7,     8,     9,
2152       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
2153       20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
2154       30,    31,    26,    33,    34,    35,    36,    37,    38,    39,
2155       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2156       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
2157       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
2158       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
2159       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
2160       90,    91,    92,    93,    94,    95,    96,    97,     3,     4,
2161        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
2162       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
2163       25,    26,    27,    28,    29,    30,    31,    42,    45,    34,
2164       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2165       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
2166       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
2167       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
2168       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
2169       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
2170       95,    96,    97,     3,     4,     5,     6,     7,     8,     9,
2171       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
2172       20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
2173       30,    31,    44,    31,    34,    35,    36,    37,    38,    39,
2174       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2175       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
2176       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
2177       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
2178       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
2179       90,    91,    92,    93,    94,    95,    96,    97,     3,     4,
2180        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
2181       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
2182       25,    26,    27,    28,    29,    30,    31,    48,    44,    34,
2183       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2184       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
2185       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
2186       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
2187       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
2188       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
2189       95,    96,    97,     3,     4,     5,     6,     7,     8,     9,
2190       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
2191       20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
2192       30,    31,    45,    45,    34,    35,    36,    37,    38,    39,
2193       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2194       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
2195       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
2196       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
2197       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
2198       90,    91,    92,    93,    94,    95,    96,    97,     3,     4,
2199        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
2200       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
2201       25,    26,    27,    28,    29,    30,    31,    44,    44,    34,
2202       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2203       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
2204       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
2205       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
2206       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
2207       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
2208       95,    96,    97,     3,     4,     5,     6,     7,     8,     9,
2209       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
2210       20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
2211       30,    31,    45,    55,    26,    35,    36,    37,    38,    39,
2212       40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
2213       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
2214       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
2215       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
2216       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
2217       90,    91,    92,    93,    94,    95,    96,    97,     3,     4,
2218        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
2219       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
2220       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
2221       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2222       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
2223       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
2224       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
2225       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
2226       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
2227       95,    96,     3,     4,     5,     6,     7,     8,     9,    10,
2228       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
2229       21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
2230       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
2231       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
2232       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
2233       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
2234       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
2235       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
2236       91,    92,    93,    94,    95,    96,     3,     4,     5,     6,
2237        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
2238       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
2239       27,    28,    29,    30,    31,    48,    92,    34,    35,    36,
2240       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
2241       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
2242       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
2243       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
2244       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
2245       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
2246        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
2247       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
2248       23,    24,    25,    26,    27,    28,    29,    30,    31,    48,
2249       28,    34,    35,    36,    37,    38,    39,    40,    41,    42,
2250       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
2251       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
2252       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
2253       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
2254       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
2255       93,    94,    95,    96,     3,     4,     5,     6,     7,     8,
2256        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
2257       19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
2258       29,    30,    31,    43,    50,    34,    35,    36,    37,    38,
2259       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2260       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
2261       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
2262       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
2263       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
2264       89,    90,    91,    92,    93,    94,    95,    96,     3,     4,
2265        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
2266       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
2267       25,    26,    27,    28,    29,    30,    31,    43,    49,    34,
2268       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2269       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
2270       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
2271       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
2272       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
2273       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
2274       95,    96,     3,     4,     5,     6,     7,     8,     9,    10,
2275       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
2276       21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
2277       31,    39,    48,    34,    35,    36,    37,    38,    39,    40,
2278       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
2279       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
2280       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
2281       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
2282       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
2283       91,    92,    93,    94,    95,    96,     3,     4,     5,     6,
2284        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
2285       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
2286       27,    28,    29,    30,    31,    43,    51,    34,    35,    36,
2287       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
2288       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
2289       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
2290       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
2291       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
2292       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
2293        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
2294       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
2295       23,    24,    25,    26,    27,    28,    29,    30,    31,    31,
2296       45,    34,    35,    36,    37,    38,    39,    40,    41,    42,
2297       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
2298       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
2299       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
2300       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
2301       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
2302       93,    94,    95,    96,     3,     4,     5,     6,     7,     8,
2303        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
2304       19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
2305       29,    30,    31,    55,    50,    34,    35,    36,    37,    38,
2306       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2307       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
2308       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
2309       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
2310       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
2311       89,    90,    91,    92,    93,    94,    95,    96,     3,     4,
2312        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
2313       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
2314       25,    26,    27,    28,    29,    30,    31,    51,    31,    34,
2315       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2316       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
2317       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
2318       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
2319       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
2320       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
2321       95,    96,     3,     4,     5,     6,     7,     8,     9,    10,
2322       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
2323       21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
2324       31,    50,    48,    34,    35,    36,    37,    38,    39,    40,
2325       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
2326       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
2327       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
2328       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
2329       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
2330       91,    92,    93,    94,    95,    96,     3,     4,     5,     6,
2331        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
2332       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
2333       27,    28,    29,    30,    31,    26,    29,    39,    35,    36,
2334       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
2335       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
2336       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
2337       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
2338       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
2339       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
2340       30,    45,    30,    30,    26,    50,    26,    30,    44,    92,
2341       45,    44,    26,    45,    43,    52,    50,    48,    30,    44,
2342       30,    30,    43,    49,    48,    44,    39,    30,    43,    29,
2343       92,    30,    50,    50,    50,    30,    44,    30,    45,    50,
2344       44,    31,    30,    30,    50,    30,    48,    52,   966,    50,
2345       48,    48,    38,    30,    50,  1473,    48,    51,    29,    50,
2346       49,    45,    44,    42,    45,    48,  1728,    45,    48,  1717,
2347       42,   939,    48,  1369,    48,    50,    49,   677,  1583,  1382,
2348     1754,   179,   186,   179,   179,   186,   186,   186,   595,   611,
2349      620,   179,   186,    -1,   186,    -1,   186,   186,    68,   186,
2350      186,   186,   186,    -1,   186,   186,   186,   186,   186,   186,
2351      186,   186,   186,   186,   186,   186,   180,   182,   179,   179,
2352      186,   179,   179,   182,   179,   179,   182,   179,    -1,   182,
2353      179,   182
2354 };
2355 
2356   /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
2357      symbol of state STATE-NUM.  */
2358 static const yytype_uint16 yystos[] =
2359 {
2360        0,     1,     4,    26,    28,    29,    30,    31,    37,    39,
2361       42,    43,    47,    48,    49,    51,   101,   102,   103,   104,
2362      105,   197,   198,   199,   200,   201,   202,   204,   205,   206,
2363      207,   208,   209,   214,   215,   219,   220,   221,   222,   297,
2364      324,   325,   327,   332,    29,    46,    42,    45,    48,    30,
2365       29,    39,    45,    30,    44,    39,    45,    26,    45,    51,
2366       30,    30,    51,    44,     0,    98,    99,   195,   196,     3,
2367        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
2368       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
2369       24,    25,    26,    27,    28,    29,    30,    31,    34,    35,
2370       36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
2371       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
2372       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
2373       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
2374       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
2375       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
2376       96,    97,   173,   176,   186,   188,   189,   190,   194,   194,
2377      194,   194,   194,   194,   194,   194,   194,   194,   194,   194,
2378      194,   194,   194,   194,   194,   194,   194,   194,   194,   194,
2379      194,    29,    46,    30,    46,    30,    49,    39,    44,    48,
2380       50,    49,    49,    26,    46,    52,    39,    43,    49,    44,
2381       50,    27,    43,    49,   195,    10,    11,    12,    13,    14,
2382       15,    16,    17,    18,    19,   172,   173,   172,   172,   172,
2383      172,   172,   172,   172,   172,     4,    10,    11,    12,    13,
2384       14,    15,    16,    17,    18,    19,   188,    28,    29,    43,
2385       49,   106,   223,   278,   288,   300,   302,    26,    28,    29,
2386       30,    31,    43,    49,    50,    52,   112,   223,   224,   225,
2387      226,   251,   252,   253,   261,   266,   267,   268,   269,   270,
2388      271,   273,   274,   275,   276,   277,   278,   279,   280,   282,
2389      283,   284,   285,   286,   287,   288,   289,   290,   291,   298,
2390      299,   300,   301,   302,   303,   304,   313,   314,   319,   320,
2391      323,    43,   109,   286,   110,   286,    43,   116,   287,    29,
2392       42,   117,   301,   302,   311,    29,   118,   300,   303,   119,
2393      300,   303,    26,    30,    31,    43,   114,   267,   275,   284,
2394      298,   120,   267,   275,   284,   298,    26,    30,    31,    43,
2395       49,   130,   223,   224,   225,   226,   266,   273,   276,   279,
2396      280,   283,   287,   289,   299,   301,   302,   323,    30,    39,
2397      121,   259,   261,   111,   223,   278,   288,   298,   300,   303,
2398       26,    30,    43,    49,   113,   216,   223,   265,   270,   277,
2399      281,   282,   288,   298,   300,   303,   314,   319,   320,   330,
2400      122,   278,   123,   278,    26,    27,    28,    29,    30,    31,
2401       37,    43,    49,    50,    52,   107,   228,   229,   230,   231,
2402      232,   233,   234,   235,   236,   237,   238,   239,   241,   242,
2403      243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
2404      254,   255,   256,   257,   258,   328,   108,   228,   229,   230,
2405      231,   232,   233,   234,   235,   236,   237,   238,   239,   241,
2406      242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
2407      252,   254,   255,   256,   257,   258,   328,   131,   223,   125,
2408      223,    39,   126,   305,   115,   223,    30,    26,    55,    26,
2409       50,    50,    29,    43,    30,    50,    29,    30,    50,    45,
2410       30,    29,    49,    26,    51,   173,    38,    27,    39,    30,
2411      194,   194,   194,   194,   194,    51,    52,    38,    27,    31,
2412       44,    39,    54,    39,    30,    50,    45,    45,   194,   194,
2413      194,   194,   194,   194,   194,   194,   194,   194,   194,   194,
2414      194,   194,   194,   194,   194,   194,   194,   194,   194,   194,
2415      194,   194,   194,   194,   194,   194,   194,    39,   194,   194,
2416       39,   194,    27,    45,   194,   194,   194,    27,   194,   194,
2417      194,   194,    51,    31,    54,    39,   194,   194,   194,   194,
2418      194,   194,   194,   194,    51,    31,    54,    39,    30,   194,
2419      194,   194,   194,   194,   194,   194,    44,   194,   194,   194,
2420      194,   194,   194,   194,   194,    51,    28,    31,    39,    38,
2421      194,   194,   194,   194,   194,   194,   194,   194,   194,   194,
2422      194,   194,   194,   194,   194,   194,   194,    51,    51,    38,
2423       27,    30,    31,    54,    42,    39,    30,    50,    45,    45,
2424      194,   194,    44,   194,    44,    48,    50,    48,    26,    48,
2425       52,    50,    28,    46,    27,    26,    92,    29,    44,    43,
2426      294,    11,    12,    13,    14,    15,    16,    17,    18,    19,
2427      136,   176,    32,    33,   154,   182,    32,    33,   153,   177,
2428       31,    44,    48,   153,   166,   213,   308,   309,   310,    29,
2429       26,    26,    92,    31,    37,    42,    92,    29,    44,    48,
2430       48,    50,    39,    42,    39,    49,   227,   248,   249,   250,
2431      227,   227,   227,   227,   227,   227,   227,   227,   227,   227,
2432      136,   227,   227,   227,   227,    26,   142,   176,   210,   227,
2433      227,   227,   227,   148,   176,   227,   153,   309,   153,   309,
2434      227,   227,   227,    39,   259,   260,    29,    44,   127,   213,
2435      142,    29,   142,   210,    92,    49,    44,   153,   310,   153,
2436      310,    29,   240,    92,   153,   153,   153,   153,    29,    31,
2437       92,    29,   186,   158,   167,   176,   186,   186,   148,   176,
2438      176,   176,   148,    29,    31,    92,    29,    44,    43,   295,
2439      176,   142,   210,   148,   153,   309,   153,   309,    39,   260,
2440       49,   132,   152,   177,   213,   133,   151,   186,   148,   294,
2441       30,   136,   274,   142,   210,   274,    31,   153,   307,   153,
2442       29,    38,    31,    29,    30,    26,    29,    39,   217,   218,
2443      331,    26,    43,    49,    52,   124,   267,   271,   272,   284,
2444      288,   291,   292,   293,   294,   314,   317,   318,   176,   176,
2445       52,   316,   176,   176,    44,   329,    26,    42,    43,   271,
2446      274,   296,   315,   329,    29,   306,   329,    31,   306,   312,
2447      329,     8,     9,   146,   170,   172,   173,   176,   176,   176,
2448      169,   176,   186,   274,   274,    29,    31,    26,    92,    52,
2449       31,    92,    45,    29,    49,    44,    48,    50,    39,    43,
2450      326,   259,    49,   148,    29,    30,    45,    50,    50,    30,
2451       48,    49,    44,    39,    39,    29,    39,   194,    34,    36,
2452      184,   185,   187,   190,   191,   192,   193,   194,   185,    34,
2453      178,   179,   189,   178,    42,    45,    30,   194,   194,   194,
2454       39,    39,    44,    39,    30,    39,    30,    49,    39,    29,
2455       52,    30,    26,    28,    51,    44,   194,   194,   194,   194,
2456      194,   194,   194,   194,   194,   194,   194,   194,   194,   194,
2457      194,   194,   194,   194,    42,   194,   194,   194,   194,   194,
2458      194,   194,   194,   194,    44,   194,   194,    39,    45,   142,
2459      194,   194,    39,    39,    50,    45,   194,   194,   194,   194,
2460       27,    39,   194,   194,   194,   194,    39,    30,    49,    39,
2461      194,   194,   194,   194,   194,    39,    30,    49,    39,    29,
2462       39,   194,   194,   194,    44,   194,    50,   194,   194,   194,
2463      194,    31,   194,   194,   194,    45,   194,    39,    45,    30,
2464       39,    42,    51,    45,    44,   194,   194,   194,    51,    39,
2465       51,    45,    45,   194,   194,   194,   194,   194,   194,   194,
2466      194,   194,   194,   194,   194,   194,   194,    26,   194,   194,
2467      194,    26,   194,    51,    30,    39,   194,   194,   194,   194,
2468      194,    30,   194,   194,    39,   194,   194,   194,   172,   172,
2469        7,   194,   194,    39,    31,    44,    39,    39,    30,    49,
2470       27,    39,    28,    29,    30,    26,    28,    39,   194,   194,
2471       50,    55,    39,    28,    44,    44,    92,    92,    29,   148,
2472       10,    11,    12,    13,    14,    15,    16,    17,    25,    32,
2473       33,    34,    36,    64,    68,    70,    72,    74,   174,   187,
2474      194,    32,    34,   184,   190,   191,    33,    32,   180,    35,
2475       33,    26,    44,    28,   152,    31,   153,   203,   153,   166,
2476       45,    42,    44,    44,    28,    44,    30,    92,    92,    30,
2477       26,    42,    30,    43,    31,   148,    27,    46,   129,   321,
2478      322,   148,   148,   151,   176,   186,   186,   176,   176,   158,
2479      135,   176,   135,   136,   176,   176,   186,   142,    42,   142,
2480      186,   176,   148,   153,   153,   153,   153,   176,    49,   227,
2481      152,    92,    44,   194,   143,   176,    92,    44,    44,   164,
2482      186,   153,   164,   153,    92,    44,   153,   153,   153,   153,
2483       45,    28,    30,    92,   128,   186,   152,   168,   128,   145,
2484      176,   150,   176,    45,    28,    30,    92,    92,    29,   148,
2485      153,   153,    49,   152,    48,   149,   176,   152,   148,   148,
2486       31,   159,   176,   136,   148,    48,   153,    45,    28,    92,
2487       42,    50,    28,    50,   169,   169,   169,    29,    29,    50,
2488       42,   148,   148,   148,   148,   148,   148,   148,   148,   148,
2489      148,   148,   148,   186,   176,    42,   135,   186,   176,    43,
2490      142,    29,    52,    29,   148,   148,   148,   148,   148,    49,
2491      153,   153,    42,   153,   152,   153,     7,     7,   172,   136,
2492      136,    45,    30,    44,    44,    28,    28,    30,    26,    92,
2493       30,    92,    26,    42,    30,    29,   186,   148,    48,    27,
2494       48,    30,    49,    39,    30,    39,   194,    10,    11,    12,
2495       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
2496       23,    24,    25,    26,    27,    28,    29,    30,    31,   175,
2497      174,    34,   184,    34,    50,    92,    51,   194,    39,   194,
2498      194,   194,   194,    92,    26,    30,    49,    50,    30,    44,
2499       39,    30,    48,    43,    92,    49,    30,    45,    55,    30,
2500      194,   194,   194,   194,   194,   194,   194,   194,   194,   194,
2501      194,    50,   194,    39,    92,   143,   194,    39,    49,    92,
2502      194,     5,   194,   194,    39,    49,    92,    50,    44,    39,
2503      194,     5,   194,   194,    92,    50,    44,    39,    30,    39,
2504       50,    51,   194,   194,   194,    30,   194,   194,    28,    92,
2505       50,    39,    45,    30,    39,    39,    30,    45,   194,   194,
2506      194,   194,   194,   194,   194,   194,   194,   194,   194,   194,
2507        5,   194,    51,   194,     5,   194,    30,   194,    39,    30,
2508       39,   194,   194,   194,   194,   194,    28,   194,   194,    30,
2509      194,   194,   194,   172,   172,   194,   194,    92,    48,    30,
2510       49,    30,    50,    44,    42,    39,    42,    30,    43,    92,
2511       92,    39,   194,    51,    30,    39,    42,    50,    44,    31,
2512       92,   136,   175,   174,    43,    48,    48,   149,    42,   152,
2513      153,   152,   153,   203,    45,    27,    42,    50,    92,    29,
2514       44,    31,    49,    49,    52,    50,    48,   148,   186,   176,
2515      176,   161,   176,   159,   176,   186,   143,   176,   150,    48,
2516      152,    44,   194,   144,   176,    44,    50,   186,   165,   182,
2517      185,   164,   164,    44,    50,    45,    92,    29,    44,   186,
2518        8,     9,    32,    33,   162,   163,   170,   176,   181,   186,
2519      157,   182,   156,   182,    45,    92,    29,    44,    31,    92,
2520       48,    43,   148,   149,   136,    28,   159,   150,    30,    45,
2521       92,    44,    92,    48,    45,    92,   136,   137,   176,   138,
2522      186,   136,    29,    44,   142,   211,   212,   139,   176,   140,
2523      176,   210,   141,   186,   136,   146,   169,   169,   162,   186,
2524       30,   161,   162,   186,   154,    45,    42,    92,   150,   150,
2525      150,   150,   150,    48,   182,   182,    92,   182,   152,   182,
2526      159,   159,    45,    92,    42,    50,    92,    92,    29,    92,
2527       44,    42,    31,    92,    52,    28,    92,   148,    43,    27,
2528       48,    49,    31,    39,   194,    45,    30,    49,    30,   194,
2529      194,   194,   194,    51,    42,    49,    48,    39,    49,    46,
2530       49,    31,    50,    45,    30,    28,   194,   194,   194,   194,
2531      194,    51,   194,    49,   144,    49,    48,     5,    49,    48,
2532       51,    39,    46,     5,   183,   186,   194,   183,     6,    51,
2533       39,    46,    49,    31,    39,    51,    30,   194,   194,    50,
2534      194,    51,    39,    46,    28,    26,    92,    39,   194,    30,
2535       45,   194,     5,   194,     5,    92,    28,   194,   194,   194,
2536      194,   194,    39,    46,   194,   194,    51,    31,    92,    48,
2537       43,    39,    92,    39,    46,    49,    26,    31,    28,    45,
2538       45,    29,   194,    30,    30,    51,    50,    30,    44,   139,
2539       29,    28,    39,    92,   152,   149,   152,   153,    50,    30,
2540       51,    44,    51,    50,    30,    48,    39,    49,    30,   128,
2541      186,   186,   128,   144,    43,   149,    50,   194,    50,    51,
2542      165,    50,    51,    50,    44,    51,   162,    32,   186,   194,
2543       33,   163,    50,    44,    51,    50,    30,    44,    43,    44,
2544      148,   139,   160,   176,    50,    44,    51,    45,    28,    45,
2545       44,   137,    31,    44,   139,   162,     8,     9,   147,   171,
2546      172,    44,   162,   211,    45,    45,   137,   159,   145,   146,
2547      156,    46,    26,   135,   160,    50,    39,    28,    39,    43,
2548       51,    39,    44,    28,    39,    44,    51,    50,    44,    30,
2549       45,    39,    51,    26,   176,    44,    43,    48,    28,    46,
2550       26,    51,    52,    26,   194,    46,    92,    43,    49,    50,
2551       48,    28,    30,    28,    44,    30,    48,   151,    48,    43,
2552       48,    43,    46,    49,    50,    46,    49,    50,    48,    28,
2553       46,    30,    50,    46,    49,    50,    48,    50,    51,    46,
2554       26,    30,   194,   172,   172,     7,    51,    44,   194,   194,
2555       50,    50,   194,    46,    42,    45,    44,    39,    43,    29,
2556       49,    45,    44,    31,    50,    48,    30,    28,    51,    28,
2557       44,    50,   194,    50,    30,    51,    50,    51,    42,    48,
2558       30,    49,   152,    51,    26,    30,    43,    30,    50,    92,
2559       51,    50,    26,    30,    50,    44,    51,   194,    51,    30,
2560       51,    30,    51,    50,    92,    51,    50,    92,    51,    50,
2561       51,    44,    51,    50,    92,    48,    50,    51,    51,   140,
2562        7,     7,   172,    50,    50,   137,   160,    39,    38,   135,
2563       51,    42,    51,    31,    29,    30,    39,    50,    51,    31,
2564       45,    92,    51,    45,    50,    44,    30,    50,    26,   176,
2565       49,    44,    43,    92,    50,    49,    92,    50,    51,    31,
2566       44,    39,    44,    26,    29,    46,    43,    92,    43,    92,
2567       26,    50,    43,   152,    43,    44,    43,    44,    50,    26,
2568       29,    50,    26,    29,    43,    92,    50,    50,    50,    26,
2569       29,    46,    30,    46,    50,    42,   172,   172,    46,    48,
2570       45,    50,    44,    45,    39,    44,    26,    44,    45,    29,
2571       43,    51,    92,    50,    92,    92,    50,    30,    28,    39,
2572       29,    92,    29,    31,    37,    29,    50,    44,    30,    48,
2573       45,    30,    28,    92,    28,    37,    49,    30,   194,    30,
2574       50,    30,    50,    92,    44,    30,    92,    44,    30,    30,
2575       28,    49,    92,    44,    30,    45,    28,    51,    92,    50,
2576       51,    45,    44,    92,    50,    50,    44,    50,    30,    30,
2577       49,    28,    28,    29,    49,    92,    44,    38,    52,    39,
2578       28,    29,    39,    30,    39,    39,    49,    92,    28,    52,
2579       39,    48,    44,    38,    28,    45,    30,    44,   149,    44,
2580       92,    44,    29,    28,    52,    29,    28,    52,    44,    38,
2581       28,    29,    28,    52,    48,    50,    50,    28,    46,    50,
2582       50,    42,    29,    49,    92,    28,    52,    44,    38,    45,
2583       27,    29,    50,    26,    30,    48,    38,    30,    48,    45,
2584       28,    44,    92,    92,    29,    30,    39,    52,    50,    50,
2585       26,    45,    51,    50,   194,    50,    29,    50,    30,    30,
2586       39,    30,    30,    39,    50,    26,    38,    30,    30,    39,
2587       50,    92,    38,    45,    55,    92,    42,    30,    92,    28,
2588       29,    39,    30,    39,    50,    26,    51,    39,    92,    39,
2589       26,    52,    39,    92,    50,    30,    39,    40,    39,    49,
2590       92,    28,    30,    92,    49,    92,    39,    51,    44,   146,
2591       39,    92,    52,    28,    52,    28,    92,    39,    26,    52,
2592       28,    28,    50,    26,    48,    46,    30,    52,    40,    45,
2593       39,    44,    92,    28,    92,    39,    44,    48,    43,    44,
2594       44,    39,    52,    45,    49,    49,    44,    45,    48,    39,
2595       30,    48,    46,    43,    44,    44,    50,   194,    48,    31,
2596       39,    30,    39,    30,    43,    44,    44,    39,    30,    38,
2597       55,    44,    50,    30,    48,    39,    45,    51,    48,    31,
2598       28,    39,    30,    28,    39,    43,    44,    50,    30,    26,
2599       44,    28,    30,    51,    46,    27,    30,    44,    49,    92,
2600       26,    26,    49,    50,    92,    45,    46,   134,   155,   182,
2601      262,   263,   264,    30,    39,    28,    28,    26,    44,    28,
2602       92,    26,    46,    44,    28,    27,    44,    30,    45,    45,
2603       44,    92,    45,    44,    26,    92,    28,    46,    30,    30,
2604       48,    50,    51,    28,    46,    46,    48,    46,    43,    44,
2605       30,   194,    28,    42,    30,    30,    46,    30,    30,    46,
2606       44,    30,    30,    30,    92,    50,    28,    51,    31,    28,
2607       39,    51,    31,    46,    28,    39,    50,    42,    49,    92,
2608       46,    50,    50,    51,    26,    26,    49,    26,    92,    48,
2609      155,    50,    30,    42,    92,    26,    44,    42,    92,    39,
2610       50,    44,    45,    45,    44,    44,    45,    92,    45,    44,
2611       45,    92,    46,    51,    92,    45,    50,    48,    43,    54,
2612       29,    49,    45,    49,    46,    48,    30,    28,    39,    44,
2613       45,    50,    51,    31,    50,    28,    39,    51,    31,    48,
2614       46,    26,    50,    29,    48,    92,    26,    30,    30,    39,
2615       48,    26,    26,    42,    45,    44,    31,    48,    44,    45,
2616       45,    44,    44,    45,    55,    26,    48,    92,    48,    39,
2617       28,    43,    50,    43,    49,    48,    43,    51,    31,    45,
2618       55,    50,    51,    31,    50,    48,    26,    29,    39,    30,
2619       45,    30,    30,    26,    50,    26,    30,    44,    45,    92,
2620       44,    45,    26,    43,    48,    52,    49,    44,    50,    48,
2621       44,    30,    43,    50,    50,    28,    39,    50,    43,    30,
2622       39,    30,    50,    30,    29,    44,    30,    30,    45,    44,
2623       30,    50,    52,    48,    48,    48,    92,    50,    50,    48,
2624       51,    31,    50,    30,    30,    49,    45,    38,    30,    44,
2625       45,    30,    48,    48,    42,    45,    48,    50,    48,    49,
2626       42,    29
2627 };
2628 
2629   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
2630 static const yytype_uint16 yyr1[] =
2631 {
2632        0,   100,   101,   101,   102,   102,   103,   103,   103,   104,
2633      104,   104,   104,   104,   105,   105,   105,   105,   105,   105,
2634      105,   105,   105,   105,   105,   105,   105,   105,   105,   105,
2635      105,   105,   105,   105,   105,   105,   105,   105,   106,   106,
2636      106,   106,   106,   106,   106,   106,   106,   106,   106,   106,
2637      106,   106,   106,   107,   107,   107,   107,   107,   107,   107,
2638      107,   107,   107,   107,   107,   107,   107,   107,   107,   107,
2639      107,   107,   107,   107,   107,   107,   107,   107,   107,   107,
2640      107,   107,   107,   108,   108,   108,   108,   108,   108,   108,
2641      108,   108,   108,   108,   108,   108,   108,   108,   108,   108,
2642      108,   108,   108,   108,   108,   108,   108,   108,   108,   108,
2643      108,   108,   108,   109,   109,   109,   109,   110,   111,   111,
2644      111,   111,   111,   111,   111,   111,   111,   111,   111,   111,
2645      112,   112,   112,   112,   112,   112,   112,   112,   112,   112,
2646      112,   112,   112,   112,   112,   112,   112,   112,   112,   112,
2647      112,   112,   112,   112,   112,   112,   112,   112,   112,   112,
2648      112,   112,   112,   112,   112,   112,   112,   112,   112,   112,
2649      112,   112,   112,   112,   112,   112,   112,   112,   112,   112,
2650      112,   112,   112,   113,   113,   113,   113,   113,   113,   113,
2651      113,   113,   113,   113,   113,   113,   113,   113,   113,   113,
2652      113,   113,   113,   113,   113,   113,   113,   113,   114,   114,
2653      114,   114,   114,   114,   114,   114,   115,   116,   116,   117,
2654      117,   117,   117,   117,   118,   118,   119,   119,   120,   120,
2655      120,   120,   121,   121,   122,   123,   124,   124,   124,   124,
2656      124,   124,   124,   124,   124,   124,   124,   124,   124,   124,
2657      125,   126,   127,   127,   128,   128,   129,   129,   130,   130,
2658      130,   130,   130,   130,   130,   130,   130,   130,   130,   130,
2659      130,   130,   130,   130,   130,   130,   130,   131,   132,   132,
2660      133,   134,   134,   134,   135,   136,   137,   138,   139,   140,
2661      140,   141,   142,   143,   144,   145,   146,   146,   147,   148,
2662      149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
2663      159,   160,   161,   162,   162,   163,   163,   163,   163,   164,
2664      164,   165,   165,   166,   166,   166,   167,   168,   169,   169,
2665      170,   170,   170,   171,   171,   171,   171,   171,   171,   172,
2666      172,   173,   173,   173,   173,   173,   173,   173,   173,   173,
2667      173,   174,   174,   174,   174,   174,   174,   174,   174,   175,
2668      175,   175,   175,   175,   175,   175,   175,   175,   175,   175,
2669      175,   175,   175,   175,   175,   175,   175,   175,   175,   175,
2670      175,   176,   176,   176,   176,   176,   176,   176,   176,   176,
2671      176,   177,   177,   178,   179,   179,   180,   180,   180,   181,
2672      181,   182,   182,   183,   183,   183,   183,   184,   184,   184,
2673      184,   185,   185,   185,   185,   186,   186,   187,   187,   187,
2674      187,   188,   188,   188,   189,   189,   189,   189,   189,   189,
2675      189,   189,   189,   189,   189,   189,   189,   189,   189,   189,
2676      189,   189,   189,   189,   189,   189,   189,   189,   189,   189,
2677      189,   189,   189,   189,   189,   189,   189,   189,   189,   189,
2678      189,   189,   189,   189,   189,   189,   189,   189,   189,   189,
2679      189,   189,   189,   189,   189,   189,   190,   190,   190,   190,
2680      190,   190,   190,   190,   190,   190,   190,   190,   190,   190,
2681      190,   190,   190,   190,   190,   190,   190,   190,   190,   190,
2682      190,   190,   190,   190,   190,   190,   190,   190,   190,   190,
2683      190,   190,   190,   190,   190,   191,   191,   191,   191,   191,
2684      191,   191,   191,   191,   191,   191,   192,   192,   192,   193,
2685      193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
2686      203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
2687      213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
2688      223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
2689      233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
2690      243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
2691      253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
2692      263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
2693      273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
2694      283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
2695      293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
2696      303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
2697      313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
2698      323,   324,   325,   326,   327,   328,   329,   330,   331,   332
2699 };
2700 
2701   /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
2702 static const yytype_uint8 yyr2[] =
2703 {
2704        0,     2,     1,     1,     2,     3,     0,     1,     1,     1,
2705        2,     2,     2,     2,     3,     3,     3,     3,     3,     3,
2706        3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
2707        3,     3,     3,     3,     3,     3,     1,     1,     1,     7,
2708        9,     3,     9,    11,     7,     9,     7,     9,     5,     7,
2709        1,     3,     3,     1,     1,     1,     1,     1,     1,     1,
2710        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2711        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2712        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2713        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2714        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2715        1,     1,     1,    16,    18,    18,    20,     7,     3,     5,
2716        7,     9,     3,     3,     5,     9,     7,     5,     3,     3,
2717        1,     1,     1,     5,     5,     7,     3,     7,     1,     5,
2718        7,     9,     1,     5,     7,     9,     1,     1,     5,     5,
2719        7,     9,     7,     9,     1,     5,     7,     5,     5,     5,
2720        3,     1,     1,     1,     3,     3,     9,     1,     5,     3,
2721        7,     5,     3,     5,     5,     3,     5,     5,     1,     1,
2722        1,     5,     9,     7,     9,     7,     9,     9,     9,     3,
2723        7,     9,    11,     9,     9,    11,     7,     7,     7,     7,
2724        7,     3,     5,     5,     5,     3,     3,     3,     5,     3,
2725        5,     3,     5,     7,     3,     7,     3,     3,     3,     7,
2726        5,     7,     5,     3,     5,     5,     5,     5,     3,     3,
2727        5,     3,     3,     3,     9,    11,     5,     7,     5,     9,
2728        5,     5,     5,     5,     5,     5,     5,     5,     5,     5,
2729        5,     1,     0,     2,     3,     5,     1,     1,     1,     1,
2730        1,     5,     1,     1,     1,     3,     1,     1,     3,     3,
2731        1,     3,     5,     3,     5,     3,     5,    11,     5,     7,
2732        3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2733        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2734        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2735        1,     1,     1,     1,     3,     1,     1,     1,     1,     3,
2736        5,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2737        3,     4,     4,     3,     4,     4,     1,     2,     2,     1,
2738        2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2739        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2740        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2741        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2742        1,     1,     2,     2,     2,     2,     2,     2,     2,     2,
2743        2,     3,     3,     2,     1,     3,     0,     2,     2,     3,
2744        3,     3,     3,     1,     1,     2,     2,     1,     1,     2,
2745        2,     1,     1,     2,     2,     1,     2,     1,     1,     2,
2746        2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2747        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2748        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2749        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2750        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2751        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2752        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2753        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2754        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2755        1,     1,     1,     1,     1,     2,     2,     2,     2,     2,
2756        2,     2,     2,     2,     1,     1,     2,     3,     4,     3,
2757        4,     1,     1,     1,     3,     3,     3,     5,     5,     4,
2758       11,     4,     4,     6,     7,     4,     4,     3,     4,     7,
2759        9,     6,     3,     5,     8,    12,     6,     6,     9,    11,
2760        7,    17,    30,     8,     4,    25,    24,    23,    22,    25,
2761       24,    21,    20,    29,    28,    19,    18,    19,    23,    13,
2762       12,    11,    12,    13,    12,    11,    12,    11,    18,    17,
2763       21,    11,    21,    20,    23,    22,    10,    11,     6,     9,
2764       14,    10,    29,    20,    19,    29,    19,    30,    20,    17,
2765       17,     6,    15,    16,    29,    17,    18,    28,    27,    25,
2766       18,    17,    27,    15,    16,    19,    20,    17,    15,    18,
2767       15,    10,    11,    15,     4,     7,     8,    23,    25,    14,
2768       13,    18,    14,    11,     5,     4,     9,    13,     4,     9,
2769        6,     6,     5,     5,     4,     4,     6,     7,     5,    10,
2770        4,     4,     6,     9,     5,    13,     4,     4,     3,     4
2771 };
2772 
2773 
2774 #define yyerrok         (yyerrstatus = 0)
2775 #define yyclearin       (yychar = YYEMPTY)
2776 #define YYEMPTY         (-2)
2777 #define YYEOF           0
2778 
2779 #define YYACCEPT        goto yyacceptlab
2780 #define YYABORT         goto yyabortlab
2781 #define YYERROR         goto yyerrorlab
2782 
2783 
2784 #define YYRECOVERING()  (!!yyerrstatus)
2785 
2786 #define YYBACKUP(Token, Value)                                    \
2787   do                                                              \
2788     if (yychar == YYEMPTY)                                        \
2789       {                                                           \
2790         yychar = (Token);                                         \
2791         yylval = (Value);                                         \
2792         YYPOPSTACK (yylen);                                       \
2793         yystate = *yyssp;                                         \
2794         goto yybackup;                                            \
2795       }                                                           \
2796     else                                                          \
2797       {                                                           \
2798         yyerror (yyparse_param, YY_("syntax error: cannot back up")); \
2799         YYERROR;                                                  \
2800       }                                                           \
2801   while (0)
2802 
2803 /* Error token number */
2804 #define YYTERROR        1
2805 #define YYERRCODE       256
2806 
2807 
2808 
2809 /* Enable debugging if requested.  */
2810 #if YYDEBUG
2811 
2812 # ifndef YYFPRINTF
2813 #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2814 #  define YYFPRINTF fprintf
2815 # endif
2816 
2817 # define YYDPRINTF(Args)                        \
2818 do {                                            \
2819   if (yydebug)                                  \
2820     YYFPRINTF Args;                             \
2821 } while (0)
2822 
2823 /* This macro is provided for backward compatibility. */
2824 #ifndef YY_LOCATION_PRINT
2825 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2826 #endif
2827 
2828 
2829 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
2830 do {                                                                      \
2831   if (yydebug)                                                            \
2832     {                                                                     \
2833       YYFPRINTF (stderr, "%s ", Title);                                   \
2834       yy_symbol_print (stderr,                                            \
2835                   Type, Value, yyparse_param); \
2836       YYFPRINTF (stderr, "\n");                                           \
2837     }                                                                     \
2838 } while (0)
2839 
2840 
2841 /*-----------------------------------.
2842 | Print this symbol's value on YYO.  |
2843 `-----------------------------------*/
2844 
2845 static void
yy_symbol_value_print(FILE * yyo,int yytype,YYSTYPE const * const yyvaluep,void * yyparse_param)2846 yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, void* yyparse_param)
2847 {
2848   FILE *yyoutput = yyo;
2849   YYUSE (yyoutput);
2850   YYUSE (yyparse_param);
2851   if (!yyvaluep)
2852     return;
2853 # ifdef YYPRINT
2854   if (yytype < YYNTOKENS)
2855     YYPRINT (yyo, yytoknum[yytype], *yyvaluep);
2856 # endif
2857   YYUSE (yytype);
2858 }
2859 
2860 
2861 /*---------------------------.
2862 | Print this symbol on YYO.  |
2863 `---------------------------*/
2864 
2865 static void
yy_symbol_print(FILE * yyo,int yytype,YYSTYPE const * const yyvaluep,void * yyparse_param)2866 yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, void* yyparse_param)
2867 {
2868   YYFPRINTF (yyo, "%s %s (",
2869              yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
2870 
2871   yy_symbol_value_print (yyo, yytype, yyvaluep, yyparse_param);
2872   YYFPRINTF (yyo, ")");
2873 }
2874 
2875 /*------------------------------------------------------------------.
2876 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
2877 | TOP (included).                                                   |
2878 `------------------------------------------------------------------*/
2879 
2880 static void
yy_stack_print(yytype_int16 * yybottom,yytype_int16 * yytop)2881 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
2882 {
2883   YYFPRINTF (stderr, "Stack now");
2884   for (; yybottom <= yytop; yybottom++)
2885     {
2886       int yybot = *yybottom;
2887       YYFPRINTF (stderr, " %d", yybot);
2888     }
2889   YYFPRINTF (stderr, "\n");
2890 }
2891 
2892 # define YY_STACK_PRINT(Bottom, Top)                            \
2893 do {                                                            \
2894   if (yydebug)                                                  \
2895     yy_stack_print ((Bottom), (Top));                           \
2896 } while (0)
2897 
2898 
2899 /*------------------------------------------------.
2900 | Report that the YYRULE is going to be reduced.  |
2901 `------------------------------------------------*/
2902 
2903 static void
yy_reduce_print(yytype_int16 * yyssp,YYSTYPE * yyvsp,int yyrule,void * yyparse_param)2904 yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule, void* yyparse_param)
2905 {
2906   unsigned long yylno = yyrline[yyrule];
2907   int yynrhs = yyr2[yyrule];
2908   int yyi;
2909   YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
2910              yyrule - 1, yylno);
2911   /* The symbols being reduced.  */
2912   for (yyi = 0; yyi < yynrhs; yyi++)
2913     {
2914       YYFPRINTF (stderr, "   $%d = ", yyi + 1);
2915       yy_symbol_print (stderr,
2916                        yystos[yyssp[yyi + 1 - yynrhs]],
2917                        &yyvsp[(yyi + 1) - (yynrhs)]
2918                                               , yyparse_param);
2919       YYFPRINTF (stderr, "\n");
2920     }
2921 }
2922 
2923 # define YY_REDUCE_PRINT(Rule)          \
2924 do {                                    \
2925   if (yydebug)                          \
2926     yy_reduce_print (yyssp, yyvsp, Rule, yyparse_param); \
2927 } while (0)
2928 
2929 /* Nonzero means print parse trace.  It is left uninitialized so that
2930    multiple parsers can coexist.  */
2931 int yydebug;
2932 #else /* !YYDEBUG */
2933 # define YYDPRINTF(Args)
2934 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
2935 # define YY_STACK_PRINT(Bottom, Top)
2936 # define YY_REDUCE_PRINT(Rule)
2937 #endif /* !YYDEBUG */
2938 
2939 
2940 /* YYINITDEPTH -- initial size of the parser's stacks.  */
2941 #ifndef YYINITDEPTH
2942 # define YYINITDEPTH 200
2943 #endif
2944 
2945 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
2946    if the built-in stack extension method is used).
2947 
2948    Do not make this value too large; the results are undefined if
2949    YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
2950    evaluated with infinite-precision integer arithmetic.  */
2951 
2952 #ifndef YYMAXDEPTH
2953 # define YYMAXDEPTH 10000
2954 #endif
2955 
2956 
2957 #if YYERROR_VERBOSE
2958 
2959 # ifndef yystrlen
2960 #  if defined __GLIBC__ && defined _STRING_H
2961 #   define yystrlen strlen
2962 #  else
2963 /* Return the length of YYSTR.  */
2964 static YYSIZE_T
yystrlen(const char * yystr)2965 yystrlen (const char *yystr)
2966 {
2967   YYSIZE_T yylen;
2968   for (yylen = 0; yystr[yylen]; yylen++)
2969     continue;
2970   return yylen;
2971 }
2972 #  endif
2973 # endif
2974 
2975 # ifndef yystpcpy
2976 #  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
2977 #   define yystpcpy stpcpy
2978 #  else
2979 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2980    YYDEST.  */
2981 static char *
yystpcpy(char * yydest,const char * yysrc)2982 yystpcpy (char *yydest, const char *yysrc)
2983 {
2984   char *yyd = yydest;
2985   const char *yys = yysrc;
2986 
2987   while ((*yyd++ = *yys++) != '\0')
2988     continue;
2989 
2990   return yyd - 1;
2991 }
2992 #  endif
2993 # endif
2994 
2995 # ifndef yytnamerr
2996 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
2997    quotes and backslashes, so that it's suitable for yyerror.  The
2998    heuristic is that double-quoting is unnecessary unless the string
2999    contains an apostrophe, a comma, or backslash (other than
3000    backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
3001    null, do not copy; instead, return the length of what the result
3002    would have been.  */
3003 static YYSIZE_T
yytnamerr(char * yyres,const char * yystr)3004 yytnamerr (char *yyres, const char *yystr)
3005 {
3006   if (*yystr == '"')
3007     {
3008       YYSIZE_T yyn = 0;
3009       char const *yyp = yystr;
3010 
3011       for (;;)
3012         switch (*++yyp)
3013           {
3014           case '\'':
3015           case ',':
3016             goto do_not_strip_quotes;
3017 
3018           case '\\':
3019             if (*++yyp != '\\')
3020               goto do_not_strip_quotes;
3021             else
3022               goto append;
3023 
3024           append:
3025           default:
3026             if (yyres)
3027               yyres[yyn] = *yyp;
3028             yyn++;
3029             break;
3030 
3031           case '"':
3032             if (yyres)
3033               yyres[yyn] = '\0';
3034             return yyn;
3035           }
3036     do_not_strip_quotes: ;
3037     }
3038 
3039   if (! yyres)
3040     return yystrlen (yystr);
3041 
3042   return (YYSIZE_T) (yystpcpy (yyres, yystr) - yyres);
3043 }
3044 # endif
3045 
3046 /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
3047    about the unexpected token YYTOKEN for the state stack whose top is
3048    YYSSP.
3049 
3050    Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is
3051    not large enough to hold the message.  In that case, also set
3052    *YYMSG_ALLOC to the required number of bytes.  Return 2 if the
3053    required number of bytes is too large to store.  */
3054 static int
yysyntax_error(YYSIZE_T * yymsg_alloc,char ** yymsg,yytype_int16 * yyssp,int yytoken)3055 yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
3056                 yytype_int16 *yyssp, int yytoken)
3057 {
3058   YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
3059   YYSIZE_T yysize = yysize0;
3060   enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
3061   /* Internationalized format string. */
3062   const char *yyformat = YY_NULLPTR;
3063   /* Arguments of yyformat. */
3064   char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
3065   /* Number of reported tokens (one for the "unexpected", one per
3066      "expected"). */
3067   int yycount = 0;
3068 
3069   /* There are many possibilities here to consider:
3070      - If this state is a consistent state with a default action, then
3071        the only way this function was invoked is if the default action
3072        is an error action.  In that case, don't check for expected
3073        tokens because there are none.
3074      - The only way there can be no lookahead present (in yychar) is if
3075        this state is a consistent state with a default action.  Thus,
3076        detecting the absence of a lookahead is sufficient to determine
3077        that there is no unexpected or expected token to report.  In that
3078        case, just report a simple "syntax error".
3079      - Don't assume there isn't a lookahead just because this state is a
3080        consistent state with a default action.  There might have been a
3081        previous inconsistent state, consistent state with a non-default
3082        action, or user semantic action that manipulated yychar.
3083      - Of course, the expected token list depends on states to have
3084        correct lookahead information, and it depends on the parser not
3085        to perform extra reductions after fetching a lookahead from the
3086        scanner and before detecting a syntax error.  Thus, state merging
3087        (from LALR or IELR) and default reductions corrupt the expected
3088        token list.  However, the list is correct for canonical LR with
3089        one exception: it will still contain any token that will not be
3090        accepted due to an error action in a later state.
3091   */
3092   if (yytoken != YYEMPTY)
3093     {
3094       int yyn = yypact[*yyssp];
3095       yyarg[yycount++] = yytname[yytoken];
3096       if (!yypact_value_is_default (yyn))
3097         {
3098           /* Start YYX at -YYN if negative to avoid negative indexes in
3099              YYCHECK.  In other words, skip the first -YYN actions for
3100              this state because they are default actions.  */
3101           int yyxbegin = yyn < 0 ? -yyn : 0;
3102           /* Stay within bounds of both yycheck and yytname.  */
3103           int yychecklim = YYLAST - yyn + 1;
3104           int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
3105           int yyx;
3106 
3107           for (yyx = yyxbegin; yyx < yyxend; ++yyx)
3108             if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
3109                 && !yytable_value_is_error (yytable[yyx + yyn]))
3110               {
3111                 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
3112                   {
3113                     yycount = 1;
3114                     yysize = yysize0;
3115                     break;
3116                   }
3117                 yyarg[yycount++] = yytname[yyx];
3118                 {
3119                   YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
3120                   if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
3121                     yysize = yysize1;
3122                   else
3123                     return 2;
3124                 }
3125               }
3126         }
3127     }
3128 
3129   switch (yycount)
3130     {
3131 # define YYCASE_(N, S)                      \
3132       case N:                               \
3133         yyformat = S;                       \
3134       break
3135     default: /* Avoid compiler warnings. */
3136       YYCASE_(0, YY_("syntax error"));
3137       YYCASE_(1, YY_("syntax error, unexpected %s"));
3138       YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
3139       YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
3140       YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
3141       YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
3142 # undef YYCASE_
3143     }
3144 
3145   {
3146     YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
3147     if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
3148       yysize = yysize1;
3149     else
3150       return 2;
3151   }
3152 
3153   if (*yymsg_alloc < yysize)
3154     {
3155       *yymsg_alloc = 2 * yysize;
3156       if (! (yysize <= *yymsg_alloc
3157              && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
3158         *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
3159       return 1;
3160     }
3161 
3162   /* Avoid sprintf, as that infringes on the user's name space.
3163      Don't have undefined behavior even if the translation
3164      produced a string with the wrong number of "%s"s.  */
3165   {
3166     char *yyp = *yymsg;
3167     int yyi = 0;
3168     while ((*yyp = *yyformat) != '\0')
3169       if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
3170         {
3171           yyp += yytnamerr (yyp, yyarg[yyi++]);
3172           yyformat += 2;
3173         }
3174       else
3175         {
3176           yyp++;
3177           yyformat++;
3178         }
3179   }
3180   return 0;
3181 }
3182 #endif /* YYERROR_VERBOSE */
3183 
3184 /*-----------------------------------------------.
3185 | Release the memory associated to this symbol.  |
3186 `-----------------------------------------------*/
3187 
3188 static void
yydestruct(const char * yymsg,int yytype,YYSTYPE * yyvaluep,void * yyparse_param)3189 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, void* yyparse_param)
3190 {
3191   YYUSE (yyvaluep);
3192   YYUSE (yyparse_param);
3193   if (!yymsg)
3194     yymsg = "Deleting";
3195   YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
3196 
3197   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3198   YYUSE (yytype);
3199   YY_IGNORE_MAYBE_UNINITIALIZED_END
3200 }
3201 
3202 
3203 
3204 
3205 /*----------.
3206 | yyparse.  |
3207 `----------*/
3208 
3209 int
yyparse(void * yyparse_param)3210 yyparse (void* yyparse_param)
3211 {
3212 /* The lookahead symbol.  */
3213 int yychar;
3214 
3215 
3216 /* The semantic value of the lookahead symbol.  */
3217 /* Default value used for initialization, for pacifying older GCCs
3218    or non-GCC compilers.  */
3219 YY_INITIAL_VALUE (static YYSTYPE yyval_default;)
3220 YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
3221 
3222     /* Number of syntax errors so far.  */
3223     int yynerrs;
3224 
3225     int yystate;
3226     /* Number of tokens to shift before error messages enabled.  */
3227     int yyerrstatus;
3228 
3229     /* The stacks and their tools:
3230        'yyss': related to states.
3231        'yyvs': related to semantic values.
3232 
3233        Refer to the stacks through separate pointers, to allow yyoverflow
3234        to reallocate them elsewhere.  */
3235 
3236     /* The state stack.  */
3237     yytype_int16 yyssa[YYINITDEPTH];
3238     yytype_int16 *yyss;
3239     yytype_int16 *yyssp;
3240 
3241     /* The semantic value stack.  */
3242     YYSTYPE yyvsa[YYINITDEPTH];
3243     YYSTYPE *yyvs;
3244     YYSTYPE *yyvsp;
3245 
3246     YYSIZE_T yystacksize;
3247 
3248   int yyn;
3249   int yyresult;
3250   /* Lookahead token as an internal (translated) token number.  */
3251   int yytoken = 0;
3252   /* The variables used to return semantic value and location from the
3253      action routines.  */
3254   YYSTYPE yyval;
3255 
3256 #if YYERROR_VERBOSE
3257   /* Buffer for error messages, and its allocated size.  */
3258   char yymsgbuf[128];
3259   char *yymsg = yymsgbuf;
3260   YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
3261 #endif
3262 
3263 #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
3264 
3265   /* The number of symbols on the RHS of the reduced rule.
3266      Keep to zero when no symbol should be popped.  */
3267   int yylen = 0;
3268 
3269   yyssp = yyss = yyssa;
3270   yyvsp = yyvs = yyvsa;
3271   yystacksize = YYINITDEPTH;
3272 
3273   YYDPRINTF ((stderr, "Starting parse\n"));
3274 
3275   yystate = 0;
3276   yyerrstatus = 0;
3277   yynerrs = 0;
3278   yychar = YYEMPTY; /* Cause a token to be read.  */
3279 
3280 /* User initialization code.  */
3281 #line 191 "lscp.y" /* yacc.c:1431  */
3282 {
3283     yyparse_param_t* p = (yyparse_param_t*) yyparse_param;
3284     p->ppStackBottom = &yyss;
3285     p->ppStackTop    = &yyssp;
3286 }
3287 
3288 #line 3289 "y.tab.c" /* yacc.c:1431  */
3289   goto yysetstate;
3290 
3291 
3292 /*------------------------------------------------------------.
3293 | yynewstate -- push a new state, which is found in yystate.  |
3294 `------------------------------------------------------------*/
3295 yynewstate:
3296   /* In all cases, when you get here, the value and location stacks
3297      have just been pushed.  So pushing a state here evens the stacks.  */
3298   yyssp++;
3299 
3300 
3301 /*--------------------------------------------------------------------.
3302 | yynewstate -- set current state (the top of the stack) to yystate.  |
3303 `--------------------------------------------------------------------*/
3304 yysetstate:
3305   *yyssp = (yytype_int16) yystate;
3306 
3307   if (yyss + yystacksize - 1 <= yyssp)
3308 #if !defined yyoverflow && !defined YYSTACK_RELOCATE
3309     goto yyexhaustedlab;
3310 #else
3311     {
3312       /* Get the current used size of the three stacks, in elements.  */
3313       YYSIZE_T yysize = (YYSIZE_T) (yyssp - yyss + 1);
3314 
3315 # if defined yyoverflow
3316       {
3317         /* Give user a chance to reallocate the stack.  Use copies of
3318            these so that the &'s don't force the real ones into
3319            memory.  */
3320         YYSTYPE *yyvs1 = yyvs;
3321         yytype_int16 *yyss1 = yyss;
3322 
3323         /* Each stack pointer address is followed by the size of the
3324            data in use in that stack, in bytes.  This used to be a
3325            conditional around just the two extra args, but that might
3326            be undefined if yyoverflow is a macro.  */
3327         yyoverflow (YY_("memory exhausted"),
3328                     &yyss1, yysize * sizeof (*yyssp),
3329                     &yyvs1, yysize * sizeof (*yyvsp),
3330                     &yystacksize);
3331         yyss = yyss1;
3332         yyvs = yyvs1;
3333       }
3334 # else /* defined YYSTACK_RELOCATE */
3335       /* Extend the stack our own way.  */
3336       if (YYMAXDEPTH <= yystacksize)
3337         goto yyexhaustedlab;
3338       yystacksize *= 2;
3339       if (YYMAXDEPTH < yystacksize)
3340         yystacksize = YYMAXDEPTH;
3341 
3342       {
3343         yytype_int16 *yyss1 = yyss;
3344         union yyalloc *yyptr =
3345           (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
3346         if (! yyptr)
3347           goto yyexhaustedlab;
3348         YYSTACK_RELOCATE (yyss_alloc, yyss);
3349         YYSTACK_RELOCATE (yyvs_alloc, yyvs);
3350 # undef YYSTACK_RELOCATE
3351         if (yyss1 != yyssa)
3352           YYSTACK_FREE (yyss1);
3353       }
3354 # endif
3355 
3356       yyssp = yyss + yysize - 1;
3357       yyvsp = yyvs + yysize - 1;
3358 
3359       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
3360                   (unsigned long) yystacksize));
3361 
3362       if (yyss + yystacksize - 1 <= yyssp)
3363         YYABORT;
3364     }
3365 #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
3366 
3367   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
3368 
3369   if (yystate == YYFINAL)
3370     YYACCEPT;
3371 
3372   goto yybackup;
3373 
3374 
3375 /*-----------.
3376 | yybackup.  |
3377 `-----------*/
3378 yybackup:
3379   /* Do appropriate processing given the current state.  Read a
3380      lookahead token if we need one and don't already have one.  */
3381 
3382   /* First try to decide what to do without reference to lookahead token.  */
3383   yyn = yypact[yystate];
3384   if (yypact_value_is_default (yyn))
3385     goto yydefault;
3386 
3387   /* Not known => get a lookahead token if don't already have one.  */
3388 
3389   /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
3390   if (yychar == YYEMPTY)
3391     {
3392       YYDPRINTF ((stderr, "Reading a token: "));
3393       yychar = yylex (&yylval);
3394     }
3395 
3396   if (yychar <= YYEOF)
3397     {
3398       yychar = yytoken = YYEOF;
3399       YYDPRINTF ((stderr, "Now at end of input.\n"));
3400     }
3401   else
3402     {
3403       yytoken = YYTRANSLATE (yychar);
3404       YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
3405     }
3406 
3407   /* If the proper action on seeing token YYTOKEN is to reduce or to
3408      detect an error, take that action.  */
3409   yyn += yytoken;
3410   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
3411     goto yydefault;
3412   yyn = yytable[yyn];
3413   if (yyn <= 0)
3414     {
3415       if (yytable_value_is_error (yyn))
3416         goto yyerrlab;
3417       yyn = -yyn;
3418       goto yyreduce;
3419     }
3420 
3421   /* Count tokens shifted since error; after three, turn off error
3422      status.  */
3423   if (yyerrstatus)
3424     yyerrstatus--;
3425 
3426   /* Shift the lookahead token.  */
3427   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
3428 
3429   /* Discard the shifted token.  */
3430   yychar = YYEMPTY;
3431 
3432   yystate = yyn;
3433   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3434   *++yyvsp = yylval;
3435   YY_IGNORE_MAYBE_UNINITIALIZED_END
3436 
3437   goto yynewstate;
3438 
3439 
3440 /*-----------------------------------------------------------.
3441 | yydefault -- do the default action for the current state.  |
3442 `-----------------------------------------------------------*/
3443 yydefault:
3444   yyn = yydefact[yystate];
3445   if (yyn == 0)
3446     goto yyerrlab;
3447   goto yyreduce;
3448 
3449 
3450 /*-----------------------------.
3451 | yyreduce -- do a reduction.  |
3452 `-----------------------------*/
3453 yyreduce:
3454   /* yyn is the number of a rule to reduce with.  */
3455   yylen = yyr2[yyn];
3456 
3457   /* If YYLEN is nonzero, implement the default value of the action:
3458      '$$ = $1'.
3459 
3460      Otherwise, the following line sets YYVAL to garbage.
3461      This behavior is undocumented and Bison
3462      users should not rely upon it.  Assigning to YYVAL
3463      unconditionally makes the parser a bit smaller, and it avoids a
3464      GCC warning that YYVAL may be used uninitialized.  */
3465   yyval = yyvsp[1-yylen];
3466 
3467 
3468   YY_REDUCE_PRINT (yyn);
3469   switch (yyn)
3470     {
3471         case 2:
3472 #line 227 "lscp.y" /* yacc.c:1652  */
3473     { INCREMENT_LINE; if (!(yyvsp[0].String).empty()) LSCPSERVER->AnswerClient((yyvsp[0].String)); return LSCP_DONE; }
3474 #line 3475 "y.tab.c" /* yacc.c:1652  */
3475     break;
3476 
3477   case 3:
3478 #line 228 "lscp.y" /* yacc.c:1652  */
3479     { INCREMENT_LINE; LSCPSERVER->AnswerClient("ERR:0:" + sLastError + "\r\n"); RESTART; return LSCP_SYNTAX_ERROR; }
3480 #line 3481 "y.tab.c" /* yacc.c:1652  */
3481     break;
3482 
3483   case 4:
3484 #line 231 "lscp.y" /* yacc.c:1652  */
3485     { (yyval.String) = (yyvsp[-1].String); }
3486 #line 3487 "y.tab.c" /* yacc.c:1652  */
3487     break;
3488 
3489   case 5:
3490 #line 232 "lscp.y" /* yacc.c:1652  */
3491     { (yyval.String) = (yyvsp[-2].String); }
3492 #line 3493 "y.tab.c" /* yacc.c:1652  */
3493     break;
3494 
3495   case 6:
3496 #line 235 "lscp.y" /* yacc.c:1652  */
3497     { (yyval.String) = ""; }
3498 #line 3499 "y.tab.c" /* yacc.c:1652  */
3499     break;
3500 
3501   case 7:
3502 #line 236 "lscp.y" /* yacc.c:1652  */
3503     { (yyval.String) = ""; }
3504 #line 3505 "y.tab.c" /* yacc.c:1652  */
3505     break;
3506 
3507   case 14:
3508 #line 247 "lscp.y" /* yacc.c:1652  */
3509     { (yyval.String) = (yyvsp[0].String);                                                }
3510 #line 3511 "y.tab.c" /* yacc.c:1652  */
3511     break;
3512 
3513   case 15:
3514 #line 248 "lscp.y" /* yacc.c:1652  */
3515     { (yyval.String) = (yyvsp[0].String);                                                }
3516 #line 3517 "y.tab.c" /* yacc.c:1652  */
3517     break;
3518 
3519   case 16:
3520 #line 249 "lscp.y" /* yacc.c:1652  */
3521     { (yyval.String) = (yyvsp[0].String);                                                }
3522 #line 3523 "y.tab.c" /* yacc.c:1652  */
3523     break;
3524 
3525   case 17:
3526 #line 250 "lscp.y" /* yacc.c:1652  */
3527     { (yyval.String) = (yyvsp[0].String);                                                }
3528 #line 3529 "y.tab.c" /* yacc.c:1652  */
3529     break;
3530 
3531   case 18:
3532 #line 251 "lscp.y" /* yacc.c:1652  */
3533     { (yyval.String) = (yyvsp[0].String);                                                }
3534 #line 3535 "y.tab.c" /* yacc.c:1652  */
3535     break;
3536 
3537   case 19:
3538 #line 252 "lscp.y" /* yacc.c:1652  */
3539     { (yyval.String) = (yyvsp[0].String);                                                }
3540 #line 3541 "y.tab.c" /* yacc.c:1652  */
3541     break;
3542 
3543   case 20:
3544 #line 253 "lscp.y" /* yacc.c:1652  */
3545     { (yyval.String) = (yyvsp[0].String);                                                }
3546 #line 3547 "y.tab.c" /* yacc.c:1652  */
3547     break;
3548 
3549   case 21:
3550 #line 254 "lscp.y" /* yacc.c:1652  */
3551     { (yyval.String) = (yyvsp[0].String);                                                }
3552 #line 3553 "y.tab.c" /* yacc.c:1652  */
3553     break;
3554 
3555   case 22:
3556 #line 255 "lscp.y" /* yacc.c:1652  */
3557     { (yyval.String) = (yyvsp[0].String);                                                }
3558 #line 3559 "y.tab.c" /* yacc.c:1652  */
3559     break;
3560 
3561   case 23:
3562 #line 256 "lscp.y" /* yacc.c:1652  */
3563     { (yyval.String) = (yyvsp[0].String);                                                }
3564 #line 3565 "y.tab.c" /* yacc.c:1652  */
3565     break;
3566 
3567   case 24:
3568 #line 257 "lscp.y" /* yacc.c:1652  */
3569     { (yyval.String) = (yyvsp[0].String);                                                }
3570 #line 3571 "y.tab.c" /* yacc.c:1652  */
3571     break;
3572 
3573   case 25:
3574 #line 258 "lscp.y" /* yacc.c:1652  */
3575     { (yyval.String) = (yyvsp[0].String);                                                }
3576 #line 3577 "y.tab.c" /* yacc.c:1652  */
3577     break;
3578 
3579   case 26:
3580 #line 259 "lscp.y" /* yacc.c:1652  */
3581     { (yyval.String) = (yyvsp[0].String);                                                }
3582 #line 3583 "y.tab.c" /* yacc.c:1652  */
3583     break;
3584 
3585   case 27:
3586 #line 260 "lscp.y" /* yacc.c:1652  */
3587     { (yyval.String) = (yyvsp[0].String);                                                }
3588 #line 3589 "y.tab.c" /* yacc.c:1652  */
3589     break;
3590 
3591   case 28:
3592 #line 261 "lscp.y" /* yacc.c:1652  */
3593     { (yyval.String) = (yyvsp[0].String);                                                }
3594 #line 3595 "y.tab.c" /* yacc.c:1652  */
3595     break;
3596 
3597   case 29:
3598 #line 262 "lscp.y" /* yacc.c:1652  */
3599     { (yyval.String) = (yyvsp[0].String);                                                }
3600 #line 3601 "y.tab.c" /* yacc.c:1652  */
3601     break;
3602 
3603   case 30:
3604 #line 263 "lscp.y" /* yacc.c:1652  */
3605     { (yyval.String) = (yyvsp[0].String);                                                }
3606 #line 3607 "y.tab.c" /* yacc.c:1652  */
3607     break;
3608 
3609   case 31:
3610 #line 264 "lscp.y" /* yacc.c:1652  */
3611     { (yyval.String) = (yyvsp[0].String);                                                }
3612 #line 3613 "y.tab.c" /* yacc.c:1652  */
3613     break;
3614 
3615   case 32:
3616 #line 265 "lscp.y" /* yacc.c:1652  */
3617     { (yyval.String) = (yyvsp[0].String);                                                }
3618 #line 3619 "y.tab.c" /* yacc.c:1652  */
3619     break;
3620 
3621   case 33:
3622 #line 266 "lscp.y" /* yacc.c:1652  */
3623     { (yyval.String) = (yyvsp[0].String);                                                }
3624 #line 3625 "y.tab.c" /* yacc.c:1652  */
3625     break;
3626 
3627   case 34:
3628 #line 267 "lscp.y" /* yacc.c:1652  */
3629     { (yyval.String) = (yyvsp[0].String);                                                }
3630 #line 3631 "y.tab.c" /* yacc.c:1652  */
3631     break;
3632 
3633   case 35:
3634 #line 268 "lscp.y" /* yacc.c:1652  */
3635     { (yyval.String) = (yyvsp[0].String);                                                }
3636 #line 3637 "y.tab.c" /* yacc.c:1652  */
3637     break;
3638 
3639   case 36:
3640 #line 269 "lscp.y" /* yacc.c:1652  */
3641     { (yyval.String) = LSCPSERVER->ResetSampler();                        }
3642 #line 3643 "y.tab.c" /* yacc.c:1652  */
3643     break;
3644 
3645   case 37:
3646 #line 270 "lscp.y" /* yacc.c:1652  */
3647     { LSCPSERVER->AnswerClient("Bye!\r\n"); return LSCP_QUIT; }
3648 #line 3649 "y.tab.c" /* yacc.c:1652  */
3649     break;
3650 
3651   case 38:
3652 #line 273 "lscp.y" /* yacc.c:1652  */
3653     { (yyval.String) = LSCPSERVER->AddChannel();                  }
3654 #line 3655 "y.tab.c" /* yacc.c:1652  */
3655     break;
3656 
3657   case 39:
3658 #line 274 "lscp.y" /* yacc.c:1652  */
3659     { (yyval.String) = LSCPSERVER->AddChannelMidiInput((yyvsp[-2].Number),(yyvsp[0].Number));    }
3660 #line 3661 "y.tab.c" /* yacc.c:1652  */
3661     break;
3662 
3663   case 40:
3664 #line 275 "lscp.y" /* yacc.c:1652  */
3665     { (yyval.String) = LSCPSERVER->AddChannelMidiInput((yyvsp[-4].Number),(yyvsp[-2].Number),(yyvsp[0].Number)); }
3666 #line 3667 "y.tab.c" /* yacc.c:1652  */
3667     break;
3668 
3669   case 41:
3670 #line 276 "lscp.y" /* yacc.c:1652  */
3671     { (yyval.String) = LSCPSERVER->AddDbInstrumentDirectory((yyvsp[0].String));  }
3672 #line 3673 "y.tab.c" /* yacc.c:1652  */
3673     break;
3674 
3675   case 42:
3676 #line 277 "lscp.y" /* yacc.c:1652  */
3677     { (yyval.String) = LSCPSERVER->AddDbInstruments((yyvsp[-4].String),(yyvsp[-2].String),(yyvsp[0].String), true);        }
3678 #line 3679 "y.tab.c" /* yacc.c:1652  */
3679     break;
3680 
3681   case 43:
3682 #line 278 "lscp.y" /* yacc.c:1652  */
3683     { (yyval.String) = LSCPSERVER->AddDbInstruments((yyvsp[-6].String),(yyvsp[-2].String),(yyvsp[0].String), true, true); }
3684 #line 3685 "y.tab.c" /* yacc.c:1652  */
3685     break;
3686 
3687   case 44:
3688 #line 279 "lscp.y" /* yacc.c:1652  */
3689     { (yyval.String) = LSCPSERVER->AddDbInstruments((yyvsp[-4].String),(yyvsp[-2].String),(yyvsp[0].String));              }
3690 #line 3691 "y.tab.c" /* yacc.c:1652  */
3691     break;
3692 
3693   case 45:
3694 #line 280 "lscp.y" /* yacc.c:1652  */
3695     { (yyval.String) = LSCPSERVER->AddDbInstruments((yyvsp[-6].String),(yyvsp[-2].String),(yyvsp[0].String), false, true); }
3696 #line 3697 "y.tab.c" /* yacc.c:1652  */
3697     break;
3698 
3699   case 46:
3700 #line 281 "lscp.y" /* yacc.c:1652  */
3701     { (yyval.String) = LSCPSERVER->AddDbInstruments((yyvsp[-2].String),(yyvsp[0].String), -1, true);       }
3702 #line 3703 "y.tab.c" /* yacc.c:1652  */
3703     break;
3704 
3705   case 47:
3706 #line 282 "lscp.y" /* yacc.c:1652  */
3707     { (yyval.String) = LSCPSERVER->AddDbInstruments((yyvsp[-4].String),(yyvsp[-2].String),(yyvsp[0].Number), true);        }
3708 #line 3709 "y.tab.c" /* yacc.c:1652  */
3709     break;
3710 
3711   case 48:
3712 #line 283 "lscp.y" /* yacc.c:1652  */
3713     { (yyval.String) = LSCPSERVER->AddDbInstruments((yyvsp[-2].String),(yyvsp[0].String));                 }
3714 #line 3715 "y.tab.c" /* yacc.c:1652  */
3715     break;
3716 
3717   case 49:
3718 #line 284 "lscp.y" /* yacc.c:1652  */
3719     { (yyval.String) = LSCPSERVER->AddDbInstruments((yyvsp[-4].String),(yyvsp[-2].String),(yyvsp[0].Number));              }
3720 #line 3721 "y.tab.c" /* yacc.c:1652  */
3721     break;
3722 
3723   case 50:
3724 #line 285 "lscp.y" /* yacc.c:1652  */
3725     { (yyval.String) = LSCPSERVER->AddMidiInstrumentMap();                }
3726 #line 3727 "y.tab.c" /* yacc.c:1652  */
3727     break;
3728 
3729   case 51:
3730 #line 286 "lscp.y" /* yacc.c:1652  */
3731     { (yyval.String) = LSCPSERVER->AddMidiInstrumentMap((yyvsp[0].String));              }
3732 #line 3733 "y.tab.c" /* yacc.c:1652  */
3733     break;
3734 
3735   case 52:
3736 #line 287 "lscp.y" /* yacc.c:1652  */
3737     { (yyval.String) = LSCPSERVER->AddSendEffectChain((yyvsp[0].Number));                }
3738 #line 3739 "y.tab.c" /* yacc.c:1652  */
3739     break;
3740 
3741   case 53:
3742 #line 290 "lscp.y" /* yacc.c:1652  */
3743     { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_audio_device_count);   }
3744 #line 3745 "y.tab.c" /* yacc.c:1652  */
3745     break;
3746 
3747   case 54:
3748 #line 291 "lscp.y" /* yacc.c:1652  */
3749     { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_audio_device_info);    }
3750 #line 3751 "y.tab.c" /* yacc.c:1652  */
3751     break;
3752 
3753   case 55:
3754 #line 292 "lscp.y" /* yacc.c:1652  */
3755     { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_midi_device_count);    }
3756 #line 3757 "y.tab.c" /* yacc.c:1652  */
3757     break;
3758 
3759   case 56:
3760 #line 293 "lscp.y" /* yacc.c:1652  */
3761     { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_midi_device_info);     }
3762 #line 3763 "y.tab.c" /* yacc.c:1652  */
3763     break;
3764 
3765   case 57:
3766 #line 294 "lscp.y" /* yacc.c:1652  */
3767     { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_channel_count);        }
3768 #line 3769 "y.tab.c" /* yacc.c:1652  */
3769     break;
3770 
3771   case 58:
3772 #line 295 "lscp.y" /* yacc.c:1652  */
3773     { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_channel_midi);         }
3774 #line 3775 "y.tab.c" /* yacc.c:1652  */
3775     break;
3776 
3777   case 59:
3778 #line 296 "lscp.y" /* yacc.c:1652  */
3779     { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_device_midi);          }
3780 #line 3781 "y.tab.c" /* yacc.c:1652  */
3781     break;
3782 
3783   case 60:
3784 #line 297 "lscp.y" /* yacc.c:1652  */
3785     { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_voice_count);          }
3786 #line 3787 "y.tab.c" /* yacc.c:1652  */
3787     break;
3788 
3789   case 61:
3790 #line 298 "lscp.y" /* yacc.c:1652  */
3791     { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_stream_count);         }
3792 #line 3793 "y.tab.c" /* yacc.c:1652  */
3793     break;
3794 
3795   case 62:
3796 #line 299 "lscp.y" /* yacc.c:1652  */
3797     { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_buffer_fill);          }
3798 #line 3799 "y.tab.c" /* yacc.c:1652  */
3799     break;
3800 
3801   case 63:
3802 #line 300 "lscp.y" /* yacc.c:1652  */
3803     { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_channel_info);         }
3804 #line 3805 "y.tab.c" /* yacc.c:1652  */
3805     break;
3806 
3807   case 64:
3808 #line 301 "lscp.y" /* yacc.c:1652  */
3809     { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_fx_send_count);        }
3810 #line 3811 "y.tab.c" /* yacc.c:1652  */
3811     break;
3812 
3813   case 65:
3814 #line 302 "lscp.y" /* yacc.c:1652  */
3815     { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_fx_send_info);         }
3816 #line 3817 "y.tab.c" /* yacc.c:1652  */
3817     break;
3818 
3819   case 66:
3820 #line 303 "lscp.y" /* yacc.c:1652  */
3821     { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_midi_instr_map_count); }
3822 #line 3823 "y.tab.c" /* yacc.c:1652  */
3823     break;
3824 
3825   case 67:
3826 #line 304 "lscp.y" /* yacc.c:1652  */
3827     { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_midi_instr_map_info);  }
3828 #line 3829 "y.tab.c" /* yacc.c:1652  */
3829     break;
3830 
3831   case 68:
3832 #line 305 "lscp.y" /* yacc.c:1652  */
3833     { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_midi_instr_count);     }
3834 #line 3835 "y.tab.c" /* yacc.c:1652  */
3835     break;
3836 
3837   case 69:
3838 #line 306 "lscp.y" /* yacc.c:1652  */
3839     { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_midi_instr_info);      }
3840 #line 3841 "y.tab.c" /* yacc.c:1652  */
3841     break;
3842 
3843   case 70:
3844 #line 307 "lscp.y" /* yacc.c:1652  */
3845     { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_db_instr_dir_count);   }
3846 #line 3847 "y.tab.c" /* yacc.c:1652  */
3847     break;
3848 
3849   case 71:
3850 #line 308 "lscp.y" /* yacc.c:1652  */
3851     { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_db_instr_dir_info);    }
3852 #line 3853 "y.tab.c" /* yacc.c:1652  */
3853     break;
3854 
3855   case 72:
3856 #line 309 "lscp.y" /* yacc.c:1652  */
3857     { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_db_instr_count);       }
3858 #line 3859 "y.tab.c" /* yacc.c:1652  */
3859     break;
3860 
3861   case 73:
3862 #line 310 "lscp.y" /* yacc.c:1652  */
3863     { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_db_instr_info);        }
3864 #line 3865 "y.tab.c" /* yacc.c:1652  */
3865     break;
3866 
3867   case 74:
3868 #line 311 "lscp.y" /* yacc.c:1652  */
3869     { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_db_instrs_job_info);   }
3870 #line 3871 "y.tab.c" /* yacc.c:1652  */
3871     break;
3872 
3873   case 75:
3874 #line 312 "lscp.y" /* yacc.c:1652  */
3875     { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_misc);                 }
3876 #line 3877 "y.tab.c" /* yacc.c:1652  */
3877     break;
3878 
3879   case 76:
3880 #line 313 "lscp.y" /* yacc.c:1652  */
3881     { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_total_stream_count);   }
3882 #line 3883 "y.tab.c" /* yacc.c:1652  */
3883     break;
3884 
3885   case 77:
3886 #line 314 "lscp.y" /* yacc.c:1652  */
3887     { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_total_voice_count);    }
3888 #line 3889 "y.tab.c" /* yacc.c:1652  */
3889     break;
3890 
3891   case 78:
3892 #line 315 "lscp.y" /* yacc.c:1652  */
3893     { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_global_info);          }
3894 #line 3895 "y.tab.c" /* yacc.c:1652  */
3895     break;
3896 
3897   case 79:
3898 #line 316 "lscp.y" /* yacc.c:1652  */
3899     { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_fx_instance_count);    }
3900 #line 3901 "y.tab.c" /* yacc.c:1652  */
3901     break;
3902 
3903   case 80:
3904 #line 317 "lscp.y" /* yacc.c:1652  */
3905     { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_fx_instance_info);     }
3906 #line 3907 "y.tab.c" /* yacc.c:1652  */
3907     break;
3908 
3909   case 81:
3910 #line 318 "lscp.y" /* yacc.c:1652  */
3911     { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_send_fx_chain_count);  }
3912 #line 3913 "y.tab.c" /* yacc.c:1652  */
3913     break;
3914 
3915   case 82:
3916 #line 319 "lscp.y" /* yacc.c:1652  */
3917     { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_send_fx_chain_info);   }
3918 #line 3919 "y.tab.c" /* yacc.c:1652  */
3919     break;
3920 
3921   case 83:
3922 #line 322 "lscp.y" /* yacc.c:1652  */
3923     { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_audio_device_count);   }
3924 #line 3925 "y.tab.c" /* yacc.c:1652  */
3925     break;
3926 
3927   case 84:
3928 #line 323 "lscp.y" /* yacc.c:1652  */
3929     { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_audio_device_info);    }
3930 #line 3931 "y.tab.c" /* yacc.c:1652  */
3931     break;
3932 
3933   case 85:
3934 #line 324 "lscp.y" /* yacc.c:1652  */
3935     { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_midi_device_count);    }
3936 #line 3937 "y.tab.c" /* yacc.c:1652  */
3937     break;
3938 
3939   case 86:
3940 #line 325 "lscp.y" /* yacc.c:1652  */
3941     { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_midi_device_info);     }
3942 #line 3943 "y.tab.c" /* yacc.c:1652  */
3943     break;
3944 
3945   case 87:
3946 #line 326 "lscp.y" /* yacc.c:1652  */
3947     { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_channel_count);        }
3948 #line 3949 "y.tab.c" /* yacc.c:1652  */
3949     break;
3950 
3951   case 88:
3952 #line 327 "lscp.y" /* yacc.c:1652  */
3953     { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_channel_midi);         }
3954 #line 3955 "y.tab.c" /* yacc.c:1652  */
3955     break;
3956 
3957   case 89:
3958 #line 328 "lscp.y" /* yacc.c:1652  */
3959     { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_device_midi);          }
3960 #line 3961 "y.tab.c" /* yacc.c:1652  */
3961     break;
3962 
3963   case 90:
3964 #line 329 "lscp.y" /* yacc.c:1652  */
3965     { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_voice_count);          }
3966 #line 3967 "y.tab.c" /* yacc.c:1652  */
3967     break;
3968 
3969   case 91:
3970 #line 330 "lscp.y" /* yacc.c:1652  */
3971     { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_stream_count);         }
3972 #line 3973 "y.tab.c" /* yacc.c:1652  */
3973     break;
3974 
3975   case 92:
3976 #line 331 "lscp.y" /* yacc.c:1652  */
3977     { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_buffer_fill);          }
3978 #line 3979 "y.tab.c" /* yacc.c:1652  */
3979     break;
3980 
3981   case 93:
3982 #line 332 "lscp.y" /* yacc.c:1652  */
3983     { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_channel_info);         }
3984 #line 3985 "y.tab.c" /* yacc.c:1652  */
3985     break;
3986 
3987   case 94:
3988 #line 333 "lscp.y" /* yacc.c:1652  */
3989     { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_fx_send_count);        }
3990 #line 3991 "y.tab.c" /* yacc.c:1652  */
3991     break;
3992 
3993   case 95:
3994 #line 334 "lscp.y" /* yacc.c:1652  */
3995     { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_fx_send_info);         }
3996 #line 3997 "y.tab.c" /* yacc.c:1652  */
3997     break;
3998 
3999   case 96:
4000 #line 335 "lscp.y" /* yacc.c:1652  */
4001     { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_midi_instr_map_count); }
4002 #line 4003 "y.tab.c" /* yacc.c:1652  */
4003     break;
4004 
4005   case 97:
4006 #line 336 "lscp.y" /* yacc.c:1652  */
4007     { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_midi_instr_map_info);  }
4008 #line 4009 "y.tab.c" /* yacc.c:1652  */
4009     break;
4010 
4011   case 98:
4012 #line 337 "lscp.y" /* yacc.c:1652  */
4013     { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_midi_instr_count);     }
4014 #line 4015 "y.tab.c" /* yacc.c:1652  */
4015     break;
4016 
4017   case 99:
4018 #line 338 "lscp.y" /* yacc.c:1652  */
4019     { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_midi_instr_info);      }
4020 #line 4021 "y.tab.c" /* yacc.c:1652  */
4021     break;
4022 
4023   case 100:
4024 #line 339 "lscp.y" /* yacc.c:1652  */
4025     { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_db_instr_dir_count);   }
4026 #line 4027 "y.tab.c" /* yacc.c:1652  */
4027     break;
4028 
4029   case 101:
4030 #line 340 "lscp.y" /* yacc.c:1652  */
4031     { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_db_instr_dir_info);    }
4032 #line 4033 "y.tab.c" /* yacc.c:1652  */
4033     break;
4034 
4035   case 102:
4036 #line 341 "lscp.y" /* yacc.c:1652  */
4037     { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_db_instr_count);       }
4038 #line 4039 "y.tab.c" /* yacc.c:1652  */
4039     break;
4040 
4041   case 103:
4042 #line 342 "lscp.y" /* yacc.c:1652  */
4043     { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_db_instr_info);        }
4044 #line 4045 "y.tab.c" /* yacc.c:1652  */
4045     break;
4046 
4047   case 104:
4048 #line 343 "lscp.y" /* yacc.c:1652  */
4049     { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_db_instrs_job_info);   }
4050 #line 4051 "y.tab.c" /* yacc.c:1652  */
4051     break;
4052 
4053   case 105:
4054 #line 344 "lscp.y" /* yacc.c:1652  */
4055     { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_misc);                 }
4056 #line 4057 "y.tab.c" /* yacc.c:1652  */
4057     break;
4058 
4059   case 106:
4060 #line 345 "lscp.y" /* yacc.c:1652  */
4061     { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_total_stream_count);   }
4062 #line 4063 "y.tab.c" /* yacc.c:1652  */
4063     break;
4064 
4065   case 107:
4066 #line 346 "lscp.y" /* yacc.c:1652  */
4067     { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_total_voice_count);    }
4068 #line 4069 "y.tab.c" /* yacc.c:1652  */
4069     break;
4070 
4071   case 108:
4072 #line 347 "lscp.y" /* yacc.c:1652  */
4073     { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_global_info);          }
4074 #line 4075 "y.tab.c" /* yacc.c:1652  */
4075     break;
4076 
4077   case 109:
4078 #line 348 "lscp.y" /* yacc.c:1652  */
4079     { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_fx_instance_count);    }
4080 #line 4081 "y.tab.c" /* yacc.c:1652  */
4081     break;
4082 
4083   case 110:
4084 #line 349 "lscp.y" /* yacc.c:1652  */
4085     { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_fx_instance_info);     }
4086 #line 4087 "y.tab.c" /* yacc.c:1652  */
4087     break;
4088 
4089   case 111:
4090 #line 350 "lscp.y" /* yacc.c:1652  */
4091     { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_send_fx_chain_count);  }
4092 #line 4093 "y.tab.c" /* yacc.c:1652  */
4093     break;
4094 
4095   case 112:
4096 #line 351 "lscp.y" /* yacc.c:1652  */
4097     { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_send_fx_chain_info);   }
4098 #line 4099 "y.tab.c" /* yacc.c:1652  */
4099     break;
4100 
4101   case 113:
4102 #line 354 "lscp.y" /* yacc.c:1652  */
4103     { (yyval.String) = LSCPSERVER->AddOrReplaceMIDIInstrumentMapping((yyvsp[-12].Number),(yyvsp[-10].Number),(yyvsp[-8].Number),(yyvsp[-6].String),(yyvsp[-4].String),(yyvsp[-2].Number),(yyvsp[0].Dotnum),MidiInstrumentMapper::DONTCARE,"",(yyvsp[-13].Bool)); }
4104 #line 4105 "y.tab.c" /* yacc.c:1652  */
4105     break;
4106 
4107   case 114:
4108 #line 355 "lscp.y" /* yacc.c:1652  */
4109     { (yyval.String) = LSCPSERVER->AddOrReplaceMIDIInstrumentMapping((yyvsp[-14].Number),(yyvsp[-12].Number),(yyvsp[-10].Number),(yyvsp[-8].String),(yyvsp[-6].String),(yyvsp[-4].Number),(yyvsp[-2].Dotnum),(yyvsp[0].LoadMode),"",(yyvsp[-15].Bool)); }
4110 #line 4111 "y.tab.c" /* yacc.c:1652  */
4111     break;
4112 
4113   case 115:
4114 #line 356 "lscp.y" /* yacc.c:1652  */
4115     { (yyval.String) = LSCPSERVER->AddOrReplaceMIDIInstrumentMapping((yyvsp[-14].Number),(yyvsp[-12].Number),(yyvsp[-10].Number),(yyvsp[-8].String),(yyvsp[-6].String),(yyvsp[-4].Number),(yyvsp[-2].Dotnum),MidiInstrumentMapper::DONTCARE,(yyvsp[0].String),(yyvsp[-15].Bool)); }
4116 #line 4117 "y.tab.c" /* yacc.c:1652  */
4117     break;
4118 
4119   case 116:
4120 #line 357 "lscp.y" /* yacc.c:1652  */
4121     { (yyval.String) = LSCPSERVER->AddOrReplaceMIDIInstrumentMapping((yyvsp[-16].Number),(yyvsp[-14].Number),(yyvsp[-12].Number),(yyvsp[-10].String),(yyvsp[-8].String),(yyvsp[-6].Number),(yyvsp[-4].Dotnum),(yyvsp[-2].LoadMode),(yyvsp[0].String),(yyvsp[-17].Bool)); }
4122 #line 4123 "y.tab.c" /* yacc.c:1652  */
4123     break;
4124 
4125   case 117:
4126 #line 360 "lscp.y" /* yacc.c:1652  */
4127     { (yyval.String) = LSCPSERVER->RemoveMIDIInstrumentMapping((yyvsp[-4].Number),(yyvsp[-2].Number),(yyvsp[0].Number)); }
4128 #line 4129 "y.tab.c" /* yacc.c:1652  */
4129     break;
4130 
4131   case 118:
4132 #line 363 "lscp.y" /* yacc.c:1652  */
4133     { (yyval.String) = LSCPSERVER->RemoveChannel((yyvsp[0].Number));                      }
4134 #line 4135 "y.tab.c" /* yacc.c:1652  */
4135     break;
4136 
4137   case 119:
4138 #line 364 "lscp.y" /* yacc.c:1652  */
4139     { (yyval.String) = LSCPSERVER->RemoveChannelMidiInput((yyvsp[0].Number));       }
4140 #line 4141 "y.tab.c" /* yacc.c:1652  */
4141     break;
4142 
4143   case 120:
4144 #line 365 "lscp.y" /* yacc.c:1652  */
4145     { (yyval.String) = LSCPSERVER->RemoveChannelMidiInput((yyvsp[-2].Number),(yyvsp[0].Number));    }
4146 #line 4147 "y.tab.c" /* yacc.c:1652  */
4147     break;
4148 
4149   case 121:
4150 #line 366 "lscp.y" /* yacc.c:1652  */
4151     { (yyval.String) = LSCPSERVER->RemoveChannelMidiInput((yyvsp[-4].Number),(yyvsp[-2].Number),(yyvsp[0].Number)); }
4152 #line 4153 "y.tab.c" /* yacc.c:1652  */
4153     break;
4154 
4155   case 122:
4156 #line 367 "lscp.y" /* yacc.c:1652  */
4157     { (yyval.String) = LSCPSERVER->RemoveMidiInstrumentMap((yyvsp[0].Number));            }
4158 #line 4159 "y.tab.c" /* yacc.c:1652  */
4159     break;
4160 
4161   case 123:
4162 #line 368 "lscp.y" /* yacc.c:1652  */
4163     { (yyval.String) = LSCPSERVER->RemoveAllMidiInstrumentMaps();          }
4164 #line 4165 "y.tab.c" /* yacc.c:1652  */
4165     break;
4166 
4167   case 124:
4168 #line 369 "lscp.y" /* yacc.c:1652  */
4169     { (yyval.String) = LSCPSERVER->RemoveSendEffectChain((yyvsp[-2].Number),(yyvsp[0].Number));     }
4170 #line 4171 "y.tab.c" /* yacc.c:1652  */
4171     break;
4172 
4173   case 125:
4174 #line 370 "lscp.y" /* yacc.c:1652  */
4175     { (yyval.String) = LSCPSERVER->RemoveSendEffectChainEffect((yyvsp[-4].Number),(yyvsp[-2].Number),(yyvsp[0].Number)); }
4176 #line 4177 "y.tab.c" /* yacc.c:1652  */
4177     break;
4178 
4179   case 126:
4180 #line 371 "lscp.y" /* yacc.c:1652  */
4181     { (yyval.String) = LSCPSERVER->SetFxSendEffect((yyvsp[-2].Number),(yyvsp[0].Number),-1,-1);    }
4182 #line 4183 "y.tab.c" /* yacc.c:1652  */
4183     break;
4184 
4185   case 127:
4186 #line 372 "lscp.y" /* yacc.c:1652  */
4187     { (yyval.String) = LSCPSERVER->RemoveDbInstrumentDirectory((yyvsp[0].String), true);  }
4188 #line 4189 "y.tab.c" /* yacc.c:1652  */
4189     break;
4190 
4191   case 128:
4192 #line 373 "lscp.y" /* yacc.c:1652  */
4193     { (yyval.String) = LSCPSERVER->RemoveDbInstrumentDirectory((yyvsp[0].String));        }
4194 #line 4195 "y.tab.c" /* yacc.c:1652  */
4195     break;
4196 
4197   case 129:
4198 #line 374 "lscp.y" /* yacc.c:1652  */
4199     { (yyval.String) = LSCPSERVER->RemoveDbInstrument((yyvsp[0].String));                 }
4200 #line 4201 "y.tab.c" /* yacc.c:1652  */
4201     break;
4202 
4203   case 130:
4204 #line 377 "lscp.y" /* yacc.c:1652  */
4205     { (yyval.String) = LSCPSERVER->GetAvailableEngines();                          }
4206 #line 4207 "y.tab.c" /* yacc.c:1652  */
4207     break;
4208 
4209   case 131:
4210 #line 378 "lscp.y" /* yacc.c:1652  */
4211     { (yyval.String) = LSCPSERVER->GetAvailableEffects();                          }
4212 #line 4213 "y.tab.c" /* yacc.c:1652  */
4213     break;
4214 
4215   case 132:
4216 #line 379 "lscp.y" /* yacc.c:1652  */
4217     { (yyval.String) = LSCPSERVER->GetEffectInstances();                           }
4218 #line 4219 "y.tab.c" /* yacc.c:1652  */
4219     break;
4220 
4221   case 133:
4222 #line 380 "lscp.y" /* yacc.c:1652  */
4223     { (yyval.String) = LSCPSERVER->GetEffectInfo((yyvsp[0].Number));                              }
4224 #line 4225 "y.tab.c" /* yacc.c:1652  */
4225     break;
4226 
4227   case 134:
4228 #line 381 "lscp.y" /* yacc.c:1652  */
4229     { (yyval.String) = LSCPSERVER->GetEffectInstanceInfo((yyvsp[0].Number));                      }
4230 #line 4231 "y.tab.c" /* yacc.c:1652  */
4231     break;
4232 
4233   case 135:
4234 #line 382 "lscp.y" /* yacc.c:1652  */
4235     { (yyval.String) = LSCPSERVER->GetEffectInstanceInputControlInfo((yyvsp[-2].Number),(yyvsp[0].Number));       }
4236 #line 4237 "y.tab.c" /* yacc.c:1652  */
4237     break;
4238 
4239   case 136:
4240 #line 383 "lscp.y" /* yacc.c:1652  */
4241     { (yyval.String) = LSCPSERVER->GetSendEffectChains((yyvsp[0].Number));                        }
4242 #line 4243 "y.tab.c" /* yacc.c:1652  */
4243     break;
4244 
4245   case 137:
4246 #line 384 "lscp.y" /* yacc.c:1652  */
4247     { (yyval.String) = LSCPSERVER->GetSendEffectChainInfo((yyvsp[-2].Number),(yyvsp[0].Number));                  }
4248 #line 4249 "y.tab.c" /* yacc.c:1652  */
4249     break;
4250 
4251   case 138:
4252 #line 385 "lscp.y" /* yacc.c:1652  */
4253     { (yyval.String) = LSCPSERVER->GetAvailableMidiInputDrivers();                 }
4254 #line 4255 "y.tab.c" /* yacc.c:1652  */
4255     break;
4256 
4257   case 139:
4258 #line 386 "lscp.y" /* yacc.c:1652  */
4259     { (yyval.String) = LSCPSERVER->GetMidiInputDriverInfo((yyvsp[0].String));                     }
4260 #line 4261 "y.tab.c" /* yacc.c:1652  */
4261     break;
4262 
4263   case 140:
4264 #line 387 "lscp.y" /* yacc.c:1652  */
4265     { (yyval.String) = LSCPSERVER->GetMidiInputDriverParameterInfo((yyvsp[-2].String), (yyvsp[0].String));        }
4266 #line 4267 "y.tab.c" /* yacc.c:1652  */
4267     break;
4268 
4269   case 141:
4270 #line 388 "lscp.y" /* yacc.c:1652  */
4271     { (yyval.String) = LSCPSERVER->GetMidiInputDriverParameterInfo((yyvsp[-4].String), (yyvsp[-2].String), (yyvsp[0].KeyValList));    }
4272 #line 4273 "y.tab.c" /* yacc.c:1652  */
4273     break;
4274 
4275   case 142:
4276 #line 389 "lscp.y" /* yacc.c:1652  */
4277     { (yyval.String) = LSCPSERVER->GetAvailableAudioOutputDrivers();               }
4278 #line 4279 "y.tab.c" /* yacc.c:1652  */
4279     break;
4280 
4281   case 143:
4282 #line 390 "lscp.y" /* yacc.c:1652  */
4283     { (yyval.String) = LSCPSERVER->GetAudioOutputDriverInfo((yyvsp[0].String));                   }
4284 #line 4285 "y.tab.c" /* yacc.c:1652  */
4285     break;
4286 
4287   case 144:
4288 #line 391 "lscp.y" /* yacc.c:1652  */
4289     { (yyval.String) = LSCPSERVER->GetAudioOutputDriverParameterInfo((yyvsp[-2].String), (yyvsp[0].String));      }
4290 #line 4291 "y.tab.c" /* yacc.c:1652  */
4291     break;
4292 
4293   case 145:
4294 #line 392 "lscp.y" /* yacc.c:1652  */
4295     { (yyval.String) = LSCPSERVER->GetAudioOutputDriverParameterInfo((yyvsp[-4].String), (yyvsp[-2].String), (yyvsp[0].KeyValList));  }
4296 #line 4297 "y.tab.c" /* yacc.c:1652  */
4297     break;
4298 
4299   case 146:
4300 #line 393 "lscp.y" /* yacc.c:1652  */
4301     { (yyval.String) = LSCPSERVER->GetAudioOutputDeviceCount();                    }
4302 #line 4303 "y.tab.c" /* yacc.c:1652  */
4303     break;
4304 
4305   case 147:
4306 #line 394 "lscp.y" /* yacc.c:1652  */
4307     { (yyval.String) = LSCPSERVER->GetMidiInputDeviceCount();                      }
4308 #line 4309 "y.tab.c" /* yacc.c:1652  */
4309     break;
4310 
4311   case 148:
4312 #line 395 "lscp.y" /* yacc.c:1652  */
4313     { (yyval.String) = LSCPSERVER->GetAudioOutputDeviceInfo((yyvsp[0].Number));                   }
4314 #line 4315 "y.tab.c" /* yacc.c:1652  */
4315     break;
4316 
4317   case 149:
4318 #line 396 "lscp.y" /* yacc.c:1652  */
4319     { (yyval.String) = LSCPSERVER->GetMidiInputDeviceInfo((yyvsp[0].Number));                     }
4320 #line 4321 "y.tab.c" /* yacc.c:1652  */
4321     break;
4322 
4323   case 150:
4324 #line 397 "lscp.y" /* yacc.c:1652  */
4325     { (yyval.String) = LSCPSERVER->GetMidiInputPortInfo((yyvsp[-2].Number), (yyvsp[0].Number));                   }
4326 #line 4327 "y.tab.c" /* yacc.c:1652  */
4327     break;
4328 
4329   case 151:
4330 #line 398 "lscp.y" /* yacc.c:1652  */
4331     { (yyval.String) = LSCPSERVER->GetMidiInputPortParameterInfo((yyvsp[-4].Number), (yyvsp[-2].Number), (yyvsp[0].String));      }
4332 #line 4333 "y.tab.c" /* yacc.c:1652  */
4333     break;
4334 
4335   case 152:
4336 #line 399 "lscp.y" /* yacc.c:1652  */
4337     { (yyval.String) = LSCPSERVER->GetAudioOutputChannelInfo((yyvsp[-2].Number), (yyvsp[0].Number));              }
4338 #line 4339 "y.tab.c" /* yacc.c:1652  */
4339     break;
4340 
4341   case 153:
4342 #line 400 "lscp.y" /* yacc.c:1652  */
4343     { (yyval.String) = LSCPSERVER->GetAudioOutputChannelParameterInfo((yyvsp[-4].Number), (yyvsp[-2].Number), (yyvsp[0].String)); }
4344 #line 4345 "y.tab.c" /* yacc.c:1652  */
4345     break;
4346 
4347   case 154:
4348 #line 401 "lscp.y" /* yacc.c:1652  */
4349     { (yyval.String) = LSCPSERVER->GetChannels();                                  }
4350 #line 4351 "y.tab.c" /* yacc.c:1652  */
4351     break;
4352 
4353   case 155:
4354 #line 402 "lscp.y" /* yacc.c:1652  */
4355     { (yyval.String) = LSCPSERVER->GetChannelInfo((yyvsp[0].Number));                             }
4356 #line 4357 "y.tab.c" /* yacc.c:1652  */
4357     break;
4358 
4359   case 156:
4360 #line 403 "lscp.y" /* yacc.c:1652  */
4361     { (yyval.String) = LSCPSERVER->GetBufferFill((yyvsp[-2].FillResponse), (yyvsp[0].Number));                          }
4362 #line 4363 "y.tab.c" /* yacc.c:1652  */
4363     break;
4364 
4365   case 157:
4366 #line 404 "lscp.y" /* yacc.c:1652  */
4367     { (yyval.String) = LSCPSERVER->GetStreamCount((yyvsp[0].Number));                             }
4368 #line 4369 "y.tab.c" /* yacc.c:1652  */
4369     break;
4370 
4371   case 158:
4372 #line 405 "lscp.y" /* yacc.c:1652  */
4373     { (yyval.String) = LSCPSERVER->GetVoiceCount((yyvsp[0].Number));                              }
4374 #line 4375 "y.tab.c" /* yacc.c:1652  */
4375     break;
4376 
4377   case 159:
4378 #line 406 "lscp.y" /* yacc.c:1652  */
4379     { (yyval.String) = LSCPSERVER->GetEngineInfo((yyvsp[0].String));                              }
4380 #line 4381 "y.tab.c" /* yacc.c:1652  */
4381     break;
4382 
4383   case 160:
4384 #line 407 "lscp.y" /* yacc.c:1652  */
4385     { (yyval.String) = LSCPSERVER->GetServerInfo();                                }
4386 #line 4387 "y.tab.c" /* yacc.c:1652  */
4387     break;
4388 
4389   case 161:
4390 #line 408 "lscp.y" /* yacc.c:1652  */
4391     { (yyval.String) = LSCPSERVER->GetTotalStreamCount();                           }
4392 #line 4393 "y.tab.c" /* yacc.c:1652  */
4393     break;
4394 
4395   case 162:
4396 #line 409 "lscp.y" /* yacc.c:1652  */
4397     { (yyval.String) = LSCPSERVER->GetTotalVoiceCount();                           }
4398 #line 4399 "y.tab.c" /* yacc.c:1652  */
4399     break;
4400 
4401   case 163:
4402 #line 410 "lscp.y" /* yacc.c:1652  */
4403     { (yyval.String) = LSCPSERVER->GetTotalVoiceCountMax();                        }
4404 #line 4405 "y.tab.c" /* yacc.c:1652  */
4405     break;
4406 
4407   case 164:
4408 #line 411 "lscp.y" /* yacc.c:1652  */
4409     { (yyval.String) = LSCPSERVER->GetMidiInstrumentMappings((yyvsp[0].Number));                  }
4410 #line 4411 "y.tab.c" /* yacc.c:1652  */
4411     break;
4412 
4413   case 165:
4414 #line 412 "lscp.y" /* yacc.c:1652  */
4415     { (yyval.String) = LSCPSERVER->GetAllMidiInstrumentMappings();                 }
4416 #line 4417 "y.tab.c" /* yacc.c:1652  */
4417     break;
4418 
4419   case 166:
4420 #line 413 "lscp.y" /* yacc.c:1652  */
4421     { (yyval.String) = LSCPSERVER->GetMidiInstrumentMapping((yyvsp[-4].Number),(yyvsp[-2].Number),(yyvsp[0].Number));             }
4422 #line 4423 "y.tab.c" /* yacc.c:1652  */
4423     break;
4424 
4425   case 167:
4426 #line 414 "lscp.y" /* yacc.c:1652  */
4427     { (yyval.String) = LSCPSERVER->GetMidiInstrumentMaps();                        }
4428 #line 4429 "y.tab.c" /* yacc.c:1652  */
4429     break;
4430 
4431   case 168:
4432 #line 415 "lscp.y" /* yacc.c:1652  */
4433     { (yyval.String) = LSCPSERVER->GetMidiInstrumentMap((yyvsp[0].Number));                       }
4434 #line 4435 "y.tab.c" /* yacc.c:1652  */
4435     break;
4436 
4437   case 169:
4438 #line 416 "lscp.y" /* yacc.c:1652  */
4439     { (yyval.String) = LSCPSERVER->GetFxSends((yyvsp[0].Number));                                 }
4440 #line 4441 "y.tab.c" /* yacc.c:1652  */
4441     break;
4442 
4443   case 170:
4444 #line 417 "lscp.y" /* yacc.c:1652  */
4445     { (yyval.String) = LSCPSERVER->GetFxSendInfo((yyvsp[-2].Number),(yyvsp[0].Number));                           }
4446 #line 4447 "y.tab.c" /* yacc.c:1652  */
4447     break;
4448 
4449   case 171:
4450 #line 418 "lscp.y" /* yacc.c:1652  */
4451     { (yyval.String) = LSCPSERVER->GetDbInstrumentDirectoryCount((yyvsp[0].String), true);        }
4452 #line 4453 "y.tab.c" /* yacc.c:1652  */
4453     break;
4454 
4455   case 172:
4456 #line 419 "lscp.y" /* yacc.c:1652  */
4457     { (yyval.String) = LSCPSERVER->GetDbInstrumentDirectoryCount((yyvsp[0].String), false);       }
4458 #line 4459 "y.tab.c" /* yacc.c:1652  */
4459     break;
4460 
4461   case 173:
4462 #line 420 "lscp.y" /* yacc.c:1652  */
4463     { (yyval.String) = LSCPSERVER->GetDbInstrumentDirectoryInfo((yyvsp[0].String));               }
4464 #line 4465 "y.tab.c" /* yacc.c:1652  */
4465     break;
4466 
4467   case 174:
4468 #line 421 "lscp.y" /* yacc.c:1652  */
4469     { (yyval.String) = LSCPSERVER->GetDbInstrumentCount((yyvsp[0].String), true);                 }
4470 #line 4471 "y.tab.c" /* yacc.c:1652  */
4471     break;
4472 
4473   case 175:
4474 #line 422 "lscp.y" /* yacc.c:1652  */
4475     { (yyval.String) = LSCPSERVER->GetDbInstrumentCount((yyvsp[0].String), false);                }
4476 #line 4477 "y.tab.c" /* yacc.c:1652  */
4477     break;
4478 
4479   case 176:
4480 #line 423 "lscp.y" /* yacc.c:1652  */
4481     { (yyval.String) = LSCPSERVER->GetDbInstrumentInfo((yyvsp[0].String));                        }
4482 #line 4483 "y.tab.c" /* yacc.c:1652  */
4483     break;
4484 
4485   case 177:
4486 #line 424 "lscp.y" /* yacc.c:1652  */
4487     { (yyval.String) = LSCPSERVER->GetDbInstrumentsJobInfo((yyvsp[0].Number));                    }
4488 #line 4489 "y.tab.c" /* yacc.c:1652  */
4489     break;
4490 
4491   case 178:
4492 #line 425 "lscp.y" /* yacc.c:1652  */
4493     { (yyval.String) = LSCPSERVER->GetGlobalVolume();                              }
4494 #line 4495 "y.tab.c" /* yacc.c:1652  */
4495     break;
4496 
4497   case 179:
4498 #line 426 "lscp.y" /* yacc.c:1652  */
4499     { (yyval.String) = LSCPSERVER->GetGlobalMaxVoices();                           }
4500 #line 4501 "y.tab.c" /* yacc.c:1652  */
4501     break;
4502 
4503   case 180:
4504 #line 427 "lscp.y" /* yacc.c:1652  */
4505     { (yyval.String) = LSCPSERVER->GetGlobalMaxStreams();                          }
4506 #line 4507 "y.tab.c" /* yacc.c:1652  */
4507     break;
4508 
4509   case 181:
4510 #line 428 "lscp.y" /* yacc.c:1652  */
4511     { (yyval.String) = LSCPSERVER->GetFileInstruments((yyvsp[0].String));                         }
4512 #line 4513 "y.tab.c" /* yacc.c:1652  */
4513     break;
4514 
4515   case 182:
4516 #line 429 "lscp.y" /* yacc.c:1652  */
4517     { (yyval.String) = LSCPSERVER->GetFileInstrumentInfo((yyvsp[-2].String),(yyvsp[0].Number));                   }
4518 #line 4519 "y.tab.c" /* yacc.c:1652  */
4519     break;
4520 
4521   case 183:
4522 #line 432 "lscp.y" /* yacc.c:1652  */
4523     { (yyval.String) = LSCPSERVER->SetAudioOutputDeviceParameter((yyvsp[-4].Number), (yyvsp[-2].String), (yyvsp[0].String));      }
4524 #line 4525 "y.tab.c" /* yacc.c:1652  */
4525     break;
4526 
4527   case 184:
4528 #line 433 "lscp.y" /* yacc.c:1652  */
4529     { (yyval.String) = LSCPSERVER->SetAudioOutputChannelParameter((yyvsp[-6].Number), (yyvsp[-4].Number), (yyvsp[-2].String), (yyvsp[0].String)); }
4530 #line 4531 "y.tab.c" /* yacc.c:1652  */
4531     break;
4532 
4533   case 185:
4534 #line 434 "lscp.y" /* yacc.c:1652  */
4535     { (yyval.String) = LSCPSERVER->SetMidiInputDeviceParameter((yyvsp[-4].Number), (yyvsp[-2].String), (yyvsp[0].String));        }
4536 #line 4537 "y.tab.c" /* yacc.c:1652  */
4537     break;
4538 
4539   case 186:
4540 #line 435 "lscp.y" /* yacc.c:1652  */
4541     { (yyval.String) = LSCPSERVER->SetMidiInputPortParameter((yyvsp[-6].Number), (yyvsp[-4].Number), (yyvsp[-2].String), "");      }
4542 #line 4543 "y.tab.c" /* yacc.c:1652  */
4543     break;
4544 
4545   case 187:
4546 #line 436 "lscp.y" /* yacc.c:1652  */
4547     { (yyval.String) = LSCPSERVER->SetMidiInputPortParameter((yyvsp[-6].Number), (yyvsp[-4].Number), (yyvsp[-2].String), (yyvsp[0].String));      }
4548 #line 4549 "y.tab.c" /* yacc.c:1652  */
4549     break;
4550 
4551   case 188:
4552 #line 437 "lscp.y" /* yacc.c:1652  */
4553     { (yyval.String) = LSCPSERVER->SetEffectInstanceInputControlValue((yyvsp[-4].Number), (yyvsp[-2].Number), (yyvsp[0].Dotnum)); }
4554 #line 4555 "y.tab.c" /* yacc.c:1652  */
4555     break;
4556 
4557   case 189:
4558 #line 438 "lscp.y" /* yacc.c:1652  */
4559     { (yyval.String) = (yyvsp[0].String);                                                         }
4560 #line 4561 "y.tab.c" /* yacc.c:1652  */
4561     break;
4562 
4563   case 190:
4564 #line 439 "lscp.y" /* yacc.c:1652  */
4565     { (yyval.String) = LSCPSERVER->SetMidiInstrumentMapName((yyvsp[-2].Number), (yyvsp[0].String));               }
4566 #line 4567 "y.tab.c" /* yacc.c:1652  */
4567     break;
4568 
4569   case 191:
4570 #line 440 "lscp.y" /* yacc.c:1652  */
4571     { (yyval.String) = LSCPSERVER->SetFxSendName((yyvsp[-4].Number),(yyvsp[-2].Number),(yyvsp[0].String));                        }
4572 #line 4573 "y.tab.c" /* yacc.c:1652  */
4573     break;
4574 
4575   case 192:
4576 #line 441 "lscp.y" /* yacc.c:1652  */
4577     { (yyval.String) = LSCPSERVER->SetFxSendAudioOutputChannel((yyvsp[-6].Number),(yyvsp[-4].Number),(yyvsp[-2].Number),(yyvsp[0].Number)); }
4578 #line 4579 "y.tab.c" /* yacc.c:1652  */
4579     break;
4580 
4581   case 193:
4582 #line 442 "lscp.y" /* yacc.c:1652  */
4583     { (yyval.String) = LSCPSERVER->SetFxSendMidiController((yyvsp[-4].Number),(yyvsp[-2].Number),(yyvsp[0].Number));              }
4584 #line 4585 "y.tab.c" /* yacc.c:1652  */
4585     break;
4586 
4587   case 194:
4588 #line 443 "lscp.y" /* yacc.c:1652  */
4589     { (yyval.String) = LSCPSERVER->SetFxSendLevel((yyvsp[-4].Number),(yyvsp[-2].Number),(yyvsp[0].Dotnum));                       }
4590 #line 4591 "y.tab.c" /* yacc.c:1652  */
4591     break;
4592 
4593   case 195:
4594 #line 444 "lscp.y" /* yacc.c:1652  */
4595     { (yyval.String) = LSCPSERVER->SetFxSendEffect((yyvsp[-6].Number),(yyvsp[-4].Number),(yyvsp[-2].Number),(yyvsp[0].Number));                  }
4596 #line 4597 "y.tab.c" /* yacc.c:1652  */
4597     break;
4598 
4599   case 196:
4600 #line 445 "lscp.y" /* yacc.c:1652  */
4601     { (yyval.String) = LSCPSERVER->SetDbInstrumentDirectoryName((yyvsp[-2].String),(yyvsp[0].String));            }
4602 #line 4603 "y.tab.c" /* yacc.c:1652  */
4603     break;
4604 
4605   case 197:
4606 #line 446 "lscp.y" /* yacc.c:1652  */
4607     { (yyval.String) = LSCPSERVER->SetDbInstrumentDirectoryDescription((yyvsp[-2].String),(yyvsp[0].String));     }
4608 #line 4609 "y.tab.c" /* yacc.c:1652  */
4609     break;
4610 
4611   case 198:
4612 #line 447 "lscp.y" /* yacc.c:1652  */
4613     { (yyval.String) = LSCPSERVER->SetDbInstrumentName((yyvsp[-2].String),(yyvsp[0].String));                     }
4614 #line 4615 "y.tab.c" /* yacc.c:1652  */
4615     break;
4616 
4617   case 199:
4618 #line 448 "lscp.y" /* yacc.c:1652  */
4619     { (yyval.String) = LSCPSERVER->SetDbInstrumentDescription((yyvsp[-2].String),(yyvsp[0].String));              }
4620 #line 4621 "y.tab.c" /* yacc.c:1652  */
4621     break;
4622 
4623   case 200:
4624 #line 449 "lscp.y" /* yacc.c:1652  */
4625     { (yyval.String) = LSCPSERVER->SetDbInstrumentFilePath((yyvsp[-2].String),(yyvsp[0].String));                 }
4626 #line 4627 "y.tab.c" /* yacc.c:1652  */
4627     break;
4628 
4629   case 201:
4630 #line 450 "lscp.y" /* yacc.c:1652  */
4631     { (yyval.String) = LSCPSERVER->SetEcho((yyparse_param_t*) yyparse_param, (yyvsp[0].Dotnum));  }
4632 #line 4633 "y.tab.c" /* yacc.c:1652  */
4633     break;
4634 
4635   case 202:
4636 #line 451 "lscp.y" /* yacc.c:1652  */
4637     { (yyval.String) = LSCPSERVER->SetShellInteract((yyparse_param_t*) yyparse_param, (yyvsp[0].Dotnum)); }
4638 #line 4639 "y.tab.c" /* yacc.c:1652  */
4639     break;
4640 
4641   case 203:
4642 #line 452 "lscp.y" /* yacc.c:1652  */
4643     { (yyval.String) = LSCPSERVER->SetShellAutoCorrect((yyparse_param_t*) yyparse_param, (yyvsp[0].Dotnum)); }
4644 #line 4645 "y.tab.c" /* yacc.c:1652  */
4645     break;
4646 
4647   case 204:
4648 #line 453 "lscp.y" /* yacc.c:1652  */
4649     { (yyval.String) = LSCPSERVER->SetShellDoc((yyparse_param_t*) yyparse_param, (yyvsp[0].Dotnum)); }
4650 #line 4651 "y.tab.c" /* yacc.c:1652  */
4651     break;
4652 
4653   case 205:
4654 #line 454 "lscp.y" /* yacc.c:1652  */
4655     { (yyval.String) = LSCPSERVER->SetGlobalVolume((yyvsp[0].Dotnum));                            }
4656 #line 4657 "y.tab.c" /* yacc.c:1652  */
4657     break;
4658 
4659   case 206:
4660 #line 455 "lscp.y" /* yacc.c:1652  */
4661     { (yyval.String) = LSCPSERVER->SetGlobalMaxVoices((yyvsp[0].Number));                         }
4662 #line 4663 "y.tab.c" /* yacc.c:1652  */
4663     break;
4664 
4665   case 207:
4666 #line 456 "lscp.y" /* yacc.c:1652  */
4667     { (yyval.String) = LSCPSERVER->SetGlobalMaxStreams((yyvsp[0].Number));                        }
4668 #line 4669 "y.tab.c" /* yacc.c:1652  */
4669     break;
4670 
4671   case 208:
4672 #line 459 "lscp.y" /* yacc.c:1652  */
4673     { (yyval.String) = LSCPSERVER->CreateAudioOutputDevice((yyvsp[-2].String),(yyvsp[0].KeyValList)); }
4674 #line 4675 "y.tab.c" /* yacc.c:1652  */
4675     break;
4676 
4677   case 209:
4678 #line 460 "lscp.y" /* yacc.c:1652  */
4679     { (yyval.String) = LSCPSERVER->CreateAudioOutputDevice((yyvsp[0].String));    }
4680 #line 4681 "y.tab.c" /* yacc.c:1652  */
4681     break;
4682 
4683   case 210:
4684 #line 461 "lscp.y" /* yacc.c:1652  */
4685     { (yyval.String) = LSCPSERVER->CreateMidiInputDevice((yyvsp[-2].String),(yyvsp[0].KeyValList));   }
4686 #line 4687 "y.tab.c" /* yacc.c:1652  */
4687     break;
4688 
4689   case 211:
4690 #line 462 "lscp.y" /* yacc.c:1652  */
4691     { (yyval.String) = LSCPSERVER->CreateMidiInputDevice((yyvsp[0].String));      }
4692 #line 4693 "y.tab.c" /* yacc.c:1652  */
4693     break;
4694 
4695   case 212:
4696 #line 463 "lscp.y" /* yacc.c:1652  */
4697     { (yyval.String) = LSCPSERVER->CreateFxSend((yyvsp[-2].Number),(yyvsp[0].Number));            }
4698 #line 4699 "y.tab.c" /* yacc.c:1652  */
4699     break;
4700 
4701   case 213:
4702 #line 464 "lscp.y" /* yacc.c:1652  */
4703     { (yyval.String) = LSCPSERVER->CreateFxSend((yyvsp[-4].Number),(yyvsp[-2].Number),(yyvsp[0].String)); }
4704 #line 4705 "y.tab.c" /* yacc.c:1652  */
4705     break;
4706 
4707   case 214:
4708 #line 465 "lscp.y" /* yacc.c:1652  */
4709     { (yyval.String) = LSCPSERVER->CreateEffectInstance((yyvsp[0].Number));       }
4710 #line 4711 "y.tab.c" /* yacc.c:1652  */
4711     break;
4712 
4713   case 215:
4714 #line 466 "lscp.y" /* yacc.c:1652  */
4715     { (yyval.String) = LSCPSERVER->CreateEffectInstance((yyvsp[-4].String),(yyvsp[-2].String),(yyvsp[0].String)); }
4716 #line 4717 "y.tab.c" /* yacc.c:1652  */
4717     break;
4718 
4719   case 216:
4720 #line 469 "lscp.y" /* yacc.c:1652  */
4721     { (yyval.String) = LSCPSERVER->ResetChannel((yyvsp[0].Number)); }
4722 #line 4723 "y.tab.c" /* yacc.c:1652  */
4723     break;
4724 
4725   case 217:
4726 #line 472 "lscp.y" /* yacc.c:1652  */
4727     { (yyval.String) = LSCPSERVER->ClearMidiInstrumentMappings((yyvsp[0].Number));  }
4728 #line 4729 "y.tab.c" /* yacc.c:1652  */
4729     break;
4730 
4731   case 218:
4732 #line 473 "lscp.y" /* yacc.c:1652  */
4733     { (yyval.String) = LSCPSERVER->ClearAllMidiInstrumentMappings(); }
4734 #line 4735 "y.tab.c" /* yacc.c:1652  */
4735     break;
4736 
4737   case 219:
4738 #line 476 "lscp.y" /* yacc.c:1652  */
4739     { (yyval.String) = LSCPSERVER->FindDbInstruments((yyvsp[-2].String),(yyvsp[0].KeyValList), false);           }
4740 #line 4741 "y.tab.c" /* yacc.c:1652  */
4741     break;
4742 
4743   case 220:
4744 #line 477 "lscp.y" /* yacc.c:1652  */
4745     { (yyval.String) = LSCPSERVER->FindDbInstruments((yyvsp[-2].String),(yyvsp[0].KeyValList), true);            }
4746 #line 4747 "y.tab.c" /* yacc.c:1652  */
4747     break;
4748 
4749   case 221:
4750 #line 478 "lscp.y" /* yacc.c:1652  */
4751     { (yyval.String) = LSCPSERVER->FindDbInstrumentDirectories((yyvsp[-2].String),(yyvsp[0].KeyValList), false); }
4752 #line 4753 "y.tab.c" /* yacc.c:1652  */
4753     break;
4754 
4755   case 222:
4756 #line 479 "lscp.y" /* yacc.c:1652  */
4757     { (yyval.String) = LSCPSERVER->FindDbInstrumentDirectories((yyvsp[-2].String),(yyvsp[0].KeyValList), true);  }
4758 #line 4759 "y.tab.c" /* yacc.c:1652  */
4759     break;
4760 
4761   case 223:
4762 #line 480 "lscp.y" /* yacc.c:1652  */
4763     { (yyval.String) = LSCPSERVER->FindLostDbInstrumentFiles();                 }
4764 #line 4765 "y.tab.c" /* yacc.c:1652  */
4765     break;
4766 
4767   case 224:
4768 #line 483 "lscp.y" /* yacc.c:1652  */
4769     { (yyval.String) = LSCPSERVER->MoveDbInstrumentDirectory((yyvsp[-2].String),(yyvsp[0].String)); }
4770 #line 4771 "y.tab.c" /* yacc.c:1652  */
4771     break;
4772 
4773   case 225:
4774 #line 484 "lscp.y" /* yacc.c:1652  */
4775     { (yyval.String) = LSCPSERVER->MoveDbInstrument((yyvsp[-2].String),(yyvsp[0].String));          }
4776 #line 4777 "y.tab.c" /* yacc.c:1652  */
4777     break;
4778 
4779   case 226:
4780 #line 487 "lscp.y" /* yacc.c:1652  */
4781     { (yyval.String) = LSCPSERVER->CopyDbInstrumentDirectory((yyvsp[-2].String),(yyvsp[0].String)); }
4782 #line 4783 "y.tab.c" /* yacc.c:1652  */
4783     break;
4784 
4785   case 227:
4786 #line 488 "lscp.y" /* yacc.c:1652  */
4787     { (yyval.String) = LSCPSERVER->CopyDbInstrument((yyvsp[-2].String),(yyvsp[0].String));          }
4788 #line 4789 "y.tab.c" /* yacc.c:1652  */
4789     break;
4790 
4791   case 228:
4792 #line 491 "lscp.y" /* yacc.c:1652  */
4793     { (yyval.String) = LSCPSERVER->DestroyAudioOutputDevice((yyvsp[0].Number)); }
4794 #line 4795 "y.tab.c" /* yacc.c:1652  */
4795     break;
4796 
4797   case 229:
4798 #line 492 "lscp.y" /* yacc.c:1652  */
4799     { (yyval.String) = LSCPSERVER->DestroyMidiInputDevice((yyvsp[0].Number));   }
4800 #line 4801 "y.tab.c" /* yacc.c:1652  */
4801     break;
4802 
4803   case 230:
4804 #line 493 "lscp.y" /* yacc.c:1652  */
4805     { (yyval.String) = LSCPSERVER->DestroyFxSend((yyvsp[-2].Number),(yyvsp[0].Number)); }
4806 #line 4807 "y.tab.c" /* yacc.c:1652  */
4807     break;
4808 
4809   case 231:
4810 #line 494 "lscp.y" /* yacc.c:1652  */
4811     { (yyval.String) = LSCPSERVER->DestroyEffectInstance((yyvsp[0].Number));    }
4812 #line 4813 "y.tab.c" /* yacc.c:1652  */
4813     break;
4814 
4815   case 232:
4816 #line 497 "lscp.y" /* yacc.c:1652  */
4817     { (yyval.String) = (yyvsp[0].String); }
4818 #line 4819 "y.tab.c" /* yacc.c:1652  */
4819     break;
4820 
4821   case 233:
4822 #line 498 "lscp.y" /* yacc.c:1652  */
4823     { (yyval.String) = (yyvsp[0].String); }
4824 #line 4825 "y.tab.c" /* yacc.c:1652  */
4825     break;
4826 
4827   case 234:
4828 #line 501 "lscp.y" /* yacc.c:1652  */
4829     { (yyval.String) = LSCPSERVER->AppendSendEffectChainEffect((yyvsp[-4].Number),(yyvsp[-2].Number),(yyvsp[0].Number)); }
4830 #line 4831 "y.tab.c" /* yacc.c:1652  */
4831     break;
4832 
4833   case 235:
4834 #line 504 "lscp.y" /* yacc.c:1652  */
4835     { (yyval.String) = LSCPSERVER->InsertSendEffectChainEffect((yyvsp[-6].Number),(yyvsp[-4].Number),(yyvsp[-2].Number),(yyvsp[0].Number)); }
4836 #line 4837 "y.tab.c" /* yacc.c:1652  */
4837     break;
4838 
4839   case 236:
4840 #line 507 "lscp.y" /* yacc.c:1652  */
4841     { (yyval.String) = LSCPSERVER->SetAudioOutputDevice((yyvsp[0].Number), (yyvsp[-2].Number));      }
4842 #line 4843 "y.tab.c" /* yacc.c:1652  */
4843     break;
4844 
4845   case 237:
4846 #line 508 "lscp.y" /* yacc.c:1652  */
4847     { (yyval.String) = LSCPSERVER->SetAudioOutputChannel((yyvsp[-2].Number), (yyvsp[0].Number), (yyvsp[-4].Number)); }
4848 #line 4849 "y.tab.c" /* yacc.c:1652  */
4849     break;
4850 
4851   case 238:
4852 #line 509 "lscp.y" /* yacc.c:1652  */
4853     { (yyval.String) = LSCPSERVER->SetAudioOutputType((yyvsp[0].String), (yyvsp[-2].Number));        }
4854 #line 4855 "y.tab.c" /* yacc.c:1652  */
4855     break;
4856 
4857   case 239:
4858 #line 510 "lscp.y" /* yacc.c:1652  */
4859     { (yyval.String) = LSCPSERVER->SetMIDIInput((yyvsp[-4].Number), (yyvsp[-2].Number), (yyvsp[0].Number), (yyvsp[-6].Number));      }
4860 #line 4861 "y.tab.c" /* yacc.c:1652  */
4861     break;
4862 
4863   case 240:
4864 #line 511 "lscp.y" /* yacc.c:1652  */
4865     { (yyval.String) = LSCPSERVER->SetMIDIInputDevice((yyvsp[0].Number), (yyvsp[-2].Number));        }
4866 #line 4867 "y.tab.c" /* yacc.c:1652  */
4867     break;
4868 
4869   case 241:
4870 #line 512 "lscp.y" /* yacc.c:1652  */
4871     { (yyval.String) = LSCPSERVER->SetMIDIInputPort((yyvsp[0].Number), (yyvsp[-2].Number));          }
4872 #line 4873 "y.tab.c" /* yacc.c:1652  */
4873     break;
4874 
4875   case 242:
4876 #line 513 "lscp.y" /* yacc.c:1652  */
4877     { (yyval.String) = LSCPSERVER->SetMIDIInputChannel((yyvsp[0].Number), (yyvsp[-2].Number));       }
4878 #line 4879 "y.tab.c" /* yacc.c:1652  */
4879     break;
4880 
4881   case 243:
4882 #line 514 "lscp.y" /* yacc.c:1652  */
4883     { (yyval.String) = LSCPSERVER->SetMIDIInputType((yyvsp[0].String), (yyvsp[-2].Number));          }
4884 #line 4885 "y.tab.c" /* yacc.c:1652  */
4885     break;
4886 
4887   case 244:
4888 #line 515 "lscp.y" /* yacc.c:1652  */
4889     { (yyval.String) = LSCPSERVER->SetVolume((yyvsp[0].Dotnum), (yyvsp[-2].Number));                 }
4890 #line 4891 "y.tab.c" /* yacc.c:1652  */
4891     break;
4892 
4893   case 245:
4894 #line 516 "lscp.y" /* yacc.c:1652  */
4895     { (yyval.String) = LSCPSERVER->SetChannelMute((yyvsp[0].Dotnum), (yyvsp[-2].Number));            }
4896 #line 4897 "y.tab.c" /* yacc.c:1652  */
4897     break;
4898 
4899   case 246:
4900 #line 517 "lscp.y" /* yacc.c:1652  */
4901     { (yyval.String) = LSCPSERVER->SetChannelSolo((yyvsp[0].Dotnum), (yyvsp[-2].Number));            }
4902 #line 4903 "y.tab.c" /* yacc.c:1652  */
4903     break;
4904 
4905   case 247:
4906 #line 518 "lscp.y" /* yacc.c:1652  */
4907     { (yyval.String) = LSCPSERVER->SetChannelMap((yyvsp[-2].Number), (yyvsp[0].Number));             }
4908 #line 4909 "y.tab.c" /* yacc.c:1652  */
4909     break;
4910 
4911   case 248:
4912 #line 519 "lscp.y" /* yacc.c:1652  */
4913     { (yyval.String) = LSCPSERVER->SetChannelMap((yyvsp[-2].Number), -1);             }
4914 #line 4915 "y.tab.c" /* yacc.c:1652  */
4915     break;
4916 
4917   case 249:
4918 #line 520 "lscp.y" /* yacc.c:1652  */
4919     { (yyval.String) = LSCPSERVER->SetChannelMap((yyvsp[-2].Number), -2);             }
4920 #line 4921 "y.tab.c" /* yacc.c:1652  */
4921     break;
4922 
4923   case 250:
4924 #line 523 "lscp.y" /* yacc.c:1652  */
4925     { (yyval.String) = LSCPSERVER->EditSamplerChannelInstrument((yyvsp[0].Number)); }
4926 #line 4927 "y.tab.c" /* yacc.c:1652  */
4927     break;
4928 
4929   case 251:
4930 #line 526 "lscp.y" /* yacc.c:1652  */
4931     { (yyval.String) = LSCPSERVER->FormatInstrumentsDb(); }
4932 #line 4933 "y.tab.c" /* yacc.c:1652  */
4933     break;
4934 
4935   case 252:
4936 #line 529 "lscp.y" /* yacc.c:1652  */
4937     { (yyval.Bool) = true;  }
4938 #line 4939 "y.tab.c" /* yacc.c:1652  */
4939     break;
4940 
4941   case 253:
4942 #line 530 "lscp.y" /* yacc.c:1652  */
4943     { (yyval.Bool) = false; }
4944 #line 4945 "y.tab.c" /* yacc.c:1652  */
4945     break;
4946 
4947   case 254:
4948 #line 533 "lscp.y" /* yacc.c:1652  */
4949     { (yyval.KeyValList)[(yyvsp[-2].String)] = (yyvsp[0].String);          }
4950 #line 4951 "y.tab.c" /* yacc.c:1652  */
4951     break;
4952 
4953   case 255:
4954 #line 534 "lscp.y" /* yacc.c:1652  */
4955     { (yyval.KeyValList) = (yyvsp[-4].KeyValList); (yyval.KeyValList)[(yyvsp[-2].String)] = (yyvsp[0].String); }
4956 #line 4957 "y.tab.c" /* yacc.c:1652  */
4957     break;
4958 
4959   case 256:
4960 #line 537 "lscp.y" /* yacc.c:1652  */
4961     { (yyval.FillResponse) = fill_response_bytes;      }
4962 #line 4963 "y.tab.c" /* yacc.c:1652  */
4963     break;
4964 
4965   case 257:
4966 #line 538 "lscp.y" /* yacc.c:1652  */
4967     { (yyval.FillResponse) = fill_response_percentage; }
4968 #line 4969 "y.tab.c" /* yacc.c:1652  */
4969     break;
4970 
4971   case 258:
4972 #line 541 "lscp.y" /* yacc.c:1652  */
4973     { (yyval.String) = LSCPSERVER->GetAudioOutputDevices();              }
4974 #line 4975 "y.tab.c" /* yacc.c:1652  */
4975     break;
4976 
4977   case 259:
4978 #line 542 "lscp.y" /* yacc.c:1652  */
4979     { (yyval.String) = LSCPSERVER->GetMidiInputDevices();                }
4980 #line 4981 "y.tab.c" /* yacc.c:1652  */
4981     break;
4982 
4983   case 260:
4984 #line 543 "lscp.y" /* yacc.c:1652  */
4985     { (yyval.String) = LSCPSERVER->ListChannels();                       }
4986 #line 4987 "y.tab.c" /* yacc.c:1652  */
4987     break;
4988 
4989   case 261:
4990 #line 544 "lscp.y" /* yacc.c:1652  */
4991     { (yyval.String) = LSCPSERVER->ListChannelMidiInputs((yyvsp[0].Number));            }
4992 #line 4993 "y.tab.c" /* yacc.c:1652  */
4993     break;
4994 
4995   case 262:
4996 #line 545 "lscp.y" /* yacc.c:1652  */
4997     { (yyval.String) = LSCPSERVER->ListAvailableEngines();               }
4998 #line 4999 "y.tab.c" /* yacc.c:1652  */
4999     break;
5000 
5001   case 263:
5002 #line 546 "lscp.y" /* yacc.c:1652  */
5003     { (yyval.String) = LSCPSERVER->ListAvailableEffects();               }
5004 #line 5005 "y.tab.c" /* yacc.c:1652  */
5005     break;
5006 
5007   case 264:
5008 #line 547 "lscp.y" /* yacc.c:1652  */
5009     { (yyval.String) = LSCPSERVER->ListEffectInstances();                }
5010 #line 5011 "y.tab.c" /* yacc.c:1652  */
5011     break;
5012 
5013   case 265:
5014 #line 548 "lscp.y" /* yacc.c:1652  */
5015     { (yyval.String) = LSCPSERVER->ListSendEffectChains((yyvsp[0].Number));             }
5016 #line 5017 "y.tab.c" /* yacc.c:1652  */
5017     break;
5018 
5019   case 266:
5020 #line 549 "lscp.y" /* yacc.c:1652  */
5021     { (yyval.String) = LSCPSERVER->ListAvailableMidiInputDrivers();      }
5022 #line 5023 "y.tab.c" /* yacc.c:1652  */
5023     break;
5024 
5025   case 267:
5026 #line 550 "lscp.y" /* yacc.c:1652  */
5027     { (yyval.String) = LSCPSERVER->ListAvailableAudioOutputDrivers();    }
5028 #line 5029 "y.tab.c" /* yacc.c:1652  */
5029     break;
5030 
5031   case 268:
5032 #line 551 "lscp.y" /* yacc.c:1652  */
5033     { (yyval.String) = LSCPSERVER->ListMidiInstrumentMappings((yyvsp[0].Number));       }
5034 #line 5035 "y.tab.c" /* yacc.c:1652  */
5035     break;
5036 
5037   case 269:
5038 #line 552 "lscp.y" /* yacc.c:1652  */
5039     { (yyval.String) = LSCPSERVER->ListAllMidiInstrumentMappings();      }
5040 #line 5041 "y.tab.c" /* yacc.c:1652  */
5041     break;
5042 
5043   case 270:
5044 #line 553 "lscp.y" /* yacc.c:1652  */
5045     { (yyval.String) = LSCPSERVER->ListMidiInstrumentMaps();             }
5046 #line 5047 "y.tab.c" /* yacc.c:1652  */
5047     break;
5048 
5049   case 271:
5050 #line 554 "lscp.y" /* yacc.c:1652  */
5051     { (yyval.String) = LSCPSERVER->ListFxSends((yyvsp[0].Number));                      }
5052 #line 5053 "y.tab.c" /* yacc.c:1652  */
5053     break;
5054 
5055   case 272:
5056 #line 555 "lscp.y" /* yacc.c:1652  */
5057     { (yyval.String) = LSCPSERVER->GetDbInstrumentDirectories((yyvsp[0].String), true); }
5058 #line 5059 "y.tab.c" /* yacc.c:1652  */
5059     break;
5060 
5061   case 273:
5062 #line 556 "lscp.y" /* yacc.c:1652  */
5063     { (yyval.String) = LSCPSERVER->GetDbInstrumentDirectories((yyvsp[0].String));       }
5064 #line 5065 "y.tab.c" /* yacc.c:1652  */
5065     break;
5066 
5067   case 274:
5068 #line 557 "lscp.y" /* yacc.c:1652  */
5069     { (yyval.String) = LSCPSERVER->GetDbInstruments((yyvsp[0].String), true);           }
5070 #line 5071 "y.tab.c" /* yacc.c:1652  */
5071     break;
5072 
5073   case 275:
5074 #line 558 "lscp.y" /* yacc.c:1652  */
5075     { (yyval.String) = LSCPSERVER->GetDbInstruments((yyvsp[0].String));                 }
5076 #line 5077 "y.tab.c" /* yacc.c:1652  */
5077     break;
5078 
5079   case 276:
5080 #line 559 "lscp.y" /* yacc.c:1652  */
5081     { (yyval.String) = LSCPSERVER->ListFileInstruments((yyvsp[0].String));              }
5082 #line 5083 "y.tab.c" /* yacc.c:1652  */
5083     break;
5084 
5085   case 277:
5086 #line 562 "lscp.y" /* yacc.c:1652  */
5087     { (yyval.String) = LSCPSERVER->SendChannelMidiData((yyvsp[-6].String), (yyvsp[-4].Number), (yyvsp[-2].Number), (yyvsp[0].Number)); }
5088 #line 5089 "y.tab.c" /* yacc.c:1652  */
5089     break;
5090 
5091   case 278:
5092 #line 565 "lscp.y" /* yacc.c:1652  */
5093     { (yyval.String) = LSCPSERVER->LoadInstrument((yyvsp[-4].String), (yyvsp[-2].Number), (yyvsp[0].Number));       }
5094 #line 5095 "y.tab.c" /* yacc.c:1652  */
5095     break;
5096 
5097   case 279:
5098 #line 566 "lscp.y" /* yacc.c:1652  */
5099     { (yyval.String) = LSCPSERVER->LoadInstrument((yyvsp[-4].String), (yyvsp[-2].Number), (yyvsp[0].Number), true); }
5100 #line 5101 "y.tab.c" /* yacc.c:1652  */
5101     break;
5102 
5103   case 280:
5104 #line 569 "lscp.y" /* yacc.c:1652  */
5105     { (yyval.String) = LSCPSERVER->SetEngineType((yyvsp[-2].String), (yyvsp[0].Number)); }
5106 #line 5107 "y.tab.c" /* yacc.c:1652  */
5107     break;
5108 
5109   case 281:
5110 #line 572 "lscp.y" /* yacc.c:1652  */
5111     { (yyval.LoadMode) = MidiInstrumentMapper::ON_DEMAND;      }
5112 #line 5113 "y.tab.c" /* yacc.c:1652  */
5113     break;
5114 
5115   case 282:
5116 #line 573 "lscp.y" /* yacc.c:1652  */
5117     { (yyval.LoadMode) = MidiInstrumentMapper::ON_DEMAND_HOLD; }
5118 #line 5119 "y.tab.c" /* yacc.c:1652  */
5119     break;
5120 
5121   case 283:
5122 #line 574 "lscp.y" /* yacc.c:1652  */
5123     { (yyval.LoadMode) = MidiInstrumentMapper::PERSISTENT;     }
5124 #line 5125 "y.tab.c" /* yacc.c:1652  */
5125     break;
5126 
5127   case 290:
5128 #line 593 "lscp.y" /* yacc.c:1652  */
5129     { (yyval.Number) = 16; }
5130 #line 5131 "y.tab.c" /* yacc.c:1652  */
5131     break;
5132 
5133   case 297:
5134 #line 612 "lscp.y" /* yacc.c:1652  */
5135     { (yyval.Dotnum) = (yyvsp[0].Number); }
5136 #line 5137 "y.tab.c" /* yacc.c:1652  */
5137     break;
5138 
5139   case 303:
5140 #line 630 "lscp.y" /* yacc.c:1652  */
5141     {
5142                                  #if WIN32
5143                                  (yyval.String) = (yyvsp[0].UniversalPath).toWindows();
5144                                  #else
5145                                  // assuming POSIX
5146                                  (yyval.String) = (yyvsp[0].UniversalPath).toPosix();
5147                                  #endif
5148                              }
5149 #line 5150 "y.tab.c" /* yacc.c:1652  */
5150     break;
5151 
5152   case 304:
5153 #line 640 "lscp.y" /* yacc.c:1652  */
5154     { (yyval.String) = (yyvsp[0].UniversalPath).toDbPath(); }
5155 #line 5156 "y.tab.c" /* yacc.c:1652  */
5156     break;
5157 
5158   case 314:
5159 #line 668 "lscp.y" /* yacc.c:1652  */
5160     { (yyval.String) = (yyvsp[-2].String) + "," + (yyvsp[0].String); }
5161 #line 5162 "y.tab.c" /* yacc.c:1652  */
5162     break;
5163 
5164   case 315:
5165 #line 672 "lscp.y" /* yacc.c:1652  */
5166     { (yyval.String) = "\'" + (yyvsp[0].String) + "\'"; }
5167 #line 5168 "y.tab.c" /* yacc.c:1652  */
5168     break;
5169 
5170   case 316:
5171 #line 673 "lscp.y" /* yacc.c:1652  */
5172     { (yyval.String) = "\'" + (yyvsp[0].String) + "\'"; }
5173 #line 5174 "y.tab.c" /* yacc.c:1652  */
5174     break;
5175 
5176   case 317:
5177 #line 674 "lscp.y" /* yacc.c:1652  */
5178     { std::stringstream ss; ss << "\'" << (yyvsp[0].Number) << "\'"; (yyval.String) = ss.str(); }
5179 #line 5180 "y.tab.c" /* yacc.c:1652  */
5180     break;
5181 
5182   case 318:
5183 #line 675 "lscp.y" /* yacc.c:1652  */
5184     { std::stringstream ss; ss << "\'" << (yyvsp[0].Dotnum) << "\'"; (yyval.String) = ss.str(); }
5185 #line 5186 "y.tab.c" /* yacc.c:1652  */
5186     break;
5187 
5188   case 319:
5189 #line 678 "lscp.y" /* yacc.c:1652  */
5190     { (yyval.KeyValList)[(yyvsp[-2].String)] = (yyvsp[0].String);          }
5191 #line 5192 "y.tab.c" /* yacc.c:1652  */
5192     break;
5193 
5194   case 320:
5195 #line 679 "lscp.y" /* yacc.c:1652  */
5196     { (yyval.KeyValList) = (yyvsp[-4].KeyValList); (yyval.KeyValList)[(yyvsp[-2].String)] = (yyvsp[0].String); }
5197 #line 5198 "y.tab.c" /* yacc.c:1652  */
5198     break;
5199 
5200   case 323:
5201 #line 686 "lscp.y" /* yacc.c:1652  */
5202     { (yyval.String) = "RECURSIVE"; }
5203 #line 5204 "y.tab.c" /* yacc.c:1652  */
5204     break;
5205 
5206   case 324:
5207 #line 687 "lscp.y" /* yacc.c:1652  */
5208     { (yyval.String) = "NON_RECURSIVE"; }
5209 #line 5210 "y.tab.c" /* yacc.c:1652  */
5210     break;
5211 
5212   case 325:
5213 #line 688 "lscp.y" /* yacc.c:1652  */
5214     { (yyval.String) = "FLAT"; }
5215 #line 5216 "y.tab.c" /* yacc.c:1652  */
5216     break;
5217 
5218   case 328:
5219 #line 702 "lscp.y" /* yacc.c:1652  */
5220     { (yyval.Dotnum) = (yyvsp[0].Number); }
5221 #line 5222 "y.tab.c" /* yacc.c:1652  */
5222     break;
5223 
5224   case 329:
5225 #line 703 "lscp.y" /* yacc.c:1652  */
5226     { (yyval.Dotnum) = -1; }
5227 #line 5228 "y.tab.c" /* yacc.c:1652  */
5228     break;
5229 
5230   case 330:
5231 #line 706 "lscp.y" /* yacc.c:1652  */
5232     { std::stringstream ss((yyvsp[-2].String) + "." + (yyvsp[0].String)); ss.imbue(std::locale::classic()); ss >> (yyval.Dotnum); }
5233 #line 5234 "y.tab.c" /* yacc.c:1652  */
5234     break;
5235 
5236   case 331:
5237 #line 707 "lscp.y" /* yacc.c:1652  */
5238     { std::stringstream ss((yyvsp[-2].String) + "." + (yyvsp[0].String)); ss.imbue(std::locale::classic()); ss >> (yyval.Dotnum); }
5239 #line 5240 "y.tab.c" /* yacc.c:1652  */
5240     break;
5241 
5242   case 332:
5243 #line 708 "lscp.y" /* yacc.c:1652  */
5244     { std::stringstream ss("-" + (yyvsp[-2].String) + "." + (yyvsp[0].String)); ss.imbue(std::locale::classic()); ss >> (yyval.Dotnum); }
5245 #line 5246 "y.tab.c" /* yacc.c:1652  */
5246     break;
5247 
5248   case 333:
5249 #line 711 "lscp.y" /* yacc.c:1652  */
5250     { std::stringstream ss((yyvsp[-2].String) + "." + (yyvsp[0].String)); ss.imbue(std::locale::classic()); ss >> (yyval.Dotnum); }
5251 #line 5252 "y.tab.c" /* yacc.c:1652  */
5252     break;
5253 
5254   case 334:
5255 #line 712 "lscp.y" /* yacc.c:1652  */
5256     { std::stringstream ss((yyvsp[-2].String) + "." + (yyvsp[0].String)); ss.imbue(std::locale::classic()); ss >> (yyval.Dotnum); }
5257 #line 5258 "y.tab.c" /* yacc.c:1652  */
5258     break;
5259 
5260   case 335:
5261 #line 713 "lscp.y" /* yacc.c:1652  */
5262     { std::stringstream ss("-" + (yyvsp[-2].String) + "." + (yyvsp[0].String)); ss.imbue(std::locale::classic()); ss >> (yyval.Dotnum); }
5263 #line 5264 "y.tab.c" /* yacc.c:1652  */
5264     break;
5265 
5266   case 336:
5267 #line 714 "lscp.y" /* yacc.c:1652  */
5268     { std::stringstream ss((yyvsp[0].String)); ss.imbue(std::locale::classic()); ss >> (yyval.Dotnum);                  }
5269 #line 5270 "y.tab.c" /* yacc.c:1652  */
5270     break;
5271 
5272   case 337:
5273 #line 715 "lscp.y" /* yacc.c:1652  */
5274     { std::stringstream ss((yyvsp[0].String)); ss.imbue(std::locale::classic()); ss >> (yyval.Dotnum);                  }
5275 #line 5276 "y.tab.c" /* yacc.c:1652  */
5276     break;
5277 
5278   case 338:
5279 #line 716 "lscp.y" /* yacc.c:1652  */
5280     { std::stringstream ss("-" + (yyvsp[0].String)); ss.imbue(std::locale::classic()); ss >> (yyval.Dotnum);            }
5281 #line 5282 "y.tab.c" /* yacc.c:1652  */
5282     break;
5283 
5284   case 339:
5285 #line 720 "lscp.y" /* yacc.c:1652  */
5286     { (yyval.String) = (yyvsp[0].Char);      }
5287 #line 5288 "y.tab.c" /* yacc.c:1652  */
5288     break;
5289 
5290   case 340:
5291 #line 721 "lscp.y" /* yacc.c:1652  */
5292     { (yyval.String) = (yyvsp[-1].String) + (yyvsp[0].Char); }
5293 #line 5294 "y.tab.c" /* yacc.c:1652  */
5294     break;
5295 
5296   case 341:
5297 #line 724 "lscp.y" /* yacc.c:1652  */
5298     { (yyval.Char) = '0'; }
5299 #line 5300 "y.tab.c" /* yacc.c:1652  */
5300     break;
5301 
5302   case 342:
5303 #line 725 "lscp.y" /* yacc.c:1652  */
5304     { (yyval.Char) = '1'; }
5305 #line 5306 "y.tab.c" /* yacc.c:1652  */
5306     break;
5307 
5308   case 343:
5309 #line 726 "lscp.y" /* yacc.c:1652  */
5310     { (yyval.Char) = '2'; }
5311 #line 5312 "y.tab.c" /* yacc.c:1652  */
5312     break;
5313 
5314   case 344:
5315 #line 727 "lscp.y" /* yacc.c:1652  */
5316     { (yyval.Char) = '3'; }
5317 #line 5318 "y.tab.c" /* yacc.c:1652  */
5318     break;
5319 
5320   case 345:
5321 #line 728 "lscp.y" /* yacc.c:1652  */
5322     { (yyval.Char) = '4'; }
5323 #line 5324 "y.tab.c" /* yacc.c:1652  */
5324     break;
5325 
5326   case 346:
5327 #line 729 "lscp.y" /* yacc.c:1652  */
5328     { (yyval.Char) = '5'; }
5329 #line 5330 "y.tab.c" /* yacc.c:1652  */
5330     break;
5331 
5332   case 347:
5333 #line 730 "lscp.y" /* yacc.c:1652  */
5334     { (yyval.Char) = '6'; }
5335 #line 5336 "y.tab.c" /* yacc.c:1652  */
5336     break;
5337 
5338   case 348:
5339 #line 731 "lscp.y" /* yacc.c:1652  */
5340     { (yyval.Char) = '7'; }
5341 #line 5342 "y.tab.c" /* yacc.c:1652  */
5342     break;
5343 
5344   case 349:
5345 #line 732 "lscp.y" /* yacc.c:1652  */
5346     { (yyval.Char) = '8'; }
5347 #line 5348 "y.tab.c" /* yacc.c:1652  */
5348     break;
5349 
5350   case 350:
5351 #line 733 "lscp.y" /* yacc.c:1652  */
5352     { (yyval.Char) = '9'; }
5353 #line 5354 "y.tab.c" /* yacc.c:1652  */
5354     break;
5355 
5356   case 351:
5357 #line 736 "lscp.y" /* yacc.c:1652  */
5358     { (yyval.Char) = '0'; }
5359 #line 5360 "y.tab.c" /* yacc.c:1652  */
5360     break;
5361 
5362   case 352:
5363 #line 737 "lscp.y" /* yacc.c:1652  */
5364     { (yyval.Char) = '1'; }
5365 #line 5366 "y.tab.c" /* yacc.c:1652  */
5366     break;
5367 
5368   case 353:
5369 #line 738 "lscp.y" /* yacc.c:1652  */
5370     { (yyval.Char) = '2'; }
5371 #line 5372 "y.tab.c" /* yacc.c:1652  */
5372     break;
5373 
5374   case 354:
5375 #line 739 "lscp.y" /* yacc.c:1652  */
5376     { (yyval.Char) = '3'; }
5377 #line 5378 "y.tab.c" /* yacc.c:1652  */
5378     break;
5379 
5380   case 355:
5381 #line 740 "lscp.y" /* yacc.c:1652  */
5382     { (yyval.Char) = '4'; }
5383 #line 5384 "y.tab.c" /* yacc.c:1652  */
5384     break;
5385 
5386   case 356:
5387 #line 741 "lscp.y" /* yacc.c:1652  */
5388     { (yyval.Char) = '5'; }
5389 #line 5390 "y.tab.c" /* yacc.c:1652  */
5390     break;
5391 
5392   case 357:
5393 #line 742 "lscp.y" /* yacc.c:1652  */
5394     { (yyval.Char) = '6'; }
5395 #line 5396 "y.tab.c" /* yacc.c:1652  */
5396     break;
5397 
5398   case 358:
5399 #line 743 "lscp.y" /* yacc.c:1652  */
5400     { (yyval.Char) = '7'; }
5401 #line 5402 "y.tab.c" /* yacc.c:1652  */
5402     break;
5403 
5404   case 359:
5405 #line 746 "lscp.y" /* yacc.c:1652  */
5406     { (yyval.Char) = '0'; }
5407 #line 5408 "y.tab.c" /* yacc.c:1652  */
5408     break;
5409 
5410   case 360:
5411 #line 747 "lscp.y" /* yacc.c:1652  */
5412     { (yyval.Char) = '1'; }
5413 #line 5414 "y.tab.c" /* yacc.c:1652  */
5414     break;
5415 
5416   case 361:
5417 #line 748 "lscp.y" /* yacc.c:1652  */
5418     { (yyval.Char) = '2'; }
5419 #line 5420 "y.tab.c" /* yacc.c:1652  */
5420     break;
5421 
5422   case 362:
5423 #line 749 "lscp.y" /* yacc.c:1652  */
5424     { (yyval.Char) = '3'; }
5425 #line 5426 "y.tab.c" /* yacc.c:1652  */
5426     break;
5427 
5428   case 363:
5429 #line 750 "lscp.y" /* yacc.c:1652  */
5430     { (yyval.Char) = '4'; }
5431 #line 5432 "y.tab.c" /* yacc.c:1652  */
5432     break;
5433 
5434   case 364:
5435 #line 751 "lscp.y" /* yacc.c:1652  */
5436     { (yyval.Char) = '5'; }
5437 #line 5438 "y.tab.c" /* yacc.c:1652  */
5438     break;
5439 
5440   case 365:
5441 #line 752 "lscp.y" /* yacc.c:1652  */
5442     { (yyval.Char) = '6'; }
5443 #line 5444 "y.tab.c" /* yacc.c:1652  */
5444     break;
5445 
5446   case 366:
5447 #line 753 "lscp.y" /* yacc.c:1652  */
5448     { (yyval.Char) = '7'; }
5449 #line 5450 "y.tab.c" /* yacc.c:1652  */
5450     break;
5451 
5452   case 367:
5453 #line 754 "lscp.y" /* yacc.c:1652  */
5454     { (yyval.Char) = '8'; }
5455 #line 5456 "y.tab.c" /* yacc.c:1652  */
5456     break;
5457 
5458   case 368:
5459 #line 755 "lscp.y" /* yacc.c:1652  */
5460     { (yyval.Char) = '9'; }
5461 #line 5462 "y.tab.c" /* yacc.c:1652  */
5462     break;
5463 
5464   case 369:
5465 #line 756 "lscp.y" /* yacc.c:1652  */
5466     { (yyval.Char) = 'a'; }
5467 #line 5468 "y.tab.c" /* yacc.c:1652  */
5468     break;
5469 
5470   case 370:
5471 #line 757 "lscp.y" /* yacc.c:1652  */
5472     { (yyval.Char) = 'b'; }
5473 #line 5474 "y.tab.c" /* yacc.c:1652  */
5474     break;
5475 
5476   case 371:
5477 #line 758 "lscp.y" /* yacc.c:1652  */
5478     { (yyval.Char) = 'c'; }
5479 #line 5480 "y.tab.c" /* yacc.c:1652  */
5480     break;
5481 
5482   case 372:
5483 #line 759 "lscp.y" /* yacc.c:1652  */
5484     { (yyval.Char) = 'd'; }
5485 #line 5486 "y.tab.c" /* yacc.c:1652  */
5486     break;
5487 
5488   case 373:
5489 #line 760 "lscp.y" /* yacc.c:1652  */
5490     { (yyval.Char) = 'e'; }
5491 #line 5492 "y.tab.c" /* yacc.c:1652  */
5492     break;
5493 
5494   case 374:
5495 #line 761 "lscp.y" /* yacc.c:1652  */
5496     { (yyval.Char) = 'f'; }
5497 #line 5498 "y.tab.c" /* yacc.c:1652  */
5498     break;
5499 
5500   case 375:
5501 #line 762 "lscp.y" /* yacc.c:1652  */
5502     { (yyval.Char) = 'a'; }
5503 #line 5504 "y.tab.c" /* yacc.c:1652  */
5504     break;
5505 
5506   case 376:
5507 #line 763 "lscp.y" /* yacc.c:1652  */
5508     { (yyval.Char) = 'b'; }
5509 #line 5510 "y.tab.c" /* yacc.c:1652  */
5510     break;
5511 
5512   case 377:
5513 #line 764 "lscp.y" /* yacc.c:1652  */
5514     { (yyval.Char) = 'c'; }
5515 #line 5516 "y.tab.c" /* yacc.c:1652  */
5516     break;
5517 
5518   case 378:
5519 #line 765 "lscp.y" /* yacc.c:1652  */
5520     { (yyval.Char) = 'd'; }
5521 #line 5522 "y.tab.c" /* yacc.c:1652  */
5522     break;
5523 
5524   case 379:
5525 #line 766 "lscp.y" /* yacc.c:1652  */
5526     { (yyval.Char) = 'e'; }
5527 #line 5528 "y.tab.c" /* yacc.c:1652  */
5528     break;
5529 
5530   case 380:
5531 #line 767 "lscp.y" /* yacc.c:1652  */
5532     { (yyval.Char) = 'f'; }
5533 #line 5534 "y.tab.c" /* yacc.c:1652  */
5534     break;
5535 
5536   case 381:
5537 #line 770 "lscp.y" /* yacc.c:1652  */
5538     { (yyval.Number) = atoi(String(1, (yyvsp[0].Char)).c_str());      }
5539 #line 5540 "y.tab.c" /* yacc.c:1652  */
5540     break;
5541 
5542   case 382:
5543 #line 771 "lscp.y" /* yacc.c:1652  */
5544     { (yyval.Number) = atoi(String(String("1") + (yyvsp[0].String)).c_str()); }
5545 #line 5546 "y.tab.c" /* yacc.c:1652  */
5546     break;
5547 
5548   case 383:
5549 #line 772 "lscp.y" /* yacc.c:1652  */
5550     { (yyval.Number) = atoi(String(String("2") + (yyvsp[0].String)).c_str()); }
5551 #line 5552 "y.tab.c" /* yacc.c:1652  */
5552     break;
5553 
5554   case 384:
5555 #line 773 "lscp.y" /* yacc.c:1652  */
5556     { (yyval.Number) = atoi(String(String("3") + (yyvsp[0].String)).c_str()); }
5557 #line 5558 "y.tab.c" /* yacc.c:1652  */
5558     break;
5559 
5560   case 385:
5561 #line 774 "lscp.y" /* yacc.c:1652  */
5562     { (yyval.Number) = atoi(String(String("4") + (yyvsp[0].String)).c_str()); }
5563 #line 5564 "y.tab.c" /* yacc.c:1652  */
5564     break;
5565 
5566   case 386:
5567 #line 775 "lscp.y" /* yacc.c:1652  */
5568     { (yyval.Number) = atoi(String(String("5") + (yyvsp[0].String)).c_str()); }
5569 #line 5570 "y.tab.c" /* yacc.c:1652  */
5570     break;
5571 
5572   case 387:
5573 #line 776 "lscp.y" /* yacc.c:1652  */
5574     { (yyval.Number) = atoi(String(String("6") + (yyvsp[0].String)).c_str()); }
5575 #line 5576 "y.tab.c" /* yacc.c:1652  */
5576     break;
5577 
5578   case 388:
5579 #line 777 "lscp.y" /* yacc.c:1652  */
5580     { (yyval.Number) = atoi(String(String("7") + (yyvsp[0].String)).c_str()); }
5581 #line 5582 "y.tab.c" /* yacc.c:1652  */
5582     break;
5583 
5584   case 389:
5585 #line 778 "lscp.y" /* yacc.c:1652  */
5586     { (yyval.Number) = atoi(String(String("8") + (yyvsp[0].String)).c_str()); }
5587 #line 5588 "y.tab.c" /* yacc.c:1652  */
5588     break;
5589 
5590   case 390:
5591 #line 779 "lscp.y" /* yacc.c:1652  */
5592     { (yyval.Number) = atoi(String(String("9") + (yyvsp[0].String)).c_str()); }
5593 #line 5594 "y.tab.c" /* yacc.c:1652  */
5594     break;
5595 
5596   case 391:
5597 #line 782 "lscp.y" /* yacc.c:1652  */
5598     { (yyval.UniversalPath) = (yyvsp[-1].UniversalPath); }
5599 #line 5600 "y.tab.c" /* yacc.c:1652  */
5600     break;
5601 
5602   case 392:
5603 #line 783 "lscp.y" /* yacc.c:1652  */
5604     { (yyval.UniversalPath) = (yyvsp[-1].UniversalPath); }
5605 #line 5606 "y.tab.c" /* yacc.c:1652  */
5606     break;
5607 
5608   case 393:
5609 #line 786 "lscp.y" /* yacc.c:1652  */
5610     { (yyval.UniversalPath) = (yyvsp[-1].UniversalPath) + (yyvsp[0].UniversalPath); }
5611 #line 5612 "y.tab.c" /* yacc.c:1652  */
5612     break;
5613 
5614   case 394:
5615 #line 789 "lscp.y" /* yacc.c:1652  */
5616     { (yyval.UniversalPath) = Path();                    }
5617 #line 5618 "y.tab.c" /* yacc.c:1652  */
5618     break;
5619 
5620   case 395:
5621 #line 790 "lscp.y" /* yacc.c:1652  */
5622     { Path p; p.setDrive((yyvsp[-2].Char)); (yyval.UniversalPath) = p; }
5623 #line 5624 "y.tab.c" /* yacc.c:1652  */
5624     break;
5625 
5626   case 396:
5627 #line 793 "lscp.y" /* yacc.c:1652  */
5628     { (yyval.UniversalPath) = Path();                           }
5629 #line 5630 "y.tab.c" /* yacc.c:1652  */
5630     break;
5631 
5632   case 397:
5633 #line 794 "lscp.y" /* yacc.c:1652  */
5634     { (yyval.UniversalPath) = (yyvsp[-1].UniversalPath);                               }
5635 #line 5636 "y.tab.c" /* yacc.c:1652  */
5636     break;
5637 
5638   case 398:
5639 #line 795 "lscp.y" /* yacc.c:1652  */
5640     { Path p; p.appendNode((yyvsp[0].String)); (yyval.UniversalPath) = (yyvsp[-1].UniversalPath) + p; }
5641 #line 5642 "y.tab.c" /* yacc.c:1652  */
5642     break;
5643 
5644   case 399:
5645 #line 798 "lscp.y" /* yacc.c:1652  */
5646     { (yyval.String) = (yyvsp[-1].String); }
5647 #line 5648 "y.tab.c" /* yacc.c:1652  */
5648     break;
5649 
5650   case 400:
5651 #line 799 "lscp.y" /* yacc.c:1652  */
5652     { (yyval.String) = (yyvsp[-1].String); }
5653 #line 5654 "y.tab.c" /* yacc.c:1652  */
5654     break;
5655 
5656   case 401:
5657 #line 802 "lscp.y" /* yacc.c:1652  */
5658     { (yyval.String) = (yyvsp[-1].String); }
5659 #line 5660 "y.tab.c" /* yacc.c:1652  */
5660     break;
5661 
5662   case 402:
5663 #line 803 "lscp.y" /* yacc.c:1652  */
5664     { (yyval.String) = (yyvsp[-1].String); }
5665 #line 5666 "y.tab.c" /* yacc.c:1652  */
5666     break;
5667 
5668   case 403:
5669 #line 806 "lscp.y" /* yacc.c:1652  */
5670     { (yyval.String) = " ";      }
5671 #line 5672 "y.tab.c" /* yacc.c:1652  */
5672     break;
5673 
5674   case 405:
5675 #line 808 "lscp.y" /* yacc.c:1652  */
5676     { (yyval.String) = (yyvsp[-1].String) + " "; }
5677 #line 5678 "y.tab.c" /* yacc.c:1652  */
5678     break;
5679 
5680   case 406:
5681 #line 809 "lscp.y" /* yacc.c:1652  */
5682     { (yyval.String) = (yyvsp[-1].String) + (yyvsp[0].String);  }
5683 #line 5684 "y.tab.c" /* yacc.c:1652  */
5684     break;
5685 
5686   case 407:
5687 #line 813 "lscp.y" /* yacc.c:1652  */
5688     { (yyval.String) = " ";      }
5689 #line 5690 "y.tab.c" /* yacc.c:1652  */
5690     break;
5691 
5692   case 409:
5693 #line 815 "lscp.y" /* yacc.c:1652  */
5694     { (yyval.String) = (yyvsp[-1].String) + " "; }
5695 #line 5696 "y.tab.c" /* yacc.c:1652  */
5696     break;
5697 
5698   case 410:
5699 #line 816 "lscp.y" /* yacc.c:1652  */
5700     { (yyval.String) = (yyvsp[-1].String) + (yyvsp[0].String);  }
5701 #line 5702 "y.tab.c" /* yacc.c:1652  */
5702     break;
5703 
5704   case 411:
5705 #line 819 "lscp.y" /* yacc.c:1652  */
5706     { (yyval.String) = "/";      }
5707 #line 5708 "y.tab.c" /* yacc.c:1652  */
5708     break;
5709 
5710   case 413:
5711 #line 821 "lscp.y" /* yacc.c:1652  */
5712     { (yyval.String) = (yyvsp[-1].String) + "/"; }
5713 #line 5714 "y.tab.c" /* yacc.c:1652  */
5714     break;
5715 
5716   case 414:
5717 #line 822 "lscp.y" /* yacc.c:1652  */
5718     { (yyval.String) = (yyvsp[-1].String) + (yyvsp[0].String);  }
5719 #line 5720 "y.tab.c" /* yacc.c:1652  */
5720     break;
5721 
5722   case 415:
5723 #line 825 "lscp.y" /* yacc.c:1652  */
5724     { std::string s; s = (yyvsp[0].Char); (yyval.String) = s; }
5725 #line 5726 "y.tab.c" /* yacc.c:1652  */
5726     break;
5727 
5728   case 416:
5729 #line 826 "lscp.y" /* yacc.c:1652  */
5730     { (yyval.String) = (yyvsp[-1].String) + (yyvsp[0].Char);                  }
5731 #line 5732 "y.tab.c" /* yacc.c:1652  */
5732     break;
5733 
5734   case 417:
5735 #line 829 "lscp.y" /* yacc.c:1652  */
5736     { std::string s; s = (yyvsp[0].Char); (yyval.String) = s; }
5737 #line 5738 "y.tab.c" /* yacc.c:1652  */
5738     break;
5739 
5740   case 418:
5741 #line 830 "lscp.y" /* yacc.c:1652  */
5742     { std::string s; s = (yyvsp[0].Char); (yyval.String) = s; }
5743 #line 5744 "y.tab.c" /* yacc.c:1652  */
5744     break;
5745 
5746   case 419:
5747 #line 831 "lscp.y" /* yacc.c:1652  */
5748     { (yyval.String) = (yyvsp[-1].String) + (yyvsp[0].Char);                  }
5749 #line 5750 "y.tab.c" /* yacc.c:1652  */
5750     break;
5751 
5752   case 420:
5753 #line 832 "lscp.y" /* yacc.c:1652  */
5754     { (yyval.String) = (yyvsp[-1].String) + (yyvsp[0].Char);                  }
5755 #line 5756 "y.tab.c" /* yacc.c:1652  */
5756     break;
5757 
5758   case 422:
5759 #line 837 "lscp.y" /* yacc.c:1652  */
5760     { (yyval.Char) = '\\'; }
5761 #line 5762 "y.tab.c" /* yacc.c:1652  */
5762     break;
5763 
5764   case 423:
5765 #line 838 "lscp.y" /* yacc.c:1652  */
5766     { (yyval.Char) = '/';  }
5767 #line 5768 "y.tab.c" /* yacc.c:1652  */
5768     break;
5769 
5770   case 424:
5771 #line 842 "lscp.y" /* yacc.c:1652  */
5772     { (yyval.Char) = 'A'; }
5773 #line 5774 "y.tab.c" /* yacc.c:1652  */
5774     break;
5775 
5776   case 425:
5777 #line 842 "lscp.y" /* yacc.c:1652  */
5778     { (yyval.Char) = 'B'; }
5779 #line 5780 "y.tab.c" /* yacc.c:1652  */
5780     break;
5781 
5782   case 426:
5783 #line 842 "lscp.y" /* yacc.c:1652  */
5784     { (yyval.Char) = 'C'; }
5785 #line 5786 "y.tab.c" /* yacc.c:1652  */
5786     break;
5787 
5788   case 427:
5789 #line 842 "lscp.y" /* yacc.c:1652  */
5790     { (yyval.Char) = 'D'; }
5791 #line 5792 "y.tab.c" /* yacc.c:1652  */
5792     break;
5793 
5794   case 428:
5795 #line 842 "lscp.y" /* yacc.c:1652  */
5796     { (yyval.Char) = 'E'; }
5797 #line 5798 "y.tab.c" /* yacc.c:1652  */
5798     break;
5799 
5800   case 429:
5801 #line 842 "lscp.y" /* yacc.c:1652  */
5802     { (yyval.Char) = 'F'; }
5803 #line 5804 "y.tab.c" /* yacc.c:1652  */
5804     break;
5805 
5806   case 430:
5807 #line 842 "lscp.y" /* yacc.c:1652  */
5808     { (yyval.Char) = 'G'; }
5809 #line 5810 "y.tab.c" /* yacc.c:1652  */
5810     break;
5811 
5812   case 431:
5813 #line 842 "lscp.y" /* yacc.c:1652  */
5814     { (yyval.Char) = 'H'; }
5815 #line 5816 "y.tab.c" /* yacc.c:1652  */
5816     break;
5817 
5818   case 432:
5819 #line 842 "lscp.y" /* yacc.c:1652  */
5820     { (yyval.Char) = 'I'; }
5821 #line 5822 "y.tab.c" /* yacc.c:1652  */
5822     break;
5823 
5824   case 433:
5825 #line 842 "lscp.y" /* yacc.c:1652  */
5826     { (yyval.Char) = 'J'; }
5827 #line 5828 "y.tab.c" /* yacc.c:1652  */
5828     break;
5829 
5830   case 434:
5831 #line 842 "lscp.y" /* yacc.c:1652  */
5832     { (yyval.Char) = 'K'; }
5833 #line 5834 "y.tab.c" /* yacc.c:1652  */
5834     break;
5835 
5836   case 435:
5837 #line 842 "lscp.y" /* yacc.c:1652  */
5838     { (yyval.Char) = 'L'; }
5839 #line 5840 "y.tab.c" /* yacc.c:1652  */
5840     break;
5841 
5842   case 436:
5843 #line 842 "lscp.y" /* yacc.c:1652  */
5844     { (yyval.Char) = 'M'; }
5845 #line 5846 "y.tab.c" /* yacc.c:1652  */
5846     break;
5847 
5848   case 437:
5849 #line 842 "lscp.y" /* yacc.c:1652  */
5850     { (yyval.Char) = 'N'; }
5851 #line 5852 "y.tab.c" /* yacc.c:1652  */
5852     break;
5853 
5854   case 438:
5855 #line 842 "lscp.y" /* yacc.c:1652  */
5856     { (yyval.Char) = 'O'; }
5857 #line 5858 "y.tab.c" /* yacc.c:1652  */
5858     break;
5859 
5860   case 439:
5861 #line 842 "lscp.y" /* yacc.c:1652  */
5862     { (yyval.Char) = 'P'; }
5863 #line 5864 "y.tab.c" /* yacc.c:1652  */
5864     break;
5865 
5866   case 440:
5867 #line 842 "lscp.y" /* yacc.c:1652  */
5868     { (yyval.Char) = 'Q'; }
5869 #line 5870 "y.tab.c" /* yacc.c:1652  */
5870     break;
5871 
5872   case 441:
5873 #line 842 "lscp.y" /* yacc.c:1652  */
5874     { (yyval.Char) = 'R'; }
5875 #line 5876 "y.tab.c" /* yacc.c:1652  */
5876     break;
5877 
5878   case 442:
5879 #line 842 "lscp.y" /* yacc.c:1652  */
5880     { (yyval.Char) = 'S'; }
5881 #line 5882 "y.tab.c" /* yacc.c:1652  */
5882     break;
5883 
5884   case 443:
5885 #line 842 "lscp.y" /* yacc.c:1652  */
5886     { (yyval.Char) = 'T'; }
5887 #line 5888 "y.tab.c" /* yacc.c:1652  */
5888     break;
5889 
5890   case 444:
5891 #line 842 "lscp.y" /* yacc.c:1652  */
5892     { (yyval.Char) = 'U'; }
5893 #line 5894 "y.tab.c" /* yacc.c:1652  */
5894     break;
5895 
5896   case 445:
5897 #line 842 "lscp.y" /* yacc.c:1652  */
5898     { (yyval.Char) = 'V'; }
5899 #line 5900 "y.tab.c" /* yacc.c:1652  */
5900     break;
5901 
5902   case 446:
5903 #line 842 "lscp.y" /* yacc.c:1652  */
5904     { (yyval.Char) = 'W'; }
5905 #line 5906 "y.tab.c" /* yacc.c:1652  */
5906     break;
5907 
5908   case 447:
5909 #line 842 "lscp.y" /* yacc.c:1652  */
5910     { (yyval.Char) = 'X'; }
5911 #line 5912 "y.tab.c" /* yacc.c:1652  */
5912     break;
5913 
5914   case 448:
5915 #line 842 "lscp.y" /* yacc.c:1652  */
5916     { (yyval.Char) = 'Y'; }
5917 #line 5918 "y.tab.c" /* yacc.c:1652  */
5918     break;
5919 
5920   case 449:
5921 #line 842 "lscp.y" /* yacc.c:1652  */
5922     { (yyval.Char) = 'Z'; }
5923 #line 5924 "y.tab.c" /* yacc.c:1652  */
5924     break;
5925 
5926   case 450:
5927 #line 843 "lscp.y" /* yacc.c:1652  */
5928     { (yyval.Char) = 'a'; }
5929 #line 5930 "y.tab.c" /* yacc.c:1652  */
5930     break;
5931 
5932   case 451:
5933 #line 843 "lscp.y" /* yacc.c:1652  */
5934     { (yyval.Char) = 'b'; }
5935 #line 5936 "y.tab.c" /* yacc.c:1652  */
5936     break;
5937 
5938   case 452:
5939 #line 843 "lscp.y" /* yacc.c:1652  */
5940     { (yyval.Char) = 'c'; }
5941 #line 5942 "y.tab.c" /* yacc.c:1652  */
5942     break;
5943 
5944   case 453:
5945 #line 843 "lscp.y" /* yacc.c:1652  */
5946     { (yyval.Char) = 'd'; }
5947 #line 5948 "y.tab.c" /* yacc.c:1652  */
5948     break;
5949 
5950   case 454:
5951 #line 843 "lscp.y" /* yacc.c:1652  */
5952     { (yyval.Char) = 'e'; }
5953 #line 5954 "y.tab.c" /* yacc.c:1652  */
5954     break;
5955 
5956   case 455:
5957 #line 843 "lscp.y" /* yacc.c:1652  */
5958     { (yyval.Char) = 'f'; }
5959 #line 5960 "y.tab.c" /* yacc.c:1652  */
5960     break;
5961 
5962   case 456:
5963 #line 843 "lscp.y" /* yacc.c:1652  */
5964     { (yyval.Char) = 'g'; }
5965 #line 5966 "y.tab.c" /* yacc.c:1652  */
5966     break;
5967 
5968   case 457:
5969 #line 843 "lscp.y" /* yacc.c:1652  */
5970     { (yyval.Char) = 'h'; }
5971 #line 5972 "y.tab.c" /* yacc.c:1652  */
5972     break;
5973 
5974   case 458:
5975 #line 843 "lscp.y" /* yacc.c:1652  */
5976     { (yyval.Char) = 'i'; }
5977 #line 5978 "y.tab.c" /* yacc.c:1652  */
5978     break;
5979 
5980   case 459:
5981 #line 843 "lscp.y" /* yacc.c:1652  */
5982     { (yyval.Char) = 'j'; }
5983 #line 5984 "y.tab.c" /* yacc.c:1652  */
5984     break;
5985 
5986   case 460:
5987 #line 843 "lscp.y" /* yacc.c:1652  */
5988     { (yyval.Char) = 'k'; }
5989 #line 5990 "y.tab.c" /* yacc.c:1652  */
5990     break;
5991 
5992   case 461:
5993 #line 843 "lscp.y" /* yacc.c:1652  */
5994     { (yyval.Char) = 'l'; }
5995 #line 5996 "y.tab.c" /* yacc.c:1652  */
5996     break;
5997 
5998   case 462:
5999 #line 843 "lscp.y" /* yacc.c:1652  */
6000     { (yyval.Char) = 'm'; }
6001 #line 6002 "y.tab.c" /* yacc.c:1652  */
6002     break;
6003 
6004   case 463:
6005 #line 843 "lscp.y" /* yacc.c:1652  */
6006     { (yyval.Char) = 'n'; }
6007 #line 6008 "y.tab.c" /* yacc.c:1652  */
6008     break;
6009 
6010   case 464:
6011 #line 843 "lscp.y" /* yacc.c:1652  */
6012     { (yyval.Char) = 'o'; }
6013 #line 6014 "y.tab.c" /* yacc.c:1652  */
6014     break;
6015 
6016   case 465:
6017 #line 843 "lscp.y" /* yacc.c:1652  */
6018     { (yyval.Char) = 'p'; }
6019 #line 6020 "y.tab.c" /* yacc.c:1652  */
6020     break;
6021 
6022   case 466:
6023 #line 843 "lscp.y" /* yacc.c:1652  */
6024     { (yyval.Char) = 'q'; }
6025 #line 6026 "y.tab.c" /* yacc.c:1652  */
6026     break;
6027 
6028   case 467:
6029 #line 843 "lscp.y" /* yacc.c:1652  */
6030     { (yyval.Char) = 'r'; }
6031 #line 6032 "y.tab.c" /* yacc.c:1652  */
6032     break;
6033 
6034   case 468:
6035 #line 843 "lscp.y" /* yacc.c:1652  */
6036     { (yyval.Char) = 's'; }
6037 #line 6038 "y.tab.c" /* yacc.c:1652  */
6038     break;
6039 
6040   case 469:
6041 #line 843 "lscp.y" /* yacc.c:1652  */
6042     { (yyval.Char) = 't'; }
6043 #line 6044 "y.tab.c" /* yacc.c:1652  */
6044     break;
6045 
6046   case 470:
6047 #line 843 "lscp.y" /* yacc.c:1652  */
6048     { (yyval.Char) = 'u'; }
6049 #line 6050 "y.tab.c" /* yacc.c:1652  */
6050     break;
6051 
6052   case 471:
6053 #line 843 "lscp.y" /* yacc.c:1652  */
6054     { (yyval.Char) = 'v'; }
6055 #line 6056 "y.tab.c" /* yacc.c:1652  */
6056     break;
6057 
6058   case 472:
6059 #line 843 "lscp.y" /* yacc.c:1652  */
6060     { (yyval.Char) = 'w'; }
6061 #line 6062 "y.tab.c" /* yacc.c:1652  */
6062     break;
6063 
6064   case 473:
6065 #line 843 "lscp.y" /* yacc.c:1652  */
6066     { (yyval.Char) = 'x'; }
6067 #line 6068 "y.tab.c" /* yacc.c:1652  */
6068     break;
6069 
6070   case 474:
6071 #line 843 "lscp.y" /* yacc.c:1652  */
6072     { (yyval.Char) = 'y'; }
6073 #line 6074 "y.tab.c" /* yacc.c:1652  */
6074     break;
6075 
6076   case 475:
6077 #line 843 "lscp.y" /* yacc.c:1652  */
6078     { (yyval.Char) = 'z'; }
6079 #line 6080 "y.tab.c" /* yacc.c:1652  */
6080     break;
6081 
6082   case 477:
6083 #line 848 "lscp.y" /* yacc.c:1652  */
6084     { (yyval.Char) = '0'; }
6085 #line 6086 "y.tab.c" /* yacc.c:1652  */
6086     break;
6087 
6088   case 478:
6089 #line 848 "lscp.y" /* yacc.c:1652  */
6090     { (yyval.Char) = '1'; }
6091 #line 6092 "y.tab.c" /* yacc.c:1652  */
6092     break;
6093 
6094   case 479:
6095 #line 848 "lscp.y" /* yacc.c:1652  */
6096     { (yyval.Char) = '2'; }
6097 #line 6098 "y.tab.c" /* yacc.c:1652  */
6098     break;
6099 
6100   case 480:
6101 #line 848 "lscp.y" /* yacc.c:1652  */
6102     { (yyval.Char) = '3'; }
6103 #line 6104 "y.tab.c" /* yacc.c:1652  */
6104     break;
6105 
6106   case 481:
6107 #line 848 "lscp.y" /* yacc.c:1652  */
6108     { (yyval.Char) = '4'; }
6109 #line 6110 "y.tab.c" /* yacc.c:1652  */
6110     break;
6111 
6112   case 482:
6113 #line 848 "lscp.y" /* yacc.c:1652  */
6114     { (yyval.Char) = '5'; }
6115 #line 6116 "y.tab.c" /* yacc.c:1652  */
6116     break;
6117 
6118   case 483:
6119 #line 848 "lscp.y" /* yacc.c:1652  */
6120     { (yyval.Char) = '6'; }
6121 #line 6122 "y.tab.c" /* yacc.c:1652  */
6122     break;
6123 
6124   case 484:
6125 #line 848 "lscp.y" /* yacc.c:1652  */
6126     { (yyval.Char) = '7'; }
6127 #line 6128 "y.tab.c" /* yacc.c:1652  */
6128     break;
6129 
6130   case 485:
6131 #line 848 "lscp.y" /* yacc.c:1652  */
6132     { (yyval.Char) = '8'; }
6133 #line 6134 "y.tab.c" /* yacc.c:1652  */
6134     break;
6135 
6136   case 486:
6137 #line 848 "lscp.y" /* yacc.c:1652  */
6138     { (yyval.Char) = '9'; }
6139 #line 6140 "y.tab.c" /* yacc.c:1652  */
6140     break;
6141 
6142   case 487:
6143 #line 849 "lscp.y" /* yacc.c:1652  */
6144     { (yyval.Char) = '!'; }
6145 #line 6146 "y.tab.c" /* yacc.c:1652  */
6146     break;
6147 
6148   case 488:
6149 #line 849 "lscp.y" /* yacc.c:1652  */
6150     { (yyval.Char) = '#'; }
6151 #line 6152 "y.tab.c" /* yacc.c:1652  */
6152     break;
6153 
6154   case 489:
6155 #line 849 "lscp.y" /* yacc.c:1652  */
6156     { (yyval.Char) = '$'; }
6157 #line 6158 "y.tab.c" /* yacc.c:1652  */
6158     break;
6159 
6160   case 490:
6161 #line 849 "lscp.y" /* yacc.c:1652  */
6162     { (yyval.Char) = '%'; }
6163 #line 6164 "y.tab.c" /* yacc.c:1652  */
6164     break;
6165 
6166   case 491:
6167 #line 849 "lscp.y" /* yacc.c:1652  */
6168     { (yyval.Char) = '&'; }
6169 #line 6170 "y.tab.c" /* yacc.c:1652  */
6170     break;
6171 
6172   case 492:
6173 #line 849 "lscp.y" /* yacc.c:1652  */
6174     { (yyval.Char) = '('; }
6175 #line 6176 "y.tab.c" /* yacc.c:1652  */
6176     break;
6177 
6178   case 493:
6179 #line 849 "lscp.y" /* yacc.c:1652  */
6180     { (yyval.Char) = ')'; }
6181 #line 6182 "y.tab.c" /* yacc.c:1652  */
6182     break;
6183 
6184   case 494:
6185 #line 849 "lscp.y" /* yacc.c:1652  */
6186     { (yyval.Char) = '*'; }
6187 #line 6188 "y.tab.c" /* yacc.c:1652  */
6188     break;
6189 
6190   case 495:
6191 #line 849 "lscp.y" /* yacc.c:1652  */
6192     { (yyval.Char) = '+'; }
6193 #line 6194 "y.tab.c" /* yacc.c:1652  */
6194     break;
6195 
6196   case 496:
6197 #line 849 "lscp.y" /* yacc.c:1652  */
6198     { (yyval.Char) = '-'; }
6199 #line 6200 "y.tab.c" /* yacc.c:1652  */
6200     break;
6201 
6202   case 497:
6203 #line 849 "lscp.y" /* yacc.c:1652  */
6204     { (yyval.Char) = '.'; }
6205 #line 6206 "y.tab.c" /* yacc.c:1652  */
6206     break;
6207 
6208   case 498:
6209 #line 849 "lscp.y" /* yacc.c:1652  */
6210     { (yyval.Char) = ','; }
6211 #line 6212 "y.tab.c" /* yacc.c:1652  */
6212     break;
6213 
6214   case 499:
6215 #line 850 "lscp.y" /* yacc.c:1652  */
6216     { (yyval.Char) = ':'; }
6217 #line 6218 "y.tab.c" /* yacc.c:1652  */
6218     break;
6219 
6220   case 500:
6221 #line 850 "lscp.y" /* yacc.c:1652  */
6222     { (yyval.Char) = ';'; }
6223 #line 6224 "y.tab.c" /* yacc.c:1652  */
6224     break;
6225 
6226   case 501:
6227 #line 850 "lscp.y" /* yacc.c:1652  */
6228     { (yyval.Char) = '<'; }
6229 #line 6230 "y.tab.c" /* yacc.c:1652  */
6230     break;
6231 
6232   case 502:
6233 #line 850 "lscp.y" /* yacc.c:1652  */
6234     { (yyval.Char) = '='; }
6235 #line 6236 "y.tab.c" /* yacc.c:1652  */
6236     break;
6237 
6238   case 503:
6239 #line 850 "lscp.y" /* yacc.c:1652  */
6240     { (yyval.Char) = '>'; }
6241 #line 6242 "y.tab.c" /* yacc.c:1652  */
6242     break;
6243 
6244   case 504:
6245 #line 850 "lscp.y" /* yacc.c:1652  */
6246     { (yyval.Char) = '?'; }
6247 #line 6248 "y.tab.c" /* yacc.c:1652  */
6248     break;
6249 
6250   case 505:
6251 #line 850 "lscp.y" /* yacc.c:1652  */
6252     { (yyval.Char) = '@'; }
6253 #line 6254 "y.tab.c" /* yacc.c:1652  */
6254     break;
6255 
6256   case 506:
6257 #line 851 "lscp.y" /* yacc.c:1652  */
6258     { (yyval.Char) = '['; }
6259 #line 6260 "y.tab.c" /* yacc.c:1652  */
6260     break;
6261 
6262   case 507:
6263 #line 851 "lscp.y" /* yacc.c:1652  */
6264     { (yyval.Char) = ']'; }
6265 #line 6266 "y.tab.c" /* yacc.c:1652  */
6266     break;
6267 
6268   case 508:
6269 #line 851 "lscp.y" /* yacc.c:1652  */
6270     { (yyval.Char) = '^'; }
6271 #line 6272 "y.tab.c" /* yacc.c:1652  */
6272     break;
6273 
6274   case 509:
6275 #line 851 "lscp.y" /* yacc.c:1652  */
6276     { (yyval.Char) = '_'; }
6277 #line 6278 "y.tab.c" /* yacc.c:1652  */
6278     break;
6279 
6280   case 510:
6281 #line 852 "lscp.y" /* yacc.c:1652  */
6282     { (yyval.Char) = '{'; }
6283 #line 6284 "y.tab.c" /* yacc.c:1652  */
6284     break;
6285 
6286   case 511:
6287 #line 852 "lscp.y" /* yacc.c:1652  */
6288     { (yyval.Char) = '|'; }
6289 #line 6290 "y.tab.c" /* yacc.c:1652  */
6290     break;
6291 
6292   case 512:
6293 #line 852 "lscp.y" /* yacc.c:1652  */
6294     { (yyval.Char) = '}'; }
6295 #line 6296 "y.tab.c" /* yacc.c:1652  */
6296     break;
6297 
6298   case 513:
6299 #line 852 "lscp.y" /* yacc.c:1652  */
6300     { (yyval.Char) = '~'; }
6301 #line 6302 "y.tab.c" /* yacc.c:1652  */
6302     break;
6303 
6304   case 515:
6305 #line 856 "lscp.y" /* yacc.c:1652  */
6306     { (yyval.Char) = '\''; }
6307 #line 6308 "y.tab.c" /* yacc.c:1652  */
6308     break;
6309 
6310   case 516:
6311 #line 857 "lscp.y" /* yacc.c:1652  */
6312     { (yyval.Char) = '\"'; }
6313 #line 6314 "y.tab.c" /* yacc.c:1652  */
6314     break;
6315 
6316   case 517:
6317 #line 858 "lscp.y" /* yacc.c:1652  */
6318     { (yyval.Char) = '\\'; }
6319 #line 6320 "y.tab.c" /* yacc.c:1652  */
6320     break;
6321 
6322   case 518:
6323 #line 859 "lscp.y" /* yacc.c:1652  */
6324     { (yyval.Char) = '/';  }
6325 #line 6326 "y.tab.c" /* yacc.c:1652  */
6326     break;
6327 
6328   case 519:
6329 #line 860 "lscp.y" /* yacc.c:1652  */
6330     { (yyval.Char) = '\n'; }
6331 #line 6332 "y.tab.c" /* yacc.c:1652  */
6332     break;
6333 
6334   case 520:
6335 #line 861 "lscp.y" /* yacc.c:1652  */
6336     { (yyval.Char) = '\r'; }
6337 #line 6338 "y.tab.c" /* yacc.c:1652  */
6338     break;
6339 
6340   case 521:
6341 #line 862 "lscp.y" /* yacc.c:1652  */
6342     { (yyval.Char) = '\f'; }
6343 #line 6344 "y.tab.c" /* yacc.c:1652  */
6344     break;
6345 
6346   case 522:
6347 #line 863 "lscp.y" /* yacc.c:1652  */
6348     { (yyval.Char) = '\t'; }
6349 #line 6350 "y.tab.c" /* yacc.c:1652  */
6350     break;
6351 
6352   case 523:
6353 #line 864 "lscp.y" /* yacc.c:1652  */
6354     { (yyval.Char) = '\v'; }
6355 #line 6356 "y.tab.c" /* yacc.c:1652  */
6356     break;
6357 
6358   case 526:
6359 #line 869 "lscp.y" /* yacc.c:1652  */
6360     { (yyval.Char) = (char) octalsToNumber((yyvsp[0].Char));       }
6361 #line 6362 "y.tab.c" /* yacc.c:1652  */
6362     break;
6363 
6364   case 527:
6365 #line 870 "lscp.y" /* yacc.c:1652  */
6366     { (yyval.Char) = (char) octalsToNumber((yyvsp[0].Char),(yyvsp[-1].Char));    }
6367 #line 6368 "y.tab.c" /* yacc.c:1652  */
6368     break;
6369 
6370   case 528:
6371 #line 871 "lscp.y" /* yacc.c:1652  */
6372     { (yyval.Char) = (char) octalsToNumber((yyvsp[0].Char),(yyvsp[-1].Char),(yyvsp[-2].Char)); }
6373 #line 6374 "y.tab.c" /* yacc.c:1652  */
6374     break;
6375 
6376   case 529:
6377 #line 874 "lscp.y" /* yacc.c:1652  */
6378     { (yyval.Char) = (char) hexsToNumber((yyvsp[0].Char));    }
6379 #line 6380 "y.tab.c" /* yacc.c:1652  */
6380     break;
6381 
6382   case 530:
6383 #line 875 "lscp.y" /* yacc.c:1652  */
6384     { (yyval.Char) = (char) hexsToNumber((yyvsp[0].Char),(yyvsp[-1].Char)); }
6385 #line 6386 "y.tab.c" /* yacc.c:1652  */
6386     break;
6387 
6388 
6389 #line 6390 "y.tab.c" /* yacc.c:1652  */
6390       default: break;
6391     }
6392   /* User semantic actions sometimes alter yychar, and that requires
6393      that yytoken be updated with the new translation.  We take the
6394      approach of translating immediately before every use of yytoken.
6395      One alternative is translating here after every semantic action,
6396      but that translation would be missed if the semantic action invokes
6397      YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
6398      if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
6399      incorrect destructor might then be invoked immediately.  In the
6400      case of YYERROR or YYBACKUP, subsequent parser actions might lead
6401      to an incorrect destructor call or verbose syntax error message
6402      before the lookahead is translated.  */
6403   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
6404 
6405   YYPOPSTACK (yylen);
6406   yylen = 0;
6407   YY_STACK_PRINT (yyss, yyssp);
6408 
6409   *++yyvsp = yyval;
6410 
6411   /* Now 'shift' the result of the reduction.  Determine what state
6412      that goes to, based on the state we popped back to and the rule
6413      number reduced by.  */
6414   {
6415     const int yylhs = yyr1[yyn] - YYNTOKENS;
6416     const int yyi = yypgoto[yylhs] + *yyssp;
6417     yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
6418                ? yytable[yyi]
6419                : yydefgoto[yylhs]);
6420   }
6421 
6422   goto yynewstate;
6423 
6424 
6425 /*--------------------------------------.
6426 | yyerrlab -- here on detecting error.  |
6427 `--------------------------------------*/
6428 yyerrlab:
6429   /* Make sure we have latest lookahead translation.  See comments at
6430      user semantic actions for why this is necessary.  */
6431   yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
6432 
6433   /* If not already recovering from an error, report this error.  */
6434   if (!yyerrstatus)
6435     {
6436       ++yynerrs;
6437 #if ! YYERROR_VERBOSE
6438       yyerror (yyparse_param, YY_("syntax error"));
6439 #else
6440 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
6441                                         yyssp, yytoken)
6442       {
6443         char const *yymsgp = YY_("syntax error");
6444         int yysyntax_error_status;
6445         yysyntax_error_status = YYSYNTAX_ERROR;
6446         if (yysyntax_error_status == 0)
6447           yymsgp = yymsg;
6448         else if (yysyntax_error_status == 1)
6449           {
6450             if (yymsg != yymsgbuf)
6451               YYSTACK_FREE (yymsg);
6452             yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
6453             if (!yymsg)
6454               {
6455                 yymsg = yymsgbuf;
6456                 yymsg_alloc = sizeof yymsgbuf;
6457                 yysyntax_error_status = 2;
6458               }
6459             else
6460               {
6461                 yysyntax_error_status = YYSYNTAX_ERROR;
6462                 yymsgp = yymsg;
6463               }
6464           }
6465         yyerror (yyparse_param, yymsgp);
6466         if (yysyntax_error_status == 2)
6467           goto yyexhaustedlab;
6468       }
6469 # undef YYSYNTAX_ERROR
6470 #endif
6471     }
6472 
6473 
6474 
6475   if (yyerrstatus == 3)
6476     {
6477       /* If just tried and failed to reuse lookahead token after an
6478          error, discard it.  */
6479 
6480       if (yychar <= YYEOF)
6481         {
6482           /* Return failure if at end of input.  */
6483           if (yychar == YYEOF)
6484             YYABORT;
6485         }
6486       else
6487         {
6488           yydestruct ("Error: discarding",
6489                       yytoken, &yylval, yyparse_param);
6490           yychar = YYEMPTY;
6491         }
6492     }
6493 
6494   /* Else will try to reuse lookahead token after shifting the error
6495      token.  */
6496   goto yyerrlab1;
6497 
6498 
6499 /*---------------------------------------------------.
6500 | yyerrorlab -- error raised explicitly by YYERROR.  |
6501 `---------------------------------------------------*/
6502 yyerrorlab:
6503   /* Pacify compilers when the user code never invokes YYERROR and the
6504      label yyerrorlab therefore never appears in user code.  */
6505   if (0)
6506     YYERROR;
6507 
6508   /* Do not reclaim the symbols of the rule whose action triggered
6509      this YYERROR.  */
6510   YYPOPSTACK (yylen);
6511   yylen = 0;
6512   YY_STACK_PRINT (yyss, yyssp);
6513   yystate = *yyssp;
6514   goto yyerrlab1;
6515 
6516 
6517 /*-------------------------------------------------------------.
6518 | yyerrlab1 -- common code for both syntax error and YYERROR.  |
6519 `-------------------------------------------------------------*/
6520 yyerrlab1:
6521   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
6522 
6523   for (;;)
6524     {
6525       yyn = yypact[yystate];
6526       if (!yypact_value_is_default (yyn))
6527         {
6528           yyn += YYTERROR;
6529           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
6530             {
6531               yyn = yytable[yyn];
6532               if (0 < yyn)
6533                 break;
6534             }
6535         }
6536 
6537       /* Pop the current state because it cannot handle the error token.  */
6538       if (yyssp == yyss)
6539         YYABORT;
6540 
6541 
6542       yydestruct ("Error: popping",
6543                   yystos[yystate], yyvsp, yyparse_param);
6544       YYPOPSTACK (1);
6545       yystate = *yyssp;
6546       YY_STACK_PRINT (yyss, yyssp);
6547     }
6548 
6549   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
6550   *++yyvsp = yylval;
6551   YY_IGNORE_MAYBE_UNINITIALIZED_END
6552 
6553 
6554   /* Shift the error token.  */
6555   YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
6556 
6557   yystate = yyn;
6558   goto yynewstate;
6559 
6560 
6561 /*-------------------------------------.
6562 | yyacceptlab -- YYACCEPT comes here.  |
6563 `-------------------------------------*/
6564 yyacceptlab:
6565   yyresult = 0;
6566   goto yyreturn;
6567 
6568 
6569 /*-----------------------------------.
6570 | yyabortlab -- YYABORT comes here.  |
6571 `-----------------------------------*/
6572 yyabortlab:
6573   yyresult = 1;
6574   goto yyreturn;
6575 
6576 
6577 #if !defined yyoverflow || YYERROR_VERBOSE
6578 /*-------------------------------------------------.
6579 | yyexhaustedlab -- memory exhaustion comes here.  |
6580 `-------------------------------------------------*/
6581 yyexhaustedlab:
6582   yyerror (yyparse_param, YY_("memory exhausted"));
6583   yyresult = 2;
6584   /* Fall through.  */
6585 #endif
6586 
6587 
6588 /*-----------------------------------------------------.
6589 | yyreturn -- parsing is finished, return the result.  |
6590 `-----------------------------------------------------*/
6591 yyreturn:
6592   if (yychar != YYEMPTY)
6593     {
6594       /* Make sure we have latest lookahead translation.  See comments at
6595          user semantic actions for why this is necessary.  */
6596       yytoken = YYTRANSLATE (yychar);
6597       yydestruct ("Cleanup: discarding lookahead",
6598                   yytoken, &yylval, yyparse_param);
6599     }
6600   /* Do not reclaim the symbols of the rule whose action triggered
6601      this YYABORT or YYACCEPT.  */
6602   YYPOPSTACK (yylen);
6603   YY_STACK_PRINT (yyss, yyssp);
6604   while (yyssp != yyss)
6605     {
6606       yydestruct ("Cleanup: popping",
6607                   yystos[*yyssp], yyvsp, yyparse_param);
6608       YYPOPSTACK (1);
6609     }
6610 #ifndef yyoverflow
6611   if (yyss != yyssa)
6612     YYSTACK_FREE (yyss);
6613 #endif
6614 #if YYERROR_VERBOSE
6615   if (yymsg != yymsgbuf)
6616     YYSTACK_FREE (yymsg);
6617 #endif
6618   return yyresult;
6619 }
6620 #line 1297 "lscp.y" /* yacc.c:1918  */
6621 
6622 
6623 // TODO: actually would be fine to have the following bunch of source code in a separate file, however those functions are a) accessing private Bison tables like yytable and b) including the functions from another file here would make the line numbers incorrect on compile errors in auto generated lscpparser.cpp
6624 
6625 /**
6626  * Additional informations of a grammar symbol.
6627  */
6628 struct BisonSymbolInfo {
6629     bool isTerminalSymbol; ///< Whether the symbol is a terminal or non-termianl symbol. NOTE: Read comment regarding this in _isRuleTerminalSymbol() !!
6630     String nextExpectedChars; ///< According to current parser position: sequence of characters expected next for satisfying this grammar symbol.
6631 };
6632 
6633 #if HAVE_BISON_MAJ >= 3 // Bison 3.x or younger ...
6634 
6635 /**
6636  * Must ONLY be called just before a so called "reduce" parser action:
6637  * Returns true if the grammar rule, which is just about to be "reduced", is a
6638  * terminal symbol (in *our* terms).
6639  *
6640  * Please note that the term "terminal symbol" is a bit confusingly used in
6641  * this source code here around. In Bison's terms, "terminal symbols" are (more
6642  * or less) just the numbers returned by the YYLEX function. Since we decided
6643  * though to use a convenient solution without a separate lexer, and all its
6644  * caveats, all numbers by the yylex() function here are just the ASCII
6645  * numbers of the individual characters received. Based on that however, one
6646  * single character is not what one would intuitively expect of being a
6647  * "terminal symbol", because it is simply too primitive.
6648  *
6649  * So in this LSCP parser source code a "terminal symbol" rather means a
6650  * keyword like "CREATE" or "GET". In the grammal definition above, those are
6651  * however defined as grammar rules (non-terminals in Bison's terms). So this
6652  * function decides like this: if the given grammar rule just contains
6653  * individual characters on the right side of its grammar rule, then it is a
6654  * "terminal symbol" in *our* terms.
6655  *
6656  * @param rule - Bison grammar rule number
6657  * @param stack - reflecting current Bison parser state
6658  */
_isRuleTerminalSymbol(int rule,const std::vector<YYTYPE_INT16> & stack)6659 inline static bool _isRuleTerminalSymbol(int rule, const std::vector<YYTYPE_INT16>& stack) {
6660     int nrhs = yyr2[rule];
6661     for (int i = 0; i < nrhs; ++i)
6662         if (yystos[*(stack.end() - nrhs + i)] >= YYNTOKENS) return false;
6663     return true;
6664 }
6665 
6666 /**
6667  * Must ONLY be called just before a so called "reduce" parser action: Returns
6668  * additional informations to the given grammar rule that is about to be
6669  * "reduced".
6670  *
6671  * @param rule - Bison grammar rule number
6672  * @param stack - reflecting current Bison parser state
6673  * @param nextExpectedChars - must already be filled with the characters
6674  *                            expected to be coming next
6675  */
_symbolInfoForRule(int rule,const std::vector<YYTYPE_INT16> & stack,const String & nextExpectedChars)6676 inline static BisonSymbolInfo _symbolInfoForRule(int rule, const std::vector<YYTYPE_INT16>& stack, const String& nextExpectedChars) {
6677     BisonSymbolInfo info;
6678     info.isTerminalSymbol = _isRuleTerminalSymbol(rule, stack);
6679     if (info.isTerminalSymbol) info.nextExpectedChars  = nextExpectedChars;
6680     return info;
6681 }
6682 
6683 #else // Bison 2.x or older ...
6684 
6685 //TODO: The Bison 2.x code below can probably soon just be deleted. Most Bisonx 2.x versions should be able to compile successfully with the Bison 3.x code above as well (just requires the existence of table yystos[] in the auto generated lscpparser.cpp).
6686 
6687 /**
6688  * Returns true if the given grammar @a rule is a terminal symbol (in *our*
6689  * terms).
6690  *
6691  * Please note that the term "terminal symbol" is a bit confusingly used in
6692  * this source code here around. In Bison's terms, "terminal symbols" are (more
6693  * or less) just the numbers returned by the YYLEX function. Since we decided
6694  * though to use a convenient solution without a separate lexer, and all its
6695  * caveats, all numbers by the yylex() function here are just the ASCII
6696  * numbers of the individual characters received. Based on that however, one
6697  * single character is not what one would intuitively expect of being a
6698  * "terminal symbol", because it is simply too primitive.
6699  *
6700  * So in this LSCP parser source code a "terminal symbol" rather means a
6701  * keyword like "CREATE" or "GET". In the grammal definition above, those are
6702  * however defined as grammar rules (non-terminals in Bison's terms). So this
6703  * function decides like this: if the given grammar rule just contains
6704  * individual characters on the right side of its grammar rule, then it is a
6705  * "terminal symbol" in *our* terms.
6706  *
6707  * @param rule - Bison grammar rule number
6708  */
_isRuleTerminalSymbol(int rule)6709 inline static bool _isRuleTerminalSymbol(int rule) {
6710     for (int i = yyprhs[rule]; yyrhs[i] != -1; ++i)
6711         if (yyrhs[i] >= YYNTOKENS) return false;
6712     return true;
6713 }
6714 
6715 /**
6716  * Returns additional informations to the given grammar @a rule.
6717  *
6718  * @param rule - grammar rule index to retrieve informations about
6719  * @param nextExpectedChars - must already be filled with the characters
6720  *                            expected to be coming next
6721  */
_symbolInfoForRule(int rule,const String & nextExpectedChars)6722 inline static BisonSymbolInfo _symbolInfoForRule(int rule, const String& nextExpectedChars) {
6723     BisonSymbolInfo info;
6724     info.isTerminalSymbol = _isRuleTerminalSymbol(rule);
6725     if (info.isTerminalSymbol) info.nextExpectedChars  = nextExpectedChars;
6726     return info;
6727 }
6728 
6729 #endif // HAVE_BISON_MAJ >= 3
6730 
6731 /**
6732  * Returns the human readable name of the given @a token.
6733  */
_tokenName(int token)6734 inline static String _tokenName(int token) {
6735     String s = yytname[token];
6736     // remove leading and trailing apostrophes that Bison usually adds to
6737     // ASCII characters used directly in grammar rules
6738     if (s.empty()) return s;
6739     if (s[0] == '\'') s.erase(0, 1);
6740     if (s.empty()) return s;
6741     if (s[s.size() - 1] == '\'') s.erase(s.size() - 1);
6742     return s;
6743 }
6744 
6745 /**
6746  * Assumes the given @a token is exactly one character and returns that
6747  * character. This must be changed in future, i.e. in case Unicode characters
6748  * will be introduced in the LSCP grammar one day.
6749  */
_tokenChar(int token)6750 inline static char _tokenChar(int token) {
6751     String s = _tokenName(token);
6752     if (s == "\\n") return '\n';
6753     if (s == "\\r") return '\r';
6754     return _tokenName(token)[0];
6755 }
6756 
6757 /**
6758  * Implements Bison's so called "reduce" action, according to Bison's LALR(1)
6759  * parser algorithm.
6760  */
_yyReduce(std::vector<YYTYPE_INT16> & stack,const int & rule)6761 inline static int _yyReduce(std::vector<YYTYPE_INT16>& stack, const int& rule) {
6762     if (stack.empty()) throw 1; // severe error
6763     const int len = yyr2[rule];
6764     stack.resize(stack.size() - len);
6765     YYTYPE_INT16 newState = yypgoto[yyr1[rule] - YYNTOKENS] + stack.back();
6766     if (0 <= newState && newState <= YYLAST && yycheck[newState] == stack.back())
6767         newState = yytable[newState];
6768     else
6769         newState = yydefgoto[yyr1[rule] - YYNTOKENS];
6770     stack.push_back(newState);
6771     return newState;
6772 }
6773 
6774 /**
6775  * Implements Bison's so called "default reduce" action, according to Bison's
6776  * LALR(1) parser algorithm.
6777  */
_yyDefaultReduce(std::vector<YYTYPE_INT16> & stack)6778 inline static int _yyDefaultReduce(std::vector<YYTYPE_INT16>& stack) {
6779     if (stack.empty()) throw 2; // severe error
6780     int rule = yydefact[stack.back()];
6781     if (rule <= 0 || rule >= YYNRULES) throw 3; // no rule, something is wrong
6782     return _yyReduce(stack, rule);
6783 }
6784 
6785 static bool yyValid(std::vector<YYTYPE_INT16>& stack, char ch);
6786 
6787 /**
6788  * A set of parser symbol stacks. This type is used for the recursive algorithms
6789  * in a) yyAutoComplete() and b) walkAndFillExpectedSymbols() for detecting
6790  * endless recursions.
6791  *
6792  * This unique container is used to keep track of all previous parser states
6793  * (stacks), for detecting a parser symbol stack that has already been
6794  * encountered before. Because if yyAutoComplete() or
6795  * walkAndFillExpectedSymbols() reach the exactly same parser symbol stack
6796  * again, that means there is an endless recursion in that part of the grammar
6797  * tree branch and shall not be evaluated any further, since it would end up in
6798  * an endless loop of the algorithm otherwise.
6799  *
6800  * This solution consumes a lot of memory, but unfortunately there is no other
6801  * easy way to solve it. With our grammar and today's usual memory heap size &
6802  * memory stack size in modern devices, it should be fine though.
6803  */
6804 typedef std::set< std::vector<YYTYPE_INT16> > YYStackHistory;
6805 
6806 /*
6807  * YYTERROR macro was removed in Bison 3.6.0, we need it in function below.
6808  */
6809 #ifndef YYTERROR
6810 # define YYTERROR YYSYMBOL_YYerror
6811 #endif
6812 
6813 #define DEBUG_BISON_SYNTAX_ERROR_WALKER 0
6814 
6815 /**
6816  * Tries to find the next expected grammar symbols according to the given
6817  * precise parse position & state represented by @a stack, according to Bison's
6818  * LALR(1) parser algorithm.
6819  *
6820  * This function is given a Bison parser symbol stack, reflecting the parser's
6821  * entire state at a certain point, i.e. when a syntax error occured. This
6822  * function will then walk ahead the potential parse tree starting from the
6823  * current head of the given symbol stack. This function will call itself
6824  * recursively to scan the individual parse tree branches. As soon as it hits
6825  * on the next non-terminal grammar symbol in one parse tree branch, it adds the
6826  * found non-terminal symbol to @a expectedSymbols and aborts scanning the
6827  * respective tree branch further. If any local parser state is reached a second
6828  * time, the respective parse tree is aborted to avoid any endless recursion.
6829  *
6830  * @param stack - current Bison (yacc) symbol stack to be examined
6831  * @param expectedSymbols - will be filled with next expected grammar symbols
6832  * @param nextExpectedChars - just for internal purpose, due to the recursive
6833  *                            implementation of this function, do supply an
6834  *                            empty string for this argument
6835  * @param history - only for internal purpose, keeps a history of all previous
6836  *                  parser symbol stacks (just for avoiding endless recursion in
6837  *                  this recursive algorithm), do supply an empty history
6838  * @param depth - just for internal debugging purposes, do not supply it
6839  */
walkAndFillExpectedSymbols(std::vector<YYTYPE_INT16> & stack,std::map<String,BisonSymbolInfo> & expectedSymbols,String & nextExpectedChars,YYStackHistory & history,int depth=0)6840 static void walkAndFillExpectedSymbols(
6841     std::vector<YYTYPE_INT16>& stack,
6842     std::map<String,BisonSymbolInfo>& expectedSymbols,
6843     String& nextExpectedChars, YYStackHistory& history, int depth = 0)
6844 {
6845 #if DEBUG_BISON_SYNTAX_ERROR_WALKER
6846     printf("\n");
6847     for (int i = 0; i < depth; ++i) printf("\t");
6848     printf("Symbol stack:");
6849     for (int i = 0; i < stack.size(); ++i) {
6850         printf(" %d", stack[i]);
6851     }
6852     printf("\n");
6853 #endif
6854     startLabel:
6855 
6856     // detect endless recursion
6857     if (history.count(stack)) return;
6858     history.insert(stack);
6859 
6860     if (stack.empty()) {
6861 #if DEBUG_BISON_SYNTAX_ERROR_WALKER
6862         for (int i = 0; i < depth; ++i) printf("\t");
6863         printf("(EMPTY STACK)\n");
6864 #endif
6865         return;
6866     }
6867 
6868     int state = stack[stack.size() - 1];
6869     int n = yypact[state];
6870     if (n == YYPACT_NINF) { // default reduction required ...
6871         // get default reduction rule for this state
6872         n = yydefact[state];
6873         if (n <= 0 || n >= YYNRULES) {
6874 #if DEBUG_BISON_SYNTAX_ERROR_WALKER
6875             for (int i = 0; i < depth; ++i) printf("\t");
6876             printf("(EMPTY RULE)\n");
6877 #endif
6878             return; // no rule, something is wrong
6879         }
6880 #if DEBUG_BISON_SYNTAX_ERROR_WALKER
6881         for (int i = 0; i < depth; ++i) printf("\t");
6882         printf("(default reduction)\n");
6883 #endif
6884         #if HAVE_BISON_MAJ >= 3
6885         if (!nextExpectedChars.empty() || !_isRuleTerminalSymbol(n, stack)) {
6886         #else
6887         if (!nextExpectedChars.empty() || !_isRuleTerminalSymbol(n)) {
6888         #endif
6889             // Return the new resolved expected symbol (left-hand symbol of grammar
6890             // rule), then we're done in this state. (If the same symbol can be
6891             // matched on different ways, then it is non-terminal symbol.)
6892             bool ambigious =
6893                 expectedSymbols.count(yytname[yyr1[n]]) &&
6894                 expectedSymbols[yytname[yyr1[n]]].nextExpectedChars != nextExpectedChars;
6895             #if HAVE_BISON_MAJ >= 3
6896             expectedSymbols[yytname[yyr1[n]]] = _symbolInfoForRule(n, stack, nextExpectedChars);
6897             #else
6898             expectedSymbols[yytname[yyr1[n]]] = _symbolInfoForRule(n, nextExpectedChars);
6899             #endif
6900             if (ambigious)
6901                 expectedSymbols[yytname[yyr1[n]]].isTerminalSymbol = false;
6902 #if DEBUG_BISON_SYNTAX_ERROR_WALKER
6903             for (int i = 0; i < depth; ++i) printf("\t");
6904             printf("(empty expectedChars. sym = %s)\n", yytname[yyr1[n]]);
6905 #endif
6906             return;
6907         }
6908         _yyReduce(stack, n);
6909         goto startLabel;
6910     }
6911     if (!(YYPACT_NINF < n && n <= YYLAST)) {
6912 #if DEBUG_BISON_SYNTAX_ERROR_WALKER
6913         for (int i = 0; i < depth; ++i) printf("\t");
6914         printf("(invalid action B)\n");
6915 #endif
6916         return;
6917     }
6918 
6919     // Check for duplicate states, if duplicates exist return
6920     // (this check is necessary since the introduction of the yyValid() call
6921     // below, which does not care about duplicates).
6922     for (int i = 0; i < stack.size(); ++i)
6923         for (int k = i + 1; k < stack.size(); ++k)
6924             if (stack[i] == stack[k])
6925                 return;
6926 
6927 #if DEBUG_BISON_SYNTAX_ERROR_WALKER
6928     for (int i = 0; i < depth; ++i) printf("\t");
6929     printf("Expected tokens:");
6930 #endif
6931     int begin = n < 0 ? -n : 0;
6932     //int checklim = YYLAST - n + 1;
6933     int end = YYNTOKENS;//checklim < YYNTOKENS ? checklim : YYNTOKENS;
6934     int rule, action, stackSize, nextExpectedCharsLen;
6935     for (int token = begin; token < end; ++token) {
6936         if (token <= YYTERROR) continue;
6937         if (yytname[token] == String("$undefined")) continue;
6938         if (yytname[token] == String("EXT_ASCII_CHAR")) continue;
6939         //if (yycheck[n + token] != token) goto default_reduction;
6940         if (yycheck[n + token] != token) { // default reduction suggested ...
6941             // If we are here, it means the current token in the loop would not
6942             // cause a "shift", however we don't already know whether this token
6943             // is valid or not. Because there might be several reductions
6944             // involved until one can determine whether the token causes an
6945             // error or is valid. So we use this heavy check instead:
6946             std::vector<YYTYPE_INT16> stackCopy = stack; // copy required, since reduction will take place
6947             if (!yyValid(stackCopy, _tokenChar(token))) continue; // invalid token
6948 #if DEBUG_BISON_SYNTAX_ERROR_WALKER
6949             printf(" ETdr(%s)", yytname[token]);
6950 #endif
6951             // the token is valid, "stackCopy" has been reduced accordingly
6952             // and now do recurse ...
6953             nextExpectedChars += _tokenName(token);
6954             nextExpectedCharsLen = (int)nextExpectedChars.size();
6955             walkAndFillExpectedSymbols( //FIXME: could cause stack overflow (should be a loop instead), is probably fine with our current grammar though
6956                 stackCopy, expectedSymbols, nextExpectedChars, history, depth + 1
6957             );
6958             nextExpectedChars.resize(nextExpectedCharsLen); // restore 'nextExpectedChars'
6959             continue;
6960         }
6961 #if DEBUG_BISON_SYNTAX_ERROR_WALKER
6962         printf(" ET(%s)", yytname[token]);
6963 #endif
6964 
6965         action = yytable[n + token];
6966         if (action == 0 || action == YYTABLE_NINF) {
6967 #if DEBUG_BISON_SYNTAX_ERROR_WALKER
6968             printf(" (invalid action A) "); fflush(stdout);
6969 #endif
6970             continue; // error, ignore
6971         }
6972         if (action < 0) { // reduction with rule -action required ...
6973 #if DEBUG_BISON_SYNTAX_ERROR_WALKER
6974             printf(" (reduction) "); fflush(stdout);
6975 #endif
6976             rule = -action;
6977             goto reduce;
6978         }
6979         if (action == YYFINAL) {
6980 #if DEBUG_BISON_SYNTAX_ERROR_WALKER
6981             printf(" (ACCEPT) "); fflush(stdout);
6982 #endif
6983             continue; // "accept" state, we don't care about it here
6984         }
6985 
6986         // "shift" required ...
6987 
6988         if (std::find(stack.begin(), stack.end(), action) != stack.end()) {
6989 #if DEBUG_BISON_SYNTAX_ERROR_WALKER
6990             printf(" (duplicate state %d) ", action); fflush(stdout);
6991 #endif
6992             continue; // duplicate state, ignore it to avoid endless recursions
6993         }
6994 
6995         // "shift" / push the new state on the symbol stack and call this
6996         // function recursively, and restore the stack after the recurse return
6997         stackSize = (int)stack.size();
6998         nextExpectedCharsLen = (int)nextExpectedChars.size();
6999         stack.push_back(action);
7000         nextExpectedChars += _tokenName(token);
7001         walkAndFillExpectedSymbols( //FIXME: could cause stack overflow (should be a loop instead), is probably fine with our current grammar though
7002             stack, expectedSymbols, nextExpectedChars, history, depth + 1
7003         );
7004         stack.resize(stackSize); // restore stack
7005         nextExpectedChars.resize(nextExpectedCharsLen); // restore 'nextExpectedChars'
7006         continue;
7007 
7008     //default_reduction: // resolve default reduction for this state
7009     //    printf(" (default red.) "); fflush(stdout);
7010     //    rule = yydefact[state];
7011 
7012     reduce: // "reduce" required
7013 #if DEBUG_BISON_SYNTAX_ERROR_WALKER
7014         printf(" (reduce by %d) ", rule); fflush(stdout);
7015 #endif
7016         if (rule == 0 || rule >= YYNRULES) {
7017 #if DEBUG_BISON_SYNTAX_ERROR_WALKER
7018             printf(" (invalid rule) "); fflush(stdout);
7019 #endif
7020             continue; // invalid rule, something is wrong
7021         }
7022         // Store the left-hand symbol of the grammar rule. (If the same symbol
7023         // can be matched on different ways, then it is non-terminal symbol.)
7024         bool ambigious =
7025             expectedSymbols.count(yytname[yyr1[rule]]) &&
7026             expectedSymbols[yytname[yyr1[rule]]].nextExpectedChars != nextExpectedChars;
7027         #if HAVE_BISON_MAJ >= 3
7028         expectedSymbols[yytname[yyr1[rule]]] = _symbolInfoForRule(rule, stack, nextExpectedChars);
7029         #else
7030         expectedSymbols[yytname[yyr1[rule]]] = _symbolInfoForRule(rule, nextExpectedChars);
7031         #endif
7032         if (ambigious)
7033             expectedSymbols[yytname[yyr1[n]]].isTerminalSymbol = false;
7034 #if DEBUG_BISON_SYNTAX_ERROR_WALKER
7035         printf(" (SYM %s) ", yytname[yyr1[rule]]); fflush(stdout);
7036 #endif
7037     }
7038 #if DEBUG_BISON_SYNTAX_ERROR_WALKER
7039     printf("\n");
7040 #endif
7041 }
7042 
7043 /**
7044  * Just a convenience wrapper on top of the actual walkAndFillExpectedSymbols()
7045  * implementation above, which can be called with less parameters than the
7046  * implementing function above actually requires.
7047  */
7048 static void walkAndFillExpectedSymbols(
7049     std::vector<YYTYPE_INT16>& stack,
7050     std::map<String,BisonSymbolInfo>& expectedSymbols)
7051 {
7052     String nextExpectedChars;
7053     YYStackHistory history;
7054 
7055     walkAndFillExpectedSymbols(
7056         stack, expectedSymbols, nextExpectedChars, history
7057     );
7058 }
7059 
7060 #define DEBUG_PUSH_PARSE 0
7061 
7062 /**
7063  * Implements parsing exactly one character (given by @a ch), continueing at the
7064  * parser position reflected by @a stack. The @a stack will hold the new parser
7065  * state after this call.
7066  *
7067  * This function is implemented according to Bison's LALR(1) parser algorithm.
7068  */
7069 static bool yyPushParse(std::vector<YYTYPE_INT16>& stack, char ch) {
7070     startLabel:
7071 
7072 #if DEBUG_PUSH_PARSE
7073     //printf("\n");
7074     //for (int i = 0; i < depth; ++i) printf("\t");
7075     printf("Symbol stack:");
7076     for (int i = 0; i < stack.size(); ++i) {
7077         printf(" %d", stack[i]);
7078     }
7079     printf(" char='%c'(%d)\n", ch, (int)ch);
7080 #endif
7081 
7082     if (stack.empty()) return false;
7083 
7084     int state = stack.back();
7085     int n = yypact[state];
7086     if (n == YYPACT_NINF) { // default reduction required ...
7087 #if DEBUG_PUSH_PARSE
7088         printf("(def reduce 1)\n");
7089 #endif
7090         state = _yyDefaultReduce(stack);
7091         goto startLabel;
7092     }
7093     if (!(YYPACT_NINF < n && n <= YYLAST)) return false;
7094 
7095     YYTYPE_INT16 token = (ch == YYEOF) ? YYEOF : yytranslate[ch];
7096     n += token;
7097     if (n < 0 || YYLAST < n || yycheck[n] != token) {
7098 #if DEBUG_PUSH_PARSE
7099         printf("(def reduce 2) n=%d token=%d\n", n, token);
7100 #endif
7101         state = _yyDefaultReduce(stack);
7102         goto startLabel;
7103     }
7104     int action = yytable[n]; // yytable[yypact[state] + token]
7105     if (action == 0 || action == YYTABLE_NINF) throw 4;
7106     if (action < 0) {
7107 #if DEBUG_PUSH_PARSE
7108         printf("(reduce)\n");
7109 #endif
7110         int rule = -action;
7111         state = _yyReduce(stack, rule);
7112         goto startLabel;
7113     }
7114     if (action == YYFINAL) return true; // final state reached
7115 
7116 #if DEBUG_PUSH_PARSE
7117     printf("(push)\n");
7118 #endif
7119     // push new state
7120     state = action;
7121     stack.push_back(state);
7122     return true;
7123 }
7124 
7125 /**
7126  * Returns true if parsing ahead with given character @a ch is syntactically
7127  * valid according to the LSCP grammar, it returns false if it would create a
7128  * parse error.
7129  *
7130  * The @a stack will reflect the new parser state after this call.
7131  *
7132  * This is just a wrapper ontop of yyPushParse() which converts parser
7133  * exceptions thrown by yyPushParse() into @c false return value.
7134  */
7135 static bool yyValid(std::vector<YYTYPE_INT16>& stack, char ch) {
7136     try {
7137         return yyPushParse(stack, ch);
7138     } catch (int i) {
7139 #if DEBUG_PUSH_PARSE
7140         printf("exception %d\n", i);
7141 #endif
7142         return false;
7143     } catch (...) {
7144         return false;
7145     }
7146 }
7147 
7148 /**
7149  * Returns the amount of correct characters of given @a line from the left,
7150  * according to the LSCP grammar.
7151  *
7152  * @param stack - a Bison symbol stack to work with
7153  * @param line  - the input line to check
7154  * @param bAutoCorrect - if true: try to correct obvious, trivial syntax errors
7155  */
7156 static int yyValidCharacters(std::vector<YYTYPE_INT16>& stack, String& line, bool bAutoCorrect) {
7157     int i;
7158     for (i = 0; i < line.size(); ++i) {
7159         // since we might check the same parser state twice against the current
7160         // char here below, and since the symbol stack might be altered
7161         // (i.e. shifted or reduced) on syntax errors, we have to backup the
7162         // current symbol stack and restore it on syntax errors below
7163         std::vector<YYTYPE_INT16> stackCopy = stack;
7164         if (yyValid(stackCopy, line[i])) {
7165             stack = stackCopy;
7166             continue;
7167         }
7168         if (bAutoCorrect) {
7169             // try trivial corrections, i.e. upper case character instead of
7170             // lower case, subline instead of space and vice versa
7171             char c;
7172             if      (line[i] == ' ') c = '_';
7173             else if (line[i] == '_') c = ' ';
7174             else if (isLowerCaseAlphaChar(line[i]))
7175                 c = alphaCharToUpperCase(line[i]);
7176             else return i;
7177             if (yyValid(stack, c)) {
7178                 line[i] = c;
7179                 continue;
7180             }
7181         }
7182         return i;
7183     }
7184     return i;
7185 }
7186 
7187 /**
7188  * Should only be called on syntax errors: returns a set of non-terminal
7189  * symbols expected to appear now/next, just at the point where the syntax
7190  * error appeared.
7191  *
7192  * @returns names of the non-terminal symbols expected at this parse position
7193  */
7194 static std::set<String> yyExpectedSymbols() {
7195     std::map<String,BisonSymbolInfo> expectedSymbols;
7196     yyparse_param_t* param = GetCurrentYaccSession();
7197     YYTYPE_INT16* ss = (*param->ppStackBottom);
7198     YYTYPE_INT16* sp = (*param->ppStackTop);
7199     int iStackSize   = int(sp - ss + 1);
7200     // copy and wrap parser's symbol stack into a convenient STL container
7201     std::vector<YYTYPE_INT16> stack;
7202     for (int i = 0; i < iStackSize; ++i) {
7203         stack.push_back(ss[i]);
7204     }
7205     // do the actual parser work
7206     walkAndFillExpectedSymbols(stack, expectedSymbols);
7207 
7208     // convert expectedSymbols to the result set
7209     std::set<String> result;
7210     for (std::map<String,BisonSymbolInfo>::const_iterator it = expectedSymbols.begin();
7211          it != expectedSymbols.end(); ++it) result.insert(it->first);
7212     return result;
7213 }
7214 
7215 #define DEBUG_YY_AUTO_COMPLETE 0
7216 
7217 /**
7218  * Generates and returns an auto completion string for the current parser
7219  * state given by @a stack. That means, this function will return the longest
7220  * sequence of characters that is uniqueley expected to be sent next by the LSCP
7221  * client. Or in other words, if the LSCP client would send any other
7222  * character(s) than returned here, it would result in a syntax error.
7223  *
7224  * This function takes a Bison symbol @a stack as argument, reflecting the
7225  * current Bison parser state, and evaluates the individual grammar tree
7226  * branches starting from that particular position. It walks along the grammar
7227  * tree as long as there is only one possible tree branch and assembles a string
7228  * of input characters that would lead to that walk through the grammar tree. As
7229  * soon as a position in the grammar tree is reached where there are multiple
7230  * possible tree branches, this algorithm will stop, since the user could have
7231  * multiple possible valid characters he could type at that point, thus auto
7232  * completion would no longer be unique at that point.
7233  *
7234  * Regarding @a history argument: read the description on YYStackHistory for the
7235  * purpose behind this argument.
7236  *
7237  * @param stack - current Bison (yacc) symbol stack to create auto completion for
7238  * @param history - only for internal purpose, keeps a history of all previous
7239  *                  parser symbol stacks (just for avoiding endless recursion in
7240  *                  this auto completion algorithm), do supply an empty history
7241  * @param depth - just for internal debugging purposes, do not supply anything
7242  * @returns auto completion for current, given parser state
7243  */
7244 static String yyAutoComplete(std::vector<YYTYPE_INT16>& stack, YYStackHistory& history, int depth = 0) {
7245     std::map<String,BisonSymbolInfo> expectedSymbols;
7246     walkAndFillExpectedSymbols(stack, expectedSymbols);
7247     if (expectedSymbols.size() == 1) {
7248         String name          = expectedSymbols.begin()->first;
7249         BisonSymbolInfo info = expectedSymbols.begin()->second;
7250 #if DEBUG_YY_AUTO_COMPLETE
7251         for (int q = 0; q < depth; ++q) printf("  ");
7252         printf("(%d) Suggested Sub Completion (sz=%d): type=%s %s -> '%s'\n", depth, expectedSymbols.size(), (info.isTerminalSymbol) ? "T" : "NT", name.c_str(), info.nextExpectedChars.c_str());
7253 #endif
7254         if (info.nextExpectedChars.empty() || !info.isTerminalSymbol) return "";
7255         // parse forward with the suggested auto completion
7256         std::vector<YYTYPE_INT16> stackCopy = stack;
7257         yyValidCharacters(stackCopy, info.nextExpectedChars, false);
7258         // detect endless recursion
7259         if (history.count(stackCopy)) return "";
7260         history.insert(stackCopy);
7261         // recurse and return the expanded auto completion with maximum length
7262         return info.nextExpectedChars + yyAutoComplete(stackCopy, history, depth + 1);
7263     } else if (expectedSymbols.size() == 0) {
7264 #if DEBUG_YY_AUTO_COMPLETE
7265         for (int q = 0; q < depth; ++q) printf("  ");
7266         printf("(%d) No sub suggestion.\n", depth);
7267 #endif
7268         return "";
7269     } else if (expectedSymbols.size() > 1) {
7270 #if DEBUG_YY_AUTO_COMPLETE
7271         for (int q = 0; q < depth; ++q) printf("  ");
7272         printf("(%d) Multiple sub possibilities (before expansion):", depth);
7273         for (std::map<String,BisonSymbolInfo>::const_iterator it = expectedSymbols.begin();
7274              it != expectedSymbols.end(); ++it)
7275         {
7276             printf(" %s (..%s)", it->first.c_str(), it->second.nextExpectedChars.c_str());
7277         }
7278         printf("\n");
7279 #endif
7280         // check if any of the possibilites is a non-terminal symbol, if so, we
7281         // have no way for auto completion at this point
7282         for (std::map<String,BisonSymbolInfo>::const_iterator it = expectedSymbols.begin();
7283              it != expectedSymbols.end(); ++it)
7284         {
7285             if (!it->second.isTerminalSymbol) {
7286 #if DEBUG_YY_AUTO_COMPLETE
7287                 for (int q = 0; q < depth; ++q) printf("  ");
7288                 printf("(%d) Non-terminal exists. Stop.", depth);
7289 #endif
7290                 return "";
7291             }
7292         }
7293 #if 0 // commented out for now, since practically irrelevant and VERY slow ...
7294         // all possibilities are terminal symbols, so expand all possiblities to
7295         // maximum length with a recursive call for each possibility
7296         for (std::map<String,BisonSymbolInfo>::iterator it = expectedSymbols.begin();
7297              it != expectedSymbols.end(); ++it)
7298         {
7299             if (it->second.nextExpectedChars.empty() || !it->second.isTerminalSymbol) continue;
7300             // parse forward with this particular suggested auto completion
7301             std::vector<YYTYPE_INT16> stackCopy = stack;
7302             yyValidCharacters(stackCopy, it->second.nextExpectedChars, false);
7303             // detect endless recursion
7304             if (history.count(stackCopy)) continue;
7305             history.insert(stackCopy);
7306             // recurse and return the total possible auto completion for this
7307             // grammar tree branch
7308             it->second.nextExpectedChars += yyAutoComplete(stackCopy, history, depth + 1);
7309         }
7310 #endif
7311         // try to find the longest common string all possibilities start with
7312         // (from the left)
7313         String sCommon;
7314         for (int i = 0; true; ++i) {
7315             char c = '\0';
7316             for (std::map<String,BisonSymbolInfo>::const_iterator it = expectedSymbols.begin();
7317                  it != expectedSymbols.end(); ++it)
7318             {
7319                 if (i >= it->second.nextExpectedChars.size())
7320                     goto commonSearchEndLabel;
7321                 if (it == expectedSymbols.begin())
7322                     c = it->second.nextExpectedChars[i];
7323                 if (c != it->second.nextExpectedChars[i])
7324                     goto commonSearchEndLabel;
7325                 if (it == --expectedSymbols.end())
7326                     sCommon += c;
7327             }
7328         }
7329         commonSearchEndLabel:
7330 #if DEBUG_YY_AUTO_COMPLETE
7331         for (int q = 0; q < depth; ++q) printf("  ");
7332         printf("(%d) Multiple sub possibilities (after expansion):", depth);
7333         for (std::map<String,BisonSymbolInfo>::const_iterator it = expectedSymbols.begin();
7334              it != expectedSymbols.end(); ++it)
7335         {
7336             printf(" %s (..%s)", it->first.c_str(), it->second.nextExpectedChars.c_str());
7337         }
7338         printf("\n");
7339         for (int q = 0; q < depth; ++q) printf("  ");
7340         printf("(%d) Common sub possibility: '%s'\n", depth, sCommon.c_str());
7341 #endif
7342         return sCommon;
7343     }
7344     return ""; // just pro forma, should never happen though
7345 }
7346 
7347 /**
7348  * Just a convenience wrapper on top of the actual yyAutoComplete()
7349  * implementation. See its description above for details.
7350  */
7351 static String yyAutoComplete(std::vector<YYTYPE_INT16>& stack) {
7352     YYStackHistory history;
7353     return yyAutoComplete(stack, history);
7354 }
7355 
7356 namespace LinuxSampler {
7357 
7358 #define DEBUG_SHELL_INTERACTION 0
7359 
7360 /**
7361  * If LSCP shell mode is enabled for the respective LSCP client connection, then
7362  * this function is called on every new byte received from that client. It will
7363  * check the current total input line and reply to the LSCP shell with a
7364  * specially crafted string, which allows the shell to provide colored syntax
7365  * highlighting and potential auto completion in the shell.
7366  *
7367  * It also performs auto correction of obvious & trivial syntax mistakes if
7368  * requested.
7369  *
7370  * The return value of this function will be sent to the client. It contains one
7371  * line specially formatted for the LSCP shell application, which can easily be
7372  * processed by the client/shell for extracting its necessary informations like
7373  * which part of the current command line is syntactically correct, which part
7374  * is incorrect, what could be auto completed right now, etc. So all the heavy
7375  * grammar evaluation tasks are peformed by the LSCP server for the LSCP shell
7376  * application (which is desgined as a thin client), so the LSCP shell
7377  * application will only have to show the results of the LSCP server's
7378  * evaluation to the user on the screen.
7379  *
7380  * @param line - the current command line to be evaluated by LSCP parser
7381  * @param param = reentrant parser session parameters
7382  * @param possibilities - whether all possibilities shall be shown
7383  * @returns LSCP shell response line to be returned to the client
7384  */
7385 String lscpParserProcessShellInteraction(String& line, yyparse_param_t* param, bool possibilities) {
7386     // first, determine how many characters (starting from the left) of the
7387     // given input line are already syntactically correct
7388     std::vector<YYTYPE_INT16> stack;
7389     stack.push_back(0); // every Bison symbol stack starts with state zero
7390     String l = line + '\n'; // '\n' to pretend ENTER as if the line was now complete
7391     int n = yyValidCharacters(stack, l, param->bShellAutoCorrect);
7392 
7393     // if auto correction is enabled, apply the auto corrected string to
7394     // intput/output string 'line'
7395     if (param->bShellAutoCorrect) {
7396         int nMin = int( (n < line.length()) ? n : line.length() );
7397         line.replace(0, nMin, l.substr(0, nMin));
7398     }
7399 
7400     ssize_t cursorPos = line.size() + param->iCursorOffset;
7401     if (cursorPos < 0) cursorPos = 0;
7402 
7403     // generate an info string that will be sent to the LSCP shell for letting
7404     // it know which part is correct, which one is wrong, where is the cursor, etc.
7405     String result = line;
7406     result.insert(n <= result.length() ? n : result.length(), LSCP_SHK_GOOD_FRONT);
7407     result.insert(cursorPos <= n ? cursorPos : cursorPos + String(LSCP_SHK_GOOD_FRONT).length(), LSCP_SHK_CURSOR);
7408     int code = (n > line.length()) ? LSCP_SHU_COMPLETE : (n < line.length()) ?
7409                LSCP_SHU_SYNTAX_ERR : LSCP_SHU_INCOMPLETE;
7410     result = "SHU:" + ToString(code) + ":" + result;
7411     //if (n > line.length()) result += " [OK]";
7412 
7413     // get a clean parser stack to the last valid parse position
7414     // (due to the appended '\n' character above, and on syntax errors, the
7415     // symbol stack might be in undesired, i.e. reduced state)
7416     stack.clear();
7417     stack.push_back(0); // every Bison symbol stack starts with state zero
7418     l = line.substr(0, n);
7419     if (!l.empty()) yyValidCharacters(stack, l, param->bShellAutoCorrect);
7420 
7421     // generate auto completion suggestion (based on the current parser stack)
7422     std::vector<YYTYPE_INT16> stackCopy = stack; // make a copy, since yyAutoComplete() might alter the stack
7423     String sSuggestion = yyAutoComplete(stackCopy);
7424     if (!sSuggestion.empty()) result += LSCP_SHK_SUGGEST_BACK + sSuggestion;
7425 
7426     if (possibilities) {
7427         // append all possible terminals and non-terminals according to
7428         // current parser state
7429         std::map<String,BisonSymbolInfo> expectedSymbols;
7430         walkAndFillExpectedSymbols(stack, expectedSymbols);
7431 
7432         // pretend to LSCP shell that the following terminal symbols were
7433         // non-terminal symbols (since they are not human visible for auto
7434         // completion on the shell's screen)
7435         std::set<String> specialNonTerminals;
7436         specialNonTerminals.insert("SP");
7437         specialNonTerminals.insert("CR");
7438         specialNonTerminals.insert("LF");
7439 
7440         String sPossibilities;
7441         int iNonTerminals = 0;
7442         int iTerminals    = 0;
7443         for (std::map<String,BisonSymbolInfo>::const_iterator it = expectedSymbols.begin();
7444              it != expectedSymbols.end(); ++it)
7445         {
7446             if (!sPossibilities.empty()) sPossibilities += " | ";
7447             if (it->second.isTerminalSymbol && !specialNonTerminals.count(it->first)) {
7448                 sPossibilities += it->first;
7449                 iTerminals++;
7450             } else {
7451                 sPossibilities += "<" + it->first + ">";
7452                 iNonTerminals++;
7453             }
7454         }
7455         if (!sPossibilities.empty() && (iNonTerminals || iTerminals > 1)) {
7456             result += LSCP_SHK_POSSIBILITIES_BACK + sPossibilities;
7457         }
7458     }
7459 
7460 #if DEBUG_SHELL_INTERACTION
7461     printf("%s\n", result.c_str());
7462 #endif
7463 
7464     return result;
7465 }
7466 
7467 /**
7468  * Clears input buffer.
7469  */
7470 void restart(yyparse_param_t* pparam, int& yychar) {
7471     bytes = 0;
7472     ptr   = 0;
7473     sLastError = "";
7474     sParsed = "";
7475 }
7476 
7477 }
7478