/[svn]/linuxsampler/trunk/src/network/lscpparser.cpp
ViewVC logotype

Diff of /linuxsampler/trunk/src/network/lscpparser.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 123 by schoenebeck, Mon Jun 14 19:33:16 2004 UTC revision 228 by schoenebeck, Sat Aug 28 14:55:34 2004 UTC
# Line 47  Line 47 
47    
48    
49    
 /* Tokens.  */  
 #ifndef YYTOKENTYPE  
 # define YYTOKENTYPE  
    /* Put the tokens into the symbol table, so that GDB and other debuggers  
       know about them.  */  
    enum yytokentype {  
      CHAR = 258,  
      DOTNUM = 259,  
      NUMBER = 260,  
      SP = 261,  
      LF = 262,  
      CR = 263,  
      HASH = 264,  
      EQ = 265,  
      ADD = 266,  
      GET = 267,  
      CREATE = 268,  
      DESTROY = 269,  
      LIST = 270,  
      LOAD = 271,  
      REMOVE = 272,  
      SET = 273,  
      SUBSCRIBE = 274,  
      UNSUBSCRIBE = 275,  
      RESET = 276,  
      QUIT = 277,  
      CHANNEL = 278,  
      NOTIFICATION = 279,  
      AVAILABLE_ENGINES = 280,  
      AVAILABLE_AUDIO_OUTPUT_DRIVERS = 281,  
      CHANNELS = 282,  
      INFO = 283,  
      BUFFER_FILL = 284,  
      STREAM_COUNT = 285,  
      VOICE_COUNT = 286,  
      INSTRUMENT = 287,  
      ENGINE = 288,  
      AUDIO_OUTPUT_CHANNEL = 289,  
      AUDIO_OUTPUT_CHANNEL_PARAMETER = 290,  
      AUDIO_OUTPUT_DEVICE = 291,  
      AUDIO_OUTPUT_DEVICES = 292,  
      AUDIO_OUTPUT_DEVICE_PARAMETER = 293,  
      AUDIO_OUTPUT_DRIVER = 294,  
      AUDIO_OUTPUT_DRIVER_PARAMETER = 295,  
      MIDI_INPUT_PORT = 296,  
      MIDI_INPUT_CHANNEL = 297,  
      MIDI_INPUT_TYPE = 298,  
      VOLUME = 299,  
      BYTES = 300,  
      PERCENTAGE = 301  
    };  
 #endif  
 #define CHAR 258  
 #define DOTNUM 259  
 #define NUMBER 260  
 #define SP 261  
 #define LF 262  
 #define CR 263  
 #define HASH 264  
 #define EQ 265  
 #define ADD 266  
 #define GET 267  
 #define CREATE 268  
 #define DESTROY 269  
 #define LIST 270  
 #define LOAD 271  
 #define REMOVE 272  
 #define SET 273  
 #define SUBSCRIBE 274  
 #define UNSUBSCRIBE 275  
 #define RESET 276  
 #define QUIT 277  
 #define CHANNEL 278  
 #define NOTIFICATION 279  
 #define AVAILABLE_ENGINES 280  
 #define AVAILABLE_AUDIO_OUTPUT_DRIVERS 281  
 #define CHANNELS 282  
 #define INFO 283  
 #define BUFFER_FILL 284  
 #define STREAM_COUNT 285  
 #define VOICE_COUNT 286  
 #define INSTRUMENT 287  
 #define ENGINE 288  
 #define AUDIO_OUTPUT_CHANNEL 289  
 #define AUDIO_OUTPUT_CHANNEL_PARAMETER 290  
 #define AUDIO_OUTPUT_DEVICE 291  
 #define AUDIO_OUTPUT_DEVICES 292  
 #define AUDIO_OUTPUT_DEVICE_PARAMETER 293  
 #define AUDIO_OUTPUT_DRIVER 294  
 #define AUDIO_OUTPUT_DRIVER_PARAMETER 295  
 #define MIDI_INPUT_PORT 296  
 #define MIDI_INPUT_CHANNEL 297  
 #define MIDI_INPUT_TYPE 298  
 #define VOLUME 299  
 #define BYTES 300  
 #define PERCENTAGE 301  
   
50    
51    
52    
53  /* Copy the first part of user declarations.  */  /* Copy the first part of user declarations.  */
54  #line 23 "lscp.y"  #line 26 "lscp.y"
55    
56    
57  #include "lscpparser.h"  #include "lscpparser.h"
58  #include "lscpserver.h"  #include "lscpserver.h"
59    #include "lscpevent.h"
 // as we need an reentrant scanner, we have to pass the pointer to the scanner with each yylex() call  
 #define YYLEX_PARAM ((yyparse_param_t*) yyparse_param)->pScanner  
60    
61  // to save us typing work in the rules action definitions  // to save us typing work in the rules action definitions
62  #define LSCPSERVER ((yyparse_param_t*) yyparse_param)->pServer  #define LSCPSERVER ((yyparse_param_t*) yyparse_param)->pServer
63    
64  // clears input buffer and restarts scanner.  // clears input buffer
65  void restart(yyparse_param_t* pparam, int& yychar);  void restart(yyparse_param_t* pparam, int& yychar);
66  #define RESTART restart((yyparse_param_t*) YYPARSE_PARAM, yychar)  #define RESTART restart((yyparse_param_t*) YYPARSE_PARAM, yychar)
67    
 // external reference to the main scanner function yylex()  
 extern YY_DECL;  
   
 // external reference to restart the lex scanner  
 extern void yyrestart(FILE* input_file, yyscan_t yyscanner);  
   
68  // we provide our own version of yyerror() so we don't have to link against the yacc library  // we provide our own version of yyerror() so we don't have to link against the yacc library
69  void yyerror(const char* s);  void yyerror(const char* s);
70    
71    static char buf[1024]; // input buffer to feed the parser with new characters
72    static int bytes = 0;  // current number of characters in the input buffer
73    static int ptr   = 0;  // current position in the input buffer
74    
75    // external reference to the function which actually reads from the socket
76    extern int GetLSCPCommand( void *buf, int max_size);
77    
78    // custom scanner function which reads from the socket
79    int yylex(YYSTYPE* yylval) {
80        // check if we have to read new characters
81        if (ptr >= bytes) {
82            bytes = GetLSCPCommand(buf, 1023);
83            ptr   = 0;
84            if (bytes < 0) {
85                bytes = 0;
86                return 0;
87            }
88        }
89        return (int) buf[ptr++];
90    }
91    
92    
93    
94  /* Enabling traces.  */  /* Enabling traces.  */
# Line 201  typedef int YYSTYPE; Line 117  typedef int YYSTYPE;
117    
118    
119  /* Line 214 of yacc.c.  */  /* Line 214 of yacc.c.  */
120  #line 205 "y.tab.c"  #line 121 "y.tab.c"
121    
122  #if ! defined (yyoverflow) || YYERROR_VERBOSE  #if ! defined (yyoverflow) || YYERROR_VERBOSE
123    
# Line 298  union yyalloc Line 214  union yyalloc
214  #endif  #endif
215    
216  /* YYFINAL -- State number of the termination state. */  /* YYFINAL -- State number of the termination state. */
217  #define YYFINAL  30  #define YYFINAL  39
218  /* YYLAST -- Last index in YYTABLE.  */  /* YYLAST -- Last index in YYTABLE.  */
219  #define YYLAST   222  #define YYLAST   3994
220    
221  /* YYNTOKENS -- Number of terminals. */  /* YYNTOKENS -- Number of terminals. */
222  #define YYNTOKENS  47  #define YYNTOKENS  227
223  /* YYNNTS -- Number of nonterminals. */  /* YYNNTS -- Number of nonterminals. */
224  #define YYNNTS  29  #define YYNNTS  90
225  /* YYNRULES -- Number of rules. */  /* YYNRULES -- Number of rules. */
226  #define YYNRULES  81  #define YYNRULES  415
227  /* YYNRULES -- Number of states. */  /* YYNRULES -- Number of states. */
228  #define YYNSTATES  225  #define YYNSTATES  1137
229    
230  /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */  /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
231  #define YYUNDEFTOK  2  #define YYUNDEFTOK  2
232  #define YYMAXUTOK   301  #define YYMAXUTOK   257
233    
234  #define YYTRANSLATE(YYX)                                                \  #define YYTRANSLATE(YYX)                                                \
235    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
# Line 322  union yyalloc Line 238  union yyalloc
238  static const unsigned char yytranslate[] =  static const unsigned char yytranslate[] =
239  {  {
240         0,     2,     2,     2,     2,     2,     2,     2,     2,     2,         0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
241         225,     2,     2,   226,     2,     2,     2,     2,     2,     2,
242         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
243         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,         2,     2,   224,    70,   223,     3,    71,    72,    73,   222,
244         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        74,    75,    76,     6,    77,     7,     5,    78,     8,     9,
245         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        10,    11,    12,    13,    14,    15,    16,    17,    79,    80,
246         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        81,     4,    82,    83,    84,    18,    19,    20,    21,    22,
247         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
248         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
249         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        43,    85,    86,    87,    88,    89,     2,    44,    45,    46,
250         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
251         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
252         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        67,    68,    69,    90,    91,    92,    93,     2,    94,    95,
253         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
254         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
255         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
256         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
257         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
258         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
259         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
260         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
261         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
262         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
263         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
264         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
265         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       216,   217,   218,   219,   220,   221,     1,     2
        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,  
        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,  
       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,  
       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,  
       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,  
       45,    46  
266  };  };
267    
268  #if YYDEBUG  #if YYDEBUG
# Line 359  static const unsigned char yytranslate[] Line 270  static const unsigned char yytranslate[]
270     YYRHS.  */     YYRHS.  */
271  static const unsigned short yyprhs[] =  static const unsigned short yyprhs[] =
272  {  {
273         0,     0,     3,     5,     9,    14,    15,    17,    19,    21,         0,     0,     3,     6,    10,    11,    13,    15,    17,    19,
274        23,    26,    29,    32,    35,    39,    43,    47,    51,    55,        22,    25,    28,    31,    35,    39,    43,    47,    51,    55,
275        59,    65,    69,    75,    81,    87,    89,    91,    93,    99,        61,    65,    69,    73,    79,    81,    83,    85,    87,    89,
276       107,   117,   119,   125,   133,   143,   145,   151,   159,   165,        91,    93,    95,    97,    99,   101,   103,   105,   107,   109,
277       171,   177,   185,   193,   203,   213,   217,   223,   227,   231,       111,   117,   125,   135,   137,   143,   151,   161,   163,   165,
278       235,   241,   249,   255,   261,   267,   273,   277,   283,   285,       171,   177,   185,   195,   203,   213,   215,   221,   229,   235,
279       287,   289,   295,   299,   301,   303,   305,   307,   309,   311,       241,   247,   255,   265,   273,   283,   287,   291,   297,   301,
280       313,   315,   317,   319,   321,   323,   327,   329,   331,   334,       307,   311,   315,   319,   323,   327,   333,   341,   347,   357,
281       337,   339       363,   369,   375,   381,   387,   391,   397,   399,   401,   403,
282         405,   407,   413,   421,   425,   427,   429,   431,   433,   435,
283         437,   439,   441,   443,   445,   447,   449,   451,   453,   455,
284         457,   459,   461,   463,   465,   468,   472,   477,   482,   484,
285         487,   489,   491,   493,   495,   497,   499,   501,   503,   505,
286         507,   509,   512,   515,   518,   521,   524,   527,   530,   533,
287         536,   538,   540,   542,   544,   546,   548,   550,   552,   554,
288         556,   558,   560,   562,   564,   566,   568,   570,   572,   574,
289         576,   578,   580,   582,   584,   586,   588,   590,   592,   594,
290         596,   598,   600,   602,   604,   606,   608,   610,   612,   614,
291         616,   618,   620,   622,   624,   626,   628,   630,   632,   634,
292         636,   638,   640,   642,   644,   646,   648,   650,   652,   654,
293         656,   658,   660,   662,   664,   666,   668,   670,   672,   674,
294         676,   678,   680,   682,   684,   686,   688,   690,   692,   694,
295         696,   698,   700,   702,   704,   706,   708,   710,   712,   714,
296         716,   718,   720,   722,   724,   726,   728,   730,   732,   734,
297         736,   738,   740,   742,   744,   746,   748,   750,   752,   754,
298         756,   758,   760,   762,   764,   766,   768,   770,   772,   774,
299         776,   778,   780,   782,   784,   786,   788,   790,   792,   794,
300         796,   798,   800,   802,   804,   806,   808,   810,   812,   814,
301         816,   818,   820,   822,   824,   826,   828,   830,   832,   834,
302         836,   838,   840,   842,   844,   846,   848,   850,   852,   854,
303         856,   858,   860,   862,   864,   866,   868,   870,   872,   874,
304         876,   878,   880,   882,   884,   886,   888,   890,   892,   894,
305         896,   898,   900,   902,   904,   906,   908,   910,   912,   914,
306         916,   918,   920,   922,   924,   926,   928,   930,   932,   934,
307         936,   938,   940,   942,   944,   946,   948,   950,   952,   954,
308         956,   958,   960,   962,   964,   966,   968,   970,   972,   974,
309         976,   978,   981,   984,   988,   992,   994,   996,   998,  1002,
310        1006,  1013,  1021,  1026,  1031,  1035,  1045,  1052,  1056,  1066,
311        1078,  1086,  1104,  1135,  1144,  1149,  1161,  1174,  1186,  1197,
312        1204,  1234,  1255,  1275,  1305,  1325,  1356,  1377,  1395,  1424,
313        1452,  1478,  1497,  1515,  1543,  1561,  1577,  1596,  1612,  1623,
314        1630,  1636,  1647,  1653,  1667,  1672
315  };  };
316    
317  /* YYRHS -- A `-1'-separated list of the rules' RHS. */  /* YYRHS -- A `-1'-separated list of the rules' RHS. */
318  static const yysigned_char yyrhs[] =  static const short yyrhs[] =
319  {  {
320        48,     0,    -1,    49,    -1,    48,     7,    49,    -1,    48,       228,     0,    -1,   229,   267,    -1,   229,   268,   267,    -1,
321         8,     7,    49,    -1,    -1,    50,    -1,    51,    -1,     1,        -1,   230,    -1,   231,    -1,     1,    -1,     3,    -1,   230,
322        -1,     9,    -1,    50,     9,    -1,    50,     6,    -1,    50,         3,    -1,   230,   266,    -1,   230,   262,    -1,   230,   258,
323         5,    -1,    50,    75,    -1,    11,     6,    23,    -1,    12,        -1,   269,   266,   281,    -1,   270,   266,   234,    -1,   271,
324         6,    52,    -1,    13,     6,    54,    -1,    14,     6,    55,       266,   236,    -1,   272,   266,   237,    -1,   273,   266,   242,
325        -1,    15,     6,    60,    -1,    16,     6,    56,    -1,    17,        -1,   274,   266,   238,    -1,   277,   266,   281,   266,   252,
326         6,    23,     6,    65,    -1,    18,     6,    53,    -1,    19,        -1,   278,   266,   235,    -1,   279,   266,   232,    -1,   280,
327         6,    24,     6,    67,    -1,    20,     6,    24,     6,    70,       266,   233,    -1,   313,   266,   281,   266,   252,    -1,   313,
328        -1,    21,     6,    23,     6,    65,    -1,    22,    -1,    25,        -1,   316,    -1,   284,    -1,   288,    -1,   287,    -1,   286,
329        -1,    26,    -1,    39,     6,    28,     6,    75,    -1,    40,        -1,   285,    -1,   314,    -1,   284,    -1,   288,    -1,   287,
330         6,    28,     6,    75,     6,    75,    -1,    40,     6,    28,        -1,   286,    -1,   285,    -1,   314,    -1,   282,    -1,   299,
331         6,    75,     6,    75,     6,    58,    -1,    37,    -1,    36,        -1,   305,   266,   285,   266,   258,    -1,   304,   266,   285,
332         6,    28,     6,     5,    -1,    34,     6,    28,     6,     5,       266,   258,   266,   258,    -1,   304,   266,   285,   266,   258,
333         6,     5,    -1,    35,     6,    28,     6,     5,     6,     5,       266,   258,   266,   240,    -1,   283,    -1,   295,   266,   285,
334         6,    75,    -1,    27,    -1,    23,     6,    28,     6,    65,       266,   258,    -1,   294,   266,   285,   266,   258,   266,   258,
335        -1,    23,     6,    29,     6,    59,     6,    65,    -1,    23,        -1,   294,   266,   285,   266,   258,   266,   258,   266,   240,
336         6,    30,     6,    65,    -1,    23,     6,    31,     6,    65,        -1,   292,    -1,   302,    -1,   293,   266,   285,   266,   262,
337        -1,    33,     6,    28,     6,    71,    -1,    38,     6,     5,        -1,   303,   266,   285,   266,   262,    -1,   306,   266,   285,
338         6,    75,     6,    74,    -1,    38,     6,     5,     6,    75,       266,   262,   266,   262,    -1,   301,   266,   285,   266,   262,
339        10,    74,    -1,    35,     6,     5,     6,     5,     6,    75,       266,   262,   266,   258,    -1,   297,   266,   285,   266,   262,
340         6,    74,    -1,    35,     6,     5,     6,     5,     6,    75,       266,   262,    -1,   296,   266,   285,   266,   262,   266,   262,
341        10,    74,    -1,    23,     6,    57,    -1,    36,     6,    75,       266,   258,    -1,   284,    -1,   281,   266,   285,   266,   252,
342         6,    58,    -1,    36,     6,     5,    -1,    32,     6,    61,        -1,   281,   266,   286,   266,   241,   266,   252,    -1,   281,
343        -1,    33,     6,    62,    -1,    36,     6,    65,     6,     5,       266,   287,   266,   252,    -1,   281,   266,   288,   266,   252,
344        -1,    34,     6,    65,     6,    68,     6,    68,    -1,    41,        -1,   290,   266,   285,   266,   254,    -1,   291,   266,   262,
345         6,    65,     6,    72,    -1,    42,     6,    65,     6,    69,       266,   258,     4,   256,    -1,   296,   266,   262,   266,   262,
346        -1,    43,     6,    65,     6,    63,    -1,    44,     6,    65,       266,   258,     4,   256,    -1,   300,   266,   262,   266,   258,
347         6,    64,    -1,    75,    10,    74,    -1,    58,     6,    75,         4,   256,    -1,   301,   266,   262,   266,   262,   266,   258,
348        10,    74,    -1,    45,    -1,    46,    -1,    37,    -1,    73,         4,   256,    -1,   281,   266,   239,    -1,   315,   266,   257,
349         6,    66,     6,    65,    -1,    71,     6,    65,    -1,    75,        -1,   293,   266,   258,   266,   240,    -1,   293,   266,   258,
350        -1,     4,    -1,     5,    -1,     5,    -1,     5,    -1,     5,        -1,   303,   266,   258,   266,   240,    -1,   303,   266,   258,
351        -1,     5,    -1,     5,    -1,    74,    -1,    75,    -1,    74,        -1,   293,   266,   262,    -1,   303,   266,   262,    -1,   289,
352        -1,    74,    -1,    73,     6,    74,    -1,    75,    -1,     5,       266,   243,    -1,   290,   266,   244,    -1,   293,   266,   252,
353        -1,    74,    75,    -1,    74,     5,    -1,     3,    -1,    75,       266,   245,    -1,   297,   266,   252,   266,   246,   266,   246,
354         3,    -1        -1,   298,   266,   252,   266,   247,    -1,   309,   266,   252,
355         266,   245,   266,   248,   266,   249,    -1,   303,   266,   252,
356         266,   245,    -1,   306,   266,   252,   266,   248,    -1,   307,
357         266,   252,   266,   249,    -1,   308,   266,   252,   266,   250,
358          -1,   310,   266,   252,   266,   251,    -1,   258,     4,   256,
359          -1,   240,   266,   258,     4,   256,    -1,   311,    -1,   312,
360          -1,   292,    -1,   302,    -1,   284,    -1,   255,   266,   253,
361         266,   252,    -1,   276,   266,   255,   266,   253,   266,   252,
362          -1,   254,   266,   252,    -1,   262,    -1,   262,    -1,   258,
363          -1,   262,    -1,   262,    -1,   275,    -1,   258,    -1,   259,
364          -1,   262,    -1,   262,    -1,   262,    -1,   258,    -1,   265,
365          -1,   258,    -1,   265,    -1,   262,    -1,   259,    -1,   262,
366          -1,   258,    -1,   263,    -1,   258,   263,    -1,   260,     5,
367         260,    -1,     6,   260,     5,   260,    -1,     7,   260,     5,
368         260,    -1,   261,    -1,   260,   261,    -1,     8,    -1,     9,
369          -1,    10,    -1,    11,    -1,    12,    -1,    13,    -1,    14,
370          -1,    15,    -1,    16,    -1,    17,    -1,   261,    -1,     9,
371         260,    -1,    10,   260,    -1,    11,   260,    -1,    12,   260,
372          -1,    13,   260,    -1,    14,   260,    -1,    15,   260,    -1,
373          16,   260,    -1,    17,   260,    -1,    18,    -1,    19,    -1,
374          20,    -1,    21,    -1,    22,    -1,    23,    -1,    24,    -1,
375          25,    -1,    26,    -1,    27,    -1,    28,    -1,    29,    -1,
376          30,    -1,    31,    -1,    32,    -1,    33,    -1,    34,    -1,
377          35,    -1,    36,    -1,    37,    -1,    38,    -1,    39,    -1,
378          40,    -1,    41,    -1,    42,    -1,    43,    -1,    44,    -1,
379          45,    -1,    46,    -1,    47,    -1,    48,    -1,    49,    -1,
380          50,    -1,    51,    -1,    52,    -1,    53,    -1,    54,    -1,
381          55,    -1,    56,    -1,    57,    -1,    58,    -1,    59,    -1,
382          60,    -1,    61,    -1,    62,    -1,    63,    -1,    64,    -1,
383          65,    -1,    66,    -1,    67,    -1,    68,    -1,    69,    -1,
384           8,    -1,     9,    -1,    10,    -1,    11,    -1,    12,    -1,
385          13,    -1,    14,    -1,    15,    -1,    16,    -1,    17,    -1,
386          70,    -1,     3,    -1,    71,    -1,    72,    -1,    73,    -1,
387          74,    -1,    75,    -1,    76,    -1,     6,    -1,     7,    -1,
388           5,    -1,    77,    -1,    78,    -1,    79,    -1,    80,    -1,
389          81,    -1,     4,    -1,    82,    -1,    83,    -1,    84,    -1,
390          85,    -1,    86,    -1,    87,    -1,    88,    -1,    89,    -1,
391          90,    -1,    91,    -1,    92,    -1,    93,    -1,    94,    -1,
392          95,    -1,    96,    -1,    97,    -1,    98,    -1,    99,    -1,
393         100,    -1,   101,    -1,   102,    -1,   103,    -1,   104,    -1,
394         105,    -1,   106,    -1,   107,    -1,   108,    -1,   109,    -1,
395         110,    -1,   111,    -1,   112,    -1,   113,    -1,   114,    -1,
396         115,    -1,   116,    -1,   117,    -1,   118,    -1,   119,    -1,
397         120,    -1,   121,    -1,   122,    -1,   123,    -1,   124,    -1,
398         125,    -1,   126,    -1,   127,    -1,   128,    -1,   129,    -1,
399         130,    -1,   131,    -1,   132,    -1,   133,    -1,   134,    -1,
400         135,    -1,   136,    -1,   137,    -1,   138,    -1,   139,    -1,
401         140,    -1,   141,    -1,   142,    -1,   143,    -1,   144,    -1,
402         145,    -1,   146,    -1,   147,    -1,   148,    -1,   149,    -1,
403         150,    -1,   151,    -1,   152,    -1,   153,    -1,   154,    -1,
404         155,    -1,   156,    -1,   157,    -1,   158,    -1,   159,    -1,
405         160,    -1,   161,    -1,   162,    -1,   163,    -1,   164,    -1,
406         165,    -1,   166,    -1,   167,    -1,   168,    -1,   169,    -1,
407         170,    -1,   171,    -1,   172,    -1,   173,    -1,   174,    -1,
408         175,    -1,   176,    -1,   177,    -1,   178,    -1,   179,    -1,
409         180,    -1,   181,    -1,   182,    -1,   183,    -1,   184,    -1,
410         185,    -1,   186,    -1,   187,    -1,   188,    -1,   189,    -1,
411         190,    -1,   191,    -1,   192,    -1,   193,    -1,   194,    -1,
412         195,    -1,   196,    -1,   197,    -1,   198,    -1,   199,    -1,
413         200,    -1,   201,    -1,   202,    -1,   203,    -1,   204,    -1,
414         205,    -1,   206,    -1,   207,    -1,   208,    -1,   209,    -1,
415         210,    -1,   211,    -1,   212,    -1,   213,    -1,   214,    -1,
416         215,    -1,   216,    -1,   217,    -1,   218,    -1,   219,    -1,
417         220,    -1,   221,    -1,   266,    -1,   258,    -1,   264,   266,
418          -1,   264,   258,    -1,   222,   264,   222,    -1,   223,   264,
419         223,    -1,   224,    -1,   225,    -1,   226,    -1,    18,    21,
420          21,    -1,    24,    22,    37,    -1,    20,    35,    22,    18,
421          37,    22,    -1,    21,    22,    36,    37,    35,    32,    42,
422          -1,    29,    26,    36,    37,    -1,    29,    32,    18,    21,
423          -1,    18,    29,    29,    -1,    31,    32,    31,    89,    30,
424          32,    21,    18,    29,    -1,    35,    22,    30,    32,    39,
425          22,    -1,    36,    22,    37,    -1,    36,    38,    19,    36,
426          20,    35,    26,    19,    22,    -1,    38,    31,    36,    38,
427          19,    36,    20,    35,    26,    19,    22,    -1,    20,    25,
428          18,    31,    31,    22,    29,    -1,    18,    39,    18,    26,
429          29,    18,    19,    29,    22,    89,    22,    31,    24,    26,
430          31,    22,    36,    -1,    18,    39,    18,    26,    29,    18,
431          19,    29,    22,    89,    18,    38,    21,    26,    32,    89,
432          32,    38,    37,    33,    38,    37,    89,    21,    35,    26,
433          39,    22,    35,    36,    -1,    20,    25,    18,    31,    31,
434          22,    29,    36,    -1,    26,    31,    23,    32,    -1,    19,
435          38,    23,    23,    22,    35,    89,    23,    26,    29,    29,
436          -1,    36,    37,    35,    22,    18,    30,    89,    20,    32,
437          38,    31,    37,    -1,    39,    32,    26,    20,    22,    89,
438          20,    32,    38,    31,    37,    -1,    26,    31,    36,    37,
439          35,    38,    30,    22,    31,    37,    -1,    22,    31,    24,
440          26,    31,    22,    -1,    18,    38,    21,    26,    32,    89,
441          32,    38,    37,    33,    38,    37,    89,    21,    22,    39,
442          26,    20,    22,    89,    33,    18,    35,    18,    30,    22,
443          37,    22,    35,    -1,    18,    38,    21,    26,    32,    89,
444          32,    38,    37,    33,    38,    37,    89,    21,    22,    39,
445          26,    20,    22,    36,    -1,    18,    38,    21,    26,    32,
446          89,    32,    38,    37,    33,    38,    37,    89,    21,    22,
447          39,    26,    20,    22,    -1,    18,    38,    21,    26,    32,
448          89,    32,    38,    37,    33,    38,    37,    89,    21,    35,
449          26,    39,    22,    35,    89,    33,    18,    35,    18,    30,
450          22,    37,    22,    35,    -1,    18,    38,    21,    26,    32,
451          89,    32,    38,    37,    33,    38,    37,    89,    21,    35,
452          26,    39,    22,    35,    -1,    18,    38,    21,    26,    32,
453          89,    32,    38,    37,    33,    38,    37,    89,    20,    25,
454          18,    31,    31,    22,    29,    89,    33,    18,    35,    18,
455          30,    22,    37,    22,    35,    -1,    18,    38,    21,    26,
456          32,    89,    32,    38,    37,    33,    38,    37,    89,    20,
457          25,    18,    31,    31,    22,    29,    -1,    18,    38,    21,
458          26,    32,    89,    32,    38,    37,    33,    38,    37,    89,
459          37,    42,    33,    22,    -1,    18,    39,    18,    26,    29,
460          18,    19,    29,    22,    89,    30,    26,    21,    26,    89,
461          26,    31,    33,    38,    37,    89,    21,    35,    26,    39,
462          22,    35,    36,    -1,    30,    26,    21,    26,    89,    26,
463          31,    33,    38,    37,    89,    21,    22,    39,    26,    20,
464          22,    89,    33,    18,    35,    18,    30,    22,    37,    22,
465          35,    -1,    30,    26,    21,    26,    89,    26,    31,    33,
466          38,    37,    89,    33,    32,    35,    37,    89,    33,    18,
467          35,    18,    30,    22,    37,    22,    35,    -1,    30,    26,
468          21,    26,    89,    26,    31,    33,    38,    37,    89,    21,
469          22,    39,    26,    20,    22,    36,    -1,    30,    26,    21,
470          26,    89,    26,    31,    33,    38,    37,    89,    21,    22,
471          39,    26,    20,    22,    -1,    30,    26,    21,    26,    89,
472          26,    31,    33,    38,    37,    89,    21,    35,    26,    39,
473          22,    35,    89,    33,    18,    35,    18,    30,    22,    37,
474          22,    35,    -1,    30,    26,    21,    26,    89,    26,    31,
475          33,    38,    37,    89,    21,    35,    26,    39,    22,    35,
476          -1,    30,    26,    21,    26,    89,    26,    31,    33,    38,
477          37,    89,    33,    32,    35,    37,    -1,    30,    26,    21,
478          26,    89,    26,    31,    33,    38,    37,    89,    20,    25,
479          18,    31,    31,    22,    29,    -1,    30,    26,    21,    26,
480          89,    26,    31,    33,    38,    37,    89,    37,    42,    33,
481          22,    -1,    30,    26,    21,    26,    89,    26,    31,    33,
482          38,    37,    -1,    39,    32,    29,    38,    30,    22,    -1,
483          19,    42,    37,    22,    36,    -1,    33,    22,    35,    20,
484          22,    31,    37,    18,    24,    22,    -1,    35,    22,    36,
485          22,    37,    -1,    30,    26,    36,    20,    22,    29,    29,
486          18,    31,    22,    32,    38,    36,    -1,    22,    20,    25,
487          32,    -1,    34,    38,    26,    37,    -1
488  };  };
489    
490  /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */  /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
491  static const unsigned char yyrline[] =  static const unsigned short yyrline[] =
492  {  {
493         0,    75,    75,    76,    77,    80,    81,    82,    83,    86,         0,    81,    81,    82,    85,    86,    87,    88,    91,    92,
494        87,    88,    89,    90,    93,    94,    95,    96,    97,    98,        93,    94,    95,    98,    99,   100,   101,   102,   103,   104,
495        99,   100,   101,   102,   103,   104,   107,   108,   109,   110,       105,   106,   107,   108,   109,   110,   113,   114,   115,   116,
496       111,   112,   113,   114,   115,   116,   117,   118,   119,   120,       117,   118,   121,   122,   123,   124,   125,   126,   129,   130,
497       121,   124,   125,   126,   127,   128,   131,   134,   137,   138,       131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
498       141,   142,   143,   144,   145,   146,   149,   150,   152,   153,       141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
499       156,   159,   162,   165,   168,   169,   172,   175,   178,   181,       151,   154,   155,   156,   157,   158,   159,   162,   163,   164,
500       184,   187,   190,   193,   196,   197,   200,   201,   202,   203,       165,   168,   169,   172,   173,   176,   177,   178,   179,   180,
501       206,   207       181,   182,   183,   184,   187,   188,   191,   192,   195,   196,
502         197,   200,   201,   204,   207,   210,   213,   216,   219,   220,
503         223,   226,   227,   230,   233,   236,   239,   242,   243,   244,
504         245,   251,   252,   255,   256,   259,   260,   261,   265,   266,
505         269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
506         281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
507         292,   292,   292,   292,   292,   292,   292,   292,   292,   292,
508         292,   292,   292,   292,   292,   292,   292,   292,   292,   292,
509         292,   292,   292,   292,   292,   292,   293,   293,   293,   293,
510         293,   293,   293,   293,   293,   293,   293,   293,   293,   293,
511         293,   293,   293,   293,   293,   293,   293,   293,   293,   293,
512         293,   293,   294,   294,   294,   294,   294,   294,   294,   294,
513         294,   294,   295,   295,   295,   295,   295,   295,   295,   295,
514         295,   295,   295,   295,   295,   296,   296,   296,   296,   296,
515         296,   296,   297,   297,   297,   297,   297,   298,   298,   298,
516         298,   299,   299,   299,   300,   300,   300,   301,   301,   301,
517         302,   302,   302,   303,   303,   303,   304,   304,   304,   305,
518         305,   305,   306,   306,   306,   307,   307,   307,   308,   308,
519         308,   309,   309,   309,   310,   310,   310,   311,   311,   311,
520         312,   312,   312,   313,   313,   313,   314,   314,   314,   315,
521         315,   315,   316,   316,   316,   317,   317,   317,   318,   318,
522         318,   319,   319,   319,   320,   320,   320,   321,   321,   321,
523         322,   322,   322,   323,   323,   323,   324,   324,   324,   325,
524         325,   325,   326,   326,   326,   327,   327,   327,   328,   328,
525         328,   329,   329,   329,   330,   330,   330,   331,   331,   331,
526         332,   332,   332,   333,   333,   333,   334,   334,   334,   335,
527         335,   335,   336,   336,   336,   337,   337,   337,   338,   338,
528         338,   339,   339,   339,   340,   340,   340,   341,   341,   344,
529         345,   346,   347,   350,   351,   357,   360,   363,   366,   369,
530         372,   375,   378,   381,   384,   387,   390,   393,   396,   399,
531         402,   405,   408,   411,   414,   417,   420,   423,   426,   429,
532         432,   435,   438,   441,   444,   447,   450,   453,   456,   459,
533         462,   465,   468,   471,   474,   477,   480,   483,   486,   489,
534         492,   495,   498,   501,   504,   507
535  };  };
536  #endif  #endif
537    
# Line 430  static const unsigned char yyrline[] = Line 540  static const unsigned char yyrline[] =
540     First, the terminals, then, starting at YYNTOKENS, nonterminals. */     First, the terminals, then, starting at YYNTOKENS, nonterminals. */
541  static const char *const yytname[] =  static const char *const yytname[] =
542  {  {
543    "$end", "error", "$undefined", "CHAR", "DOTNUM", "NUMBER", "SP", "LF",    "$end", "error", "$undefined", "'#'", "'='", "'.'", "'+'", "'-'", "'0'",
544    "CR", "HASH", "EQ", "ADD", "GET", "CREATE", "DESTROY", "LIST", "LOAD",    "'1'", "'2'", "'3'", "'4'", "'5'", "'6'", "'7'", "'8'", "'9'", "'A'",
545    "REMOVE", "SET", "SUBSCRIBE", "UNSUBSCRIBE", "RESET", "QUIT", "CHANNEL",    "'B'", "'C'", "'D'", "'E'", "'F'", "'G'", "'H'", "'I'", "'J'", "'K'",
546    "NOTIFICATION", "AVAILABLE_ENGINES", "AVAILABLE_AUDIO_OUTPUT_DRIVERS",    "'L'", "'M'", "'N'", "'O'", "'P'", "'Q'", "'R'", "'S'", "'T'", "'U'",
547    "CHANNELS", "INFO", "BUFFER_FILL", "STREAM_COUNT", "VOICE_COUNT",    "'V'", "'W'", "'X'", "'Y'", "'Z'", "'a'", "'b'", "'c'", "'d'", "'e'",
548    "INSTRUMENT", "ENGINE", "AUDIO_OUTPUT_CHANNEL",    "'f'", "'g'", "'h'", "'i'", "'j'", "'k'", "'l'", "'m'", "'n'", "'o'",
549    "AUDIO_OUTPUT_CHANNEL_PARAMETER", "AUDIO_OUTPUT_DEVICE",    "'p'", "'q'", "'r'", "'s'", "'t'", "'u'", "'v'", "'w'", "'x'", "'y'",
550    "AUDIO_OUTPUT_DEVICES", "AUDIO_OUTPUT_DEVICE_PARAMETER",    "'z'", "'!'", "'$'", "'%'", "'&'", "'('", "')'", "'*'", "','", "'/'",
551    "AUDIO_OUTPUT_DRIVER", "AUDIO_OUTPUT_DRIVER_PARAMETER",    "':'", "';'", "'<'", "'>'", "'?'", "'@'", "'['", "'\\\\'", "']'", "'^'",
552    "MIDI_INPUT_PORT", "MIDI_INPUT_CHANNEL", "MIDI_INPUT_TYPE", "VOLUME",    "'_'", "'{'", "'|'", "'}'", "'~'", "'\\200'", "'\\201'", "'\\202'",
553    "BYTES", "PERCENTAGE", "$accept", "input", "line", "comment", "command",    "'\\203'", "'\\204'", "'\\205'", "'\\206'", "'\\207'", "'\\210'",
554    "get_instruction", "set_instruction", "create_instruction",    "'\\211'", "'\\212'", "'\\213'", "'\\214'", "'\\215'", "'\\216'",
555    "destroy_instruction", "load_instruction", "set_chan_instruction",    "'\\217'", "'\\220'", "'\\221'", "'\\222'", "'\\223'", "'\\224'",
556    "key_val_list", "buffer_size_type", "list_instruction",    "'\\225'", "'\\226'", "'\\227'", "'\\230'", "'\\231'", "'\\232'",
557    "load_instr_args", "load_engine_args", "midi_input_type", "volume",    "'\\233'", "'\\234'", "'\\235'", "'\\236'", "'\\237'", "' '", "'¡'",
558    "sampler_channel", "instrument_index", "udp_port",    "'¢'", "'£'", "'¤'", "'¥'", "'¦'", "'§'", "'¨'", "'©'", "'ª'", "'«'",
559    "audio_output_channel", "midi_input_channel", "session_id",    "'¬'", "'­'", "'®'", "'¯'", "'°'", "'±'", "'²'", "'³'", "'´'", "'µ'",
560    "engine_name", "midi_input_port", "filename", "alpha_num_string",    "'¶'", "'·'", "'¸'", "'¹'", "'º'", "'»'", "'¼'", "'½'", "'¾'", "'¿'",
561    "string", 0    "'À'", "'Á'", "'Â'", "'Ã'", "'Ä'", "'Å'", "'Æ'", "'Ç'", "'È'", "'É'",
562      "'Ê'", "'Ë'", "'Ì'", "'Í'", "'Î'", "'Ï'", "'Ð'", "'Ñ'", "'Ò'", "'Ó'",
563      "'Ô'", "'Õ'", "'Ö'", "'×'", "'Ø'", "'Ù'", "'Ú'", "'Û'", "'Ü'", "'Ý'",
564      "'Þ'", "'ß'", "'à'", "'á'", "'â'", "'ã'", "'ä'", "'å'", "'æ'", "'ç'",
565      "'è'", "'é'", "'ê'", "'ë'", "'ì'", "'í'", "'î'", "'ï'", "'ð'", "'ñ'",
566      "'ò'", "'ó'", "'ô'", "'õ'", "'ö'", "'÷'", "'ø'", "'ù'", "'ú'", "'û'",
567      "'ü'", "'ý'", "'þ'", "'ÿ'", "'''", "'\"'", "' '", "'\\n'", "'\\r'",
568      "$accept", "input", "line", "comment", "command", "subscribe_event",
569      "unsubscribe_event", "get_instruction", "set_instruction",
570      "create_instruction", "destroy_instruction", "load_instruction",
571      "set_chan_instruction", "key_val_list", "buffer_size_type",
572      "list_instruction", "load_instr_args", "load_engine_args",
573      "device_index", "audio_channel_index", "audio_output_type_name",
574      "midi_input_port_index", "midi_input_channel_index",
575      "midi_input_type_name", "volume_value", "sampler_channel",
576      "instrument_index", "engine_name", "filename", "param_val", "boolean",
577      "string", "dotnum", "digits", "digit", "number", "char", "text",
578      "stringval", "SP", "LF", "CR", "ADD", "GET", "CREATE", "DESTROY",
579      "LIST", "LOAD", "ALL", "NON_MODAL", "REMOVE", "SET", "SUBSCRIBE",
580      "UNSUBSCRIBE", "CHANNEL", "AVAILABLE_ENGINES",
581      "AVAILABLE_AUDIO_OUTPUT_DRIVERS", "CHANNELS", "INFO", "BUFFER_FILL",
582      "STREAM_COUNT", "VOICE_COUNT", "INSTRUMENT", "ENGINE",
583      "AUDIO_OUTPUT_DEVICE_PARAMETER", "AUDIO_OUTPUT_DEVICES",
584      "AUDIO_OUTPUT_DEVICE", "AUDIO_OUTPUT_DRIVER_PARAMETER",
585      "AUDIO_OUTPUT_DRIVER", "AUDIO_OUTPUT_CHANNEL_PARAMETER",
586      "AUDIO_OUTPUT_CHANNEL", "AUDIO_OUTPUT_TYPE",
587      "AVAILABLE_MIDI_INPUT_DRIVERS", "MIDI_INPUT_DEVICE_PARAMETER",
588      "MIDI_INPUT_PORT_PARAMETER", "MIDI_INPUT_DEVICES", "MIDI_INPUT_DEVICE",
589      "MIDI_INPUT_DRIVER_PARAMETER", "MIDI_INPUT_DRIVER", "MIDI_INPUT_PORT",
590      "MIDI_INPUT_CHANNEL", "MIDI_INPUT_TYPE", "MIDI_INPUT", "VOLUME",
591      "BYTES", "PERCENTAGE", "RESET", "MISCELLANEOUS", "ECHO", "QUIT", 0
592  };  };
593  #endif  #endif
594    
# Line 457  static const char *const yytname[] = Line 597  static const char *const yytname[] =
597     token YYLEX-NUM.  */     token YYLEX-NUM.  */
598  static const unsigned short yytoknum[] =  static const unsigned short yytoknum[] =
599  {  {
600         0,   256,   257,   258,   259,   260,   261,   262,   263,   264,         0,   256,   257,    35,    61,    46,    43,    45,    48,    49,
601       265,   266,   267,   268,   269,   270,   271,   272,   273,   274,        50,    51,    52,    53,    54,    55,    56,    57,    65,    66,
602       275,   276,   277,   278,   279,   280,   281,   282,   283,   284,        67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
603       285,   286,   287,   288,   289,   290,   291,   292,   293,   294,        77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
604       295,   296,   297,   298,   299,   300,   301        87,    88,    89,    90,    97,    98,    99,   100,   101,   102,
605         103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
606         113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
607          33,    36,    37,    38,    40,    41,    42,    44,    47,    58,
608          59,    60,    62,    63,    64,    91,    92,    93,    94,    95,
609         123,   124,   125,   126,   128,   129,   130,   131,   132,   133,
610         134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
611         144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
612         154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
613         164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
614         174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
615         184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
616         194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
617         204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
618         214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
619         224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
620         234,   235,   236,   237,   238,   239,   240,   241,   242,   243,
621         244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
622         254,   255,    39,    34,    32,    10,    13
623  };  };
624  # endif  # endif
625    
626  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
627  static const unsigned char yyr1[] =  static const unsigned short yyr1[] =
628  {  {
629         0,    47,    48,    48,    48,    49,    49,    49,    49,    50,         0,   227,   228,   228,   229,   229,   229,   229,   230,   230,
630        50,    50,    50,    50,    51,    51,    51,    51,    51,    51,       230,   230,   230,   231,   231,   231,   231,   231,   231,   231,
631        51,    51,    51,    51,    51,    51,    52,    52,    52,    52,       231,   231,   231,   231,   231,   231,   232,   232,   232,   232,
632        52,    52,    52,    52,    52,    52,    52,    52,    52,    52,       232,   232,   233,   233,   233,   233,   233,   233,   234,   234,
633        52,    53,    53,    53,    53,    53,    54,    55,    56,    56,       234,   234,   234,   234,   234,   234,   234,   234,   234,   234,
634        57,    57,    57,    57,    57,    57,    58,    58,    59,    59,       234,   234,   234,   234,   234,   234,   234,   234,   234,   234,
635        60,    61,    62,    63,    64,    64,    65,    66,    67,    68,       234,   235,   235,   235,   235,   235,   235,   236,   236,   236,
636        69,    70,    71,    72,    73,    73,    74,    74,    74,    74,       236,   237,   237,   238,   238,   239,   239,   239,   239,   239,
637        75,    75       239,   239,   239,   239,   240,   240,   241,   241,   242,   242,
638         242,   243,   243,   244,   245,   246,   247,   248,   249,   249,
639         250,   251,   251,   252,   253,   254,   255,   256,   256,   256,
640         256,   257,   257,   258,   258,   259,   259,   259,   260,   260,
641         261,   261,   261,   261,   261,   261,   261,   261,   261,   261,
642         262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
643         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
644         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
645         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
646         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
647         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
648         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
649         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
650         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
651         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
652         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
653         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
654         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
655         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
656         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
657         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
658         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
659         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
660         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
661         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
662         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
663         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
664         263,   263,   263,   263,   263,   263,   263,   263,   263,   264,
665         264,   264,   264,   265,   265,   266,   267,   268,   269,   270,
666         271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
667         281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
668         291,   292,   293,   294,   295,   296,   297,   298,   299,   300,
669         301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
670         311,   312,   313,   314,   315,   316
671  };  };
672    
673  /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */  /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
674  static const unsigned char yyr2[] =  static const unsigned char yyr2[] =
675  {  {
676         0,     2,     1,     3,     4,     0,     1,     1,     1,     1,         0,     2,     2,     3,     0,     1,     1,     1,     1,     2,
677         2,     2,     2,     2,     3,     3,     3,     3,     3,     3,         2,     2,     2,     3,     3,     3,     3,     3,     3,     5,
678         5,     3,     5,     5,     5,     1,     1,     1,     5,     7,         3,     3,     3,     5,     1,     1,     1,     1,     1,     1,
679         9,     1,     5,     7,     9,     1,     5,     7,     5,     5,         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
680         5,     7,     7,     9,     9,     3,     5,     3,     3,     3,         5,     7,     9,     1,     5,     7,     9,     1,     1,     5,
681         5,     7,     5,     5,     5,     5,     3,     5,     1,     1,         5,     7,     9,     7,     9,     1,     5,     7,     5,     5,
682         1,     5,     3,     1,     1,     1,     1,     1,     1,     1,         5,     7,     9,     7,     9,     3,     3,     5,     3,     5,
683         1,     1,     1,     1,     1,     3,     1,     1,     2,     2,         3,     3,     3,     3,     3,     5,     7,     5,     9,     5,
684         1,     2         5,     5,     5,     5,     3,     5,     1,     1,     1,     1,
685           1,     5,     7,     3,     1,     1,     1,     1,     1,     1,
686           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
687           1,     1,     1,     1,     2,     3,     4,     4,     1,     2,
688           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
689           1,     2,     2,     2,     2,     2,     2,     2,     2,     2,
690           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
691           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
692           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
693           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
694           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
695           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
696           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
697           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
698           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
699           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
700           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
701           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
702           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
703           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
704           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
705           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
706           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
707           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
708           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
709           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
710           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
711           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
712           1,     2,     2,     3,     3,     1,     1,     1,     3,     3,
713           6,     7,     4,     4,     3,     9,     6,     3,     9,    11,
714           7,    17,    30,     8,     4,    11,    12,    11,    10,     6,
715          29,    20,    19,    29,    19,    30,    20,    17,    28,    27,
716          25,    18,    17,    27,    17,    15,    18,    15,    10,     6,
717           5,    10,     5,    13,     4,     4
718  };  };
719    
720  /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state  /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
721     STATE-NUM when YYTABLE doesn't specify something else to do.  Zero     STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
722     means the default is an error.  */     means the default is an error.  */
723  static const unsigned char yydefact[] =  static const unsigned short yydefact[] =
724  {  {
725         0,     8,     9,     0,     0,     0,     0,     0,     0,     0,         0,     7,     8,     0,     0,     0,     0,     0,     0,     0,
726         0,     0,     0,     0,    25,     0,     2,     6,     7,     0,         0,     0,     0,     0,     5,     6,     0,     0,     0,     0,
727           0,     0,     0,     0,     0,     0,    24,    25,     0,     0,
728           0,     0,     0,     0,     0,     0,     0,     0,     0,     1,
729         366,   367,     2,     0,     9,   218,   212,   210,   211,   120,
730         121,   122,   123,   124,   125,   126,   127,   128,   129,   140,
731         141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
732         151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
733         161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
734         171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
735         181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
736         191,   202,   204,   205,   206,   207,   208,   209,   213,   214,
737         215,   216,   217,   219,   220,   221,   222,   223,   224,   225,
738         226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
739         236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
740         246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
741         256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
742         266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
743         276,   277,   278,   279,   280,   281,   282,   283,   284,   285,
744         286,   287,   288,   289,   290,   291,   292,   293,   294,   295,
745         296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
746         306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
747         316,   317,   318,   319,   320,   321,   322,   323,   324,   325,
748         326,   327,   328,   329,   330,   331,   332,   333,   334,   335,
749         336,   337,   338,   339,   340,   341,   342,   343,   344,   345,
750         346,   347,   348,   349,   350,   351,   352,   353,   354,   355,
751         356,   357,   358,   365,    12,   130,    11,   113,    10,     0,
752           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
753         368,     0,     0,   369,     0,     0,     0,     0,     0,   377,
754           0,     0,     3,   120,   121,   122,   123,   124,   125,   126,
755         127,   128,   129,   131,   118,   132,   133,   134,   135,   136,
756         137,   138,   139,   203,   192,   193,   194,   195,   196,   197,
757         198,   199,   200,   201,   114,     0,    13,     0,     0,     0,
758           0,    14,     0,    38,    43,    55,     0,    47,     0,     0,
759           0,     0,     0,    39,     0,    48,     0,     0,     0,     0,
760           0,     0,    15,     0,     0,    16,     0,     0,     0,     0,
761           0,    17,    90,    88,    89,     0,    18,     0,     0,     0,
762           0,     0,     0,    20,     0,     0,     0,     0,     0,     0,
763           0,     0,     0,     0,     0,    21,    26,    30,    29,    28,
764          27,    31,    22,    32,    36,    35,    34,    33,    37,     0,
765           0,     0,   372,   373,   415,     0,     0,     0,     0,   119,
766           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
767           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
768           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
769           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
770           0,     0,     0,     0,     0,     0,     0,     0,     0,   412,
771           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
772           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
773           0,     0,     0,     0,     0,    68,    70,   121,   122,   123,
774         124,   125,   126,   127,   128,   129,    71,    72,     0,     0,
775           0,     0,     0,     0,     0,    73,     0,   106,     0,    74,
776           0,   105,    19,   103,     0,     0,     0,     0,     0,     0,
777          65,     0,     0,     0,     0,     0,     0,     0,     0,     0,
778           0,     0,     0,     0,    66,   112,   111,     0,     0,     0,
779           0,     0,    23,   370,     0,   376,     0,     0,     0,     0,
780           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
781           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
782           0,     0,     0,     0,     0,     0,     0,     0,   360,     0,
783         359,     0,     0,     0,     0,     0,   414,     0,     0,     0,
784           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
785           0,     0,     0,     0,     0,   384,     0,     0,     0,   371,
786           0,     0,     0,     0,     0,     0,     0,     0,    56,     0,
787           0,     0,    86,    87,    58,    59,    60,    49,     0,    44,
788           0,     0,     0,    50,     0,    40,     0,     0,     0,    67,
789           0,    69,     0,     0,     0,     0,     0,   363,   362,   361,
790         364,     0,   104,     0,    93,     0,     0,     0,     0,     0,
791           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
792           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
793           0,     0,     0,   389,     0,     0,     0,     0,     0,     0,
794           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
795           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
796         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
797         1,     0,     0,    80,    12,    11,    10,    13,    14,     0,         0,     0,     0,     0,     0,     0,     0,   378,     0,   380,
798        26,    27,    35,     0,     0,     0,     0,    31,     0,     0,         0,     0,   380,     0,     0,     0,    57,    45,     0,    53,
799        15,     0,    16,     0,    17,    60,    18,     0,     0,    19,         0,    41,    51,     0,     0,     0,   210,   211,    84,   107,
800         0,     0,     0,     0,    21,     0,     0,     0,     3,     0,       110,     0,   118,   109,   108,     0,     0,     0,     0,     0,
801        81,     0,     0,     0,     0,     0,     0,     0,     0,     0,        91,     0,     0,     0,     0,     0,     0,    75,    94,     0,
802         0,     0,     0,     0,     0,     0,     0,     0,     0,     4,        95,    77,    96,    79,    80,    97,     0,    81,    98,    99,
803         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,        82,   100,     0,     0,     0,    83,   101,   102,    61,     0,
804         0,    47,    77,    48,     0,    74,    76,    49,     0,    72,        63,     0,     0,     0,     0,     0,     0,     0,     0,   383,
805        66,    20,     0,     0,     0,     0,     0,     0,    45,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
806         0,    68,    22,    23,    71,    24,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
807         0,     0,     0,     0,     0,     0,     0,     0,    79,    78,         0,     0,   409,     0,     0,     0,     0,     0,     0,     0,
808         0,     0,     0,     0,     0,     0,     0,     0,     0,    36,         0,     0,   379,     0,     0,     0,   410,     0,    46,    54,
809        58,    59,     0,    38,    39,    40,     0,     0,    32,    28,        52,    42,     0,     0,    85,     0,     0,   115,     0,     0,
810         0,    46,     0,    77,     0,    75,    62,     0,     0,     0,         0,     0,    92,     0,     0,     0,     0,    76,   374,     0,
811         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,        62,    64,     0,     0,     0,     0,     0,     0,     0,     0,
812         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,   116,   117,     0,     0,   388,     0,     0,     0,
813         0,    37,    33,     0,    29,     0,    56,    61,    69,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
814        50,    52,    73,    70,    53,    54,    63,    64,    65,    55,         0,     0,     0,     0,     0,     0,     0,   375,     0,     0,
815         0,    41,    42,     0,     0,     0,     0,     0,     0,    34,         0,     0,    78,   385,     0,     0,   387,     0,     0,     0,
816        30,    57,    51,    43,    44         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
817           0,     0,   408,     0,   386,     0,     0,     0,     0,     0,
818           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
819           0,     0,   413,     0,     0,     0,     0,     0,     0,     0,
820           0,   411,     0,     0,     0,     0,     0,     0,     0,     0,
821           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
822           0,     0,   405,     0,     0,     0,     0,     0,     0,     0,
823           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
824           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
825           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
826         381,     0,   402,   404,     0,     0,   402,     0,     0,     0,
827           0,     0,     0,     0,     0,   405,   407,     0,     0,     0,
828           0,     0,   401,     0,     0,     0,     0,     0,     0,     0,
829           0,     0,     0,     0,   392,   394,     0,     0,     0,     0,
830         392,     0,     0,     0,     0,     0,   397,     0,   396,   391,
831           0,     0,     0,     0,     0,     0,     0,     0,     0,   406,
832           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
833           0,     0,     0,     0,     0,     0,     0,   396,     0,     0,
834           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
835           0,     0,     0,     0,     0,     0,     0,     0,     0,   400,
836           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
837           0,     0,     0,   403,     0,   399,     0,     0,     0,   398,
838           0,     0,   393,     0,   390,   395,   382
839  };  };
840    
841  /* YYDEFGOTO[NTERM-NUM]. */  /* YYDEFGOTO[NTERM-NUM]. */
842  static const short yydefgoto[] =  static const short yydefgoto[] =
843  {  {
844        -1,    15,    16,    17,    18,    50,    64,    52,    54,    59,        -1,    12,    13,    14,    15,   385,   392,   331,   373,   352,
845       118,   161,   152,    56,   103,   107,   205,   209,   111,   164,       355,   366,   520,   639,   621,   361,   505,   509,   767,   769,
846       122,   199,   204,   123,   108,   201,   104,   105,   106       771,   774,   777,   780,   785,   512,   651,   510,   506,   748,
847         534,   749,   750,   751,   265,   513,   267,   579,   754,   696,
848          42,    43,    16,    17,    18,    19,    20,    21,   779,   508,
849          22,    23,    24,    25,   326,   333,   334,   335,   387,   388,
850         389,   390,   367,   336,   375,   337,   338,   339,   340,   341,
851         342,   523,   343,   377,   344,   345,   346,   347,   348,   349,
852         526,   527,   528,   529,   622,   623,    26,   391,   379,    27
853  };  };
854    
855  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
856     STATE-NUM.  */     STATE-NUM.  */
857  #define YYPACT_NINF -86  #define YYPACT_NINF -699
858  static const short yypact[] =  static const short yypact[] =
859  {  {
860         3,   -86,   -86,    21,    25,    43,    67,    86,    91,    96,        54,  -699,  -699,    32,    16,    91,   123,    -2,    24,   124,
861       105,   106,   108,   109,   -86,    28,   -86,    84,   -86,   -14,        63,    45,   177,  -197,  1575,  -699,   -32,   -32,   -32,   -32,
862         7,    80,    85,    83,     5,    87,    22,    99,   100,   102,       -32,   -32,   -32,   -32,   -32,   -32,   -32,  -699,   212,   236,
863       -86,     3,   115,   -86,   -86,   -86,   -86,   123,   -86,   121,       198,   222,   224,   243,   238,    -5,   225,   246,   230,  -699,
864       -86,   -86,   -86,   122,   128,   129,   130,   -86,   131,   132,      -699,  -699,  -699,    42,  -699,  -699,  -699,  -699,  -699,  -699,
865       -86,   133,   -86,   134,   -86,   -86,   -86,   135,   136,   -86,       214,   214,   214,   214,   214,   214,   214,   214,   214,  -699,
866       137,   138,   139,   140,   -86,   141,   143,   144,   -86,     3,      -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,
867       -86,   -23,   101,   124,   125,   126,   127,   142,   148,   151,      -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,
868        45,   148,   152,    38,   153,   154,   155,    45,   152,   -86,      -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,
869       157,   158,   159,   160,   161,   162,   166,   167,   168,   169,      -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,
870        23,   -86,   -86,   -86,   170,    93,   123,   -86,   171,   123,      -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,
871       -86,   -86,   172,   174,   175,   176,   177,   178,   -86,   180,      -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,
872       181,   -86,   -86,   -86,    93,   -86,   152,    40,   152,   152,      -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,
873       148,   183,   184,   185,   148,   148,   148,    98,   -86,   123,      -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,
874       152,   152,   152,   152,   152,   152,   152,   186,   148,   -86,      -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,
875       -86,   -86,   187,   -86,   -86,   -86,   192,   193,   -86,   123,      -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,
876        72,   194,    73,   195,   196,    93,   -86,   197,   199,   202,      -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,
877       203,   204,   205,   206,    52,   152,   208,   209,   148,   148,      -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,
878        45,   152,   210,   211,    45,   212,   148,   104,   148,    45,      -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,
879        45,   -86,   -86,   213,    88,    74,    93,   -86,   -86,   214,      -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,
880       -86,   -86,    93,   -86,   -86,   -86,   123,   -86,   -86,   -86,      -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,
881        53,    93,    93,   148,   148,    45,   210,    45,    45,   123,      -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,
882       194,    93,   -86,    93,    93      -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,
883        -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,
884        -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,
885        -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,
886        -699,  -699,  -699,  -699,  2240,  -699,  -699,  -699,  -699,   248,
887         178,    77,    77,    64,    30,   248,   179,    61,    61,   248,
888        -699,   251,   233,  -699,   234,   252,   235,   242,   253,  -699,
889         241,   244,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,
890        -699,  -699,  -699,   214,  -699,   214,   214,   214,   214,   214,
891         214,   214,   214,  -699,  -699,  -699,  -699,  -699,  -699,  -699,
892        -699,  -699,  -699,  -699,  -699,   256,  -699,    66,   258,   245,
893         259,  -699,   -32,  -699,  -699,  -699,   -32,  -699,   -32,   -32,
894         -32,   -32,   -32,  -699,   -32,  -699,   -32,   -32,   -32,   -32,
895         249,   260,  -699,   -32,   -32,  -699,   -32,   -32,   250,   264,
896         265,  -699,  -699,  -699,  -699,   247,  -699,   -32,   -32,   -32,
897         254,   270,   268,  -699,   -32,   -32,   -32,   -32,   -32,   -32,
898         266,   272,   279,   269,   275,  -699,  -699,  -699,  -699,  -699,
899        -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,   -32,
900         271,   274,  -699,  -699,  -699,   273,   276,   290,   292,  -699,
901         296,   263,   297,   298,   294,   300,    60,   291,   291,   291,
902         291,   291,   291,   291,   291,   291,   291,   291,   301,   302,
903        2240,  2240,   240,   240,   304,   315,   318,   283,   -28,  2240,
904         240,   319,   313,   322,    20,   240,   240,   240,   240,  2459,
905         323,   324,   312,   314,   325,   240,   328,   320,   331,  -699,
906         326,   332,   327,   333,   334,   338,   344,   345,   -32,   -32,
907         -32,   -32,   -32,   -32,   -32,   -32,   -32,   -32,   -32,   -32,
908         -32,   -32,   -32,   346,   347,  1797,  1797,   214,   214,   214,
909         214,   214,   214,   214,   214,   214,  -699,  -699,   348,   349,
910         350,   341,   343,  1797,  1797,  -699,   -32,  -699,   -32,  -699,
911         -32,  2240,  -699,  -699,   353,   351,   355,   316,   356,   352,
912        -699,   -32,   -32,   -32,   -32,   -32,   -32,   -32,   -32,   -32,
913         -32,   -32,   -32,   -32,  -699,  2240,  -699,   362,   354,   368,
914         367,   370,  -699,  -699,   357,  -699,   365,   372,   363,   361,
915         366,   369,   371,   307,   240,     1,   240,   240,  2240,   240,
916        2240,  2240,   240,   240,   240,   240,  2240,  2240,   240,   373,
917         308,  2240,  2240,   374,   376,   309,   375,   377,  2240,  1131,
918        -699,  1353,   240,   -91,   240,   379,  -699,   335,   380,   382,
919         383,   240,   240,   240,   240,   240,   240,   240,   240,   240,
920        2240,   240,  2240,   240,   387,  -699,   391,   386,   392,  -699,
921         396,   381,   395,   336,   402,   399,   400,   397,  -699,   384,
922         405,   -32,  -699,  -699,  -699,  -699,  -699,  -699,  1797,  2240,
923         -32,   -32,   -32,  -699,  1797,  2240,   -32,   339,   403,   -32,
924        2678,   -32,   358,   408,   410,   401,   359,  -699,  2240,  -699,
925        -699,   -32,  -699,   -32,  -699,   360,   411,   412,   414,   404,
926         -32,   -32,   -32,   -32,   -32,   -32,   -32,   -32,   -32,  2897,
927         -32,  3116,   -32,   406,   415,   413,   364,   423,   420,   421,
928         419,   433,   425,  -699,   424,   434,   437,   240,  2240,   240,
929         240,   240,  2240,   240,   443,   445,  2240,  2019,   454,   458,
930         457,   459,   460,   240,   240,   461,   464,   465,   435,   469,
931         240,   240,  2240,   240,   240,   228,  2240,   240,   204,  2019,
932        2240,  2019,  2240,   436,   493,   438,   503,  -699,   507,  -699,
933         490,   500,   494,   498,   510,   513,  -699,  1797,   -32,  -699,
934         -32,  1797,  -699,   496,   502,  3335,   214,   214,  -699,  2240,
935        -699,   110,   -22,  -699,  -699,   499,   494,   505,   514,   508,
936        -699,   -32,   501,   509,   452,   517,   522,  -699,  -699,   -32,
937        -699,  -699,  2240,  -699,  -699,  -699,   518,  -699,  -699,  -699,
938        -699,  2240,   -32,   214,   214,  -699,  -699,  -699,  -699,  3554,
939        -699,  3773,   523,   534,   533,   524,   536,   525,   537,  -699,
940         526,   519,   538,  2240,  2240,  2240,  2240,   528,   532,  2019,
941         125,   171,   214,   529,   535,   530,   542,   240,   539,   540,
942         543,   541,  -699,   240,   545,   240,  2019,  2019,   551,   548,
943         549,   544,  -699,   547,   482,   546,  -699,   553,   -32,  2240,
944        2240,   -32,   552,   554,  -699,   214,   214,   214,   555,   556,
945         557,   568,  -699,   559,   558,   560,   563,  -699,  -699,   -32,
946        -699,  -699,   561,   575,   562,   570,   564,    80,   515,   566,
947         567,   521,   214,   214,   569,   572,  -699,   577,   573,   574,
948         571,   576,   228,   583,   581,   584,   580,   586,   587,   590,
949         600,   157,   609,   591,   578,   592,   610,  -699,   593,   172,
950         599,   596,  -699,  -699,   597,   601,  -699,   579,   613,   612,
951         616,     4,   608,   618,   582,   621,   585,   622,   589,   623,
952         614,   619,   595,   611,  -699,   129,   633,   636,   638,   626,
953         640,   632,   647,   649,   634,   651,   641,   186,   642,   650,
954         645,    40,  -699,   661,    71,   656,   658,   602,   666,   654,
955         657,  -699,   673,   672,   680,   684,   681,   690,   687,   677,
956         627,   692,   683,   676,   701,   682,   694,   635,   700,   697,
957         707,   708,   643,   695,   711,   696,   713,   720,   703,   719,
958         643,    12,   722,   709,   710,   714,   724,   712,   721,   716,
959         715,   732,   723,   728,   729,   740,   737,   742,   734,   741,
960         746,   744,   730,   745,   738,   749,   750,   757,   758,   747,
961        -699,   751,   752,   693,   765,   766,  -699,   767,   752,   759,
962         769,   702,   774,   760,   763,  -699,  -699,   776,   781,   770,
963         771,   768,  -699,   777,   772,   792,   793,   796,   797,   789,
964         795,   801,   802,   798,   794,   743,   800,   803,   811,   813,
965        -699,   794,   805,   753,   820,   808,  -699,   812,   754,  -699,
966         815,   806,   756,   814,   816,   754,   817,   818,   829,  -699,
967         819,   836,   823,   834,   838,   835,   843,   846,   837,   847,
968         832,   780,   839,   840,   842,   841,   850,  -699,   851,   854,
969         852,   855,   860,   863,   869,   868,   873,   862,   858,   856,
970         857,   864,   867,   865,   870,   879,   877,   882,   883,  -699,
971         884,   885,   886,   872,   871,   876,   878,   875,   880,   881,
972         892,   894,   887,  -699,   898,  -699,   902,   890,   891,  -699,
973         895,   896,  -699,   893,  -699,  -699,  -699
974  };  };
975    
976  /* YYPGOTO[NTERM-NUM].  */  /* YYPGOTO[NTERM-NUM].  */
977  static const yysigned_char yypgoto[] =  static const short yypgoto[] =
978  {  {
979       -86,   -86,   -30,   -86,   -86,   -86,   -86,   -86,   -86,   -86,      -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,
980       -86,   -22,   -86,   -86,   -86,   -86,   -86,   -86,   -75,   -86,      -699,  -699,  -699,  -571,  -699,  -699,  -699,  -699,  -659,   109,
981       -86,     2,   -86,   -86,    92,   -86,   -86,   -85,   -17      -699,   111,    52,  -699,  -699,  -440,   231,   385,   378,  -698,
982        -699,   317,   219,    13,   -10,   -14,   293,   440,  -411,   -12,
983         897,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,  -699,
984        -699,  -699,  -699,  -699,  -167,  -699,  -699,  -130,  -256,  -243,
985        -242,  -241,  -699,   664,  -699,   669,  -255,  -699,  -699,   663,
986         504,  -699,  -699,  -699,   670,   674,  -253,  -699,  -699,   506,
987        -699,  -699,  -699,  -699,  -699,  -699,  -699,   667,  -699,  -699
988  };  };
989    
990  /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If  /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
991     positive, shift that token.  If negative, reduce the rule which     positive, shift that token.  If negative, reduce the rule which
992     number is the opposite.  If zero, do what YYDEFACT says.     number is the opposite.  If zero, do what YYDEFACT says.
993     If YYTABLE_NINF, syntax error.  */     If YYTABLE_NINF, syntax error.  */
994  #define YYTABLE_NINF -68  #define YYTABLE_NINF -131
995  static const short yytable[] =  static const short yytable[] =
996  {  {
997        37,    68,   124,    -5,     1,    90,    91,    92,    93,    38,       266,   641,   268,   502,   269,   270,   271,   272,   273,   274,
998        -5,    -5,     2,   125,     3,     4,     5,     6,     7,     8,       275,   276,   277,   278,   279,   542,   353,   356,   354,   357,
999         9,    10,    11,    12,    13,    14,    70,    19,    30,   136,       619,   788,   394,   790,    32,   287,   929,   507,    40,    41,
1000        39,    20,    40,    41,    42,    31,    32,    57,    58,    89,        33,   288,  1001,   952,   620,   395,   396,   397,   517,   930,
1001        43,    44,    45,    46,    47,    61,    48,    49,    33,    21,       304,   304,   304,   304,   304,   304,   304,   304,   304,  1002,
1002       102,   149,   165,   153,   154,    70,    70,    62,   189,   217,       518,    29,   329,    28,   773,     1,   365,     2,   782,   519,
1003        63,   100,   190,   218,   109,   166,   167,   168,   169,   170,       961,   915,    34,   303,   305,   306,   307,   308,   309,   310,
1004       171,   172,   112,    22,   113,    70,    70,    70,   178,   114,       311,   312,     3,   962,     4,     5,    38,   963,     6,   380,
1005       115,   116,   117,   180,   215,   150,   151,    33,   139,    34,       380,   359,   358,     7,   359,    36,   381,   381,     8,     9,
1006        35,    70,    23,    36,   214,   196,    33,    24,   138,   202,        10,   382,    11,   965,   360,   350,   383,   383,   888,   384,
1007       191,    33,    25,   163,   211,   212,   197,   139,   207,   208,       384,    37,   889,   332,   411,   412,   966,   351,   369,   374,
1008        60,    26,    27,   109,    28,    29,    51,   159,   160,   162,       890,   844,   399,    30,   618,   812,   624,   625,   293,   294,
1009        55,    53,    69,    65,    66,    67,    70,    71,    72,    94,       295,   296,   297,   298,   299,   300,   301,   302,   860,   861,
1010       221,   174,   223,   224,    73,    74,    75,    76,    77,    78,       845,   503,   504,   293,   294,   295,   296,   297,   298,   299,
1011        79,    80,    81,    82,    83,    84,    85,    86,   139,    87,       300,   301,   302,   362,   654,    31,    35,   386,   393,   943,
1012        88,    33,    95,    96,    97,    98,   101,   110,   119,   120,       944,   660,   661,   662,   663,   664,   665,   666,   667,   668,
1013       121,   194,   195,   126,   127,   128,   129,   130,   131,   206,       468,   472,   473,   474,   475,   476,   477,   478,   479,   480,
1014        99,   210,   132,   133,   134,   135,   137,   140,   141,   139,       481,   482,   507,   469,   470,   471,   846,    39,   911,   293,
1015       142,   143,   144,   145,   146,   139,   147,   148,   156,   157,       294,   295,   296,   297,   298,   299,   300,   301,   302,   521,
1016       158,   173,   220,   175,   139,   139,   219,   162,   176,   177,       912,   524,   263,   919,   503,   504,   327,   370,   328,   325,
1017       179,   -67,   181,   182,   139,   183,   139,   139,   184,   185,       329,   371,  -130,  -130,  -130,   920,   956,   957,   330,   372,
1018       186,   187,   188,   192,   193,   198,   200,   203,   222,   213,       783,   784,   293,   487,   488,   489,   490,   491,   492,   493,
1019       216,     0,   155       494,   495,   293,   294,   295,   296,   297,   298,   299,   300,
1020         301,   302,   838,   280,   282,   841,   293,   487,   488,   489,
1021         490,   491,   492,   493,   494,   495,   776,   736,   293,   487,
1022         488,   489,   490,   491,   492,   493,   494,   495,   281,   283,
1023         284,   285,   289,   760,   286,   290,   291,    40,   325,   400,
1024         401,   402,   404,   403,   405,   406,   414,   407,   437,    -4,
1025          -4,   410,   408,   413,   463,   415,   429,   428,   434,   435,
1026         442,   436,   441,   409,   443,   409,   409,   409,   409,   409,
1027         409,   409,   409,   451,   450,   452,   453,   454,   456,   457,
1028         460,   461,   458,   459,   462,   464,   465,   381,   466,   501,
1029         416,   467,   483,   484,   417,   498,   418,   419,   420,   421,
1030         422,   264,   423,   499,   424,   425,   426,   427,   515,   500,
1031         514,   430,   431,   516,   432,   433,   537,   538,   539,   540,
1032         543,   541,   544,   545,   588,   438,   439,   440,   548,   549,
1033         550,   546,   444,   445,   446,   447,   448,   449,   547,   551,
1034         552,   553,   569,   570,   573,   577,   575,   852,   576,   585,
1035         574,   587,   589,   586,   590,   604,   605,   455,   606,   607,
1036         608,   610,   611,   613,   612,   614,   617,   638,   644,   609,
1037         615,   657,   616,   658,   675,   637,   642,   643,   646,   673,
1038         645,   655,   659,   674,   676,   677,   678,   679,   496,   497,
1039         681,   682,   683,   684,   656,   680,   685,   686,   694,   695,
1040         699,   530,   531,   532,   533,   536,   700,   706,   707,   701,
1041         708,   723,   709,   725,   724,   727,   728,   698,   702,   705,
1042         729,   730,   731,   726,   732,   733,   554,   555,   556,   557,
1043         558,   559,   560,   561,   562,   563,   564,   565,   566,   567,
1044         568,   734,   735,   571,   572,   743,   744,   304,   304,   304,
1045         304,   304,   304,   304,   304,   304,   755,   756,   757,   758,
1046         759,   580,   580,   762,   582,   763,   583,   764,   584,   766,
1047         303,   305,   306,   307,   308,   309,   310,   311,   312,   591,
1048         592,   593,   594,   595,   596,   597,   598,   599,   600,   601,
1049         602,   603,   793,   795,   765,   792,   796,   794,   797,   798,
1050         799,   800,   801,   802,   807,   808,   815,   813,   814,   818,
1051         816,   820,   819,   821,   822,   627,   828,   824,   630,   631,
1052         632,   633,   829,   830,   636,   836,   831,   324,   832,   834,
1053         837,   850,   833,   851,   835,   842,   848,   649,   652,   649,
1054         843,   867,   856,   849,   858,   855,   853,   862,   854,   863,
1055         866,   864,   865,   868,   869,   870,   877,   670,   874,   672,
1056         883,   871,   878,   875,   876,   879,   881,   884,   880,   915,
1057         885,   886,   887,   892,   891,   893,   897,   895,   900,   687,
1058         894,   898,   903,   904,   901,   905,   688,   906,   689,   690,
1059         691,   909,   692,   907,   693,   908,   910,   913,   914,   916,
1060         918,   917,   921,   922,   926,   923,   927,   928,   924,   703,
1061         931,   704,   932,   934,   936,   938,   939,   942,   710,   711,
1062         712,   713,   714,   715,   716,   717,   718,   940,   720,   945,
1063         722,   896,   946,   899,   947,   948,   949,   950,   925,   951,
1064         952,   933,   954,   953,   935,   738,   739,   740,   937,   742,
1065         955,   958,   960,   753,   941,   959,   964,   752,   967,   968,
1066         652,   969,   970,   971,   972,   973,   768,   770,   974,   768,
1067         775,   778,   975,   768,   787,   753,   977,   753,   752,   752,
1068         976,   752,   978,   979,   980,   983,   981,   982,   984,   985,
1069         987,   986,   989,   990,   988,   803,   804,   991,   805,   806,
1070         992,   995,   993,   997,   994,   996,   304,   304,   998,  1000,
1071        1003,   409,   999,  1005,  1004,  1006,  1011,   485,   486,   817,
1072        1007,  1008,  1010,  1009,  1012,  1015,   511,   823,  1013,   810,
1073         811,  1014,  1016,  1017,  1018,  1019,   535,  1020,  1021,  1022,
1074         825,  1026,  1023,   304,   304,  1025,  1024,  1028,   324,   324,
1075        1029,  1027,  1033,  1034,  1031,  1030,  1035,  1036,  1032,  1038,
1076        1037,  1039,  1040,  1041,  1042,   753,   810,   811,  1043,   752,
1077         409,   409,   304,  1044,   324,  1045,  1047,  1049,  1046,   770,
1078        1048,   775,   753,   753,  1050,  1051,   752,   752,  1052,  1053,
1079         578,   578,  1054,  1056,  1057,   847,  1055,  1058,   324,  1063,
1080        1059,  1064,  1060,  1061,  1065,   304,   304,   409,  1067,  1068,
1081        1062,  1069,  1066,  1070,  1072,  1073,  1075,   882,  1071,  1074,
1082        1076,  1078,  1079,  1077,  1080,  1082,  1083,  1084,   872,   873,
1083        1081,  1085,   409,   409,  1086,  1088,  1087,  1089,   778,  1090,
1084        1092,   324,  1097,  1098,  1091,   511,  1094,   628,   629,  1093,
1085        1095,  1099,  1100,   634,   635,  1101,  1096,  1102,   640,   640,
1086        1103,  1104,  1105,  1106,  1108,  1107,   648,  1110,   648,  1109,
1087        1112,  1113,  1111,  1114,  1115,  1116,  1117,  1118,  1119,  1120,
1088        1121,  1122,  1124,  1123,  1127,  1125,  1128,   669,  1126,   671,
1089        1130,   324,   324,  1129,  1131,  1132,  1133,   324,   324,  1136,
1090        1134,  1135,   857,   324,   902,   761,   859,   786,   368,   376,
1091         292,   324,   363,   626,   581,   398,   378,   364,   522,     0,
1092         525,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1093           0,   653,   324,     0,   324,     0,     0,     0,     0,     0,
1094           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1095           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1096           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1097           0,     0,     0,     0,     0,   737,     0,     0,     0,   741,
1098           0,     0,     0,   745,     0,     0,     0,     0,     0,     0,
1099           0,     0,     0,     0,     0,     0,     0,     0,     0,   772,
1100         324,     0,     0,   781,   324,     0,     0,   789,   324,   791,
1101           0,     0,   324,     0,     0,     0,     0,     0,     0,     0,
1102           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1103           0,     0,     0,     0,     0,   324,     0,     0,     0,     0,
1104           0,     0,     0,     0,   324,     0,     0,     0,     0,     0,
1105           0,     0,   324,     0,   324,     0,     0,     0,     0,     0,
1106           0,     0,     0,     0,     0,     0,     0,     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         640,   839,   840,   640,     0,     0,     0,     0,     0,     0,
1110           0,     0,   324,   324,   313,    45,    46,    47,    48,   314,
1111         315,   316,   317,   318,   319,   320,   321,   322,   323,    59,
1112          60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
1113          70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
1114          80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
1115          90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
1116         100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
1117         110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
1118         120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
1119         130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
1120         140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
1121         150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
1122         160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
1123         170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
1124         180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
1125         190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
1126         200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
1127         210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
1128         220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
1129         230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
1130         240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
1131         250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
1132         260,   261,   262,   647,     0,   263,   313,    45,    46,    47,
1133          48,   314,   315,   316,   317,   318,   319,   320,   321,   322,
1134         323,    59,    60,    61,    62,    63,    64,    65,    66,    67,
1135          68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
1136          78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
1137          88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
1138          98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
1139         108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
1140         118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
1141         128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
1142         138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
1143         148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
1144         158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
1145         168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
1146         178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
1147         188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
1148         198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
1149         208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
1150         218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
1151         228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
1152         238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
1153         248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
1154         258,   259,   260,   261,   262,     0,   650,   263,    44,    45,
1155          46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
1156          56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
1157          66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
1158          76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
1159          86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
1160          96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
1161         106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
1162         116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
1163         126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
1164         136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
1165         146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
1166         156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
1167         166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
1168         176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
1169         186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
1170         196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
1171         206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
1172         216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
1173         226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
1174         236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
1175         246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
1176         256,   257,   258,   259,   260,   261,   262,     0,     0,   263,
1177         313,    45,    46,    47,    48,   314,   315,   316,   317,   318,
1178         319,   320,   321,   322,   323,    59,    60,    61,    62,    63,
1179          64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
1180          74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
1181          84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
1182          94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
1183         104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
1184         114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
1185         124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
1186         134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
1187         144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
1188         154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
1189         164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
1190         174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
1191         184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
1192         194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
1193         204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
1194         214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
1195         224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
1196         234,   235,   236,   237,   238,   239,   240,   241,   242,   243,
1197         244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
1198         254,   255,   256,   257,   258,   259,   260,   261,   262,     0,
1199           0,   263,   313,    45,    46,   746,   747,    49,    50,    51,
1200          52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
1201          62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
1202          72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
1203          82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
1204          92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
1205         102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
1206         112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
1207         122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
1208         132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
1209         142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
1210         152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
1211         162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
1212         172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
1213         182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
1214         192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
1215         202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
1216         212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
1217         222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
1218         232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
1219         242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
1220         252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
1221         262,   503,   504,   313,    45,    46,    47,    48,   314,   315,
1222         316,   317,   318,   319,   320,   321,   322,   323,    59,    60,
1223          61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
1224          71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
1225          81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
1226          91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
1227         101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
1228         111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
1229         121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
1230         131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
1231         141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
1232         151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
1233         161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
1234         171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
1235         181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
1236         191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
1237         201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
1238         211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
1239         221,   222,   223,   224,   225,   226,   227,   228,   229,   230,
1240         231,   232,   233,   234,   235,   236,   237,   238,   239,   240,
1241         241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
1242         251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
1243         261,   262,   313,    45,    46,    47,    48,    49,    50,    51,
1244          52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
1245          62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
1246          72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
1247          82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
1248          92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
1249         102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
1250         112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
1251         122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
1252         132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
1253         142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
1254         152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
1255         162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
1256         172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
1257         182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
1258         192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
1259         202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
1260         212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
1261         222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
1262         232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
1263         242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
1264         252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
1265         262,   313,   697,    46,    47,    48,   314,   315,   316,   317,
1266         318,   319,   320,   321,   322,   323,    59,    60,    61,    62,
1267          63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
1268          73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
1269          83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
1270          93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
1271         103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
1272         113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
1273         123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
1274         133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
1275         143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
1276         153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
1277         163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
1278         173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
1279         183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
1280         193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
1281         203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
1282         213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
1283         223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
1284         233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
1285         243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
1286         253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
1287         313,   719,    46,    47,    48,   314,   315,   316,   317,   318,
1288         319,   320,   321,   322,   323,    59,    60,    61,    62,    63,
1289          64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
1290          74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
1291          84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
1292          94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
1293         104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
1294         114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
1295         124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
1296         134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
1297         144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
1298         154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
1299         164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
1300         174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
1301         184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
1302         194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
1303         204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
1304         214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
1305         224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
1306         234,   235,   236,   237,   238,   239,   240,   241,   242,   243,
1307         244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
1308         254,   255,   256,   257,   258,   259,   260,   261,   262,   313,
1309         721,    46,    47,    48,   314,   315,   316,   317,   318,   319,
1310         320,   321,   322,   323,    59,    60,    61,    62,    63,    64,
1311          65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
1312          75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
1313          85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
1314          95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
1315         105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
1316         115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
1317         125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
1318         135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
1319         145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
1320         155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
1321         165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
1322         175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
1323         185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
1324         195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
1325         205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
1326         215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
1327         225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
1328         235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
1329         245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
1330         255,   256,   257,   258,   259,   260,   261,   262,   313,   809,
1331          46,    47,    48,   314,   315,   316,   317,   318,   319,   320,
1332         321,   322,   323,    59,    60,    61,    62,    63,    64,    65,
1333          66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
1334          76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
1335          86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
1336          96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
1337         106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
1338         116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
1339         126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
1340         136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
1341         146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
1342         156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
1343         166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
1344         176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
1345         186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
1346         196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
1347         206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
1348         216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
1349         226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
1350         236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
1351         246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
1352         256,   257,   258,   259,   260,   261,   262,   313,   826,    46,
1353          47,    48,   314,   315,   316,   317,   318,   319,   320,   321,
1354         322,   323,    59,    60,    61,    62,    63,    64,    65,    66,
1355          67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
1356          77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
1357          87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
1358          97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
1359         107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
1360         117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
1361         127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
1362         137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
1363         147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
1364         157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
1365         167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
1366         177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
1367         187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
1368         197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
1369         207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
1370         217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
1371         227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
1372         237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
1373         247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
1374         257,   258,   259,   260,   261,   262,   313,   827,    46,    47,
1375          48,   314,   315,   316,   317,   318,   319,   320,   321,   322,
1376         323,    59,    60,    61,    62,    63,    64,    65,    66,    67,
1377          68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
1378          78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
1379          88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
1380          98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
1381         108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
1382         118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
1383         128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
1384         138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
1385         148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
1386         158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
1387         168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
1388         178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
1389         188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
1390         198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
1391         208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
1392         218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
1393         228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
1394         238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
1395         248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
1396         258,   259,   260,   261,   262
1397  };  };
1398    
1399  static const short yycheck[] =  static const short yycheck[] =
1400  {  {
1401        17,    31,    87,     0,     1,    28,    29,    30,    31,    23,        14,   572,    14,    31,    16,    17,    18,    19,    20,    21,
1402         7,     8,     9,    88,    11,    12,    13,    14,    15,    16,        22,    23,    24,    25,    26,   455,   271,   272,   271,   272,
1403        17,    18,    19,    20,    21,    22,     3,     6,     0,     6,        19,   719,   278,   721,    26,    30,    22,   438,   225,   226,
1404        23,     6,    25,    26,    27,     7,     8,    32,    33,    69,        32,    36,    20,    21,    33,   278,   278,   278,    18,    35,
1405        33,    34,    35,    36,    37,    23,    39,    40,     3,     6,        50,    51,    52,    53,    54,    55,    56,    57,    58,    37,
1406         5,   126,   137,   128,   129,     3,     3,    35,     6,     6,        30,    35,    22,    21,   713,     1,    26,     3,   717,    39,
1407        38,    78,    10,    10,    81,   140,   141,   142,   143,   144,        20,    21,    38,    50,    51,    52,    53,    54,    55,    56,
1408       145,   146,    34,     6,    36,     3,     3,     3,     6,    41,        57,    58,    18,    33,    20,    21,    31,    37,    24,    19,
1409        42,    43,    44,    10,    10,    45,    46,     3,   105,     5,        19,    20,    18,    29,    20,    22,    26,    26,    34,    35,
1410         6,     3,     6,     9,     6,   180,     3,     6,     5,   184,        36,    30,    38,    22,    30,    18,    36,    36,    18,    39,
1411       175,     3,     6,     5,   189,   190,   181,   124,     4,     5,        39,    38,    22,   270,    38,    39,    35,    30,   275,   276,
1412        23,     6,     6,   130,     6,     6,    36,   134,   135,   136,        30,   809,   279,    22,   554,     5,   556,   557,     8,     9,
1413        37,    36,     7,    24,    24,    23,     3,     6,     6,    28,        10,    11,    12,    13,    14,    15,    16,    17,   826,   827,
1414       215,   148,   217,   218,     6,     6,     6,     6,     6,     6,         5,   222,   223,     8,     9,    10,    11,    12,    13,    14,
1415         6,     6,     6,     6,     6,     6,     6,     6,   165,     6,        15,    16,    17,   273,   584,    22,    22,   277,   278,    20,
1416         6,     3,    28,    28,    28,    28,     5,     5,     5,     5,        21,   591,   592,   593,   594,   595,   596,   597,   598,   599,
1417         5,   178,   179,     6,     6,     6,     6,     6,     6,   186,       416,   417,   418,   419,   420,   421,   422,   423,   424,   425,
1418        28,   188,     6,     6,     6,     6,     6,     6,     6,   196,       426,   427,   583,   416,   416,   416,     5,     0,    21,     8,
1419         6,     6,     6,     6,     6,   202,     6,     6,     5,     5,         9,    10,    11,    12,    13,    14,    15,    16,    17,   444,
1420         5,     5,   214,     6,   211,   212,   213,   214,     6,     6,        33,   444,   224,    21,   222,   223,    18,    18,    20,    20,
1421         6,     6,     6,     6,   221,     6,   223,   224,     6,     6,        22,    22,   224,   225,   226,    33,    20,    21,    30,    30,
1422         6,     6,     6,     5,     5,     5,     5,     5,   216,     6,         6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
1423         6,    -1,   130        16,    17,     8,     9,    10,    11,    12,    13,    14,    15,
1424          16,    17,   803,    21,    36,   806,     8,     9,    10,    11,
1425          12,    13,    14,    15,    16,    17,    18,   687,     8,     9,
1426          10,    11,    12,    13,    14,    15,    16,    17,    22,    37,
1427          36,    18,    37,   703,    26,    19,    36,   225,    20,    18,
1428          37,    37,    37,    21,    32,    22,    31,    36,    31,   225,
1429         226,    25,    38,    25,    21,    26,    26,    38,    38,    25,
1430          20,    26,    38,   303,    26,   305,   306,   307,   308,   309,
1431         310,   311,   312,    31,    38,    26,    37,    32,    37,    35,
1432          20,    19,    39,    37,    18,    18,    18,    26,    24,    36,
1433         332,    21,    21,    21,   336,    21,   338,   339,   340,   341,
1434         342,    14,   344,    18,   346,   347,   348,   349,    25,    21,
1435          21,   353,   354,    21,   356,   357,    23,    23,    36,    35,
1436          22,    26,    32,    22,    38,   367,   368,   369,    31,    26,
1437          26,    35,   374,   375,   376,   377,   378,   379,    36,    31,
1438          26,    26,    26,    26,    26,    32,    26,   817,    37,    26,
1439          31,    26,    26,    32,    32,    23,    32,   399,    20,    22,
1440          20,    26,    20,    32,    31,    29,    89,    89,    89,    42,
1441          31,    21,    31,    21,    18,    32,    32,    31,    31,    22,
1442          35,    32,    29,    22,    22,    19,    35,    22,   432,   433,
1443          18,    22,    22,    26,    89,    89,    42,    22,    89,    26,
1444          22,   445,   446,   447,   448,   449,    26,    26,    26,    38,
1445          26,    35,    38,    30,    29,    22,    26,    89,    89,    89,
1446          29,    32,    19,    89,    29,    31,   468,   469,   470,   471,
1447         472,   473,   474,   475,   476,   477,   478,   479,   480,   481,
1448         482,    37,    35,   485,   486,    32,    31,   487,   488,   489,
1449         490,   491,   492,   493,   494,   495,    32,    29,    31,    30,
1450          30,   503,   504,    32,   506,    31,   508,    32,   510,    30,
1451         487,   488,   489,   490,   491,   492,   493,   494,   495,   521,
1452         522,   523,   524,   525,   526,   527,   528,   529,   530,   531,
1453         532,   533,    29,    20,    89,    89,    19,    89,    38,    29,
1454          36,    33,    22,    20,    38,    33,    22,    38,    33,    38,
1455          32,    89,    33,    26,    22,   559,    23,    29,   562,   563,
1456         564,   565,    18,    20,   568,    36,    32,   264,    22,    22,
1457          22,    31,    37,    21,    38,    37,    37,   579,   582,   581,
1458          38,    89,    31,    38,    29,    32,    37,    26,    38,    31,
1459          33,    32,    38,    37,    31,    33,    18,   601,    33,   603,
1460          29,    37,    33,    37,    37,    37,    33,    22,    38,    21,
1461          38,    31,    38,    37,    89,    38,    29,    38,    37,   621,
1462          89,    38,    29,    32,    38,    31,   628,    37,   630,   631,
1463         632,    31,   634,    37,   636,    38,    26,    18,    37,    37,
1464          37,    21,    33,    37,    21,    38,    24,    21,    37,   651,
1465          32,   653,    24,    22,    22,    22,    32,    36,   660,   661,
1466         662,   663,   664,   665,   666,   667,   668,    38,   670,    26,
1467         672,    89,    26,    89,    26,    39,    26,    35,    89,    22,
1468          21,    89,    21,    39,    89,   689,   690,   691,    89,   693,
1469          39,    39,    37,   697,    89,    35,    25,   697,    32,    31,
1470         704,    89,    26,    39,    37,    22,   710,   711,    26,   713,
1471         714,   715,    22,   717,   718,   719,    25,   721,   718,   719,
1472          26,   721,    22,    26,    37,    32,    89,    25,    42,    18,
1473          26,    39,    22,    26,    89,   737,   738,    20,   740,   741,
1474          22,    20,    89,    20,    39,    39,   746,   747,    18,    20,
1475          18,   751,    39,    33,    35,    31,    31,   430,   431,   761,
1476          26,    39,    36,    32,    22,    26,   439,   769,    35,   746,
1477         747,    33,    22,    26,    22,    31,   449,    26,    22,    25,
1478         782,    22,    42,   783,   784,    37,    31,    20,   485,   486,
1479          22,    31,    89,    18,    33,    38,    20,    20,    36,    20,
1480          31,    89,    18,    33,    31,   809,   783,   784,    22,   809,
1481         810,   811,   812,    22,   511,    35,    38,    35,    37,   823,
1482          33,   825,   826,   827,    22,    22,   826,   827,    22,    22,
1483         503,   504,    33,    22,    22,   812,    31,    29,   535,    18,
1484          36,    18,    89,    33,    29,   845,   846,   847,    18,    31,
1485          37,    29,    89,    89,    38,    89,    30,   859,    33,    35,
1486          33,    22,    33,    35,    18,    21,    18,    22,   845,   846,
1487          37,    18,   872,   873,    18,    18,    29,    35,   882,    89,
1488          30,   578,    18,    21,    35,   558,    35,   560,   561,    37,
1489          30,    26,    22,   566,   567,    22,    35,    18,   571,   572,
1490          22,    18,    30,    35,    37,    39,   579,    30,   581,    35,
1491          30,    22,    37,    26,    22,    22,    22,    22,    22,    37,
1492          39,    35,    37,    35,    22,    35,    22,   600,    37,   602,
1493          22,   628,   629,    36,    22,    35,    35,   634,   635,    36,
1494          35,    35,   823,   640,   882,   704,   825,   718,   274,   276,
1495          43,   648,   273,   558,   504,   278,   276,   273,   444,    -1,
1496         444,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1497          -1,   583,   669,    -1,   671,    -1,    -1,    -1,    -1,    -1,
1498          -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1499          -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1500          -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1501          -1,    -1,    -1,    -1,    -1,   688,    -1,    -1,    -1,   692,
1502          -1,    -1,    -1,   696,    -1,    -1,    -1,    -1,    -1,    -1,
1503          -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   712,
1504         737,    -1,    -1,   716,   741,    -1,    -1,   720,   745,   722,
1505          -1,    -1,   749,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1506          -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1507          -1,    -1,    -1,    -1,    -1,   772,    -1,    -1,    -1,    -1,
1508          -1,    -1,    -1,    -1,   781,    -1,    -1,    -1,    -1,    -1,
1509          -1,    -1,   789,    -1,   791,    -1,    -1,    -1,    -1,    -1,
1510          -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1511          -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1512          -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1513         803,   804,   805,   806,    -1,    -1,    -1,    -1,    -1,    -1,
1514          -1,    -1,   839,   840,     3,     4,     5,     6,     7,     8,
1515           9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
1516          19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
1517          29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
1518          39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
1519          49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
1520          59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
1521          69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
1522          79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
1523          89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
1524          99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
1525         109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
1526         119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
1527         129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
1528         139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
1529         149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
1530         159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
1531         169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
1532         179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
1533         189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
1534         199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
1535         209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
1536         219,   220,   221,   222,    -1,   224,     3,     4,     5,     6,
1537           7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
1538          17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
1539          27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
1540          37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
1541          47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
1542          57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
1543          67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
1544          77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
1545          87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
1546          97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
1547         107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
1548         117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
1549         127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
1550         137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
1551         147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
1552         157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
1553         167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
1554         177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
1555         187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
1556         197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
1557         207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
1558         217,   218,   219,   220,   221,    -1,   223,   224,     3,     4,
1559           5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
1560          15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
1561          25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
1562          35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
1563          45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
1564          55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
1565          65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
1566          75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
1567          85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
1568          95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
1569         105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
1570         115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
1571         125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
1572         135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
1573         145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
1574         155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
1575         165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
1576         175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
1577         185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
1578         195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
1579         205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
1580         215,   216,   217,   218,   219,   220,   221,    -1,    -1,   224,
1581           3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
1582          13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
1583          23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
1584          33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
1585          43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
1586          53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
1587          63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
1588          73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
1589          83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
1590          93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
1591         103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
1592         113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
1593         123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
1594         133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
1595         143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
1596         153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
1597         163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
1598         173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
1599         183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
1600         193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
1601         203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
1602         213,   214,   215,   216,   217,   218,   219,   220,   221,    -1,
1603          -1,   224,     3,     4,     5,     6,     7,     8,     9,    10,
1604          11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
1605          21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
1606          31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
1607          41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
1608          51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
1609          61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
1610          71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
1611          81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
1612          91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
1613         101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
1614         111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
1615         121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
1616         131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
1617         141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
1618         151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
1619         161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
1620         171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
1621         181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
1622         191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
1623         201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
1624         211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
1625         221,   222,   223,     3,     4,     5,     6,     7,     8,     9,
1626          10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
1627          20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
1628          30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
1629          40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
1630          50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
1631          60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
1632          70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
1633          80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
1634          90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
1635         100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
1636         110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
1637         120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
1638         130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
1639         140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
1640         150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
1641         160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
1642         170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
1643         180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
1644         190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
1645         200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
1646         210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
1647         220,   221,     3,     4,     5,     6,     7,     8,     9,    10,
1648          11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
1649          21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
1650          31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
1651          41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
1652          51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
1653          61,    62,    63,    64,    65,    66,    67,    68,    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,    98,    99,   100,
1657         101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
1658         111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
1659         121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
1660         131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
1661         141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
1662         151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
1663         161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
1664         171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
1665         181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
1666         191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
1667         201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
1668         211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
1669         221,     3,     4,     5,     6,     7,     8,     9,    10,    11,
1670          12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
1671          22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
1672          32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
1673          42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
1674          52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
1675          62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
1676          72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
1677          82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
1678          92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
1679         102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
1680         112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
1681         122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
1682         132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
1683         142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
1684         152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
1685         162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
1686         172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
1687         182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
1688         192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
1689         202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
1690         212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
1691           3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
1692          13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
1693          23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
1694          33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
1695          43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
1696          53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
1697          63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
1698          73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
1699          83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
1700          93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
1701         103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
1702         113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
1703         123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
1704         133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
1705         143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
1706         153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
1707         163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
1708         173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
1709         183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
1710         193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
1711         203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
1712         213,   214,   215,   216,   217,   218,   219,   220,   221,     3,
1713           4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
1714          14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
1715          24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
1716          34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
1717          44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
1718          54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
1719          64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
1720          74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
1721          84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
1722          94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
1723         104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
1724         114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
1725         124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
1726         134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
1727         144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
1728         154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
1729         164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
1730         174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
1731         184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
1732         194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
1733         204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
1734         214,   215,   216,   217,   218,   219,   220,   221,     3,     4,
1735           5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
1736          15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
1737          25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
1738          35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
1739          45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
1740          55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
1741          65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
1742          75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
1743          85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
1744          95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
1745         105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
1746         115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
1747         125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
1748         135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
1749         145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
1750         155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
1751         165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
1752         175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
1753         185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
1754         195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
1755         205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
1756         215,   216,   217,   218,   219,   220,   221,     3,     4,     5,
1757           6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
1758          16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
1759          26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
1760          36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
1761          46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
1762          56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
1763          66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
1764          76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
1765          86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
1766          96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
1767         106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
1768         116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
1769         126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
1770         136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
1771         146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
1772         156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
1773         166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
1774         176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
1775         186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
1776         196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
1777         206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
1778         216,   217,   218,   219,   220,   221,     3,     4,     5,     6,
1779           7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
1780          17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
1781          27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
1782          37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
1783          47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
1784          57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
1785          67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
1786          77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
1787          87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
1788          97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
1789         107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
1790         117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
1791         127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
1792         137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
1793         147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
1794         157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
1795         167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
1796         177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
1797         187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
1798         197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
1799         207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
1800         217,   218,   219,   220,   221
1801  };  };
1802    
1803  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1804     symbol of state STATE-NUM.  */     symbol of state STATE-NUM.  */
1805  static const unsigned char yystos[] =  static const unsigned short yystos[] =
1806  {  {
1807         0,     1,     9,    11,    12,    13,    14,    15,    16,    17,         0,     1,     3,    18,    20,    21,    24,    29,    34,    35,
1808        18,    19,    20,    21,    22,    48,    49,    50,    51,     6,        36,    38,   228,   229,   230,   231,   269,   270,   271,   272,
1809         6,     6,     6,     6,     6,     6,     6,     6,     6,     6,       273,   274,   277,   278,   279,   280,   313,   316,    21,    35,
1810         0,     7,     8,     3,     5,     6,     9,    75,    23,    23,        22,    22,    26,    32,    38,    22,    22,    38,    31,     0,
1811        25,    26,    27,    33,    34,    35,    36,    37,    39,    40,       225,   226,   267,   268,     3,     4,     5,     6,     7,     8,
1812        52,    36,    54,    36,    55,    37,    60,    32,    33,    56,         9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
1813        23,    23,    35,    38,    53,    24,    24,    23,    49,     7,        19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
1814         3,     6,     6,     6,     6,     6,     6,     6,     6,     6,        29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
1815         6,     6,     6,     6,     6,     6,     6,     6,     6,    49,        39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
1816        28,    29,    30,    31,    28,    28,    28,    28,    28,    28,        49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
1817        75,     5,     5,    61,    73,    74,    75,    62,    71,    75,        59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
1818         5,    65,    34,    36,    41,    42,    43,    44,    57,     5,        69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
1819         5,     5,    67,    70,    74,    65,     6,     6,     6,     6,        79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
1820         6,     6,     6,     6,     6,     6,     6,     6,     5,    75,        89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
1821         6,     6,     6,     6,     6,     6,     6,     6,     6,    65,        99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
1822        45,    46,    59,    65,    65,    71,     5,     5,     5,    75,       109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
1823        75,    58,    75,     5,    66,    74,    65,    65,    65,    65,       119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
1824        65,    65,    65,     5,    75,     6,     6,     6,     6,     6,       129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
1825        10,     6,     6,     6,     6,     6,     6,     6,     6,     6,       139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
1826        10,    65,     5,     5,    75,    75,    74,    65,     5,    68,       149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
1827         5,    72,    74,     5,    69,    63,    75,     4,     5,    64,       159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
1828        75,    74,    74,     6,     6,    10,     6,     6,    10,    75,       169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
1829        58,    74,    68,    74,    74       179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
1830         189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
1831         199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
1832         209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
1833         219,   220,   221,   224,   258,   261,   262,   263,   266,   266,
1834         266,   266,   266,   266,   266,   266,   266,   266,   266,   266,
1835          21,    22,    36,    37,    36,    18,    26,    30,    36,    37,
1836          19,    36,   267,     8,     9,    10,    11,    12,    13,    14,
1837          15,    16,    17,   260,   261,   260,   260,   260,   260,   260,
1838         260,   260,   260,     3,     8,     9,    10,    11,    12,    13,
1839          14,    15,    16,    17,   263,    20,   281,    18,    20,    22,
1840          30,   234,   281,   282,   283,   284,   290,   292,   293,   294,
1841         295,   296,   297,   299,   301,   302,   303,   304,   305,   306,
1842          18,    30,   236,   293,   303,   237,   293,   303,    18,    20,
1843          30,   242,   284,   292,   302,    26,   238,   289,   290,   281,
1844          18,    22,    30,   235,   281,   291,   296,   300,   301,   315,
1845          19,    26,    30,    36,    39,   232,   284,   285,   286,   287,
1846         288,   314,   233,   284,   285,   286,   287,   288,   314,   281,
1847          18,    37,    37,    21,    37,    32,    22,    36,    38,   261,
1848          25,    38,    39,    25,    31,    26,   266,   266,   266,   266,
1849         266,   266,   266,   266,   266,   266,   266,   266,    38,    26,
1850         266,   266,   266,   266,    38,    25,    26,    31,   266,   266,
1851         266,    38,    20,    26,   266,   266,   266,   266,   266,   266,
1852          38,    31,    26,    37,    32,   266,    37,    35,    39,    37,
1853          20,    19,    18,    21,    18,    18,    24,    21,   285,   286,
1854         287,   288,   285,   285,   285,   285,   285,   285,   285,   285,
1855         285,   285,   285,    21,    21,   258,   258,     9,    10,    11,
1856          12,    13,    14,    15,    16,    17,   262,   262,    21,    18,
1857          21,    36,    31,   222,   223,   243,   255,   265,   276,   244,
1858         254,   258,   252,   262,    21,    25,    21,    18,    30,    39,
1859         239,   293,   297,   298,   303,   306,   307,   308,   309,   310,
1860         262,   262,   262,   262,   257,   258,   262,    23,    23,    36,
1861          35,    26,   252,    22,    32,    22,    35,    36,    31,    26,
1862          26,    31,    26,    26,   266,   266,   266,   266,   266,   266,
1863         266,   266,   266,   266,   266,   266,   266,   266,   266,    26,
1864          26,   266,   266,    26,    31,    26,    37,    32,   258,   264,
1865         266,   264,   266,   266,   266,    26,    32,    26,    38,    26,
1866          32,   266,   266,   266,   266,   266,   266,   266,   266,   266,
1867         266,   266,   266,   266,    23,    32,    20,    22,    20,    42,
1868          26,    20,    31,    32,    29,    31,    31,    89,   252,    19,
1869          33,   241,   311,   312,   252,   252,   254,   262,   258,   258,
1870         262,   262,   262,   262,   258,   258,   262,    32,    89,   240,
1871         258,   240,    32,    31,    89,    35,    31,   222,   258,   266,
1872         223,   253,   262,   255,   252,    32,    89,    21,    21,    29,
1873         252,   252,   252,   252,   252,   252,   252,   252,   252,   258,
1874         262,   258,   262,    22,    22,    18,    22,    19,    35,    22,
1875          89,    18,    22,    22,    26,    42,    22,   266,   266,   266,
1876         266,   266,   266,   266,    89,    26,   266,     4,    89,    22,
1877          26,    38,    89,   266,   266,    89,    26,    26,    26,    38,
1878         266,   266,   266,   266,   266,   266,   266,   266,   266,     4,
1879         266,     4,   266,    35,    29,    30,    89,    22,    26,    29,
1880          32,    19,    29,    31,    37,    35,   252,   258,   262,   262,
1881         262,   258,   262,    32,    31,   258,     6,     7,   256,   258,
1882         259,   260,   261,   262,   265,    32,    29,    31,    30,    30,
1883         252,   253,    32,    31,    32,    89,    30,   245,   262,   246,
1884         262,   247,   258,   245,   248,   262,    18,   249,   262,   275,
1885         250,   258,   245,     6,     7,   251,   259,   262,   256,   258,
1886         256,   258,    89,    29,    89,    20,    19,    38,    29,    36,
1887          33,    22,    20,   266,   266,   266,   266,    38,    33,     4,
1888         260,   260,     5,    38,    33,    22,    32,   266,    38,    33,
1889          89,    26,    22,   266,    29,   266,     4,     4,    23,    18,
1890          20,    32,    22,    37,    22,    38,    36,    22,   240,   258,
1891         258,   240,    37,    38,   256,     5,     5,   260,    37,    38,
1892          31,    21,   252,    37,    38,    32,    31,   246,    29,   248,
1893         256,   256,    26,    31,    32,    38,    33,    89,    37,    31,
1894          33,    37,   260,   260,    33,    37,    37,    18,    33,    37,
1895          38,    33,   266,    29,    22,    38,    31,    38,    18,    22,
1896          30,    89,    37,    38,    89,    38,    89,    29,    38,    89,
1897          37,    38,   249,    29,    32,    31,    37,    37,    38,    31,
1898          26,    21,    33,    18,    37,    21,    37,    21,    37,    21,
1899          33,    33,    37,    38,    37,    89,    21,    24,    21,    22,
1900          35,    32,    24,    89,    22,    89,    22,    89,    22,    32,
1901          38,    89,    36,    20,    21,    26,    26,    26,    39,    26,
1902          35,    22,    21,    39,    21,    39,    20,    21,    39,    35,
1903          37,    20,    33,    37,    25,    22,    35,    32,    31,    89,
1904          26,    39,    37,    22,    26,    22,    26,    25,    22,    26,
1905          37,    89,    25,    32,    42,    18,    39,    26,    89,    22,
1906          26,    20,    22,    89,    39,    20,    39,    20,    18,    39,
1907          20,    20,    37,    18,    35,    33,    31,    26,    39,    32,
1908          36,    31,    22,    35,    33,    26,    22,    26,    22,    31,
1909          26,    22,    25,    42,    31,    37,    22,    31,    20,    22,
1910          38,    33,    36,    89,    18,    20,    20,    31,    20,    89,
1911          18,    33,    31,    22,    22,    35,    37,    38,    33,    35,
1912          22,    22,    22,    22,    33,    31,    22,    22,    29,    36,
1913          89,    33,    37,    18,    18,    29,    89,    18,    31,    29,
1914          89,    33,    38,    89,    35,    30,    33,    35,    22,    33,
1915          18,    37,    21,    18,    22,    18,    18,    29,    18,    35,
1916          89,    35,    30,    37,    35,    30,    35,    18,    21,    26,
1917          22,    22,    18,    22,    18,    30,    35,    39,    37,    35,
1918          30,    37,    30,    22,    26,    22,    22,    22,    22,    22,
1919          37,    39,    35,    35,    37,    35,    37,    22,    22,    36,
1920          22,    22,    35,    35,    35,    35,    36
1921  };  };
1922    
1923  #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)  #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
# Line 1264  yyreduce: Line 2527  yyreduce:
2527    YY_REDUCE_PRINT (yyn);    YY_REDUCE_PRINT (yyn);
2528    switch (yyn)    switch (yyn)
2529      {      {
2530          case 7:          case 4:
2531  #line 82 "lscp.y"  #line 85 "lscp.y"
2532      { LSCPSERVER->AnswerClient(yyvsp[0].String); }      { return LSCP_DONE; }
2533        break;
2534    
2535      case 5:
2536    #line 86 "lscp.y"
2537        { return LSCP_DONE; }
2538        break;
2539    
2540      case 6:
2541    #line 87 "lscp.y"
2542        { LSCPSERVER->AnswerClient(yyvsp[0].String); return LSCP_DONE; }
2543      break;      break;
2544    
2545    case 8:    case 7:
2546  #line 83 "lscp.y"  #line 88 "lscp.y"
2547      { LSCPSERVER->AnswerClient("Err:0:Unknown command.\r\n"); RESTART; return LSCP_SYNTAX_ERROR; }      { LSCPSERVER->AnswerClient("Err:0:Unknown command.\r\n"); RESTART; return LSCP_SYNTAX_ERROR; }
2548      break;      break;
2549    
2550      case 13:
2551    #line 98 "lscp.y"
2552        { yyval.String = LSCPSERVER->AddChannel();                          }
2553        break;
2554    
2555    case 14:    case 14:
2556  #line 93 "lscp.y"  #line 99 "lscp.y"
2557      { yyval.String = LSCPSERVER->AddChannel();                  }      { yyval.String = yyvsp[0].String;                                                }
2558      break;      break;
2559    
2560    case 15:    case 15:
2561  #line 94 "lscp.y"  #line 100 "lscp.y"
2562      { yyval.String = yyvsp[0].String;                                        }      { yyval.String = yyvsp[0].String;                                                }
2563      break;      break;
2564    
2565    case 16:    case 16:
2566  #line 95 "lscp.y"  #line 101 "lscp.y"
2567      { yyval.String = yyvsp[0].String;                                        }      { yyval.String = yyvsp[0].String;                                                }
2568      break;      break;
2569    
2570    case 17:    case 17:
2571  #line 96 "lscp.y"  #line 102 "lscp.y"
2572      { yyval.String = yyvsp[0].String;                                        }      { yyval.String = yyvsp[0].String;                                                }
2573      break;      break;
2574    
2575    case 18:    case 18:
2576  #line 97 "lscp.y"  #line 103 "lscp.y"
2577      { yyval.String = yyvsp[0].String;                                        }      { yyval.String = yyvsp[0].String;                                                }
2578      break;      break;
2579    
2580    case 19:    case 19:
2581  #line 98 "lscp.y"  #line 104 "lscp.y"
2582      { yyval.String = yyvsp[0].String;                                        }      { yyval.String = LSCPSERVER->RemoveChannel(yyvsp[0].Number);                     }
2583      break;      break;
2584    
2585    case 20:    case 20:
2586  #line 99 "lscp.y"  #line 105 "lscp.y"
2587      { yyval.String = LSCPSERVER->RemoveChannel(yyvsp[0].Number);             }      { yyval.String = yyvsp[0].String;                                                }
2588      break;      break;
2589    
2590    case 21:    case 21:
2591  #line 100 "lscp.y"  #line 106 "lscp.y"
2592      { yyval.String = yyvsp[0].String;                                        }      { yyval.String = yyvsp[0].String;                                                }
2593      break;      break;
2594    
2595    case 22:    case 22:
2596  #line 101 "lscp.y"  #line 107 "lscp.y"
2597      { yyval.String = LSCPSERVER->SubscribeNotification(yyvsp[0].Number);     }      { yyval.String = yyvsp[0].String;                                                }
2598      break;      break;
2599    
2600    case 23:    case 23:
2601  #line 102 "lscp.y"  #line 108 "lscp.y"
2602      { yyval.String = LSCPSERVER->UnsubscribeNotification(yyvsp[0].String);   }      { yyval.String = LSCPSERVER->ResetChannel(yyvsp[0].Number);                      }
2603      break;      break;
2604    
2605    case 24:    case 24:
2606  #line 103 "lscp.y"  #line 109 "lscp.y"
2607      { yyval.String = LSCPSERVER->ResetChannel(yyvsp[0].Number);              }      { yyval.String = LSCPSERVER->ResetSampler();                        }
2608      break;      break;
2609    
2610    case 25:    case 25:
2611  #line 104 "lscp.y"  #line 110 "lscp.y"
2612      { LSCPSERVER->AnswerClient("Bye!\r\n"); return 0; }      { LSCPSERVER->AnswerClient("Bye!\r\n"); return LSCP_QUIT; }
2613      break;      break;
2614    
2615    case 26:    case 26:
2616  #line 107 "lscp.y"  #line 113 "lscp.y"
2617      { yyval.String = LSCPSERVER->GetAvailableEngines();                          }      { yyval.String = LSCPSERVER->SubscribeNotification(LSCPEvent::event_channels);     }
2618      break;      break;
2619    
2620    case 27:    case 27:
2621  #line 108 "lscp.y"  #line 114 "lscp.y"
2622      { yyval.String = LSCPSERVER->GetAvailableAudioOutputDrivers();               }      { yyval.String = LSCPSERVER->SubscribeNotification(LSCPEvent::event_voice_count);  }
2623      break;      break;
2624    
2625    case 28:    case 28:
2626  #line 109 "lscp.y"  #line 115 "lscp.y"
2627      { yyval.String = LSCPSERVER->GetAudioOutputDriverInfo(yyvsp[0].String);                   }      { yyval.String = LSCPSERVER->SubscribeNotification(LSCPEvent::event_stream_count); }
2628      break;      break;
2629    
2630    case 29:    case 29:
2631  #line 110 "lscp.y"  #line 116 "lscp.y"
2632      { yyval.String = LSCPSERVER->GetAudioOutputDriverParameterInfo(yyvsp[-2].String, yyvsp[0].String);      }      { yyval.String = LSCPSERVER->SubscribeNotification(LSCPEvent::event_buffer_fill);  }
2633      break;      break;
2634    
2635    case 30:    case 30:
2636  #line 111 "lscp.y"  #line 117 "lscp.y"
2637      { yyval.String = LSCPSERVER->GetAudioOutputDriverParameterInfo(yyvsp[-4].String, yyvsp[-2].String, yyvsp[0].KeyValList);  }      { yyval.String = LSCPSERVER->SubscribeNotification(LSCPEvent::event_info);         }
2638      break;      break;
2639    
2640    case 31:    case 31:
2641  #line 112 "lscp.y"  #line 118 "lscp.y"
2642      { yyval.String = LSCPSERVER->GetAudioOutputDeviceCount();                    }      { yyval.String = LSCPSERVER->SubscribeNotification(LSCPEvent::event_misc);         }
2643      break;      break;
2644    
2645    case 32:    case 32:
2646  #line 113 "lscp.y"  #line 121 "lscp.y"
2647      { yyval.String = LSCPSERVER->GetAudioOutputDeviceInfo(yyvsp[0].Number);                   }      { yyval.String = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_channels);     }
2648      break;      break;
2649    
2650    case 33:    case 33:
2651  #line 114 "lscp.y"  #line 122 "lscp.y"
2652      { yyval.String = LSCPSERVER->GetAudioOutputChannelInfo(yyvsp[-2].Number, yyvsp[0].Number);              }      { yyval.String = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_voice_count);  }
2653      break;      break;
2654    
2655    case 34:    case 34:
2656  #line 115 "lscp.y"  #line 123 "lscp.y"
2657      { yyval.String = LSCPSERVER->GetAudioOutputChannelParameterInfo(yyvsp[-4].Number, yyvsp[-2].Number, yyvsp[0].String); }      { yyval.String = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_stream_count); }
2658      break;      break;
2659    
2660    case 35:    case 35:
2661  #line 116 "lscp.y"  #line 124 "lscp.y"
2662      { yyval.String = LSCPSERVER->GetChannels();                                  }      { yyval.String = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_buffer_fill);  }
2663      break;      break;
2664    
2665    case 36:    case 36:
2666  #line 117 "lscp.y"  #line 125 "lscp.y"
2667      { yyval.String = LSCPSERVER->GetChannelInfo(yyvsp[0].Number);                             }      { yyval.String = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_info);         }
2668      break;      break;
2669    
2670    case 37:    case 37:
2671  #line 118 "lscp.y"  #line 126 "lscp.y"
2672      { yyval.String = LSCPSERVER->GetBufferFill(yyvsp[-2].FillResponse, yyvsp[0].Number);                          }      { yyval.String = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_misc);         }
2673      break;      break;
2674    
2675    case 38:    case 38:
2676  #line 119 "lscp.y"  #line 129 "lscp.y"
2677      { yyval.String = LSCPSERVER->GetStreamCount(yyvsp[0].Number);                             }      { yyval.String = LSCPSERVER->GetAvailableEngines();                          }
2678      break;      break;
2679    
2680    case 39:    case 39:
2681  #line 120 "lscp.y"  #line 130 "lscp.y"
2682      { yyval.String = LSCPSERVER->GetVoiceCount(yyvsp[0].Number);                              }      { yyval.String = LSCPSERVER->GetAvailableMidiInputDrivers();                 }
2683      break;      break;
2684    
2685    case 40:    case 40:
2686  #line 121 "lscp.y"  #line 131 "lscp.y"
2687      { yyval.String = LSCPSERVER->GetEngineInfo(yyvsp[0].String);                              }      { yyval.String = LSCPSERVER->GetMidiInputDriverInfo(yyvsp[0].String);                     }
2688      break;      break;
2689    
2690    case 41:    case 41:
2691  #line 124 "lscp.y"  #line 132 "lscp.y"
2692      { yyval.String = LSCPSERVER->SetAudioOutputDeviceParameter(yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String);      }      { yyval.String = LSCPSERVER->GetMidiInputDriverParameterInfo(yyvsp[-2].String, yyvsp[0].String);        }
2693      break;      break;
2694    
2695    case 42:    case 42:
2696  #line 125 "lscp.y"  #line 133 "lscp.y"
2697      { yyval.String = LSCPSERVER->SetAudioOutputDeviceParameter(yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String);      }      { yyval.String = LSCPSERVER->GetMidiInputDriverParameterInfo(yyvsp[-4].String, yyvsp[-2].String, yyvsp[0].KeyValList);    }
2698      break;      break;
2699    
2700    case 43:    case 43:
2701  #line 126 "lscp.y"  #line 134 "lscp.y"
2702      { yyval.String = LSCPSERVER->SetAudioOutputChannelParameter(yyvsp[-6].Number, yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String); }      { yyval.String = LSCPSERVER->GetAvailableAudioOutputDrivers();               }
2703      break;      break;
2704    
2705    case 44:    case 44:
2706  #line 127 "lscp.y"  #line 135 "lscp.y"
2707      { yyval.String = LSCPSERVER->SetAudioOutputChannelParameter(yyvsp[-6].Number, yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String); }      { yyval.String = LSCPSERVER->GetAudioOutputDriverInfo(yyvsp[0].String);                   }
2708      break;      break;
2709    
2710    case 45:    case 45:
2711  #line 128 "lscp.y"  #line 136 "lscp.y"
2712      { yyval.String = yyvsp[0].String;                                                         }      { yyval.String = LSCPSERVER->GetAudioOutputDriverParameterInfo(yyvsp[-2].String, yyvsp[0].String);      }
2713      break;      break;
2714    
2715    case 46:    case 46:
2716  #line 131 "lscp.y"  #line 137 "lscp.y"
2717      { yyval.String = LSCPSERVER->CreateAudioOutputDevice(yyvsp[-2].String,yyvsp[0].KeyValList); }      { yyval.String = LSCPSERVER->GetAudioOutputDriverParameterInfo(yyvsp[-4].String, yyvsp[-2].String, yyvsp[0].KeyValList);  }
2718      break;      break;
2719    
2720    case 47:    case 47:
2721  #line 134 "lscp.y"  #line 138 "lscp.y"
2722      { yyval.String = LSCPSERVER->DestroyAudioOutputDevice(yyvsp[0].Number); }      { yyval.String = LSCPSERVER->GetAudioOutputDeviceCount();                    }
2723      break;      break;
2724    
2725    case 48:    case 48:
2726  #line 137 "lscp.y"  #line 139 "lscp.y"
2727      { yyval.String = yyvsp[0].String; }      { yyval.String = LSCPSERVER->GetMidiInputDeviceCount();                      }
2728      break;      break;
2729    
2730    case 49:    case 49:
2731  #line 138 "lscp.y"  #line 140 "lscp.y"
2732      { yyval.String = yyvsp[0].String; }      { yyval.String = LSCPSERVER->GetAudioOutputDeviceInfo(yyvsp[0].Number);                   }
2733      break;      break;
2734    
2735    case 50:    case 50:
2736  #line 141 "lscp.y"  #line 141 "lscp.y"
2737      { yyval.String = LSCPSERVER->SetAudioOutputDevice(yyvsp[0].Number, yyvsp[-2].Number);      }      { yyval.String = LSCPSERVER->GetMidiInputDeviceInfo(yyvsp[0].Number);                     }
2738      break;      break;
2739    
2740    case 51:    case 51:
2741  #line 142 "lscp.y"  #line 142 "lscp.y"
2742      { yyval.String = LSCPSERVER->SetAudioOutputChannel(yyvsp[-2].Number, yyvsp[0].Number, yyvsp[-4].Number); }      { yyval.String = LSCPSERVER->GetMidiInputPortInfo(yyvsp[-2].Number, yyvsp[0].Number);                   }
2743      break;      break;
2744    
2745    case 52:    case 52:
2746  #line 143 "lscp.y"  #line 143 "lscp.y"
2747      { yyval.String = LSCPSERVER->SetMIDIInputPort(yyvsp[0].String, yyvsp[-2].Number);          }      { yyval.String = LSCPSERVER->GetMidiInputPortParameterInfo(yyvsp[-4].Number, yyvsp[-2].Number, yyvsp[0].String);      }
2748      break;      break;
2749    
2750    case 53:    case 53:
2751  #line 144 "lscp.y"  #line 144 "lscp.y"
2752      { yyval.String = LSCPSERVER->SetMIDIInputChannel(yyvsp[0].Number, yyvsp[-2].Number);       }      { yyval.String = LSCPSERVER->GetAudioOutputChannelInfo(yyvsp[-2].Number, yyvsp[0].Number);              }
2753      break;      break;
2754    
2755    case 54:    case 54:
2756  #line 145 "lscp.y"  #line 145 "lscp.y"
2757      { yyval.String = LSCPSERVER->SetMIDIInputType(yyvsp[0].String, yyvsp[-2].Number);          }      { yyval.String = LSCPSERVER->GetAudioOutputChannelParameterInfo(yyvsp[-4].Number, yyvsp[-2].Number, yyvsp[0].String); }
2758      break;      break;
2759    
2760    case 55:    case 55:
2761  #line 146 "lscp.y"  #line 146 "lscp.y"
2762      { yyval.String = LSCPSERVER->SetVolume(yyvsp[0].Dotnum, yyvsp[-2].Number);                 }      { yyval.String = LSCPSERVER->GetChannels();                                  }
2763      break;      break;
2764    
2765    case 56:    case 56:
2766  #line 149 "lscp.y"  #line 147 "lscp.y"
2767      { yyval.KeyValList[yyvsp[-2].String] = yyvsp[0].String;          }      { yyval.String = LSCPSERVER->GetChannelInfo(yyvsp[0].Number);                             }
2768      break;      break;
2769    
2770    case 57:    case 57:
2771  #line 150 "lscp.y"  #line 148 "lscp.y"
2772      { yyval.KeyValList = yyvsp[-4].KeyValList; yyval.KeyValList[yyvsp[-2].String] = yyvsp[0].String; }      { yyval.String = LSCPSERVER->GetBufferFill(yyvsp[-2].FillResponse, yyvsp[0].Number);                          }
2773      break;      break;
2774    
2775    case 58:    case 58:
2776  #line 152 "lscp.y"  #line 149 "lscp.y"
2777      { yyval.FillResponse = fill_response_bytes;      }      { yyval.String = LSCPSERVER->GetStreamCount(yyvsp[0].Number);                             }
2778      break;      break;
2779    
2780    case 59:    case 59:
2781  #line 153 "lscp.y"  #line 150 "lscp.y"
2782      { yyval.FillResponse = fill_response_percentage; }      { yyval.String = LSCPSERVER->GetVoiceCount(yyvsp[0].Number);                              }
2783      break;      break;
2784    
2785    case 60:    case 60:
2786  #line 156 "lscp.y"  #line 151 "lscp.y"
2787      { yyval.String = LSCPSERVER->GetAudioOutputDevices(); }      { yyval.String = LSCPSERVER->GetEngineInfo(yyvsp[0].String);                              }
2788      break;      break;
2789    
2790    case 61:    case 61:
2791  #line 159 "lscp.y"  #line 154 "lscp.y"
2792      { yyval.String = LSCPSERVER->LoadInstrument(yyvsp[-4].String, yyvsp[-2].Number, yyvsp[0].Number); }      { yyval.String = LSCPSERVER->SetAudioOutputDeviceParameter(yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String);      }
2793      break;      break;
2794    
2795    case 62:    case 62:
2796  #line 162 "lscp.y"  #line 155 "lscp.y"
2797      { yyval.String = LSCPSERVER->LoadEngine(yyvsp[-2].String, yyvsp[0].Number); }      { yyval.String = LSCPSERVER->SetAudioOutputChannelParameter(yyvsp[-6].Number, yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String); }
2798        break;
2799    
2800      case 63:
2801    #line 156 "lscp.y"
2802        { yyval.String = LSCPSERVER->SetMidiInputDeviceParameter(yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String);        }
2803        break;
2804    
2805      case 64:
2806    #line 157 "lscp.y"
2807        { yyval.String = LSCPSERVER->SetMidiInputPortParameter(yyvsp[-6].Number, yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String);      }
2808      break;      break;
2809    
2810    case 65:    case 65:
2811    #line 158 "lscp.y"
2812        { yyval.String = yyvsp[0].String;                                                         }
2813        break;
2814    
2815      case 66:
2816    #line 159 "lscp.y"
2817        { yyval.String = LSCPSERVER->SetEcho((yyparse_param_t*) yyparse_param, yyvsp[0].Dotnum);  }
2818        break;
2819    
2820      case 67:
2821    #line 162 "lscp.y"
2822        { yyval.String = LSCPSERVER->CreateAudioOutputDevice(yyvsp[-2].String,yyvsp[0].KeyValList); }
2823        break;
2824    
2825      case 68:
2826    #line 163 "lscp.y"
2827        { yyval.String = LSCPSERVER->CreateAudioOutputDevice(yyvsp[0].String);    }
2828        break;
2829    
2830      case 69:
2831    #line 164 "lscp.y"
2832        { yyval.String = LSCPSERVER->CreateMidiInputDevice(yyvsp[-2].String,yyvsp[0].KeyValList);   }
2833        break;
2834    
2835      case 70:
2836    #line 165 "lscp.y"
2837        { yyval.String = LSCPSERVER->CreateMidiInputDevice(yyvsp[0].String);      }
2838        break;
2839    
2840      case 71:
2841    #line 168 "lscp.y"
2842        { yyval.String = LSCPSERVER->DestroyAudioOutputDevice(yyvsp[0].Number); }
2843        break;
2844    
2845      case 72:
2846  #line 169 "lscp.y"  #line 169 "lscp.y"
2847      { yyval.Dotnum = yyvsp[0].Number; }      { yyval.String = LSCPSERVER->DestroyMidiInputDevice(yyvsp[0].Number);   }
2848        break;
2849    
2850      case 73:
2851    #line 172 "lscp.y"
2852        { yyval.String = yyvsp[0].String; }
2853        break;
2854    
2855      case 74:
2856    #line 173 "lscp.y"
2857        { yyval.String = yyvsp[0].String; }
2858      break;      break;
2859    
2860    case 75:    case 75:
2861  #line 197 "lscp.y"  #line 176 "lscp.y"
2862      { yyval.String = yyvsp[-2].String + ' ' + yyvsp[0].String; }      { yyval.String = LSCPSERVER->SetAudioOutputDevice(yyvsp[0].Number, yyvsp[-2].Number);      }
2863      break;      break;
2864    
2865    case 76:    case 76:
2866  #line 200 "lscp.y"  #line 177 "lscp.y"
2867      { yyval.String = yyvsp[0].String;                                             }      { yyval.String = LSCPSERVER->SetAudioOutputChannel(yyvsp[-2].Number, yyvsp[0].Number, yyvsp[-4].Number); }
2868      break;      break;
2869    
2870    case 77:    case 77:
2871  #line 201 "lscp.y"  #line 178 "lscp.y"
2872      { std::stringstream ss; ss << yyvsp[0].Number; yyval.String = ss.str();       }      { yyval.String = LSCPSERVER->SetAudioOutputType(yyvsp[0].String, yyvsp[-2].Number);        }
2873      break;      break;
2874    
2875    case 78:    case 78:
2876  #line 202 "lscp.y"  #line 179 "lscp.y"
2877      { yyval.String = yyvsp[-1].String + yyvsp[0].String;                                        }      { yyval.String = LSCPSERVER->SetMIDIInput(yyvsp[-4].Number, yyvsp[-2].Number, yyvsp[0].Number, yyvsp[-6].Number);      }
2878      break;      break;
2879    
2880    case 79:    case 79:
2881  #line 203 "lscp.y"  #line 180 "lscp.y"
2882      { std::stringstream ss; ss << yyvsp[-1].String << yyvsp[0].Number; yyval.String = ss.str(); }      { yyval.String = LSCPSERVER->SetMIDIInputDevice(yyvsp[0].Number, yyvsp[-2].Number);        }
2883      break;      break;
2884    
2885    case 80:    case 80:
2886  #line 206 "lscp.y"  #line 181 "lscp.y"
2887      { std::string s; s = yyvsp[0].Char; yyval.String = s; }      { yyval.String = LSCPSERVER->SetMIDIInputPort(yyvsp[0].Number, yyvsp[-2].Number);          }
2888      break;      break;
2889    
2890    case 81:    case 81:
2891  #line 207 "lscp.y"  #line 182 "lscp.y"
2892        { yyval.String = LSCPSERVER->SetMIDIInputChannel(yyvsp[0].Number, yyvsp[-2].Number);       }
2893        break;
2894    
2895      case 82:
2896    #line 183 "lscp.y"
2897        { yyval.String = LSCPSERVER->SetMIDIInputType(yyvsp[0].String, yyvsp[-2].Number);          }
2898        break;
2899    
2900      case 83:
2901    #line 184 "lscp.y"
2902        { yyval.String = LSCPSERVER->SetVolume(yyvsp[0].Dotnum, yyvsp[-2].Number);                 }
2903        break;
2904    
2905      case 84:
2906    #line 187 "lscp.y"
2907        { yyval.KeyValList[yyvsp[-2].String] = yyvsp[0].String;          }
2908        break;
2909    
2910      case 85:
2911    #line 188 "lscp.y"
2912        { yyval.KeyValList = yyvsp[-4].KeyValList; yyval.KeyValList[yyvsp[-2].String] = yyvsp[0].String; }
2913        break;
2914    
2915      case 86:
2916    #line 191 "lscp.y"
2917        { yyval.FillResponse = fill_response_bytes;      }
2918        break;
2919    
2920      case 87:
2921    #line 192 "lscp.y"
2922        { yyval.FillResponse = fill_response_percentage; }
2923        break;
2924    
2925      case 88:
2926    #line 195 "lscp.y"
2927        { yyval.String = LSCPSERVER->GetAudioOutputDevices(); }
2928        break;
2929    
2930      case 89:
2931    #line 196 "lscp.y"
2932        { yyval.String = LSCPSERVER->GetMidiInputDevices();   }
2933        break;
2934    
2935      case 90:
2936    #line 197 "lscp.y"
2937        { yyval.String = LSCPSERVER->ListChannels();          }
2938        break;
2939    
2940      case 91:
2941    #line 200 "lscp.y"
2942        { yyval.String = LSCPSERVER->LoadInstrument(yyvsp[-4].String, yyvsp[-2].Number, yyvsp[0].Number);       }
2943        break;
2944    
2945      case 92:
2946    #line 201 "lscp.y"
2947        { yyval.String = LSCPSERVER->LoadInstrument(yyvsp[-4].String, yyvsp[-2].Number, yyvsp[0].Number, true); }
2948        break;
2949    
2950      case 93:
2951    #line 204 "lscp.y"
2952        { yyval.String = LSCPSERVER->LoadEngine(yyvsp[-2].String, yyvsp[0].Number); }
2953        break;
2954    
2955      case 99:
2956    #line 220 "lscp.y"
2957        { yyval.Number = 0; }
2958        break;
2959    
2960      case 102:
2961    #line 227 "lscp.y"
2962        { yyval.Dotnum = yyvsp[0].Number; }
2963        break;
2964    
2965      case 109:
2966    #line 244 "lscp.y"
2967        { std::stringstream ss; ss << yyvsp[0].Number; yyval.String = ss.str(); }
2968        break;
2969    
2970      case 110:
2971    #line 245 "lscp.y"
2972        { std::stringstream ss; ss << yyvsp[0].Dotnum; yyval.String = ss.str(); }
2973        break;
2974    
2975      case 111:
2976    #line 251 "lscp.y"
2977        { yyval.Dotnum = yyvsp[0].Number; }
2978        break;
2979    
2980      case 112:
2981    #line 252 "lscp.y"
2982        { yyval.Dotnum = -1; }
2983        break;
2984    
2985      case 113:
2986    #line 255 "lscp.y"
2987        { std::string s; s = yyvsp[0].Char; yyval.String = s; }
2988        break;
2989    
2990      case 114:
2991    #line 256 "lscp.y"
2992      { yyval.String = yyvsp[-1].String + yyvsp[0].Char;                  }      { yyval.String = yyvsp[-1].String + yyvsp[0].Char;                  }
2993      break;      break;
2994    
2995      case 115:
2996    #line 259 "lscp.y"
2997        { yyval.Dotnum = atof(String(yyvsp[-2].String + "." + yyvsp[0].String).c_str());                         }
2998        break;
2999    
3000      case 116:
3001    #line 260 "lscp.y"
3002        { String s = "+"; s += yyvsp[-2].String; s += "."; s += yyvsp[0].String; yyval.Dotnum = atof(s.c_str()); }
3003        break;
3004    
3005      case 117:
3006    #line 261 "lscp.y"
3007        { yyval.Dotnum = atof(String("-" + yyvsp[-2].String + "." + yyvsp[0].String).c_str());                   }
3008        break;
3009    
3010      case 118:
3011    #line 265 "lscp.y"
3012        { yyval.String = yyvsp[0].Char;      }
3013        break;
3014    
3015      case 119:
3016    #line 266 "lscp.y"
3017        { yyval.String = yyvsp[-1].String + yyvsp[0].Char; }
3018        break;
3019    
3020      case 120:
3021    #line 269 "lscp.y"
3022        { yyval.Char = '0'; }
3023        break;
3024    
3025      case 121:
3026    #line 270 "lscp.y"
3027        { yyval.Char = '1'; }
3028        break;
3029    
3030      case 122:
3031    #line 271 "lscp.y"
3032        { yyval.Char = '2'; }
3033        break;
3034    
3035      case 123:
3036    #line 272 "lscp.y"
3037        { yyval.Char = '3'; }
3038        break;
3039    
3040      case 124:
3041    #line 273 "lscp.y"
3042        { yyval.Char = '4'; }
3043        break;
3044    
3045      case 125:
3046    #line 274 "lscp.y"
3047        { yyval.Char = '5'; }
3048        break;
3049    
3050      case 126:
3051    #line 275 "lscp.y"
3052        { yyval.Char = '6'; }
3053        break;
3054    
3055      case 127:
3056    #line 276 "lscp.y"
3057        { yyval.Char = '7'; }
3058        break;
3059    
3060      case 128:
3061    #line 277 "lscp.y"
3062        { yyval.Char = '8'; }
3063        break;
3064    
3065      case 129:
3066    #line 278 "lscp.y"
3067        { yyval.Char = '9'; }
3068        break;
3069    
3070      case 130:
3071    #line 281 "lscp.y"
3072        { yyval.Number = atoi(String(1, yyvsp[0].Char).c_str());      }
3073        break;
3074    
3075      case 131:
3076    #line 282 "lscp.y"
3077        { yyval.Number = atoi(String(String("1") + yyvsp[0].String).c_str()); }
3078        break;
3079    
3080      case 132:
3081    #line 283 "lscp.y"
3082        { yyval.Number = atoi(String(String("2") + yyvsp[0].String).c_str()); }
3083        break;
3084    
3085      case 133:
3086    #line 284 "lscp.y"
3087        { yyval.Number = atoi(String(String("3") + yyvsp[0].String).c_str()); }
3088        break;
3089    
3090      case 134:
3091    #line 285 "lscp.y"
3092        { yyval.Number = atoi(String(String("4") + yyvsp[0].String).c_str()); }
3093        break;
3094    
3095      case 135:
3096    #line 286 "lscp.y"
3097        { yyval.Number = atoi(String(String("5") + yyvsp[0].String).c_str()); }
3098        break;
3099    
3100      case 136:
3101    #line 287 "lscp.y"
3102        { yyval.Number = atoi(String(String("6") + yyvsp[0].String).c_str()); }
3103        break;
3104    
3105      case 137:
3106    #line 288 "lscp.y"
3107        { yyval.Number = atoi(String(String("7") + yyvsp[0].String).c_str()); }
3108        break;
3109    
3110      case 138:
3111    #line 289 "lscp.y"
3112        { yyval.Number = atoi(String(String("8") + yyvsp[0].String).c_str()); }
3113        break;
3114    
3115      case 139:
3116    #line 290 "lscp.y"
3117        { yyval.Number = atoi(String(String("9") + yyvsp[0].String).c_str()); }
3118        break;
3119    
3120      case 140:
3121    #line 292 "lscp.y"
3122        { yyval.Char = 'A'; }
3123        break;
3124    
3125      case 141:
3126    #line 292 "lscp.y"
3127        { yyval.Char = 'B'; }
3128        break;
3129    
3130      case 142:
3131    #line 292 "lscp.y"
3132        { yyval.Char = 'C'; }
3133        break;
3134    
3135      case 143:
3136    #line 292 "lscp.y"
3137        { yyval.Char = 'D'; }
3138        break;
3139    
3140      case 144:
3141    #line 292 "lscp.y"
3142        { yyval.Char = 'E'; }
3143        break;
3144    
3145      case 145:
3146    #line 292 "lscp.y"
3147        { yyval.Char = 'F'; }
3148        break;
3149    
3150      case 146:
3151    #line 292 "lscp.y"
3152        { yyval.Char = 'G'; }
3153        break;
3154    
3155      case 147:
3156    #line 292 "lscp.y"
3157        { yyval.Char = 'H'; }
3158        break;
3159    
3160      case 148:
3161    #line 292 "lscp.y"
3162        { yyval.Char = 'I'; }
3163        break;
3164    
3165      case 149:
3166    #line 292 "lscp.y"
3167        { yyval.Char = 'J'; }
3168        break;
3169    
3170      case 150:
3171    #line 292 "lscp.y"
3172        { yyval.Char = 'K'; }
3173        break;
3174    
3175      case 151:
3176    #line 292 "lscp.y"
3177        { yyval.Char = 'L'; }
3178        break;
3179    
3180      case 152:
3181    #line 292 "lscp.y"
3182        { yyval.Char = 'M'; }
3183        break;
3184    
3185      case 153:
3186    #line 292 "lscp.y"
3187        { yyval.Char = 'N'; }
3188        break;
3189    
3190      case 154:
3191    #line 292 "lscp.y"
3192        { yyval.Char = 'O'; }
3193        break;
3194    
3195      case 155:
3196    #line 292 "lscp.y"
3197        { yyval.Char = 'P'; }
3198        break;
3199    
3200      case 156:
3201    #line 292 "lscp.y"
3202        { yyval.Char = 'Q'; }
3203        break;
3204    
3205      case 157:
3206    #line 292 "lscp.y"
3207        { yyval.Char = 'R'; }
3208        break;
3209    
3210      case 158:
3211    #line 292 "lscp.y"
3212        { yyval.Char = 'S'; }
3213        break;
3214    
3215      case 159:
3216    #line 292 "lscp.y"
3217        { yyval.Char = 'T'; }
3218        break;
3219    
3220      case 160:
3221    #line 292 "lscp.y"
3222        { yyval.Char = 'U'; }
3223        break;
3224    
3225      case 161:
3226    #line 292 "lscp.y"
3227        { yyval.Char = 'V'; }
3228        break;
3229    
3230      case 162:
3231    #line 292 "lscp.y"
3232        { yyval.Char = 'W'; }
3233        break;
3234    
3235      case 163:
3236    #line 292 "lscp.y"
3237        { yyval.Char = 'X'; }
3238        break;
3239    
3240      case 164:
3241    #line 292 "lscp.y"
3242        { yyval.Char = 'Y'; }
3243        break;
3244    
3245      case 165:
3246    #line 292 "lscp.y"
3247        { yyval.Char = 'Z'; }
3248        break;
3249    
3250      case 166:
3251    #line 293 "lscp.y"
3252        { yyval.Char = 'a'; }
3253        break;
3254    
3255      case 167:
3256    #line 293 "lscp.y"
3257        { yyval.Char = 'b'; }
3258        break;
3259    
3260      case 168:
3261    #line 293 "lscp.y"
3262        { yyval.Char = 'c'; }
3263        break;
3264    
3265      case 169:
3266    #line 293 "lscp.y"
3267        { yyval.Char = 'd'; }
3268        break;
3269    
3270      case 170:
3271    #line 293 "lscp.y"
3272        { yyval.Char = 'e'; }
3273        break;
3274    
3275      case 171:
3276    #line 293 "lscp.y"
3277        { yyval.Char = 'f'; }
3278        break;
3279    
3280      case 172:
3281    #line 293 "lscp.y"
3282        { yyval.Char = 'g'; }
3283        break;
3284    
3285      case 173:
3286    #line 293 "lscp.y"
3287        { yyval.Char = 'h'; }
3288        break;
3289    
3290      case 174:
3291    #line 293 "lscp.y"
3292        { yyval.Char = 'i'; }
3293        break;
3294    
3295      case 175:
3296    #line 293 "lscp.y"
3297        { yyval.Char = 'j'; }
3298        break;
3299    
3300      case 176:
3301    #line 293 "lscp.y"
3302        { yyval.Char = 'k'; }
3303        break;
3304    
3305      case 177:
3306    #line 293 "lscp.y"
3307        { yyval.Char = 'l'; }
3308        break;
3309    
3310      case 178:
3311    #line 293 "lscp.y"
3312        { yyval.Char = 'm'; }
3313        break;
3314    
3315      case 179:
3316    #line 293 "lscp.y"
3317        { yyval.Char = 'n'; }
3318        break;
3319    
3320      case 180:
3321    #line 293 "lscp.y"
3322        { yyval.Char = 'o'; }
3323        break;
3324    
3325      case 181:
3326    #line 293 "lscp.y"
3327        { yyval.Char = 'p'; }
3328        break;
3329    
3330      case 182:
3331    #line 293 "lscp.y"
3332        { yyval.Char = 'q'; }
3333        break;
3334    
3335      case 183:
3336    #line 293 "lscp.y"
3337        { yyval.Char = 'r'; }
3338        break;
3339    
3340      case 184:
3341    #line 293 "lscp.y"
3342        { yyval.Char = 's'; }
3343        break;
3344    
3345      case 185:
3346    #line 293 "lscp.y"
3347        { yyval.Char = 't'; }
3348        break;
3349    
3350      case 186:
3351    #line 293 "lscp.y"
3352        { yyval.Char = 'u'; }
3353        break;
3354    
3355      case 187:
3356    #line 293 "lscp.y"
3357        { yyval.Char = 'v'; }
3358        break;
3359    
3360      case 188:
3361    #line 293 "lscp.y"
3362        { yyval.Char = 'w'; }
3363        break;
3364    
3365      case 189:
3366    #line 293 "lscp.y"
3367        { yyval.Char = 'x'; }
3368        break;
3369    
3370      case 190:
3371    #line 293 "lscp.y"
3372        { yyval.Char = 'y'; }
3373        break;
3374    
3375      case 191:
3376    #line 293 "lscp.y"
3377        { yyval.Char = 'z'; }
3378        break;
3379    
3380      case 192:
3381    #line 294 "lscp.y"
3382        { yyval.Char = '0'; }
3383        break;
3384    
3385      case 193:
3386    #line 294 "lscp.y"
3387        { yyval.Char = '1'; }
3388        break;
3389    
3390      case 194:
3391    #line 294 "lscp.y"
3392        { yyval.Char = '2'; }
3393        break;
3394    
3395      case 195:
3396    #line 294 "lscp.y"
3397        { yyval.Char = '3'; }
3398        break;
3399    
3400      case 196:
3401    #line 294 "lscp.y"
3402        { yyval.Char = '4'; }
3403        break;
3404    
3405      case 197:
3406    #line 294 "lscp.y"
3407        { yyval.Char = '5'; }
3408        break;
3409    
3410      case 198:
3411    #line 294 "lscp.y"
3412        { yyval.Char = '6'; }
3413        break;
3414    
3415      case 199:
3416    #line 294 "lscp.y"
3417        { yyval.Char = '7'; }
3418        break;
3419    
3420      case 200:
3421    #line 294 "lscp.y"
3422        { yyval.Char = '8'; }
3423        break;
3424    
3425      case 201:
3426    #line 294 "lscp.y"
3427        { yyval.Char = '9'; }
3428        break;
3429    
3430      case 202:
3431    #line 295 "lscp.y"
3432        { yyval.Char = '!'; }
3433        break;
3434    
3435      case 203:
3436    #line 295 "lscp.y"
3437        { yyval.Char = '#'; }
3438        break;
3439    
3440      case 204:
3441    #line 295 "lscp.y"
3442        { yyval.Char = '$'; }
3443        break;
3444    
3445      case 205:
3446    #line 295 "lscp.y"
3447        { yyval.Char = '%'; }
3448        break;
3449    
3450      case 206:
3451    #line 295 "lscp.y"
3452        { yyval.Char = '&'; }
3453        break;
3454    
3455      case 207:
3456    #line 295 "lscp.y"
3457        { yyval.Char = '('; }
3458        break;
3459    
3460      case 208:
3461    #line 295 "lscp.y"
3462        { yyval.Char = ')'; }
3463        break;
3464    
3465      case 209:
3466    #line 295 "lscp.y"
3467        { yyval.Char = '*'; }
3468        break;
3469    
3470      case 210:
3471    #line 295 "lscp.y"
3472        { yyval.Char = '+'; }
3473        break;
3474    
3475      case 211:
3476    #line 295 "lscp.y"
3477        { yyval.Char = '-'; }
3478        break;
3479    
3480      case 212:
3481    #line 295 "lscp.y"
3482        { yyval.Char = '.'; }
3483        break;
3484    
3485      case 213:
3486    #line 295 "lscp.y"
3487        { yyval.Char = ','; }
3488        break;
3489    
3490      case 214:
3491    #line 295 "lscp.y"
3492        { yyval.Char = '/'; }
3493        break;
3494    
3495      case 215:
3496    #line 296 "lscp.y"
3497        { yyval.Char = ':'; }
3498        break;
3499    
3500      case 216:
3501    #line 296 "lscp.y"
3502        { yyval.Char = ';'; }
3503        break;
3504    
3505      case 217:
3506    #line 296 "lscp.y"
3507        { yyval.Char = '<'; }
3508        break;
3509    
3510      case 218:
3511    #line 296 "lscp.y"
3512        { yyval.Char = '='; }
3513        break;
3514    
3515      case 219:
3516    #line 296 "lscp.y"
3517        { yyval.Char = '>'; }
3518        break;
3519    
3520      case 220:
3521    #line 296 "lscp.y"
3522        { yyval.Char = '?'; }
3523        break;
3524    
3525      case 221:
3526    #line 296 "lscp.y"
3527        { yyval.Char = '@'; }
3528        break;
3529    
3530      case 222:
3531    #line 297 "lscp.y"
3532        { yyval.Char = '['; }
3533        break;
3534    
3535      case 223:
3536    #line 297 "lscp.y"
3537        { yyval.Char = '\\'; }
3538        break;
3539    
3540      case 224:
3541    #line 297 "lscp.y"
3542        { yyval.Char = ']'; }
3543        break;
3544    
3545      case 225:
3546    #line 297 "lscp.y"
3547        { yyval.Char = '^'; }
3548        break;
3549    
3550      case 226:
3551    #line 297 "lscp.y"
3552        { yyval.Char = '_'; }
3553        break;
3554    
3555      case 227:
3556    #line 298 "lscp.y"
3557        { yyval.Char = '{'; }
3558        break;
3559    
3560      case 228:
3561    #line 298 "lscp.y"
3562        { yyval.Char = '|'; }
3563        break;
3564    
3565      case 229:
3566    #line 298 "lscp.y"
3567        { yyval.Char = '}'; }
3568        break;
3569    
3570      case 230:
3571    #line 298 "lscp.y"
3572        { yyval.Char = '~'; }
3573        break;
3574    
3575      case 231:
3576    #line 299 "lscp.y"
3577        { yyval.Char = '\200'; }
3578        break;
3579    
3580      case 232:
3581    #line 299 "lscp.y"
3582        { yyval.Char = '\201'; }
3583        break;
3584    
3585      case 233:
3586    #line 299 "lscp.y"
3587        { yyval.Char = '\202'; }
3588        break;
3589    
3590      case 234:
3591    #line 300 "lscp.y"
3592        { yyval.Char = '\203'; }
3593        break;
3594    
3595      case 235:
3596    #line 300 "lscp.y"
3597        { yyval.Char = '\204'; }
3598        break;
3599    
3600      case 236:
3601    #line 300 "lscp.y"
3602        { yyval.Char = '\205'; }
3603        break;
3604    
3605      case 237:
3606    #line 301 "lscp.y"
3607        { yyval.Char = '\206'; }
3608        break;
3609    
3610      case 238:
3611    #line 301 "lscp.y"
3612        { yyval.Char = '\207'; }
3613        break;
3614    
3615      case 239:
3616    #line 301 "lscp.y"
3617        { yyval.Char = '\210'; }
3618        break;
3619    
3620      case 240:
3621    #line 302 "lscp.y"
3622        { yyval.Char = '\211'; }
3623        break;
3624    
3625      case 241:
3626    #line 302 "lscp.y"
3627        { yyval.Char = '\212'; }
3628        break;
3629    
3630      case 242:
3631    #line 302 "lscp.y"
3632        { yyval.Char = '\213'; }
3633        break;
3634    
3635      case 243:
3636    #line 303 "lscp.y"
3637        { yyval.Char = '\214'; }
3638        break;
3639    
3640      case 244:
3641    #line 303 "lscp.y"
3642        { yyval.Char = '\215'; }
3643        break;
3644    
3645      case 245:
3646    #line 303 "lscp.y"
3647        { yyval.Char = '\216'; }
3648        break;
3649    
3650      case 246:
3651    #line 304 "lscp.y"
3652        { yyval.Char = '\217'; }
3653        break;
3654    
3655      case 247:
3656    #line 304 "lscp.y"
3657        { yyval.Char = '\220'; }
3658        break;
3659    
3660      case 248:
3661    #line 304 "lscp.y"
3662        { yyval.Char = '\221'; }
3663        break;
3664    
3665      case 249:
3666    #line 305 "lscp.y"
3667        { yyval.Char = '\222'; }
3668        break;
3669    
3670      case 250:
3671    #line 305 "lscp.y"
3672        { yyval.Char = '\223'; }
3673        break;
3674    
3675      case 251:
3676    #line 305 "lscp.y"
3677        { yyval.Char = '\224'; }
3678        break;
3679    
3680      case 252:
3681    #line 306 "lscp.y"
3682        { yyval.Char = '\225'; }
3683        break;
3684    
3685      case 253:
3686    #line 306 "lscp.y"
3687        { yyval.Char = '\226'; }
3688        break;
3689    
3690      case 254:
3691    #line 306 "lscp.y"
3692        { yyval.Char = '\227'; }
3693        break;
3694    
3695      case 255:
3696    #line 307 "lscp.y"
3697        { yyval.Char = '\230'; }
3698        break;
3699    
3700      case 256:
3701    #line 307 "lscp.y"
3702        { yyval.Char = '\231'; }
3703        break;
3704    
3705      case 257:
3706    #line 307 "lscp.y"
3707        { yyval.Char = '\232'; }
3708        break;
3709    
3710      case 258:
3711    #line 308 "lscp.y"
3712        { yyval.Char = '\233'; }
3713        break;
3714    
3715      case 259:
3716    #line 308 "lscp.y"
3717        { yyval.Char = '\234'; }
3718        break;
3719    
3720      case 260:
3721    #line 308 "lscp.y"
3722        { yyval.Char = '\235'; }
3723        break;
3724    
3725      case 261:
3726    #line 309 "lscp.y"
3727        { yyval.Char = '\236'; }
3728        break;
3729    
3730      case 262:
3731    #line 309 "lscp.y"
3732        { yyval.Char = '\237'; }
3733        break;
3734    
3735      case 263:
3736    #line 309 "lscp.y"
3737        { yyval.Char = '\240'; }
3738        break;
3739    
3740      case 264:
3741    #line 310 "lscp.y"
3742        { yyval.Char = '\241'; }
3743        break;
3744    
3745      case 265:
3746    #line 310 "lscp.y"
3747        { yyval.Char = '\242'; }
3748        break;
3749    
3750      case 266:
3751    #line 310 "lscp.y"
3752        { yyval.Char = '\243'; }
3753        break;
3754    
3755      case 267:
3756    #line 311 "lscp.y"
3757        { yyval.Char = '\244'; }
3758        break;
3759    
3760      case 268:
3761    #line 311 "lscp.y"
3762        { yyval.Char = '\245'; }
3763        break;
3764    
3765      case 269:
3766    #line 311 "lscp.y"
3767        { yyval.Char = '\246'; }
3768        break;
3769    
3770      case 270:
3771    #line 312 "lscp.y"
3772        { yyval.Char = '\247'; }
3773        break;
3774    
3775      case 271:
3776    #line 312 "lscp.y"
3777        { yyval.Char = '\250'; }
3778        break;
3779    
3780      case 272:
3781    #line 312 "lscp.y"
3782        { yyval.Char = '\251'; }
3783        break;
3784    
3785      case 273:
3786    #line 313 "lscp.y"
3787        { yyval.Char = '\252'; }
3788        break;
3789    
3790      case 274:
3791    #line 313 "lscp.y"
3792        { yyval.Char = '\253'; }
3793        break;
3794    
3795      case 275:
3796    #line 313 "lscp.y"
3797        { yyval.Char = '\254'; }
3798        break;
3799    
3800      case 276:
3801    #line 314 "lscp.y"
3802        { yyval.Char = '\255'; }
3803        break;
3804    
3805      case 277:
3806    #line 314 "lscp.y"
3807        { yyval.Char = '\256'; }
3808        break;
3809    
3810      case 278:
3811    #line 314 "lscp.y"
3812        { yyval.Char = '\257'; }
3813        break;
3814    
3815      case 279:
3816    #line 315 "lscp.y"
3817        { yyval.Char = '\260'; }
3818        break;
3819    
3820      case 280:
3821    #line 315 "lscp.y"
3822        { yyval.Char = '\261'; }
3823        break;
3824    
3825      case 281:
3826    #line 315 "lscp.y"
3827        { yyval.Char = '\262'; }
3828        break;
3829    
3830      case 282:
3831    #line 316 "lscp.y"
3832        { yyval.Char = '\263'; }
3833        break;
3834    
3835      case 283:
3836    #line 316 "lscp.y"
3837        { yyval.Char = '\264'; }
3838        break;
3839    
3840      case 284:
3841    #line 316 "lscp.y"
3842        { yyval.Char = '\265'; }
3843        break;
3844    
3845      case 285:
3846    #line 317 "lscp.y"
3847        { yyval.Char = '\266'; }
3848        break;
3849    
3850      case 286:
3851    #line 317 "lscp.y"
3852        { yyval.Char = '\267'; }
3853        break;
3854    
3855      case 287:
3856    #line 317 "lscp.y"
3857        { yyval.Char = '\270'; }
3858        break;
3859    
3860      case 288:
3861    #line 318 "lscp.y"
3862        { yyval.Char = '\271'; }
3863        break;
3864    
3865      case 289:
3866    #line 318 "lscp.y"
3867        { yyval.Char = '\272'; }
3868        break;
3869    
3870      case 290:
3871    #line 318 "lscp.y"
3872        { yyval.Char = '\273'; }
3873        break;
3874    
3875      case 291:
3876    #line 319 "lscp.y"
3877        { yyval.Char = '\274'; }
3878        break;
3879    
3880      case 292:
3881    #line 319 "lscp.y"
3882        { yyval.Char = '\275'; }
3883        break;
3884    
3885      case 293:
3886    #line 319 "lscp.y"
3887        { yyval.Char = '\276'; }
3888        break;
3889    
3890      case 294:
3891    #line 320 "lscp.y"
3892        { yyval.Char = '\277'; }
3893        break;
3894    
3895      case 295:
3896    #line 320 "lscp.y"
3897        { yyval.Char = '\300'; }
3898        break;
3899    
3900      case 296:
3901    #line 320 "lscp.y"
3902        { yyval.Char = '\301'; }
3903        break;
3904    
3905      case 297:
3906    #line 321 "lscp.y"
3907        { yyval.Char = '\302'; }
3908        break;
3909    
3910      case 298:
3911    #line 321 "lscp.y"
3912        { yyval.Char = '\303'; }
3913        break;
3914    
3915      case 299:
3916    #line 321 "lscp.y"
3917        { yyval.Char = '\304'; }
3918        break;
3919    
3920      case 300:
3921    #line 322 "lscp.y"
3922        { yyval.Char = '\305'; }
3923        break;
3924    
3925      case 301:
3926    #line 322 "lscp.y"
3927        { yyval.Char = '\306'; }
3928        break;
3929    
3930      case 302:
3931    #line 322 "lscp.y"
3932        { yyval.Char = '\307'; }
3933        break;
3934    
3935      case 303:
3936    #line 323 "lscp.y"
3937        { yyval.Char = '\310'; }
3938        break;
3939    
3940      case 304:
3941    #line 323 "lscp.y"
3942        { yyval.Char = '\311'; }
3943        break;
3944    
3945      case 305:
3946    #line 323 "lscp.y"
3947        { yyval.Char = '\312'; }
3948        break;
3949    
3950      case 306:
3951    #line 324 "lscp.y"
3952        { yyval.Char = '\313'; }
3953        break;
3954    
3955      case 307:
3956    #line 324 "lscp.y"
3957        { yyval.Char = '\314'; }
3958        break;
3959    
3960      case 308:
3961    #line 324 "lscp.y"
3962        { yyval.Char = '\315'; }
3963        break;
3964    
3965      case 309:
3966    #line 325 "lscp.y"
3967        { yyval.Char = '\316'; }
3968        break;
3969    
3970      case 310:
3971    #line 325 "lscp.y"
3972        { yyval.Char = '\317'; }
3973        break;
3974    
3975      case 311:
3976    #line 325 "lscp.y"
3977        { yyval.Char = '\320'; }
3978        break;
3979    
3980      case 312:
3981    #line 326 "lscp.y"
3982        { yyval.Char = '\321'; }
3983        break;
3984    
3985      case 313:
3986    #line 326 "lscp.y"
3987        { yyval.Char = '\322'; }
3988        break;
3989    
3990      case 314:
3991    #line 326 "lscp.y"
3992        { yyval.Char = '\323'; }
3993        break;
3994    
3995      case 315:
3996    #line 327 "lscp.y"
3997        { yyval.Char = '\324'; }
3998        break;
3999    
4000      case 316:
4001    #line 327 "lscp.y"
4002        { yyval.Char = '\325'; }
4003        break;
4004    
4005      case 317:
4006    #line 327 "lscp.y"
4007        { yyval.Char = '\326'; }
4008        break;
4009    
4010      case 318:
4011    #line 328 "lscp.y"
4012        { yyval.Char = '\327'; }
4013        break;
4014    
4015      case 319:
4016    #line 328 "lscp.y"
4017        { yyval.Char = '\330'; }
4018        break;
4019    
4020      case 320:
4021    #line 328 "lscp.y"
4022        { yyval.Char = '\331'; }
4023        break;
4024    
4025      case 321:
4026    #line 329 "lscp.y"
4027        { yyval.Char = '\332'; }
4028        break;
4029    
4030      case 322:
4031    #line 329 "lscp.y"
4032        { yyval.Char = '\333'; }
4033        break;
4034    
4035      case 323:
4036    #line 329 "lscp.y"
4037        { yyval.Char = '\334'; }
4038        break;
4039    
4040      case 324:
4041    #line 330 "lscp.y"
4042        { yyval.Char = '\335'; }
4043        break;
4044    
4045      case 325:
4046    #line 330 "lscp.y"
4047        { yyval.Char = '\336'; }
4048        break;
4049    
4050      case 326:
4051    #line 330 "lscp.y"
4052        { yyval.Char = '\337'; }
4053        break;
4054    
4055      case 327:
4056    #line 331 "lscp.y"
4057        { yyval.Char = '\340'; }
4058        break;
4059    
4060      case 328:
4061    #line 331 "lscp.y"
4062        { yyval.Char = '\341'; }
4063        break;
4064    
4065      case 329:
4066    #line 331 "lscp.y"
4067        { yyval.Char = '\342'; }
4068        break;
4069    
4070      case 330:
4071    #line 332 "lscp.y"
4072        { yyval.Char = '\343'; }
4073        break;
4074    
4075      case 331:
4076    #line 332 "lscp.y"
4077        { yyval.Char = '\344'; }
4078        break;
4079    
4080      case 332:
4081    #line 332 "lscp.y"
4082        { yyval.Char = '\345'; }
4083        break;
4084    
4085      case 333:
4086    #line 333 "lscp.y"
4087        { yyval.Char = '\346'; }
4088        break;
4089    
4090      case 334:
4091    #line 333 "lscp.y"
4092        { yyval.Char = '\347'; }
4093        break;
4094    
4095      case 335:
4096    #line 333 "lscp.y"
4097        { yyval.Char = '\350'; }
4098        break;
4099    
4100      case 336:
4101    #line 334 "lscp.y"
4102        { yyval.Char = '\351'; }
4103        break;
4104    
4105      case 337:
4106    #line 334 "lscp.y"
4107        { yyval.Char = '\352'; }
4108        break;
4109    
4110      case 338:
4111    #line 334 "lscp.y"
4112        { yyval.Char = '\353'; }
4113        break;
4114    
4115      case 339:
4116    #line 335 "lscp.y"
4117        { yyval.Char = '\354'; }
4118        break;
4119    
4120      case 340:
4121    #line 335 "lscp.y"
4122        { yyval.Char = '\355'; }
4123        break;
4124    
4125      case 341:
4126    #line 335 "lscp.y"
4127        { yyval.Char = '\356'; }
4128        break;
4129    
4130      case 342:
4131    #line 336 "lscp.y"
4132        { yyval.Char = '\357'; }
4133        break;
4134    
4135      case 343:
4136    #line 336 "lscp.y"
4137        { yyval.Char = '\360'; }
4138        break;
4139    
4140      case 344:
4141    #line 336 "lscp.y"
4142        { yyval.Char = '\361'; }
4143        break;
4144    
4145      case 345:
4146    #line 337 "lscp.y"
4147        { yyval.Char = '\362'; }
4148        break;
4149    
4150      case 346:
4151    #line 337 "lscp.y"
4152        { yyval.Char = '\363'; }
4153        break;
4154    
4155      case 347:
4156    #line 337 "lscp.y"
4157        { yyval.Char = '\364'; }
4158        break;
4159    
4160      case 348:
4161    #line 338 "lscp.y"
4162        { yyval.Char = '\365'; }
4163        break;
4164    
4165      case 349:
4166    #line 338 "lscp.y"
4167        { yyval.Char = '\366'; }
4168        break;
4169    
4170      case 350:
4171    #line 338 "lscp.y"
4172        { yyval.Char = '\367'; }
4173        break;
4174    
4175      case 351:
4176    #line 339 "lscp.y"
4177        { yyval.Char = '\370'; }
4178        break;
4179    
4180      case 352:
4181    #line 339 "lscp.y"
4182        { yyval.Char = '\371'; }
4183        break;
4184    
4185      case 353:
4186    #line 339 "lscp.y"
4187        { yyval.Char = '\372'; }
4188        break;
4189    
4190      case 354:
4191    #line 340 "lscp.y"
4192        { yyval.Char = '\373'; }
4193        break;
4194    
4195      case 355:
4196    #line 340 "lscp.y"
4197        { yyval.Char = '\374'; }
4198        break;
4199    
4200      case 356:
4201    #line 340 "lscp.y"
4202        { yyval.Char = '\375'; }
4203        break;
4204    
4205      case 357:
4206    #line 341 "lscp.y"
4207        { yyval.Char = '\376'; }
4208        break;
4209    
4210      case 358:
4211    #line 341 "lscp.y"
4212        { yyval.Char = '\377'; }
4213        break;
4214    
4215      case 359:
4216    #line 344 "lscp.y"
4217        { yyval.String = " ";      }
4218        break;
4219    
4220      case 361:
4221    #line 346 "lscp.y"
4222        { yyval.String = yyvsp[-1].String + " "; }
4223        break;
4224    
4225      case 362:
4226    #line 347 "lscp.y"
4227        { yyval.String = yyvsp[-1].String + yyvsp[0].String;  }
4228        break;
4229    
4230      case 363:
4231    #line 350 "lscp.y"
4232        { yyval.String = yyvsp[-1].String; }
4233        break;
4234    
4235      case 364:
4236    #line 351 "lscp.y"
4237        { yyval.String = yyvsp[-1].String; }
4238        break;
4239    
4240    
4241      }      }
4242    
4243  /* Line 999 of yacc.c.  */  /* Line 999 of yacc.c.  */
4244  #line 1567 "y.tab.c"  #line 4245 "y.tab.c"
4245    
4246    yyvsp -= yylen;    yyvsp -= yylen;
4247    yyssp -= yylen;    yyssp -= yylen;
# Line 1757  yyreturn: Line 4435  yyreturn:
4435  }  }
4436    
4437    
4438  #line 210 "lscp.y"  #line 510 "lscp.y"
4439    
4440    
4441  /**  /**
# Line 1768  void yyerror(const char* s) { Line 4446  void yyerror(const char* s) {
4446  }  }
4447    
4448  /**  /**
4449   * Clears input buffer and restarts scanner.   * Clears input buffer.
4450   */   */
4451  void restart(yyparse_param_t* pparam, int& yychar) {  void restart(yyparse_param_t* pparam, int& yychar) {
4452      // restart scanner      bytes = 0;
4453      yyrestart(stdin, pparam->pScanner);      ptr   = 0;
     // flush input buffer  
     static char buf[1024];  
     while(recv(hSession, buf, 1024, MSG_DONTWAIT) > 0);  
     // reset lookahead symbol  
     yyclearin;  
4454  }  }
4455    
4456    

Legend:
Removed from v.123  
changed lines
  Added in v.228

  ViewVC Help
Powered by ViewVC