1
2 #line 3 "lex.c"
3
4 #define YY_INT_ALIGNED short int
5
6 /* A lexical scanner generated by flex */
7
8 #define FLEX_SCANNER
9 #define YY_FLEX_MAJOR_VERSION 2
10 #define YY_FLEX_MINOR_VERSION 5
11 #define YY_FLEX_SUBMINOR_VERSION 35
12 #if YY_FLEX_SUBMINOR_VERSION > 0
13 #define FLEX_BETA
14 #endif
15
16 /* First, we deal with platform-specific or compiler-specific issues. */
17
18 /* begin standard C headers. */
19 #include <stdio.h>
20 #include <string.h>
21 #include <errno.h>
22 #include <stdlib.h>
23
24 /* end standard C headers. */
25
26 /* flex integer type definitions */
27
28 #ifndef FLEXINT_H
29 #define FLEXINT_H
30
31 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
32
33 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
34
35 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
36 * if you want the limit (max/min) macros for int types.
37 */
38 #ifndef __STDC_LIMIT_MACROS
39 #define __STDC_LIMIT_MACROS 1
40 #endif
41
42 #include <inttypes.h>
43 typedef int8_t flex_int8_t;
44 typedef uint8_t flex_uint8_t;
45 typedef int16_t flex_int16_t;
46 typedef uint16_t flex_uint16_t;
47 typedef int32_t flex_int32_t;
48 typedef uint32_t flex_uint32_t;
49 #else
50 typedef signed char flex_int8_t;
51 typedef short int flex_int16_t;
52 typedef int flex_int32_t;
53 typedef unsigned char flex_uint8_t;
54 typedef unsigned short int flex_uint16_t;
55 typedef unsigned int flex_uint32_t;
56 #endif /* ! C99 */
57
58 /* Limits of integral types. */
59 #ifndef INT8_MIN
60 #define INT8_MIN (-128)
61 #endif
62 #ifndef INT16_MIN
63 #define INT16_MIN (-32767-1)
64 #endif
65 #ifndef INT32_MIN
66 #define INT32_MIN (-2147483647-1)
67 #endif
68 #ifndef INT8_MAX
69 #define INT8_MAX (127)
70 #endif
71 #ifndef INT16_MAX
72 #define INT16_MAX (32767)
73 #endif
74 #ifndef INT32_MAX
75 #define INT32_MAX (2147483647)
76 #endif
77 #ifndef UINT8_MAX
78 #define UINT8_MAX (255U)
79 #endif
80 #ifndef UINT16_MAX
81 #define UINT16_MAX (65535U)
82 #endif
83 #ifndef UINT32_MAX
84 #define UINT32_MAX (4294967295U)
85 #endif
86
87 #endif /* ! FLEXINT_H */
88
89 #ifdef __cplusplus
90
91 /* The "const" storage-class-modifier is valid. */
92 #define YY_USE_CONST
93
94 #else /* ! __cplusplus */
95
96 /* C99 requires __STDC__ to be defined as 1. */
97 #if defined (__STDC__)
98
99 #define YY_USE_CONST
100
101 #endif /* defined (__STDC__) */
102 #endif /* ! __cplusplus */
103
104 #ifdef YY_USE_CONST
105 #define yyconst const
106 #else
107 #define yyconst
108 #endif
109
110 /* Returned upon end-of-file. */
111 #define YY_NULL 0
112
113 /* Promotes a possibly negative, possibly signed char to an unsigned
114 * integer for use as an array index. If the signed char is negative,
115 * we want to instead treat it as an 8-bit unsigned char, hence the
116 * double cast.
117 */
118 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
119
120 /* Enter a start condition. This macro really ought to take a parameter,
121 * but we do it the disgusting crufty way forced on us by the ()-less
122 * definition of BEGIN.
123 */
124 #define BEGIN (yy_start) = 1 + 2 *
125
126 /* Translate the current start state into a value that can be later handed
127 * to BEGIN to return to the state. The YYSTATE alias is for lex
128 * compatibility.
129 */
130 #define YY_START (((yy_start) - 1) / 2)
131 #define YYSTATE YY_START
132
133 /* Action number for EOF rule of a given start state. */
134 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
135
136 /* Special action meaning "start processing a new file". */
137 #define YY_NEW_FILE yyrestart(yyin )
138
139 #define YY_END_OF_BUFFER_CHAR 0
140
141 /* Size of default input buffer. */
142 #ifndef YY_BUF_SIZE
143 #define YY_BUF_SIZE 16384
144 #endif
145
146 /* The state buf must be large enough to hold one state per character in the main buffer.
147 */
148 #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
149
150 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
151 #define YY_TYPEDEF_YY_BUFFER_STATE
152 typedef struct yy_buffer_state *YY_BUFFER_STATE;
153 #endif
154
155 extern int yyleng;
156
157 extern FILE *yyin, *yyout;
158
159 #define EOB_ACT_CONTINUE_SCAN 0
160 #define EOB_ACT_END_OF_FILE 1
161 #define EOB_ACT_LAST_MATCH 2
162
163 #define YY_LESS_LINENO(n)
164
165 /* Return all but the first "n" matched characters back to the input stream. */
166 #define yyless(n) \
167 do \
168 { \
169 /* Undo effects of setting up yytext. */ \
170 int yyless_macro_arg = (n); \
171 YY_LESS_LINENO(yyless_macro_arg);\
172 *yy_cp = (yy_hold_char); \
173 YY_RESTORE_YY_MORE_OFFSET \
174 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
175 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
176 } \
177 while ( 0 )
178
179 #define unput(c) yyunput( c, (yytext_ptr) )
180
181 #ifndef YY_TYPEDEF_YY_SIZE_T
182 #define YY_TYPEDEF_YY_SIZE_T
183 typedef size_t yy_size_t;
184 #endif
185
186 #ifndef YY_STRUCT_YY_BUFFER_STATE
187 #define YY_STRUCT_YY_BUFFER_STATE
188 struct yy_buffer_state
189 {
190 FILE *yy_input_file;
191
192 char *yy_ch_buf; /* input buffer */
193 char *yy_buf_pos; /* current position in input buffer */
194
195 /* Size of input buffer in bytes, not including room for EOB
196 * characters.
197 */
198 yy_size_t yy_buf_size;
199
200 /* Number of characters read into yy_ch_buf, not including EOB
201 * characters.
202 */
203 int yy_n_chars;
204
205 /* Whether we "own" the buffer - i.e., we know we created it,
206 * and can realloc() it to grow it, and should free() it to
207 * delete it.
208 */
209 int yy_is_our_buffer;
210
211 /* Whether this is an "interactive" input source; if so, and
212 * if we're using stdio for input, then we want to use getc()
213 * instead of fread(), to make sure we stop fetching input after
214 * each newline.
215 */
216 int yy_is_interactive;
217
218 /* Whether we're considered to be at the beginning of a line.
219 * If so, '^' rules will be active on the next match, otherwise
220 * not.
221 */
222 int yy_at_bol;
223
224 int yy_bs_lineno; /**< The line count. */
225 int yy_bs_column; /**< The column count. */
226
227 /* Whether to try to fill the input buffer when we reach the
228 * end of it.
229 */
230 int yy_fill_buffer;
231
232 int yy_buffer_status;
233
234 #define YY_BUFFER_NEW 0
235 #define YY_BUFFER_NORMAL 1
236 /* When an EOF's been seen but there's still some text to process
237 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
238 * shouldn't try reading from the input source any more. We might
239 * still have a bunch of tokens to match, though, because of
240 * possible backing-up.
241 *
242 * When we actually see the EOF, we change the status to "new"
243 * (via yyrestart()), so that the user can continue scanning by
244 * just pointing yyin at a new input file.
245 */
246 #define YY_BUFFER_EOF_PENDING 2
247
248 };
249 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
250
251 /* Stack of input buffers. */
252 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
253 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
254 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
255
256 /* We provide macros for accessing buffer states in case in the
257 * future we want to put the buffer states in a more general
258 * "scanner state".
259 *
260 * Returns the top of the stack, or NULL.
261 */
262 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
263 ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
264 : NULL)
265
266 /* Same as previous macro, but useful when we know that the buffer stack is not
267 * NULL or when we need an lvalue. For internal use only.
268 */
269 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
270
271 /* yy_hold_char holds the character lost when yytext is formed. */
272 static char yy_hold_char;
273 static int yy_n_chars; /* number of characters read into yy_ch_buf */
274 int yyleng;
275
276 /* Points to current character in buffer. */
277 static char *yy_c_buf_p = (char *) 0;
278 static int yy_init = 0; /* whether we need to initialize */
279 static int yy_start = 0; /* start state number */
280
281 /* Flag which is used to allow yywrap()'s to do buffer switches
282 * instead of setting up a fresh yyin. A bit of a hack ...
283 */
284 static int yy_did_buffer_switch_on_eof;
285
286 void yyrestart (FILE *input_file );
287 void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer );
288 YY_BUFFER_STATE yy_create_buffer (FILE *file,int size );
289 void yy_delete_buffer (YY_BUFFER_STATE b );
290 void yy_flush_buffer (YY_BUFFER_STATE b );
291 void yypush_buffer_state (YY_BUFFER_STATE new_buffer );
292 void yypop_buffer_state (void );
293
294 static void yyensure_buffer_stack (void );
295 static void yy_load_buffer_state (void );
296 static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file );
297
298 #define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
299
300 YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size );
301 YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str );
302 YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len );
303
304 void *yyalloc (yy_size_t );
305 void *yyrealloc (void *,yy_size_t );
306 void yyfree (void * );
307
308 #define yy_new_buffer yy_create_buffer
309
310 #define yy_set_interactive(is_interactive) \
311 { \
312 if ( ! YY_CURRENT_BUFFER ){ \
313 yyensure_buffer_stack (); \
314 YY_CURRENT_BUFFER_LVALUE = \
315 yy_create_buffer(yyin,YY_BUF_SIZE ); \
316 } \
317 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
318 }
319
320 #define yy_set_bol(at_bol) \
321 { \
322 if ( ! YY_CURRENT_BUFFER ){\
323 yyensure_buffer_stack (); \
324 YY_CURRENT_BUFFER_LVALUE = \
325 yy_create_buffer(yyin,YY_BUF_SIZE ); \
326 } \
327 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
328 }
329
330 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
331
332 /* Begin user sect3 */
333
334 typedef unsigned char YY_CHAR;
335
336 FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
337
338 typedef int yy_state_type;
339
340 extern int yylineno;
341
342 int yylineno = 1;
343
344 extern char *yytext;
345 #define yytext_ptr yytext
346
347 static yy_state_type yy_get_previous_state (void );
348 static yy_state_type yy_try_NUL_trans (yy_state_type current_state );
349 static int yy_get_next_buffer (void );
350 static void yy_fatal_error (yyconst char msg[] );
351
352 /* Done after the current pattern has been matched and before the
353 * corresponding action - sets up yytext.
354 */
355 #define YY_DO_BEFORE_ACTION \
356 (yytext_ptr) = yy_bp; \
357 yyleng = (size_t) (yy_cp - yy_bp); \
358 (yy_hold_char) = *yy_cp; \
359 *yy_cp = '\0'; \
360 (yy_c_buf_p) = yy_cp;
361
362 #define YY_NUM_RULES 13
363 #define YY_END_OF_BUFFER 14
364 /* This struct is not used in this scanner,
365 but its presence is necessary. */
366 struct yy_trans_info
367 {
368 flex_int32_t yy_verify;
369 flex_int32_t yy_nxt;
370 };
371 static yyconst flex_int16_t yy_accept[476] =
372 { 0,
373 0, 7, 12, 7, 14, 13, 4, 1, 6, 7,
374 1, 3, 6, 11, 12, 11, 1, 11, 8, 6,
375 7, 6, 1, 3, 6, 6, 6, 1, 6, 7,
376 1, 3, 3, 3, 3, 6, 5, 11, 11, 11,
377 0, 12, 11, 0, 10, 11, 1, 1, 1, 1,
378 11, 0, 9, 11, 0, 0, 6, 6, 6, 6,
379 7, 6, 6, 6, 6, 1, 1, 1, 1, 3,
380 3, 3, 3, 3, 3, 6, 6, 6, 6, 6,
381 6, 6, 5, 3, 3, 3, 5, 5, 10, 0,
382 11, 11, 0, 11, 0, 10, 11, 1, 1, 1,
383
384 1, 1, 1, 1, 1, 1, 1, 9, 0, 11,
385 0, 11, 0, 9, 11, 6, 6, 6, 6, 6,
386 6, 6, 6, 6, 1, 1, 1, 1, 1, 1,
387 1, 1, 1, 1, 3, 3, 3, 3, 3, 3,
388 3, 3, 3, 3, 3, 3, 3, 3, 3, 6,
389 6, 6, 6, 6, 6, 6, 6, 5, 5, 5,
390 5, 3, 3, 2, 10, 0, 11, 10, 0, 11,
391 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
392 1, 1, 1, 1, 1, 1, 1, 9, 0, 11,
393 9, 0, 11, 6, 6, 6, 6, 6, 6, 1,
394
395 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
396 1, 1, 1, 1, 1, 1, 3, 3, 3, 3,
397 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
398 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
399 3, 6, 6, 6, 6, 6, 6, 5, 5, 5,
400 5, 5, 5, 5, 5, 5, 5, 5, 5, 2,
401 3, 3, 2, 2, 10, 0, 11, 10, 0, 11,
402 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
403 1, 1, 9, 0, 11, 9, 0, 11, 6, 6,
404 6, 6, 6, 6, 1, 1, 1, 1, 1, 1,
405
406 1, 1, 1, 1, 1, 1, 3, 3, 3, 3,
407 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
408 3, 3, 3, 3, 3, 3, 2, 3, 3, 6,
409 6, 6, 6, 6, 6, 5, 5, 5, 5, 5,
410 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
411 5, 5, 5, 5, 5, 5, 5, 5, 10, 0,
412 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
413 1, 1, 9, 0, 6, 6, 1, 1, 1, 1,
414 1, 1, 1, 1, 1, 1, 1, 1, 3, 3,
415 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
416
417 3, 3, 3, 3, 3, 3, 6, 6, 5, 5,
418 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
419 5, 5, 5, 5, 5, 5, 5, 5, 1, 1,
420 1, 1, 1, 1, 1, 1, 3, 3, 3, 3,
421 3, 3, 3, 3, 3, 3, 5, 5, 5, 5,
422 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
423 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
424 5, 5, 5, 5, 0
425 } ;
426
427 static yyconst flex_int32_t yy_ec[256] =
428 { 0,
429 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
430 1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
431 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
432 1, 2, 1, 5, 6, 1, 7, 1, 8, 1,
433 1, 1, 1, 1, 1, 1, 1, 9, 9, 9,
434 9, 9, 9, 9, 9, 9, 9, 1, 10, 1,
435 11, 1, 1, 1, 12, 12, 12, 12, 12, 12,
436 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
437 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
438 1, 13, 1, 1, 12, 1, 1, 1, 1, 14,
439
440 15, 16, 1, 1, 17, 1, 1, 18, 1, 19,
441 1, 1, 1, 1, 20, 1, 1, 1, 1, 1,
442 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
443 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
444 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
445 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
446 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
447 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
448 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
449 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
450
451 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
452 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
453 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
454 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
455 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
456 1, 1, 1, 1, 1
457 } ;
458
459 static yyconst flex_int32_t yy_meta[21] =
460 { 0,
461 1, 2, 3, 4, 5, 1, 1, 6, 1, 7,
462 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
463 } ;
464
465 static yyconst flex_int16_t yy_base[788] =
466 { 0,
467 0, 5, 16, 25, 324, 5969, 5969, 0, 0, 317,
468 316, 8, 4, 31, 306, 40, 52, 61, 39, 41,
469 303, 73, 85, 94, 110, 47, 119, 0, 0, 296,
470 294, 293, 0, 54, 18, 56, 0, 72, 130, 142,
471 53, 289, 0, 35, 84, 154, 166, 175, 187, 83,
472 0, 1, 93, 199, 92, 71, 109, 211, 223, 102,
473 285, 0, 129, 235, 247, 259, 268, 280, 146, 292,
474 301, 313, 158, 97, 242, 0, 165, 325, 337, 349,
475 361, 0, 373, 106, 139, 230, 134, 0, 200, 178,
476 174, 0, 181, 0, 156, 382, 394, 406, 191, 418,
477
478 427, 439, 190, 451, 460, 205, 214, 113, 226, 236,
479 98, 472, 134, 484, 496, 237, 90, 117, 141, 508,
480 520, 532, 0, 544, 556, 568, 577, 589, 601, 613,
481 622, 634, 646, 658, 670, 250, 682, 691, 703, 715,
482 271, 727, 736, 748, 760, 772, 784, 803, 185, 246,
483 157, 215, 816, 828, 840, 852, 864, 876, 885, 897,
484 909, 213, 64, 68, 916, 263, 928, 940, 952, 964,
485 257, 272, 976, 209, 284, 985, 296, 997, 1009, 305,
486 309, 1021, 327, 1030, 317, 1042, 1054, 1066, 328, 1078,
487 1090, 1102, 1114, 1126, 1138, 1150, 1162, 1174, 1186, 1198,
488
489 233, 341, 351, 1207, 1219, 1231, 1243, 1255, 1267, 353,
490 363, 1276, 1288, 1300, 1312, 1324, 365, 388, 1336, 270,
491 374, 398, 1345, 1357, 409, 1369, 1381, 1393, 413, 430,
492 1405, 443, 452, 1414, 1426, 431, 1438, 1450, 1462, 1474,
493 1490, 1506, 1518, 1530, 1542, 1554, 1566, 1578, 1589, 1601,
494 1610, 1622, 1634, 1645, 1657, 1666, 1678, 1690, 1702, 57,
495 156, 190, 0, 36, 1714, 1726, 1738, 1750, 1762, 1774,
496 1786, 422, 1798, 1810, 1822, 1834, 1846, 463, 1858, 1870,
497 1882, 1894, 1906, 1918, 1930, 1942, 1954, 1966, 1978, 1990,
498 2002, 2014, 2026, 2038, 2050, 2062, 2074, 2086, 2098, 2110,
499
500 2122, 2134, 2146, 2158, 2170, 2182, 476, 464, 2194, 488,
501 2206, 2218, 2230, 2242, 2254, 2266, 500, 487, 2278, 504,
502 2290, 2302, 2314, 2326, 2338, 2350, 2362, 2371, 13, 2386,
503 2398, 2410, 2422, 2434, 2446, 2458, 2464, 2476, 384, 2485,
504 2492, 2499, 2511, 2522, 2534, 2546, 2558, 2570, 2576, 2588,
505 2597, 2604, 2611, 2623, 2634, 2646, 2658, 2670, 2682, 2694,
506 2706, 2718, 2730, 2742, 2754, 2766, 2778, 2790, 2802, 2814,
507 2826, 2838, 2850, 2862, 2874, 2886, 2898, 2910, 2922, 2934,
508 2946, 2958, 2970, 2982, 2994, 3006, 3018, 3030, 3042, 3054,
509 3066, 3078, 3090, 3102, 3114, 3126, 3138, 3150, 3162, 3174,
510
511 3186, 3198, 3210, 3222, 3234, 3246, 3258, 3270, 3282, 3288,
512 3300, 3311, 3323, 3335, 3347, 3359, 3371, 3383, 3395, 3401,
513 3413, 3424, 3436, 3448, 3460, 3472, 3484, 3496, 3508, 3520,
514 3532, 3544, 3556, 3568, 0, 3580, 0, 0, 3592, 0,
515 3604, 0, 0, 3616, 0, 3628, 3640, 0, 3652, 0,
516 3664, 0, 0, 0, 3676, 3688, 0, 3700, 0, 3712,
517 0, 0, 0, 3724, 0, 0, 3736, 0, 3748, 0,
518 0, 3760, 0, 3772, 5969, 3785, 3792, 3799, 3806, 3813,
519 3820, 3827, 3834, 3841, 3848, 3855, 3862, 3869, 3876, 3883,
520 3890, 3897, 3904, 3911, 3918, 3925, 3932, 3939, 3946, 3953,
521
522 3960, 3967, 3974, 3981, 3988, 3995, 4002, 4009, 4016, 4023,
523 4030, 4037, 4044, 4051, 4058, 4065, 4072, 4079, 4086, 4093,
524 4100, 4107, 4113, 4120, 4127, 4134, 4141, 4148, 4155, 4162,
525 4169, 4176, 4183, 4190, 4197, 4204, 4211, 4218, 4225, 4232,
526 4239, 4246, 4253, 4260, 4267, 4274, 4281, 4288, 4295, 4302,
527 4309, 4316, 4323, 4330, 4337, 4344, 4351, 4358, 4365, 4372,
528 4379, 4386, 4393, 4400, 4407, 4414, 4421, 4428, 4435, 4442,
529 4449, 4456, 4463, 4470, 4477, 4484, 4491, 4498, 4505, 4512,
530 4519, 4526, 4533, 4540, 4547, 4554, 4561, 4568, 4575, 4582,
531 4589, 4596, 4603, 4610, 4617, 4624, 4631, 4638, 4645, 4652,
532
533 4659, 4666, 4673, 4680, 4687, 4694, 4701, 4708, 4715, 4722,
534 4729, 4736, 4743, 4750, 4757, 4764, 4771, 4778, 4785, 4792,
535 4799, 4806, 4813, 4820, 4827, 4834, 4841, 4848, 4855, 4862,
536 4869, 4876, 4883, 4890, 4897, 4904, 4911, 4918, 4925, 4932,
537 4939, 4946, 4953, 4960, 4967, 4974, 4981, 4988, 4995, 5002,
538 5009, 5016, 5023, 5030, 5037, 5044, 5051, 5058, 5065, 5072,
539 5079, 5086, 5093, 5100, 5107, 5114, 5121, 5128, 5135, 5142,
540 5149, 5156, 5163, 5170, 5177, 5184, 5191, 5198, 5205, 5212,
541 5219, 5226, 5233, 5240, 5247, 5254, 5261, 5268, 5275, 5282,
542 5289, 5296, 5303, 5310, 5317, 5324, 5331, 5338, 5345, 5352,
543
544 5359, 5366, 5373, 5380, 5387, 5394, 5401, 5408, 5415, 5422,
545 5429, 5436, 5443, 5450, 5457, 5464, 5471, 5478, 5485, 5492,
546 5499, 5506, 5513, 5520, 5527, 5534, 5541, 5548, 5555, 5562,
547 5569, 5576, 5583, 5590, 5597, 5604, 5611, 5618, 5625, 5632,
548 5639, 5646, 5653, 5660, 5667, 5674, 5681, 5688, 5695, 5702,
549 5709, 5716, 5723, 5730, 5737, 5744, 5751, 5758, 5765, 5772,
550 5779, 5786, 5793, 5800, 5807, 5814, 5821, 5828, 5835, 5842,
551 5849, 5856, 5863, 5870, 5877, 5884, 5891, 5898, 5905, 5912,
552 5919, 5926, 5933, 5940, 5947, 5954, 5961
553 } ;
554
555 static yyconst flex_int16_t yy_def[788] =
556 { 0,
557 476, 477, 478, 479, 475, 475, 475, 480, 481, 475,
558 482, 483, 481, 484, 475, 485, 486, 487, 488, 489,
559 475, 490, 491, 492, 493, 494, 489, 480, 481, 475,
560 482, 483, 495, 483, 483, 481, 496, 484, 485, 487,
561 488, 475, 39, 497, 498, 499, 486, 500, 501, 502,
562 40, 503, 504, 505, 497, 503, 489, 490, 493, 494,
563 475, 58, 506, 507, 508, 491, 509, 510, 511, 492,
564 512, 513, 514, 70, 70, 59, 515, 516, 517, 507,
565 516, 27, 518, 483, 483, 483, 496, 519, 520, 521,
566 498, 522, 520, 39, 497, 523, 499, 500, 524, 525,
567
568 526, 501, 527, 528, 529, 524, 527, 530, 531, 532,
569 530, 533, 534, 535, 536, 506, 537, 538, 538, 539,
570 540, 541, 80, 542, 543, 544, 545, 546, 547, 548,
571 549, 550, 545, 549, 551, 552, 553, 554, 555, 556,
572 557, 558, 559, 560, 554, 559, 561, 561, 148, 562,
573 563, 563, 564, 565, 566, 567, 568, 569, 570, 571,
574 572, 573, 573, 574, 575, 576, 577, 577, 575, 578,
575 579, 580, 581, 582, 579, 583, 584, 585, 586, 587,
576 588, 589, 587, 590, 591, 592, 593, 594, 595, 596,
577 596, 594, 597, 598, 599, 600, 600, 598, 601, 602,
578
579 603, 604, 604, 605, 606, 607, 608, 609, 610, 611,
580 611, 612, 613, 614, 615, 616, 617, 618, 619, 620,
581 621, 621, 622, 623, 624, 625, 626, 627, 628, 629,
582 630, 631, 631, 632, 633, 634, 635, 636, 637, 638,
583 638, 639, 640, 641, 641, 639, 642, 643, 644, 645,
584 646, 647, 648, 649, 650, 651, 652, 646, 651, 653,
585 653, 653, 654, 654, 655, 656, 657, 657, 655, 658,
586 659, 660, 661, 661, 659, 662, 663, 664, 665, 665,
587 663, 666, 667, 668, 669, 669, 667, 670, 671, 672,
588 673, 673, 671, 674, 675, 676, 677, 677, 675, 678,
589
590 679, 680, 681, 681, 679, 682, 683, 684, 685, 686,
591 687, 688, 689, 689, 687, 690, 691, 692, 693, 694,
592 695, 696, 697, 697, 695, 698, 699, 699, 328, 700,
593 701, 702, 702, 700, 703, 704, 705, 706, 707, 708,
594 708, 709, 710, 711, 712, 713, 714, 715, 716, 717,
595 718, 718, 719, 720, 721, 722, 723, 724, 725, 726,
596 727, 728, 729, 729, 727, 730, 731, 732, 733, 733,
597 731, 734, 735, 736, 737, 738, 739, 740, 741, 741,
598 739, 742, 743, 744, 745, 745, 743, 746, 747, 747,
599 748, 749, 750, 751, 751, 749, 752, 753, 753, 754,
600
601 755, 756, 757, 757, 755, 758, 759, 760, 761, 762,
602 763, 764, 765, 766, 767, 767, 765, 768, 769, 770,
603 771, 772, 773, 774, 775, 775, 773, 776, 777, 778,
604 779, 780, 781, 782, 387, 783, 390, 390, 748, 396,
605 750, 399, 399, 754, 405, 756, 763, 447, 784, 417,
606 785, 416, 416, 417, 768, 771, 456, 786, 427, 787,
607 426, 426, 427, 776, 447, 447, 784, 417, 785, 456,
608 456, 786, 427, 787, 0, 475, 475, 475, 475, 475,
609 475, 475, 475, 475, 475, 475, 475, 475, 475, 475,
610 475, 475, 475, 475, 475, 475, 475, 475, 475, 475,
611
612 475, 475, 475, 475, 475, 475, 475, 475, 475, 475,
613 475, 475, 475, 475, 475, 475, 475, 475, 475, 475,
614 475, 475, 475, 475, 475, 475, 475, 475, 475, 475,
615 475, 475, 475, 475, 475, 475, 475, 475, 475, 475,
616 475, 475, 475, 475, 475, 475, 475, 475, 475, 475,
617 475, 475, 475, 475, 475, 475, 475, 475, 475, 475,
618 475, 475, 475, 475, 475, 475, 475, 475, 475, 475,
619 475, 475, 475, 475, 475, 475, 475, 475, 475, 475,
620 475, 475, 475, 475, 475, 475, 475, 475, 475, 475,
621 475, 475, 475, 475, 475, 475, 475, 475, 475, 475,
622
623 475, 475, 475, 475, 475, 475, 475, 475, 475, 475,
624 475, 475, 475, 475, 475, 475, 475, 475, 475, 475,
625 475, 475, 475, 475, 475, 475, 475, 475, 475, 475,
626 475, 475, 475, 475, 475, 475, 475, 475, 475, 475,
627 475, 475, 475, 475, 475, 475, 475, 475, 475, 475,
628 475, 475, 475, 475, 475, 475, 475, 475, 475, 475,
629 475, 475, 475, 475, 475, 475, 475, 475, 475, 475,
630 475, 475, 475, 475, 475, 475, 475, 475, 475, 475,
631 475, 475, 475, 475, 475, 475, 475, 475, 475, 475,
632 475, 475, 475, 475, 475, 475, 475, 475, 475, 475,
633
634 475, 475, 475, 475, 475, 475, 475, 475, 475, 475,
635 475, 475, 475, 475, 475, 475, 475, 475, 475, 475,
636 475, 475, 475, 475, 475, 475, 475, 475, 475, 475,
637 475, 475, 475, 475, 475, 475, 475, 475, 475, 475,
638 475, 475, 475, 475, 475, 475, 475, 475, 475, 475,
639 475, 475, 475, 475, 475, 475, 475, 475, 475, 475,
640 475, 475, 475, 475, 475, 475, 475, 475, 475, 475,
641 475, 475, 475, 475, 475, 475, 475, 475, 475, 475,
642 475, 475, 475, 475, 475, 475, 475
643 } ;
644
645 static yyconst flex_int16_t yy_nxt[5990] =
646 { 0,
647 475, 88, 7, 29, 475, 8, 10, 7, 108, 33,
648 11, 12, 36, 109, 37, 36, 13, 15, 7, 33,
649 16, 17, 34, 18, 35, 19, 21, 7, 327, 22,
650 23, 24, 25, 86, 26, 39, 27, 264, 40, 89,
651 41, 44, 44, 55, 45, 58, 56, 90, 59, 44,
652 60, 80, 46, 28, 81, 33, 48, 55, 33, 49,
653 56, 50, 52, 52, 36, 33, 37, 36, 53, 264,
654 52, 84, 85, 54, 44, 44, 39, 63, 108, 40,
655 262, 41, 64, 109, 28, 65, 28, 106, 39, 67,
656 107, 92, 68, 93, 69, 33, 89, 92, 71, 29,
657
658 40, 72, 111, 73, 90, 56, 80, 33, 74, 81,
659 75, 52, 52, 58, 147, 148, 59, 77, 60, 78,
660 56, 80, 79, 58, 29, 162, 59, 82, 60, 83,
661 82, 44, 44, 58, 45, 88, 117, 29, 118, 44,
662 33, 108, 46, 52, 52, 80, 109, 28, 29, 53,
663 133, 52, 163, 134, 54, 95, 44, 33, 96, 33,
664 89, 29, 145, 95, 81, 146, 97, 28, 90, 117,
665 48, 86, 59, 49, 151, 50, 99, 44, 39, 100,
666 44, 92, 165, 93, 99, 55, 164, 101, 103, 52,
667 166, 33, 52, 44, 104, 171, 103, 180, 70, 105,
668
669 113, 52, 181, 172, 55, 260, 114, 44, 113, 171,
670 28, 115, 44, 44, 33, 63, 52, 172, 28, 29,
671 64, 180, 81, 65, 52, 52, 181, 260, 52, 261,
672 77, 164, 78, 188, 28, 79, 44, 44, 189, 119,
673 92, 58, 31, 40, 117, 111, 118, 120, 95, 44,
674 117, 122, 44, 59, 217, 151, 123, 149, 28, 124,
675 28, 106, 218, 67, 28, 44, 68, 165, 69, 99,
676 44, 33, 126, 52, 44, 166, 271, 127, 229, 32,
677 128, 103, 52, 230, 272, 28, 61, 130, 106, 131,
678 42, 28, 132, 33, 33, 28, 71, 30, 44, 72,
679
680 171, 73, 136, 44, 61, 137, 28, 42, 172, 28,
681 138, 52, 107, 139, 141, 52, 277, 28, 30, 52,
682 142, 278, 143, 475, 180, 144, 52, 52, 28, 181,
683 52, 28, 152, 475, 107, 188, 475, 153, 113, 52,
684 189, 475, 28, 475, 155, 133, 156, 475, 31, 157,
685 44, 44, 28, 119, 28, 133, 475, 31, 31, 475,
686 134, 120, 52, 52, 28, 475, 33, 31, 152, 308,
687 134, 475, 33, 153, 88, 33, 57, 159, 145, 475,
688 160, 32, 161, 44, 44, 88, 168, 117, 475, 43,
689 44, 169, 309, 87, 170, 95, 44, 475, 96, 33,
690
691 310, 475, 145, 95, 475, 32, 97, 99, 44, 475,
692 100, 44, 475, 217, 33, 99, 475, 33, 101, 28,
693 318, 218, 48, 475, 44, 174, 271, 175, 177, 44,
694 475, 178, 52, 52, 272, 475, 177, 319, 229, 179,
695 103, 52, 320, 230, 33, 475, 104, 32, 103, 475,
696 146, 105, 28, 33, 475, 174, 32, 475, 49, 146,
697 183, 185, 52, 475, 475, 52, 44, 186, 217, 185,
698 277, 475, 187, 52, 52, 278, 218, 33, 475, 53,
699 308, 52, 475, 33, 54, 52, 52, 475, 51, 52,
700 44, 191, 309, 192, 229, 475, 193, 113, 52, 230,
701
702 310, 33, 475, 114, 33, 113, 52, 318, 115, 95,
703 44, 319, 194, 475, 475, 475, 320, 475, 475, 475,
704 195, 44, 44, 475, 63, 475, 475, 475, 475, 64,
705 475, 475, 65, 44, 44, 475, 197, 475, 475, 62,
706 475, 198, 475, 475, 199, 95, 44, 475, 122, 475,
707 475, 475, 475, 123, 475, 475, 124, 99, 44, 475,
708 126, 475, 475, 475, 475, 127, 475, 475, 128, 28,
709 475, 475, 67, 475, 475, 201, 475, 202, 99, 44,
710 475, 203, 475, 475, 475, 475, 475, 475, 475, 204,
711 177, 44, 475, 206, 475, 475, 475, 475, 207, 475,
712
713 475, 208, 103, 52, 475, 475, 475, 475, 130, 475,
714 131, 475, 475, 132, 28, 475, 475, 201, 475, 475,
715 68, 475, 210, 103, 52, 475, 475, 475, 475, 211,
716 475, 475, 475, 475, 212, 185, 52, 475, 475, 475,
717 475, 214, 475, 215, 475, 475, 216, 99, 44, 475,
718 203, 475, 475, 475, 475, 475, 475, 475, 204, 103,
719 52, 475, 475, 475, 475, 211, 475, 475, 475, 475,
720 212, 136, 44, 475, 137, 475, 475, 475, 475, 138,
721 475, 475, 139, 33, 475, 475, 71, 475, 475, 220,
722 475, 221, 136, 44, 475, 222, 475, 475, 475, 475,
723
724 475, 475, 475, 223, 225, 44, 475, 226, 475, 475,
725 475, 475, 227, 475, 475, 228, 141, 52, 475, 475,
726 475, 475, 142, 475, 143, 475, 475, 144, 33, 475,
727 475, 220, 475, 475, 72, 475, 232, 141, 52, 475,
728 475, 475, 475, 233, 475, 475, 475, 475, 234, 236,
729 52, 475, 475, 475, 475, 237, 475, 238, 475, 475,
730 239, 136, 44, 475, 222, 475, 475, 475, 475, 475,
731 475, 475, 223, 141, 52, 475, 475, 475, 475, 233,
732 475, 475, 475, 475, 234, 33, 475, 475, 71, 475,
733 475, 72, 475, 73, 475, 475, 475, 475, 475, 475,
734
735 475, 475, 475, 240, 33, 475, 475, 71, 475, 475,
736 72, 475, 73, 475, 475, 475, 241, 113, 52, 475,
737 475, 475, 475, 242, 475, 475, 475, 475, 243, 52,
738 52, 475, 475, 475, 475, 77, 475, 78, 475, 475,
739 79, 52, 52, 475, 76, 475, 475, 245, 475, 246,
740 475, 475, 247, 52, 52, 475, 475, 475, 475, 152,
741 475, 475, 475, 475, 153, 113, 52, 475, 475, 475,
742 475, 155, 475, 156, 475, 475, 157, 88, 475, 57,
743 159, 475, 475, 160, 475, 161, 249, 44, 62, 250,
744 475, 475, 475, 475, 251, 475, 475, 252, 254, 52,
745
746 76, 475, 475, 475, 255, 475, 256, 475, 475, 257,
747 88, 475, 60, 258, 475, 475, 259, 44, 44, 475,
748 265, 475, 475, 44, 475, 475, 475, 475, 266, 44,
749 44, 475, 168, 475, 475, 43, 475, 169, 475, 475,
750 170, 44, 44, 475, 168, 475, 475, 43, 475, 169,
751 475, 475, 170, 44, 44, 475, 265, 475, 475, 44,
752 475, 475, 475, 475, 266, 95, 44, 475, 268, 475,
753 475, 94, 475, 269, 475, 475, 270, 28, 475, 475,
754 48, 475, 475, 174, 475, 175, 99, 44, 475, 100,
755 475, 475, 475, 475, 99, 475, 475, 101, 99, 44,
756
757 475, 274, 475, 475, 98, 475, 275, 475, 475, 276,
758 177, 44, 475, 178, 475, 475, 475, 475, 177, 475,
759 475, 179, 28, 475, 475, 174, 475, 475, 49, 475,
760 183, 103, 52, 475, 475, 475, 475, 104, 475, 103,
761 475, 475, 105, 103, 52, 475, 102, 475, 475, 280,
762 475, 281, 475, 475, 282, 185, 52, 475, 475, 475,
763 475, 186, 475, 185, 475, 475, 187, 52, 52, 475,
764 52, 475, 475, 283, 475, 475, 475, 475, 284, 52,
765 52, 475, 51, 475, 475, 191, 475, 192, 475, 475,
766 193, 52, 52, 475, 51, 475, 475, 191, 475, 192,
767
768 475, 475, 193, 52, 52, 475, 52, 475, 475, 283,
769 475, 475, 475, 475, 284, 113, 52, 475, 112, 475,
770 475, 286, 475, 287, 475, 475, 288, 44, 44, 475,
771 289, 475, 475, 64, 475, 475, 475, 475, 290, 95,
772 44, 475, 194, 475, 475, 475, 475, 475, 475, 475,
773 195, 44, 44, 475, 197, 475, 475, 62, 475, 198,
774 475, 475, 199, 44, 44, 475, 197, 475, 475, 62,
775 475, 198, 475, 475, 199, 44, 44, 475, 289, 475,
776 475, 64, 475, 475, 475, 475, 290, 95, 44, 475,
777 292, 475, 475, 121, 475, 293, 475, 475, 294, 28,
778
779 475, 475, 67, 475, 475, 201, 475, 202, 177, 44,
780 475, 295, 475, 475, 475, 475, 475, 475, 475, 296,
781 99, 44, 475, 126, 475, 475, 475, 475, 127, 475,
782 475, 128, 99, 44, 475, 298, 475, 475, 125, 475,
783 299, 475, 475, 300, 99, 44, 475, 203, 475, 475,
784 475, 475, 475, 475, 475, 204, 177, 44, 475, 206,
785 475, 475, 475, 475, 207, 475, 475, 208, 28, 475,
786 475, 201, 475, 475, 68, 475, 210, 185, 52, 475,
787 475, 475, 475, 301, 475, 475, 475, 475, 302, 103,
788 52, 475, 475, 475, 475, 130, 475, 131, 475, 475,
789
790 132, 103, 52, 475, 129, 475, 475, 304, 475, 305,
791 475, 475, 306, 103, 52, 475, 475, 475, 475, 211,
792 475, 475, 475, 475, 212, 185, 52, 475, 475, 475,
793 475, 214, 475, 215, 475, 475, 216, 33, 475, 475,
794 71, 475, 475, 220, 475, 221, 225, 44, 475, 311,
795 475, 475, 475, 475, 475, 475, 475, 312, 136, 44,
796 475, 137, 475, 475, 475, 475, 138, 475, 475, 139,
797 136, 44, 475, 314, 475, 475, 135, 475, 315, 475,
798 475, 316, 136, 44, 475, 222, 475, 475, 475, 475,
799 475, 475, 475, 223, 225, 44, 475, 226, 475, 475,
800
801 475, 475, 227, 475, 475, 228, 33, 475, 475, 220,
802 475, 475, 72, 475, 232, 236, 52, 475, 475, 475,
803 475, 321, 475, 475, 475, 475, 322, 141, 52, 475,
804 475, 475, 475, 142, 475, 143, 475, 475, 144, 141,
805 52, 475, 140, 475, 475, 324, 475, 325, 475, 475,
806 326, 141, 52, 475, 475, 475, 475, 233, 475, 475,
807 475, 475, 234, 236, 52, 475, 475, 475, 475, 237,
808 475, 238, 475, 475, 239, 33, 475, 475, 71, 475,
809 475, 72, 475, 73, 475, 475, 475, 475, 327, 475,
810 328, 33, 475, 475, 71, 475, 475, 72, 475, 73,
811
812 475, 475, 475, 475, 475, 475, 329, 52, 52, 475,
813 78, 475, 475, 330, 475, 475, 475, 475, 331, 113,
814 52, 475, 475, 475, 475, 242, 475, 475, 475, 475,
815 243, 52, 52, 475, 76, 475, 475, 245, 475, 246,
816 475, 475, 247, 52, 52, 475, 76, 475, 475, 245,
817 475, 246, 475, 475, 247, 52, 52, 475, 78, 475,
818 475, 330, 475, 475, 475, 475, 331, 113, 52, 475,
819 154, 475, 475, 333, 475, 334, 475, 475, 335, 249,
820 44, 62, 250, 475, 475, 475, 475, 251, 475, 475,
821 252, 44, 44, 336, 475, 475, 475, 475, 475, 475,
822
823 475, 337, 88, 475, 116, 159, 475, 475, 339, 475,
824 340, 249, 44, 64, 341, 475, 475, 475, 475, 475,
825 475, 475, 342, 344, 44, 121, 345, 475, 475, 475,
826 475, 346, 475, 475, 347, 254, 52, 76, 475, 475,
827 475, 255, 475, 256, 475, 475, 257, 52, 52, 475,
828 475, 475, 348, 475, 475, 475, 475, 349, 88, 475,
829 150, 339, 475, 475, 160, 475, 351, 254, 52, 78,
830 475, 475, 475, 352, 475, 475, 475, 475, 353, 355,
831 52, 154, 475, 475, 475, 356, 475, 357, 475, 475,
832 358, 249, 44, 64, 341, 475, 475, 475, 475, 475,
833
834 475, 475, 342, 254, 52, 78, 475, 475, 475, 352,
835 475, 475, 475, 475, 353, 44, 44, 475, 265, 475,
836 475, 44, 475, 475, 475, 475, 266, 95, 44, 475,
837 359, 475, 475, 95, 475, 475, 475, 475, 360, 44,
838 44, 475, 168, 475, 475, 43, 475, 169, 475, 475,
839 170, 44, 44, 475, 168, 475, 475, 43, 475, 169,
840 475, 475, 170, 44, 44, 475, 265, 475, 475, 44,
841 475, 475, 475, 475, 266, 95, 44, 475, 268, 475,
842 475, 94, 475, 269, 475, 475, 270, 99, 44, 475,
843 361, 475, 475, 99, 475, 475, 475, 475, 362, 99,
844
845 44, 475, 274, 475, 475, 98, 475, 275, 475, 475,
846 276, 99, 44, 475, 274, 475, 475, 98, 475, 275,
847 475, 475, 276, 99, 44, 475, 361, 475, 475, 99,
848 475, 475, 475, 475, 362, 177, 44, 475, 364, 475,
849 475, 176, 475, 365, 475, 475, 366, 103, 52, 475,
850 103, 475, 475, 367, 475, 475, 475, 475, 368, 103,
851 52, 475, 102, 475, 475, 280, 475, 281, 475, 475,
852 282, 103, 52, 475, 102, 475, 475, 280, 475, 281,
853 475, 475, 282, 103, 52, 475, 103, 475, 475, 367,
854 475, 475, 475, 475, 368, 185, 52, 475, 184, 475,
855
856 475, 370, 475, 371, 475, 475, 372, 52, 52, 475,
857 52, 475, 475, 283, 475, 475, 475, 475, 284, 113,
858 52, 475, 113, 475, 475, 373, 475, 475, 475, 475,
859 374, 52, 52, 475, 51, 475, 475, 191, 475, 192,
860 475, 475, 193, 52, 52, 475, 51, 475, 475, 191,
861 475, 192, 475, 475, 193, 52, 52, 475, 52, 475,
862 475, 283, 475, 475, 475, 475, 284, 113, 52, 475,
863 112, 475, 475, 286, 475, 287, 475, 475, 288, 44,
864 44, 475, 289, 475, 475, 64, 475, 475, 475, 475,
865 290, 95, 44, 475, 375, 475, 475, 123, 475, 475,
866
867 475, 475, 376, 44, 44, 475, 197, 475, 475, 62,
868 475, 198, 475, 475, 199, 44, 44, 475, 197, 475,
869 475, 62, 475, 198, 475, 475, 199, 44, 44, 475,
870 289, 475, 475, 64, 475, 475, 475, 475, 290, 95,
871 44, 475, 292, 475, 475, 121, 475, 293, 475, 475,
872 294, 99, 44, 475, 377, 475, 475, 127, 475, 475,
873 475, 475, 378, 177, 44, 475, 295, 475, 475, 475,
874 475, 475, 475, 475, 296, 99, 44, 475, 298, 475,
875 475, 125, 475, 299, 475, 475, 300, 99, 44, 475,
876 298, 475, 475, 125, 475, 299, 475, 475, 300, 99,
877
878 44, 475, 377, 475, 475, 127, 475, 475, 475, 475,
879 378, 177, 44, 475, 380, 475, 475, 205, 475, 381,
880 475, 475, 382, 103, 52, 475, 131, 475, 475, 383,
881 475, 475, 475, 475, 384, 185, 52, 475, 475, 475,
882 475, 301, 475, 475, 475, 475, 302, 103, 52, 475,
883 129, 475, 475, 304, 475, 305, 475, 475, 306, 103,
884 52, 475, 129, 475, 475, 304, 475, 305, 475, 475,
885 306, 103, 52, 475, 131, 475, 475, 383, 475, 475,
886 475, 475, 384, 185, 52, 475, 213, 475, 475, 386,
887 475, 387, 475, 475, 388, 136, 44, 475, 390, 475,
888
889 475, 136, 475, 475, 475, 475, 391, 136, 44, 475,
890 392, 475, 475, 138, 475, 475, 475, 475, 393, 225,
891 44, 475, 311, 475, 475, 475, 475, 475, 475, 475,
892 312, 136, 44, 475, 314, 475, 475, 135, 475, 315,
893 475, 475, 316, 136, 44, 475, 314, 475, 475, 135,
894 475, 315, 475, 475, 316, 136, 44, 475, 392, 475,
895 475, 138, 475, 475, 475, 475, 393, 225, 44, 475,
896 395, 475, 475, 224, 475, 396, 475, 475, 397, 141,
897 52, 475, 141, 475, 475, 399, 475, 475, 475, 475,
898 400, 141, 52, 475, 143, 475, 475, 401, 475, 475,
899
900 475, 475, 402, 236, 52, 475, 475, 475, 475, 321,
901 475, 475, 475, 475, 322, 141, 52, 475, 140, 475,
902 475, 324, 475, 325, 475, 475, 326, 141, 52, 475,
903 140, 475, 475, 324, 475, 325, 475, 475, 326, 141,
904 52, 475, 143, 475, 475, 401, 475, 475, 475, 475,
905 402, 236, 52, 475, 235, 475, 475, 404, 475, 405,
906 475, 475, 406, 33, 475, 475, 71, 475, 475, 72,
907 475, 73, 33, 475, 475, 71, 475, 475, 72, 475,
908 73, 475, 475, 475, 475, 475, 149, 52, 52, 475,
909 78, 475, 475, 330, 475, 475, 475, 475, 331, 113,
910
911 52, 475, 156, 475, 475, 407, 475, 475, 475, 475,
912 408, 52, 52, 475, 76, 475, 475, 245, 475, 246,
913 475, 475, 247, 52, 52, 475, 76, 475, 475, 245,
914 475, 246, 475, 475, 247, 52, 52, 475, 78, 475,
915 475, 330, 475, 475, 475, 475, 331, 113, 52, 475,
916 154, 475, 475, 333, 475, 334, 475, 475, 335, 88,
917 475, 93, 410, 475, 475, 88, 44, 95, 411, 475,
918 475, 475, 475, 475, 475, 475, 412, 88, 475, 116,
919 159, 475, 475, 339, 475, 340, 88, 475, 118, 258,
920 475, 475, 87, 88, 475, 118, 258, 475, 475, 87,
921
922 344, 44, 123, 413, 475, 475, 475, 475, 475, 475,
923 475, 414, 249, 44, 62, 250, 475, 475, 475, 475,
924 251, 475, 475, 252, 44, 44, 336, 475, 475, 475,
925 475, 475, 475, 475, 337, 249, 44, 196, 416, 475,
926 475, 248, 475, 417, 475, 475, 418, 249, 44, 64,
927 341, 475, 475, 475, 475, 475, 475, 475, 342, 344,
928 44, 121, 345, 475, 475, 475, 475, 346, 475, 475,
929 347, 88, 475, 111, 88, 475, 475, 420, 52, 113,
930 475, 475, 475, 421, 475, 475, 475, 475, 422, 88,
931 475, 150, 339, 475, 475, 160, 475, 351, 88, 475,
932
933 151, 87, 475, 475, 259, 88, 475, 151, 87, 475,
934 475, 259, 355, 52, 156, 475, 475, 475, 423, 475,
935 475, 475, 475, 424, 254, 52, 76, 475, 475, 475,
936 255, 475, 256, 475, 475, 257, 52, 52, 475, 475,
937 475, 348, 475, 475, 475, 475, 349, 254, 52, 244,
938 253, 475, 475, 426, 475, 427, 475, 475, 428, 254,
939 52, 78, 475, 475, 475, 352, 475, 475, 475, 475,
940 353, 355, 52, 154, 475, 475, 475, 356, 475, 357,
941 475, 475, 358, 44, 44, 475, 265, 475, 475, 44,
942 475, 475, 475, 475, 266, 95, 44, 475, 359, 475,
943
944 475, 95, 475, 475, 475, 475, 360, 99, 44, 475,
945 361, 475, 475, 99, 475, 475, 475, 475, 362, 177,
946 44, 475, 429, 475, 475, 177, 475, 475, 475, 475,
947 430, 99, 44, 475, 274, 475, 475, 98, 475, 275,
948 475, 475, 276, 99, 44, 475, 274, 475, 475, 98,
949 475, 275, 475, 475, 276, 99, 44, 475, 361, 475,
950 475, 99, 475, 475, 475, 475, 362, 177, 44, 475,
951 364, 475, 475, 176, 475, 365, 475, 475, 366, 103,
952 52, 475, 103, 475, 475, 367, 475, 475, 475, 475,
953 368, 185, 52, 475, 185, 475, 475, 431, 475, 475,
954
955 475, 475, 432, 103, 52, 475, 102, 475, 475, 280,
956 475, 281, 475, 475, 282, 103, 52, 475, 102, 475,
957 475, 280, 475, 281, 475, 475, 282, 103, 52, 475,
958 103, 475, 475, 367, 475, 475, 475, 475, 368, 185,
959 52, 475, 184, 475, 475, 370, 475, 371, 475, 475,
960 372, 52, 52, 475, 52, 475, 475, 283, 475, 475,
961 475, 475, 284, 113, 52, 475, 113, 475, 475, 373,
962 475, 475, 475, 475, 374, 44, 44, 475, 289, 475,
963 475, 64, 475, 475, 475, 475, 290, 95, 44, 475,
964 375, 475, 475, 123, 475, 475, 475, 475, 376, 99,
965
966 44, 475, 377, 475, 475, 127, 475, 475, 475, 475,
967 378, 177, 44, 475, 433, 475, 475, 207, 475, 475,
968 475, 475, 434, 99, 44, 475, 298, 475, 475, 125,
969 475, 299, 475, 475, 300, 99, 44, 475, 298, 475,
970 475, 125, 475, 299, 475, 475, 300, 99, 44, 475,
971 377, 475, 475, 127, 475, 475, 475, 475, 378, 177,
972 44, 475, 380, 475, 475, 205, 475, 381, 475, 475,
973 382, 103, 52, 475, 131, 475, 475, 383, 475, 475,
974 475, 475, 384, 185, 52, 475, 215, 475, 475, 435,
975 475, 475, 475, 475, 436, 103, 52, 475, 129, 475,
976
977 475, 304, 475, 305, 475, 475, 306, 103, 52, 475,
978 129, 475, 475, 304, 475, 305, 475, 475, 306, 103,
979 52, 475, 131, 475, 475, 383, 475, 475, 475, 475,
980 384, 185, 52, 475, 213, 475, 475, 386, 475, 387,
981 475, 475, 388, 136, 44, 475, 390, 475, 475, 136,
982 475, 475, 475, 475, 391, 136, 44, 475, 390, 475,
983 475, 136, 475, 475, 475, 475, 391, 225, 44, 475,
984 438, 475, 475, 225, 475, 475, 475, 475, 439, 136,
985 44, 475, 392, 475, 475, 138, 475, 475, 475, 475,
986 393, 225, 44, 475, 440, 475, 475, 227, 475, 475,
987
988 475, 475, 441, 136, 44, 475, 314, 475, 475, 135,
989 475, 315, 475, 475, 316, 136, 44, 475, 314, 475,
990 475, 135, 475, 315, 475, 475, 316, 136, 44, 475,
991 392, 475, 475, 138, 475, 475, 475, 475, 393, 225,
992 44, 475, 395, 475, 475, 224, 475, 396, 475, 475,
993 397, 141, 52, 475, 141, 475, 475, 399, 475, 475,
994 475, 475, 400, 141, 52, 475, 141, 475, 475, 399,
995 475, 475, 475, 475, 400, 236, 52, 475, 236, 475,
996 475, 443, 475, 475, 475, 475, 444, 141, 52, 475,
997 143, 475, 475, 401, 475, 475, 475, 475, 402, 236,
998
999 52, 475, 238, 475, 475, 445, 475, 475, 475, 475,
1000 446, 141, 52, 475, 140, 475, 475, 324, 475, 325,
1001 475, 475, 326, 141, 52, 475, 140, 475, 475, 324,
1002 475, 325, 475, 475, 326, 141, 52, 475, 143, 475,
1003 475, 401, 475, 475, 475, 475, 402, 236, 52, 475,
1004 235, 475, 475, 404, 475, 405, 475, 475, 406, 52,
1005 52, 475, 78, 475, 475, 330, 475, 475, 475, 475,
1006 331, 113, 52, 475, 156, 475, 475, 407, 475, 475,
1007 475, 475, 408, 88, 475, 93, 410, 475, 475, 88,
1008 44, 44, 336, 475, 475, 475, 475, 475, 475, 475,
1009
1010 337, 249, 44, 169, 448, 475, 475, 249, 475, 475,
1011 475, 475, 449, 44, 95, 411, 475, 475, 475, 475,
1012 475, 475, 475, 412, 249, 44, 198, 450, 475, 475,
1013 251, 475, 475, 475, 475, 451, 344, 44, 123, 413,
1014 475, 475, 475, 475, 475, 475, 475, 414, 249, 44,
1015 196, 416, 475, 475, 248, 475, 417, 475, 475, 418,
1016 249, 44, 196, 416, 475, 475, 248, 475, 417, 475,
1017 475, 418, 249, 44, 198, 450, 475, 475, 251, 475,
1018 475, 475, 475, 451, 344, 44, 291, 453, 475, 475,
1019 343, 475, 454, 475, 475, 455, 88, 475, 111, 88,
1020
1021 475, 475, 420, 52, 52, 475, 475, 475, 348, 475,
1022 475, 475, 475, 349, 254, 52, 192, 254, 475, 475,
1023 457, 475, 475, 475, 475, 458, 52, 113, 475, 475,
1024 475, 421, 475, 475, 475, 475, 422, 254, 52, 246,
1025 256, 475, 475, 459, 475, 475, 475, 475, 460, 355,
1026 52, 156, 475, 475, 475, 423, 475, 475, 475, 475,
1027 424, 254, 52, 244, 253, 475, 475, 426, 475, 427,
1028 475, 475, 428, 254, 52, 244, 253, 475, 475, 426,
1029 475, 427, 475, 475, 428, 254, 52, 246, 256, 475,
1030 475, 459, 475, 475, 475, 475, 460, 355, 52, 332,
1031
1032 354, 475, 475, 462, 475, 463, 475, 475, 464, 99,
1033 44, 475, 361, 475, 475, 99, 475, 475, 475, 475,
1034 362, 177, 44, 475, 429, 475, 475, 177, 475, 475,
1035 475, 475, 430, 103, 52, 475, 103, 475, 475, 367,
1036 475, 475, 475, 475, 368, 185, 52, 475, 185, 475,
1037 475, 431, 475, 475, 475, 475, 432, 99, 44, 475,
1038 377, 475, 475, 127, 475, 475, 475, 475, 378, 177,
1039 44, 475, 433, 475, 475, 207, 475, 475, 475, 475,
1040 434, 185, 52, 475, 215, 475, 475, 435, 475, 475,
1041 475, 475, 436, 225, 44, 475, 438, 475, 475, 225,
1042
1043 475, 475, 475, 475, 439, 225, 44, 475, 440, 475,
1044 475, 227, 475, 475, 475, 475, 441, 236, 52, 475,
1045 236, 475, 475, 443, 475, 475, 475, 475, 444, 236,
1046 52, 475, 238, 475, 475, 445, 475, 475, 475, 475,
1047 446, 249, 44, 169, 448, 475, 475, 249, 475, 475,
1048 475, 475, 449, 344, 44, 269, 466, 475, 475, 344,
1049 475, 475, 475, 475, 467, 344, 44, 293, 468, 475,
1050 475, 346, 475, 475, 475, 475, 469, 344, 44, 291,
1051 453, 475, 475, 343, 475, 454, 475, 475, 455, 254,
1052 52, 192, 254, 475, 475, 457, 475, 475, 475, 475,
1053
1054 458, 355, 52, 287, 355, 475, 475, 471, 475, 475,
1055 475, 475, 472, 355, 52, 334, 357, 475, 475, 473,
1056 475, 475, 475, 475, 474, 355, 52, 332, 354, 475,
1057 475, 462, 475, 463, 475, 475, 464, 344, 44, 269,
1058 466, 475, 475, 344, 475, 475, 475, 475, 467, 344,
1059 44, 293, 468, 475, 475, 346, 475, 475, 475, 475,
1060 469, 355, 52, 287, 355, 475, 475, 471, 475, 475,
1061 475, 475, 472, 355, 52, 334, 357, 475, 475, 473,
1062 475, 475, 475, 475, 474, 6, 6, 6, 6, 6,
1063 6, 6, 9, 9, 9, 9, 9, 9, 9, 14,
1064
1065 14, 14, 14, 14, 14, 14, 20, 20, 20, 20,
1066 20, 20, 20, 28, 28, 475, 28, 28, 28, 28,
1067 29, 475, 475, 29, 29, 29, 29, 31, 31, 475,
1068 31, 31, 31, 31, 32, 32, 475, 32, 32, 32,
1069 32, 38, 475, 475, 38, 38, 38, 38, 43, 43,
1070 43, 43, 43, 43, 43, 47, 47, 475, 47, 47,
1071 47, 47, 51, 51, 51, 51, 51, 51, 51, 41,
1072 475, 475, 41, 41, 41, 41, 57, 475, 475, 57,
1073 57, 57, 57, 62, 62, 62, 62, 62, 62, 62,
1074 66, 66, 475, 66, 66, 66, 66, 70, 70, 475,
1075
1076 70, 70, 70, 70, 76, 76, 76, 76, 76, 76,
1077 76, 60, 475, 475, 60, 60, 60, 60, 33, 33,
1078 475, 33, 33, 33, 33, 87, 87, 475, 87, 87,
1079 87, 87, 44, 44, 44, 44, 44, 44, 44, 91,
1080 475, 475, 91, 91, 91, 91, 94, 94, 94, 94,
1081 94, 94, 94, 98, 98, 98, 98, 98, 98, 98,
1082 102, 102, 102, 102, 102, 102, 102, 50, 50, 475,
1083 50, 50, 50, 50, 52, 52, 52, 52, 52, 52,
1084 52, 110, 475, 475, 110, 110, 110, 110, 112, 112,
1085 112, 112, 112, 112, 112, 116, 475, 475, 116, 116,
1086
1087 116, 116, 64, 64, 64, 64, 64, 64, 64, 121,
1088 121, 121, 121, 121, 121, 121, 125, 125, 125, 125,
1089 125, 125, 125, 129, 129, 129, 129, 129, 129, 129,
1090 69, 69, 475, 69, 69, 69, 69, 135, 135, 135,
1091 135, 135, 135, 135, 140, 140, 140, 140, 140, 140,
1092 140, 73, 73, 475, 73, 73, 73, 73, 150, 475,
1093 475, 150, 150, 150, 150, 78, 78, 78, 78, 78,
1094 78, 78, 154, 154, 154, 154, 154, 154, 154, 158,
1095 158, 475, 158, 158, 158, 158, 88, 88, 475, 475,
1096 88, 88, 88, 93, 475, 475, 93, 93, 475, 93,
1097
1098 95, 95, 95, 95, 95, 95, 95, 92, 475, 475,
1099 92, 92, 92, 167, 167, 167, 167, 167, 167, 167,
1100 99, 99, 99, 99, 99, 99, 99, 173, 173, 475,
1101 173, 173, 173, 173, 176, 176, 176, 176, 176, 176,
1102 176, 103, 103, 103, 103, 103, 103, 103, 182, 182,
1103 475, 182, 182, 182, 182, 184, 184, 184, 184, 184,
1104 184, 184, 111, 475, 475, 111, 475, 111, 111, 113,
1105 113, 113, 113, 113, 113, 113, 110, 475, 475, 110,
1106 110, 110, 110, 51, 51, 51, 51, 51, 51, 51,
1107 52, 52, 52, 52, 52, 52, 52, 190, 190, 190,
1108
1109 190, 190, 190, 190, 112, 112, 112, 112, 112, 112,
1110 112, 117, 475, 475, 117, 117, 117, 117, 118, 475,
1111 475, 118, 118, 118, 118, 123, 123, 123, 123, 123,
1112 123, 123, 62, 62, 62, 62, 62, 62, 62, 196,
1113 196, 196, 196, 196, 196, 196, 121, 121, 121, 121,
1114 121, 121, 121, 125, 125, 125, 125, 125, 125, 125,
1115 200, 200, 475, 200, 200, 200, 200, 127, 127, 127,
1116 127, 127, 127, 127, 205, 205, 205, 205, 205, 205,
1117 205, 129, 129, 129, 129, 129, 129, 129, 209, 209,
1118 475, 209, 209, 209, 209, 131, 131, 131, 131, 131,
1119
1120 131, 131, 213, 213, 213, 213, 213, 213, 213, 135,
1121 135, 135, 135, 135, 135, 135, 136, 136, 136, 136,
1122 136, 136, 136, 219, 219, 475, 219, 219, 219, 219,
1123 138, 138, 138, 138, 138, 138, 138, 224, 224, 224,
1124 224, 224, 224, 224, 140, 140, 140, 140, 140, 140,
1125 140, 141, 141, 141, 141, 141, 141, 141, 231, 231,
1126 475, 231, 231, 231, 231, 143, 143, 143, 143, 143,
1127 143, 143, 235, 235, 235, 235, 235, 235, 235, 70,
1128 70, 475, 70, 70, 70, 70, 150, 475, 475, 150,
1129 150, 150, 150, 151, 475, 475, 151, 151, 151, 151,
1130
1131 156, 156, 156, 156, 156, 156, 156, 76, 76, 76,
1132 76, 76, 76, 76, 244, 244, 244, 244, 244, 244,
1133 244, 78, 78, 78, 78, 78, 78, 78, 154, 154,
1134 154, 154, 154, 154, 154, 158, 158, 475, 158, 158,
1135 158, 158, 248, 248, 248, 248, 248, 248, 248, 253,
1136 253, 253, 253, 253, 253, 253, 161, 161, 475, 161,
1137 161, 161, 161, 32, 32, 475, 32, 32, 32, 32,
1138 263, 263, 475, 263, 263, 263, 263, 169, 169, 169,
1139 169, 169, 169, 169, 95, 95, 95, 95, 95, 95,
1140 95, 167, 167, 167, 167, 167, 167, 167, 267, 267,
1141
1142 267, 267, 267, 267, 267, 175, 175, 475, 175, 175,
1143 175, 175, 177, 177, 177, 177, 177, 177, 177, 173,
1144 173, 475, 173, 173, 173, 173, 174, 174, 475, 174,
1145 174, 174, 174, 98, 98, 98, 98, 98, 98, 98,
1146 99, 99, 99, 99, 99, 99, 99, 273, 273, 273,
1147 273, 273, 273, 273, 176, 176, 176, 176, 176, 176,
1148 176, 183, 183, 475, 183, 183, 183, 183, 185, 185,
1149 185, 185, 185, 185, 185, 182, 182, 475, 182, 182,
1150 182, 182, 102, 102, 102, 102, 102, 102, 102, 103,
1151 103, 103, 103, 103, 103, 103, 279, 279, 279, 279,
1152
1153 279, 279, 279, 184, 184, 184, 184, 184, 184, 184,
1154 192, 192, 192, 192, 192, 192, 192, 113, 113, 113,
1155 113, 113, 113, 113, 190, 190, 190, 190, 190, 190,
1156 190, 285, 285, 285, 285, 285, 285, 285, 198, 198,
1157 198, 198, 198, 198, 198, 123, 123, 123, 123, 123,
1158 123, 123, 196, 196, 196, 196, 196, 196, 196, 291,
1159 291, 291, 291, 291, 291, 291, 200, 200, 475, 200,
1160 200, 200, 200, 201, 201, 475, 201, 201, 201, 201,
1161 202, 202, 475, 202, 202, 202, 202, 207, 207, 207,
1162 207, 207, 207, 207, 125, 125, 125, 125, 125, 125,
1163
1164 125, 297, 297, 297, 297, 297, 297, 297, 127, 127,
1165 127, 127, 127, 127, 127, 205, 205, 205, 205, 205,
1166 205, 205, 209, 209, 475, 209, 209, 209, 209, 210,
1167 210, 475, 210, 210, 210, 210, 215, 215, 215, 215,
1168 215, 215, 215, 129, 129, 129, 129, 129, 129, 129,
1169 303, 303, 303, 303, 303, 303, 303, 131, 131, 131,
1170 131, 131, 131, 131, 213, 213, 213, 213, 213, 213,
1171 213, 307, 307, 475, 307, 307, 307, 307, 225, 225,
1172 225, 225, 225, 225, 225, 219, 219, 475, 219, 219,
1173 219, 219, 220, 220, 475, 220, 220, 220, 220, 221,
1174
1175 221, 475, 221, 221, 221, 221, 227, 227, 227, 227,
1176 227, 227, 227, 135, 135, 135, 135, 135, 135, 135,
1177 136, 136, 136, 136, 136, 136, 136, 313, 313, 313,
1178 313, 313, 313, 313, 138, 138, 138, 138, 138, 138,
1179 138, 224, 224, 224, 224, 224, 224, 224, 317, 317,
1180 475, 317, 317, 317, 317, 236, 236, 236, 236, 236,
1181 236, 236, 231, 231, 475, 231, 231, 231, 231, 232,
1182 232, 475, 232, 232, 232, 232, 238, 238, 238, 238,
1183 238, 238, 238, 140, 140, 140, 140, 140, 140, 140,
1184 141, 141, 141, 141, 141, 141, 141, 323, 323, 323,
1185
1186 323, 323, 323, 323, 143, 143, 143, 143, 143, 143,
1187 143, 235, 235, 235, 235, 235, 235, 235, 70, 70,
1188 475, 70, 70, 70, 70, 246, 246, 246, 246, 246,
1189 246, 246, 156, 156, 156, 156, 156, 156, 156, 244,
1190 244, 244, 244, 244, 244, 244, 332, 332, 332, 332,
1191 332, 332, 332, 248, 248, 248, 248, 248, 248, 248,
1192 249, 249, 249, 249, 249, 249, 249, 338, 338, 475,
1193 338, 338, 338, 338, 251, 251, 251, 251, 251, 251,
1194 251, 343, 343, 343, 343, 343, 343, 343, 253, 253,
1195 253, 253, 253, 253, 253, 254, 254, 254, 254, 254,
1196
1197 254, 254, 350, 350, 475, 350, 350, 350, 350, 256,
1198 256, 256, 256, 256, 256, 256, 354, 354, 354, 354,
1199 354, 354, 354, 32, 32, 475, 32, 32, 32, 32,
1200 263, 263, 475, 263, 263, 263, 263, 169, 169, 169,
1201 169, 169, 169, 169, 269, 269, 269, 269, 269, 269,
1202 269, 167, 167, 167, 167, 167, 167, 167, 267, 267,
1203 267, 267, 267, 267, 267, 275, 275, 275, 275, 275,
1204 275, 275, 177, 177, 177, 177, 177, 177, 177, 273,
1205 273, 273, 273, 273, 273, 273, 363, 363, 363, 363,
1206 363, 363, 363, 281, 281, 281, 281, 281, 281, 281,
1207
1208 185, 185, 185, 185, 185, 185, 185, 279, 279, 279,
1209 279, 279, 279, 279, 369, 369, 369, 369, 369, 369,
1210 369, 192, 192, 192, 192, 192, 192, 192, 287, 287,
1211 287, 287, 287, 287, 287, 190, 190, 190, 190, 190,
1212 190, 190, 285, 285, 285, 285, 285, 285, 285, 198,
1213 198, 198, 198, 198, 198, 198, 293, 293, 293, 293,
1214 293, 293, 293, 196, 196, 196, 196, 196, 196, 196,
1215 291, 291, 291, 291, 291, 291, 291, 299, 299, 299,
1216 299, 299, 299, 299, 207, 207, 207, 207, 207, 207,
1217 207, 297, 297, 297, 297, 297, 297, 297, 379, 379,
1218
1219 379, 379, 379, 379, 379, 305, 305, 305, 305, 305,
1220 305, 305, 215, 215, 215, 215, 215, 215, 215, 303,
1221 303, 303, 303, 303, 303, 303, 385, 385, 385, 385,
1222 385, 385, 385, 307, 307, 475, 307, 307, 307, 307,
1223 136, 136, 136, 136, 136, 136, 136, 389, 389, 389,
1224 389, 389, 389, 389, 225, 225, 225, 225, 225, 225,
1225 225, 315, 315, 315, 315, 315, 315, 315, 227, 227,
1226 227, 227, 227, 227, 227, 313, 313, 313, 313, 313,
1227 313, 313, 394, 394, 394, 394, 394, 394, 394, 317,
1228 317, 475, 317, 317, 317, 317, 141, 141, 141, 141,
1229
1230 141, 141, 141, 398, 398, 398, 398, 398, 398, 398,
1231 236, 236, 236, 236, 236, 236, 236, 325, 325, 325,
1232 325, 325, 325, 325, 238, 238, 238, 238, 238, 238,
1233 238, 323, 323, 323, 323, 323, 323, 323, 403, 403,
1234 403, 403, 403, 403, 403, 70, 70, 475, 70, 70,
1235 70, 70, 246, 246, 246, 246, 246, 246, 246, 334,
1236 334, 334, 334, 334, 334, 334, 244, 244, 244, 244,
1237 244, 244, 244, 332, 332, 332, 332, 332, 332, 332,
1238 409, 409, 475, 409, 409, 409, 409, 344, 344, 344,
1239 344, 344, 344, 344, 338, 338, 475, 338, 338, 338,
1240
1241 338, 339, 339, 475, 339, 339, 339, 339, 340, 340,
1242 475, 340, 340, 340, 340, 346, 346, 346, 346, 346,
1243 346, 346, 248, 248, 248, 248, 248, 248, 248, 249,
1244 249, 249, 249, 249, 249, 249, 415, 415, 415, 415,
1245 415, 415, 415, 251, 251, 251, 251, 251, 251, 251,
1246 343, 343, 343, 343, 343, 343, 343, 419, 419, 475,
1247 419, 419, 419, 419, 355, 355, 355, 355, 355, 355,
1248 355, 350, 350, 475, 350, 350, 350, 350, 351, 351,
1249 475, 351, 351, 351, 351, 357, 357, 357, 357, 357,
1250 357, 357, 253, 253, 253, 253, 253, 253, 253, 254,
1251
1252 254, 254, 254, 254, 254, 254, 425, 425, 425, 425,
1253 425, 425, 425, 256, 256, 256, 256, 256, 256, 256,
1254 354, 354, 354, 354, 354, 354, 354, 169, 169, 169,
1255 169, 169, 169, 169, 269, 269, 269, 269, 269, 269,
1256 269, 275, 275, 275, 275, 275, 275, 275, 365, 365,
1257 365, 365, 365, 365, 365, 273, 273, 273, 273, 273,
1258 273, 273, 363, 363, 363, 363, 363, 363, 363, 281,
1259 281, 281, 281, 281, 281, 281, 371, 371, 371, 371,
1260 371, 371, 371, 279, 279, 279, 279, 279, 279, 279,
1261 369, 369, 369, 369, 369, 369, 369, 192, 192, 192,
1262
1263 192, 192, 192, 192, 287, 287, 287, 287, 287, 287,
1264 287, 198, 198, 198, 198, 198, 198, 198, 293, 293,
1265 293, 293, 293, 293, 293, 299, 299, 299, 299, 299,
1266 299, 299, 381, 381, 381, 381, 381, 381, 381, 297,
1267 297, 297, 297, 297, 297, 297, 379, 379, 379, 379,
1268 379, 379, 379, 305, 305, 305, 305, 305, 305, 305,
1269 387, 387, 387, 387, 387, 387, 387, 303, 303, 303,
1270 303, 303, 303, 303, 385, 385, 385, 385, 385, 385,
1271 385, 389, 389, 389, 389, 389, 389, 389, 437, 437,
1272 437, 437, 437, 437, 437, 315, 315, 315, 315, 315,
1273
1274 315, 315, 396, 396, 396, 396, 396, 396, 396, 313,
1275 313, 313, 313, 313, 313, 313, 394, 394, 394, 394,
1276 394, 394, 394, 398, 398, 398, 398, 398, 398, 398,
1277 442, 442, 442, 442, 442, 442, 442, 325, 325, 325,
1278 325, 325, 325, 325, 405, 405, 405, 405, 405, 405,
1279 405, 323, 323, 323, 323, 323, 323, 323, 403, 403,
1280 403, 403, 403, 403, 403, 246, 246, 246, 246, 246,
1281 246, 246, 334, 334, 334, 334, 334, 334, 334, 409,
1282 409, 475, 409, 409, 409, 409, 249, 249, 249, 249,
1283 249, 249, 249, 447, 447, 447, 447, 447, 447, 447,
1284
1285 344, 344, 344, 344, 344, 344, 344, 417, 417, 417,
1286 417, 417, 417, 417, 346, 346, 346, 346, 346, 346,
1287 346, 415, 415, 415, 415, 415, 415, 415, 452, 452,
1288 452, 452, 452, 452, 452, 419, 419, 475, 419, 419,
1289 419, 419, 254, 254, 254, 254, 254, 254, 254, 456,
1290 456, 456, 456, 456, 456, 456, 355, 355, 355, 355,
1291 355, 355, 355, 427, 427, 427, 427, 427, 427, 427,
1292 357, 357, 357, 357, 357, 357, 357, 425, 425, 425,
1293 425, 425, 425, 425, 461, 461, 461, 461, 461, 461,
1294 461, 275, 275, 275, 275, 275, 275, 275, 365, 365,
1295
1296 365, 365, 365, 365, 365, 281, 281, 281, 281, 281,
1297 281, 281, 371, 371, 371, 371, 371, 371, 371, 299,
1298 299, 299, 299, 299, 299, 299, 381, 381, 381, 381,
1299 381, 381, 381, 387, 387, 387, 387, 387, 387, 387,
1300 465, 465, 465, 465, 465, 465, 465, 454, 454, 454,
1301 454, 454, 454, 454, 470, 470, 470, 470, 470, 470,
1302 470, 463, 463, 463, 463, 463, 463, 463, 5, 475,
1303 475, 475, 475, 475, 475, 475, 475, 475, 475, 475,
1304 475, 475, 475, 475, 475, 475, 475, 475, 475
1305 } ;
1306
1307 static yyconst flex_int16_t yy_chk[5990] =
1308 { 0,
1309 0, 37, 1, 37, 0, 1, 2, 2, 52, 12,
1310 2, 2, 13, 52, 13, 13, 2, 3, 3, 35,
1311 3, 3, 12, 3, 12, 3, 4, 4, 329, 4,
1312 4, 4, 4, 35, 4, 14, 4, 264, 14, 44,
1313 14, 16, 16, 19, 16, 20, 19, 44, 20, 16,
1314 20, 26, 16, 17, 26, 34, 17, 41, 260, 17,
1315 41, 17, 18, 18, 36, 163, 36, 36, 18, 164,
1316 18, 34, 34, 18, 22, 22, 38, 22, 56, 38,
1317 163, 38, 22, 56, 50, 22, 23, 50, 45, 23,
1318 50, 45, 23, 45, 23, 24, 55, 53, 24, 117,
1319
1320 53, 24, 53, 24, 55, 111, 60, 84, 24, 60,
1321 24, 25, 25, 57, 74, 74, 57, 25, 57, 25,
1322 108, 118, 25, 27, 118, 84, 27, 27, 27, 27,
1323 27, 39, 39, 63, 39, 87, 63, 87, 63, 39,
1324 85, 113, 39, 40, 40, 119, 113, 69, 119, 40,
1325 69, 40, 85, 69, 40, 46, 46, 261, 46, 73,
1326 95, 151, 73, 46, 151, 73, 46, 47, 95, 77,
1327 47, 261, 77, 47, 77, 47, 48, 48, 91, 48,
1328 90, 91, 90, 91, 48, 93, 149, 48, 49, 49,
1329 90, 262, 103, 99, 49, 99, 49, 103, 149, 49,
1330
1331 54, 54, 103, 99, 89, 262, 54, 106, 54, 106,
1332 174, 54, 58, 58, 162, 58, 107, 106, 174, 152,
1333 58, 107, 152, 58, 59, 59, 107, 162, 109, 162,
1334 59, 86, 59, 109, 201, 59, 64, 64, 109, 64,
1335 110, 116, 201, 110, 116, 110, 116, 64, 65, 65,
1336 150, 65, 136, 150, 136, 150, 65, 75, 171, 65,
1337 66, 171, 136, 66, 171, 166, 66, 166, 66, 67,
1338 67, 220, 67, 141, 172, 166, 172, 67, 141, 220,
1339 67, 68, 68, 141, 172, 175, 61, 68, 175, 68,
1340 42, 175, 68, 70, 32, 31, 70, 30, 177, 70,
1341
1342 177, 70, 71, 71, 21, 71, 180, 15, 177, 180,
1343 71, 181, 180, 71, 72, 72, 181, 11, 10, 185,
1344 72, 181, 72, 5, 185, 72, 78, 78, 183, 185,
1345 189, 183, 78, 0, 183, 189, 0, 78, 79, 79,
1346 189, 0, 202, 0, 79, 202, 79, 0, 202, 79,
1347 80, 80, 203, 80, 210, 203, 0, 210, 203, 0,
1348 210, 80, 81, 81, 211, 0, 217, 211, 81, 217,
1349 211, 0, 217, 81, 83, 221, 83, 83, 221, 0,
1350 83, 221, 83, 96, 96, 339, 96, 339, 0, 96,
1351 218, 96, 218, 339, 96, 97, 97, 0, 97, 222,
1352
1353 218, 0, 222, 97, 0, 222, 97, 98, 98, 0,
1354 98, 225, 0, 225, 229, 98, 0, 229, 98, 100,
1355 229, 225, 100, 0, 272, 100, 272, 100, 101, 101,
1356 0, 101, 230, 236, 272, 0, 101, 230, 236, 101,
1357 102, 102, 230, 236, 232, 0, 102, 232, 102, 0,
1358 232, 102, 104, 233, 0, 104, 233, 0, 104, 233,
1359 104, 105, 105, 0, 0, 278, 308, 105, 308, 105,
1360 278, 0, 105, 112, 112, 278, 308, 307, 0, 112,
1361 307, 112, 0, 307, 112, 114, 114, 0, 114, 318,
1362 310, 114, 310, 114, 318, 0, 114, 115, 115, 318,
1363
1364 310, 317, 0, 115, 317, 115, 320, 317, 115, 120,
1365 120, 320, 120, 0, 0, 0, 320, 0, 0, 0,
1366 120, 121, 121, 0, 121, 0, 0, 0, 0, 121,
1367 0, 0, 121, 122, 122, 0, 122, 0, 0, 122,
1368 0, 122, 0, 0, 122, 124, 124, 0, 124, 0,
1369 0, 0, 0, 124, 0, 0, 124, 125, 125, 0,
1370 125, 0, 0, 0, 0, 125, 0, 0, 125, 126,
1371 0, 0, 126, 0, 0, 126, 0, 126, 127, 127,
1372 0, 127, 0, 0, 0, 0, 0, 0, 0, 127,
1373 128, 128, 0, 128, 0, 0, 0, 0, 128, 0,
1374
1375 0, 128, 129, 129, 0, 0, 0, 0, 129, 0,
1376 129, 0, 0, 129, 130, 0, 0, 130, 0, 0,
1377 130, 0, 130, 131, 131, 0, 0, 0, 0, 131,
1378 0, 0, 0, 0, 131, 132, 132, 0, 0, 0,
1379 0, 132, 0, 132, 0, 0, 132, 133, 133, 0,
1380 133, 0, 0, 0, 0, 0, 0, 0, 133, 134,
1381 134, 0, 0, 0, 0, 134, 0, 0, 0, 0,
1382 134, 135, 135, 0, 135, 0, 0, 0, 0, 135,
1383 0, 0, 135, 137, 0, 0, 137, 0, 0, 137,
1384 0, 137, 138, 138, 0, 138, 0, 0, 0, 0,
1385
1386 0, 0, 0, 138, 139, 139, 0, 139, 0, 0,
1387 0, 0, 139, 0, 0, 139, 140, 140, 0, 0,
1388 0, 0, 140, 0, 140, 0, 0, 140, 142, 0,
1389 0, 142, 0, 0, 142, 0, 142, 143, 143, 0,
1390 0, 0, 0, 143, 0, 0, 0, 0, 143, 144,
1391 144, 0, 0, 0, 0, 144, 0, 144, 0, 0,
1392 144, 145, 145, 0, 145, 0, 0, 0, 0, 0,
1393 0, 0, 145, 146, 146, 0, 0, 0, 0, 146,
1394 0, 0, 0, 0, 146, 147, 0, 0, 147, 0,
1395 0, 147, 0, 147, 0, 0, 0, 0, 0, 0,
1396
1397 0, 0, 0, 147, 148, 0, 0, 148, 0, 0,
1398 148, 0, 148, 0, 0, 0, 148, 153, 153, 0,
1399 0, 0, 0, 153, 0, 0, 0, 0, 153, 154,
1400 154, 0, 0, 0, 0, 154, 0, 154, 0, 0,
1401 154, 155, 155, 0, 155, 0, 0, 155, 0, 155,
1402 0, 0, 155, 156, 156, 0, 0, 0, 0, 156,
1403 0, 0, 0, 0, 156, 157, 157, 0, 0, 0,
1404 0, 157, 0, 157, 0, 0, 157, 158, 0, 158,
1405 158, 0, 0, 158, 0, 158, 159, 159, 159, 159,
1406 0, 0, 0, 0, 159, 0, 0, 159, 160, 160,
1407
1408 160, 0, 0, 0, 160, 0, 160, 0, 0, 160,
1409 161, 0, 161, 161, 0, 0, 161, 165, 165, 0,
1410 165, 0, 0, 165, 0, 0, 0, 0, 165, 167,
1411 167, 0, 167, 0, 0, 167, 0, 167, 0, 0,
1412 167, 168, 168, 0, 168, 0, 0, 168, 0, 168,
1413 0, 0, 168, 169, 169, 0, 169, 0, 0, 169,
1414 0, 0, 0, 0, 169, 170, 170, 0, 170, 0,
1415 0, 170, 0, 170, 0, 0, 170, 173, 0, 0,
1416 173, 0, 0, 173, 0, 173, 176, 176, 0, 176,
1417 0, 0, 0, 0, 176, 0, 0, 176, 178, 178,
1418
1419 0, 178, 0, 0, 178, 0, 178, 0, 0, 178,
1420 179, 179, 0, 179, 0, 0, 0, 0, 179, 0,
1421 0, 179, 182, 0, 0, 182, 0, 0, 182, 0,
1422 182, 184, 184, 0, 0, 0, 0, 184, 0, 184,
1423 0, 0, 184, 186, 186, 0, 186, 0, 0, 186,
1424 0, 186, 0, 0, 186, 187, 187, 0, 0, 0,
1425 0, 187, 0, 187, 0, 0, 187, 188, 188, 0,
1426 188, 0, 0, 188, 0, 0, 0, 0, 188, 190,
1427 190, 0, 190, 0, 0, 190, 0, 190, 0, 0,
1428 190, 191, 191, 0, 191, 0, 0, 191, 0, 191,
1429
1430 0, 0, 191, 192, 192, 0, 192, 0, 0, 192,
1431 0, 0, 0, 0, 192, 193, 193, 0, 193, 0,
1432 0, 193, 0, 193, 0, 0, 193, 194, 194, 0,
1433 194, 0, 0, 194, 0, 0, 0, 0, 194, 195,
1434 195, 0, 195, 0, 0, 0, 0, 0, 0, 0,
1435 195, 196, 196, 0, 196, 0, 0, 196, 0, 196,
1436 0, 0, 196, 197, 197, 0, 197, 0, 0, 197,
1437 0, 197, 0, 0, 197, 198, 198, 0, 198, 0,
1438 0, 198, 0, 0, 0, 0, 198, 199, 199, 0,
1439 199, 0, 0, 199, 0, 199, 0, 0, 199, 200,
1440
1441 0, 0, 200, 0, 0, 200, 0, 200, 204, 204,
1442 0, 204, 0, 0, 0, 0, 0, 0, 0, 204,
1443 205, 205, 0, 205, 0, 0, 0, 0, 205, 0,
1444 0, 205, 206, 206, 0, 206, 0, 0, 206, 0,
1445 206, 0, 0, 206, 207, 207, 0, 207, 0, 0,
1446 0, 0, 0, 0, 0, 207, 208, 208, 0, 208,
1447 0, 0, 0, 0, 208, 0, 0, 208, 209, 0,
1448 0, 209, 0, 0, 209, 0, 209, 212, 212, 0,
1449 0, 0, 0, 212, 0, 0, 0, 0, 212, 213,
1450 213, 0, 0, 0, 0, 213, 0, 213, 0, 0,
1451
1452 213, 214, 214, 0, 214, 0, 0, 214, 0, 214,
1453 0, 0, 214, 215, 215, 0, 0, 0, 0, 215,
1454 0, 0, 0, 0, 215, 216, 216, 0, 0, 0,
1455 0, 216, 0, 216, 0, 0, 216, 219, 0, 0,
1456 219, 0, 0, 219, 0, 219, 223, 223, 0, 223,
1457 0, 0, 0, 0, 0, 0, 0, 223, 224, 224,
1458 0, 224, 0, 0, 0, 0, 224, 0, 0, 224,
1459 226, 226, 0, 226, 0, 0, 226, 0, 226, 0,
1460 0, 226, 227, 227, 0, 227, 0, 0, 0, 0,
1461 0, 0, 0, 227, 228, 228, 0, 228, 0, 0,
1462
1463 0, 0, 228, 0, 0, 228, 231, 0, 0, 231,
1464 0, 0, 231, 0, 231, 234, 234, 0, 0, 0,
1465 0, 234, 0, 0, 0, 0, 234, 235, 235, 0,
1466 0, 0, 0, 235, 0, 235, 0, 0, 235, 237,
1467 237, 0, 237, 0, 0, 237, 0, 237, 0, 0,
1468 237, 238, 238, 0, 0, 0, 0, 238, 0, 0,
1469 0, 0, 238, 239, 239, 0, 0, 0, 0, 239,
1470 0, 239, 0, 0, 239, 240, 0, 0, 240, 0,
1471 0, 240, 0, 240, 0, 0, 0, 0, 240, 0,
1472 240, 241, 0, 0, 241, 0, 0, 241, 0, 241,
1473
1474 0, 0, 0, 0, 0, 0, 241, 242, 242, 0,
1475 242, 0, 0, 242, 0, 0, 0, 0, 242, 243,
1476 243, 0, 0, 0, 0, 243, 0, 0, 0, 0,
1477 243, 244, 244, 0, 244, 0, 0, 244, 0, 244,
1478 0, 0, 244, 245, 245, 0, 245, 0, 0, 245,
1479 0, 245, 0, 0, 245, 246, 246, 0, 246, 0,
1480 0, 246, 0, 0, 0, 0, 246, 247, 247, 0,
1481 247, 0, 0, 247, 0, 247, 0, 0, 247, 248,
1482 248, 248, 248, 0, 0, 0, 0, 248, 0, 0,
1483 248, 249, 249, 249, 0, 0, 0, 0, 0, 0,
1484
1485 0, 249, 250, 0, 250, 250, 0, 0, 250, 0,
1486 250, 251, 251, 251, 251, 0, 0, 0, 0, 0,
1487 0, 0, 251, 252, 252, 252, 252, 0, 0, 0,
1488 0, 252, 0, 0, 252, 253, 253, 253, 0, 0,
1489 0, 253, 0, 253, 0, 0, 253, 254, 254, 0,
1490 0, 0, 254, 0, 0, 0, 0, 254, 255, 0,
1491 255, 255, 0, 0, 255, 0, 255, 256, 256, 256,
1492 0, 0, 0, 256, 0, 0, 0, 0, 256, 257,
1493 257, 257, 0, 0, 0, 257, 0, 257, 0, 0,
1494 257, 258, 258, 258, 258, 0, 0, 0, 0, 0,
1495
1496 0, 0, 258, 259, 259, 259, 0, 0, 0, 259,
1497 0, 0, 0, 0, 259, 265, 265, 0, 265, 0,
1498 0, 265, 0, 0, 0, 0, 265, 266, 266, 0,
1499 266, 0, 0, 266, 0, 0, 0, 0, 266, 267,
1500 267, 0, 267, 0, 0, 267, 0, 267, 0, 0,
1501 267, 268, 268, 0, 268, 0, 0, 268, 0, 268,
1502 0, 0, 268, 269, 269, 0, 269, 0, 0, 269,
1503 0, 0, 0, 0, 269, 270, 270, 0, 270, 0,
1504 0, 270, 0, 270, 0, 0, 270, 271, 271, 0,
1505 271, 0, 0, 271, 0, 0, 0, 0, 271, 273,
1506
1507 273, 0, 273, 0, 0, 273, 0, 273, 0, 0,
1508 273, 274, 274, 0, 274, 0, 0, 274, 0, 274,
1509 0, 0, 274, 275, 275, 0, 275, 0, 0, 275,
1510 0, 0, 0, 0, 275, 276, 276, 0, 276, 0,
1511 0, 276, 0, 276, 0, 0, 276, 277, 277, 0,
1512 277, 0, 0, 277, 0, 0, 0, 0, 277, 279,
1513 279, 0, 279, 0, 0, 279, 0, 279, 0, 0,
1514 279, 280, 280, 0, 280, 0, 0, 280, 0, 280,
1515 0, 0, 280, 281, 281, 0, 281, 0, 0, 281,
1516 0, 0, 0, 0, 281, 282, 282, 0, 282, 0,
1517
1518 0, 282, 0, 282, 0, 0, 282, 283, 283, 0,
1519 283, 0, 0, 283, 0, 0, 0, 0, 283, 284,
1520 284, 0, 284, 0, 0, 284, 0, 0, 0, 0,
1521 284, 285, 285, 0, 285, 0, 0, 285, 0, 285,
1522 0, 0, 285, 286, 286, 0, 286, 0, 0, 286,
1523 0, 286, 0, 0, 286, 287, 287, 0, 287, 0,
1524 0, 287, 0, 0, 0, 0, 287, 288, 288, 0,
1525 288, 0, 0, 288, 0, 288, 0, 0, 288, 289,
1526 289, 0, 289, 0, 0, 289, 0, 0, 0, 0,
1527 289, 290, 290, 0, 290, 0, 0, 290, 0, 0,
1528
1529 0, 0, 290, 291, 291, 0, 291, 0, 0, 291,
1530 0, 291, 0, 0, 291, 292, 292, 0, 292, 0,
1531 0, 292, 0, 292, 0, 0, 292, 293, 293, 0,
1532 293, 0, 0, 293, 0, 0, 0, 0, 293, 294,
1533 294, 0, 294, 0, 0, 294, 0, 294, 0, 0,
1534 294, 295, 295, 0, 295, 0, 0, 295, 0, 0,
1535 0, 0, 295, 296, 296, 0, 296, 0, 0, 0,
1536 0, 0, 0, 0, 296, 297, 297, 0, 297, 0,
1537 0, 297, 0, 297, 0, 0, 297, 298, 298, 0,
1538 298, 0, 0, 298, 0, 298, 0, 0, 298, 299,
1539
1540 299, 0, 299, 0, 0, 299, 0, 0, 0, 0,
1541 299, 300, 300, 0, 300, 0, 0, 300, 0, 300,
1542 0, 0, 300, 301, 301, 0, 301, 0, 0, 301,
1543 0, 0, 0, 0, 301, 302, 302, 0, 0, 0,
1544 0, 302, 0, 0, 0, 0, 302, 303, 303, 0,
1545 303, 0, 0, 303, 0, 303, 0, 0, 303, 304,
1546 304, 0, 304, 0, 0, 304, 0, 304, 0, 0,
1547 304, 305, 305, 0, 305, 0, 0, 305, 0, 0,
1548 0, 0, 305, 306, 306, 0, 306, 0, 0, 306,
1549 0, 306, 0, 0, 306, 309, 309, 0, 309, 0,
1550
1551 0, 309, 0, 0, 0, 0, 309, 311, 311, 0,
1552 311, 0, 0, 311, 0, 0, 0, 0, 311, 312,
1553 312, 0, 312, 0, 0, 0, 0, 0, 0, 0,
1554 312, 313, 313, 0, 313, 0, 0, 313, 0, 313,
1555 0, 0, 313, 314, 314, 0, 314, 0, 0, 314,
1556 0, 314, 0, 0, 314, 315, 315, 0, 315, 0,
1557 0, 315, 0, 0, 0, 0, 315, 316, 316, 0,
1558 316, 0, 0, 316, 0, 316, 0, 0, 316, 319,
1559 319, 0, 319, 0, 0, 319, 0, 0, 0, 0,
1560 319, 321, 321, 0, 321, 0, 0, 321, 0, 0,
1561
1562 0, 0, 321, 322, 322, 0, 0, 0, 0, 322,
1563 0, 0, 0, 0, 322, 323, 323, 0, 323, 0,
1564 0, 323, 0, 323, 0, 0, 323, 324, 324, 0,
1565 324, 0, 0, 324, 0, 324, 0, 0, 324, 325,
1566 325, 0, 325, 0, 0, 325, 0, 0, 0, 0,
1567 325, 326, 326, 0, 326, 0, 0, 326, 0, 326,
1568 0, 0, 326, 327, 0, 0, 327, 0, 0, 327,
1569 0, 327, 328, 0, 0, 328, 0, 0, 328, 0,
1570 328, 0, 0, 0, 0, 0, 328, 330, 330, 0,
1571 330, 0, 0, 330, 0, 0, 0, 0, 330, 331,
1572
1573 331, 0, 331, 0, 0, 331, 0, 0, 0, 0,
1574 331, 332, 332, 0, 332, 0, 0, 332, 0, 332,
1575 0, 0, 332, 333, 333, 0, 333, 0, 0, 333,
1576 0, 333, 0, 0, 333, 334, 334, 0, 334, 0,
1577 0, 334, 0, 0, 0, 0, 334, 335, 335, 0,
1578 335, 0, 0, 335, 0, 335, 0, 0, 335, 336,
1579 0, 336, 336, 0, 0, 336, 337, 337, 337, 0,
1580 0, 0, 0, 0, 0, 0, 337, 338, 0, 338,
1581 338, 0, 0, 338, 0, 338, 340, 0, 340, 340,
1582 0, 0, 340, 341, 0, 341, 341, 0, 0, 341,
1583
1584 342, 342, 342, 342, 0, 0, 0, 0, 0, 0,
1585 0, 342, 343, 343, 343, 343, 0, 0, 0, 0,
1586 343, 0, 0, 343, 344, 344, 344, 0, 0, 0,
1587 0, 0, 0, 0, 344, 345, 345, 345, 345, 0,
1588 0, 345, 0, 345, 0, 0, 345, 346, 346, 346,
1589 346, 0, 0, 0, 0, 0, 0, 0, 346, 347,
1590 347, 347, 347, 0, 0, 0, 0, 347, 0, 0,
1591 347, 348, 0, 348, 348, 0, 0, 348, 349, 349,
1592 0, 0, 0, 349, 0, 0, 0, 0, 349, 350,
1593 0, 350, 350, 0, 0, 350, 0, 350, 351, 0,
1594
1595 351, 351, 0, 0, 351, 352, 0, 352, 352, 0,
1596 0, 352, 353, 353, 353, 0, 0, 0, 353, 0,
1597 0, 0, 0, 353, 354, 354, 354, 0, 0, 0,
1598 354, 0, 354, 0, 0, 354, 355, 355, 0, 0,
1599 0, 355, 0, 0, 0, 0, 355, 356, 356, 356,
1600 356, 0, 0, 356, 0, 356, 0, 0, 356, 357,
1601 357, 357, 0, 0, 0, 357, 0, 0, 0, 0,
1602 357, 358, 358, 358, 0, 0, 0, 358, 0, 358,
1603 0, 0, 358, 359, 359, 0, 359, 0, 0, 359,
1604 0, 0, 0, 0, 359, 360, 360, 0, 360, 0,
1605
1606 0, 360, 0, 0, 0, 0, 360, 361, 361, 0,
1607 361, 0, 0, 361, 0, 0, 0, 0, 361, 362,
1608 362, 0, 362, 0, 0, 362, 0, 0, 0, 0,
1609 362, 363, 363, 0, 363, 0, 0, 363, 0, 363,
1610 0, 0, 363, 364, 364, 0, 364, 0, 0, 364,
1611 0, 364, 0, 0, 364, 365, 365, 0, 365, 0,
1612 0, 365, 0, 0, 0, 0, 365, 366, 366, 0,
1613 366, 0, 0, 366, 0, 366, 0, 0, 366, 367,
1614 367, 0, 367, 0, 0, 367, 0, 0, 0, 0,
1615 367, 368, 368, 0, 368, 0, 0, 368, 0, 0,
1616
1617 0, 0, 368, 369, 369, 0, 369, 0, 0, 369,
1618 0, 369, 0, 0, 369, 370, 370, 0, 370, 0,
1619 0, 370, 0, 370, 0, 0, 370, 371, 371, 0,
1620 371, 0, 0, 371, 0, 0, 0, 0, 371, 372,
1621 372, 0, 372, 0, 0, 372, 0, 372, 0, 0,
1622 372, 373, 373, 0, 373, 0, 0, 373, 0, 0,
1623 0, 0, 373, 374, 374, 0, 374, 0, 0, 374,
1624 0, 0, 0, 0, 374, 375, 375, 0, 375, 0,
1625 0, 375, 0, 0, 0, 0, 375, 376, 376, 0,
1626 376, 0, 0, 376, 0, 0, 0, 0, 376, 377,
1627
1628 377, 0, 377, 0, 0, 377, 0, 0, 0, 0,
1629 377, 378, 378, 0, 378, 0, 0, 378, 0, 0,
1630 0, 0, 378, 379, 379, 0, 379, 0, 0, 379,
1631 0, 379, 0, 0, 379, 380, 380, 0, 380, 0,
1632 0, 380, 0, 380, 0, 0, 380, 381, 381, 0,
1633 381, 0, 0, 381, 0, 0, 0, 0, 381, 382,
1634 382, 0, 382, 0, 0, 382, 0, 382, 0, 0,
1635 382, 383, 383, 0, 383, 0, 0, 383, 0, 0,
1636 0, 0, 383, 384, 384, 0, 384, 0, 0, 384,
1637 0, 0, 0, 0, 384, 385, 385, 0, 385, 0,
1638
1639 0, 385, 0, 385, 0, 0, 385, 386, 386, 0,
1640 386, 0, 0, 386, 0, 386, 0, 0, 386, 387,
1641 387, 0, 387, 0, 0, 387, 0, 0, 0, 0,
1642 387, 388, 388, 0, 388, 0, 0, 388, 0, 388,
1643 0, 0, 388, 389, 389, 0, 389, 0, 0, 389,
1644 0, 0, 0, 0, 389, 390, 390, 0, 390, 0,
1645 0, 390, 0, 0, 0, 0, 390, 391, 391, 0,
1646 391, 0, 0, 391, 0, 0, 0, 0, 391, 392,
1647 392, 0, 392, 0, 0, 392, 0, 0, 0, 0,
1648 392, 393, 393, 0, 393, 0, 0, 393, 0, 0,
1649
1650 0, 0, 393, 394, 394, 0, 394, 0, 0, 394,
1651 0, 394, 0, 0, 394, 395, 395, 0, 395, 0,
1652 0, 395, 0, 395, 0, 0, 395, 396, 396, 0,
1653 396, 0, 0, 396, 0, 0, 0, 0, 396, 397,
1654 397, 0, 397, 0, 0, 397, 0, 397, 0, 0,
1655 397, 398, 398, 0, 398, 0, 0, 398, 0, 0,
1656 0, 0, 398, 399, 399, 0, 399, 0, 0, 399,
1657 0, 0, 0, 0, 399, 400, 400, 0, 400, 0,
1658 0, 400, 0, 0, 0, 0, 400, 401, 401, 0,
1659 401, 0, 0, 401, 0, 0, 0, 0, 401, 402,
1660
1661 402, 0, 402, 0, 0, 402, 0, 0, 0, 0,
1662 402, 403, 403, 0, 403, 0, 0, 403, 0, 403,
1663 0, 0, 403, 404, 404, 0, 404, 0, 0, 404,
1664 0, 404, 0, 0, 404, 405, 405, 0, 405, 0,
1665 0, 405, 0, 0, 0, 0, 405, 406, 406, 0,
1666 406, 0, 0, 406, 0, 406, 0, 0, 406, 407,
1667 407, 0, 407, 0, 0, 407, 0, 0, 0, 0,
1668 407, 408, 408, 0, 408, 0, 0, 408, 0, 0,
1669 0, 0, 408, 409, 0, 409, 409, 0, 0, 409,
1670 410, 410, 410, 0, 0, 0, 0, 0, 0, 0,
1671
1672 410, 411, 411, 411, 411, 0, 0, 411, 0, 0,
1673 0, 0, 411, 412, 412, 412, 0, 0, 0, 0,
1674 0, 0, 0, 412, 413, 413, 413, 413, 0, 0,
1675 413, 0, 0, 0, 0, 413, 414, 414, 414, 414,
1676 0, 0, 0, 0, 0, 0, 0, 414, 415, 415,
1677 415, 415, 0, 0, 415, 0, 415, 0, 0, 415,
1678 416, 416, 416, 416, 0, 0, 416, 0, 416, 0,
1679 0, 416, 417, 417, 417, 417, 0, 0, 417, 0,
1680 0, 0, 0, 417, 418, 418, 418, 418, 0, 0,
1681 418, 0, 418, 0, 0, 418, 419, 0, 419, 419,
1682
1683 0, 0, 419, 420, 420, 0, 0, 0, 420, 0,
1684 0, 0, 0, 420, 421, 421, 421, 421, 0, 0,
1685 421, 0, 0, 0, 0, 421, 422, 422, 0, 0,
1686 0, 422, 0, 0, 0, 0, 422, 423, 423, 423,
1687 423, 0, 0, 423, 0, 0, 0, 0, 423, 424,
1688 424, 424, 0, 0, 0, 424, 0, 0, 0, 0,
1689 424, 425, 425, 425, 425, 0, 0, 425, 0, 425,
1690 0, 0, 425, 426, 426, 426, 426, 0, 0, 426,
1691 0, 426, 0, 0, 426, 427, 427, 427, 427, 0,
1692 0, 427, 0, 0, 0, 0, 427, 428, 428, 428,
1693
1694 428, 0, 0, 428, 0, 428, 0, 0, 428, 429,
1695 429, 0, 429, 0, 0, 429, 0, 0, 0, 0,
1696 429, 430, 430, 0, 430, 0, 0, 430, 0, 0,
1697 0, 0, 430, 431, 431, 0, 431, 0, 0, 431,
1698 0, 0, 0, 0, 431, 432, 432, 0, 432, 0,
1699 0, 432, 0, 0, 0, 0, 432, 433, 433, 0,
1700 433, 0, 0, 433, 0, 0, 0, 0, 433, 434,
1701 434, 0, 434, 0, 0, 434, 0, 0, 0, 0,
1702 434, 436, 436, 0, 436, 0, 0, 436, 0, 0,
1703 0, 0, 436, 439, 439, 0, 439, 0, 0, 439,
1704
1705 0, 0, 0, 0, 439, 441, 441, 0, 441, 0,
1706 0, 441, 0, 0, 0, 0, 441, 444, 444, 0,
1707 444, 0, 0, 444, 0, 0, 0, 0, 444, 446,
1708 446, 0, 446, 0, 0, 446, 0, 0, 0, 0,
1709 446, 447, 447, 447, 447, 0, 0, 447, 0, 0,
1710 0, 0, 447, 449, 449, 449, 449, 0, 0, 449,
1711 0, 0, 0, 0, 449, 451, 451, 451, 451, 0,
1712 0, 451, 0, 0, 0, 0, 451, 455, 455, 455,
1713 455, 0, 0, 455, 0, 455, 0, 0, 455, 456,
1714 456, 456, 456, 0, 0, 456, 0, 0, 0, 0,
1715
1716 456, 458, 458, 458, 458, 0, 0, 458, 0, 0,
1717 0, 0, 458, 460, 460, 460, 460, 0, 0, 460,
1718 0, 0, 0, 0, 460, 464, 464, 464, 464, 0,
1719 0, 464, 0, 464, 0, 0, 464, 467, 467, 467,
1720 467, 0, 0, 467, 0, 0, 0, 0, 467, 469,
1721 469, 469, 469, 0, 0, 469, 0, 0, 0, 0,
1722 469, 472, 472, 472, 472, 0, 0, 472, 0, 0,
1723 0, 0, 472, 474, 474, 474, 474, 0, 0, 474,
1724 0, 0, 0, 0, 474, 476, 476, 476, 476, 476,
1725 476, 476, 477, 477, 477, 477, 477, 477, 477, 478,
1726
1727 478, 478, 478, 478, 478, 478, 479, 479, 479, 479,
1728 479, 479, 479, 480, 480, 0, 480, 480, 480, 480,
1729 481, 0, 0, 481, 481, 481, 481, 482, 482, 0,
1730 482, 482, 482, 482, 483, 483, 0, 483, 483, 483,
1731 483, 484, 0, 0, 484, 484, 484, 484, 485, 485,
1732 485, 485, 485, 485, 485, 486, 486, 0, 486, 486,
1733 486, 486, 487, 487, 487, 487, 487, 487, 487, 488,
1734 0, 0, 488, 488, 488, 488, 489, 0, 0, 489,
1735 489, 489, 489, 490, 490, 490, 490, 490, 490, 490,
1736 491, 491, 0, 491, 491, 491, 491, 492, 492, 0,
1737
1738 492, 492, 492, 492, 493, 493, 493, 493, 493, 493,
1739 493, 494, 0, 0, 494, 494, 494, 494, 495, 495,
1740 0, 495, 495, 495, 495, 496, 496, 0, 496, 496,
1741 496, 496, 497, 497, 497, 497, 497, 497, 497, 498,
1742 0, 0, 498, 498, 498, 498, 499, 499, 499, 499,
1743 499, 499, 499, 500, 500, 500, 500, 500, 500, 500,
1744 501, 501, 501, 501, 501, 501, 501, 502, 502, 0,
1745 502, 502, 502, 502, 503, 503, 503, 503, 503, 503,
1746 503, 504, 0, 0, 504, 504, 504, 504, 505, 505,
1747 505, 505, 505, 505, 505, 506, 0, 0, 506, 506,
1748
1749 506, 506, 507, 507, 507, 507, 507, 507, 507, 508,
1750 508, 508, 508, 508, 508, 508, 509, 509, 509, 509,
1751 509, 509, 509, 510, 510, 510, 510, 510, 510, 510,
1752 511, 511, 0, 511, 511, 511, 511, 512, 512, 512,
1753 512, 512, 512, 512, 513, 513, 513, 513, 513, 513,
1754 513, 514, 514, 0, 514, 514, 514, 514, 515, 0,
1755 0, 515, 515, 515, 515, 516, 516, 516, 516, 516,
1756 516, 516, 517, 517, 517, 517, 517, 517, 517, 518,
1757 518, 0, 518, 518, 518, 518, 519, 519, 0, 0,
1758 519, 519, 519, 520, 0, 0, 520, 520, 0, 520,
1759
1760 521, 521, 521, 521, 521, 521, 521, 522, 0, 0,
1761 522, 522, 522, 523, 523, 523, 523, 523, 523, 523,
1762 524, 524, 524, 524, 524, 524, 524, 525, 525, 0,
1763 525, 525, 525, 525, 526, 526, 526, 526, 526, 526,
1764 526, 527, 527, 527, 527, 527, 527, 527, 528, 528,
1765 0, 528, 528, 528, 528, 529, 529, 529, 529, 529,
1766 529, 529, 530, 0, 0, 530, 0, 530, 530, 531,
1767 531, 531, 531, 531, 531, 531, 532, 0, 0, 532,
1768 532, 532, 532, 533, 533, 533, 533, 533, 533, 533,
1769 534, 534, 534, 534, 534, 534, 534, 535, 535, 535,
1770
1771 535, 535, 535, 535, 536, 536, 536, 536, 536, 536,
1772 536, 537, 0, 0, 537, 537, 537, 537, 538, 0,
1773 0, 538, 538, 538, 538, 539, 539, 539, 539, 539,
1774 539, 539, 540, 540, 540, 540, 540, 540, 540, 541,
1775 541, 541, 541, 541, 541, 541, 542, 542, 542, 542,
1776 542, 542, 542, 543, 543, 543, 543, 543, 543, 543,
1777 544, 544, 0, 544, 544, 544, 544, 545, 545, 545,
1778 545, 545, 545, 545, 546, 546, 546, 546, 546, 546,
1779 546, 547, 547, 547, 547, 547, 547, 547, 548, 548,
1780 0, 548, 548, 548, 548, 549, 549, 549, 549, 549,
1781
1782 549, 549, 550, 550, 550, 550, 550, 550, 550, 551,
1783 551, 551, 551, 551, 551, 551, 552, 552, 552, 552,
1784 552, 552, 552, 553, 553, 0, 553, 553, 553, 553,
1785 554, 554, 554, 554, 554, 554, 554, 555, 555, 555,
1786 555, 555, 555, 555, 556, 556, 556, 556, 556, 556,
1787 556, 557, 557, 557, 557, 557, 557, 557, 558, 558,
1788 0, 558, 558, 558, 558, 559, 559, 559, 559, 559,
1789 559, 559, 560, 560, 560, 560, 560, 560, 560, 561,
1790 561, 0, 561, 561, 561, 561, 562, 0, 0, 562,
1791 562, 562, 562, 563, 0, 0, 563, 563, 563, 563,
1792
1793 564, 564, 564, 564, 564, 564, 564, 565, 565, 565,
1794 565, 565, 565, 565, 566, 566, 566, 566, 566, 566,
1795 566, 567, 567, 567, 567, 567, 567, 567, 568, 568,
1796 568, 568, 568, 568, 568, 569, 569, 0, 569, 569,
1797 569, 569, 570, 570, 570, 570, 570, 570, 570, 571,
1798 571, 571, 571, 571, 571, 571, 572, 572, 0, 572,
1799 572, 572, 572, 573, 573, 0, 573, 573, 573, 573,
1800 574, 574, 0, 574, 574, 574, 574, 575, 575, 575,
1801 575, 575, 575, 575, 576, 576, 576, 576, 576, 576,
1802 576, 577, 577, 577, 577, 577, 577, 577, 578, 578,
1803
1804 578, 578, 578, 578, 578, 579, 579, 0, 579, 579,
1805 579, 579, 580, 580, 580, 580, 580, 580, 580, 581,
1806 581, 0, 581, 581, 581, 581, 582, 582, 0, 582,
1807 582, 582, 582, 583, 583, 583, 583, 583, 583, 583,
1808 584, 584, 584, 584, 584, 584, 584, 585, 585, 585,
1809 585, 585, 585, 585, 586, 586, 586, 586, 586, 586,
1810 586, 587, 587, 0, 587, 587, 587, 587, 588, 588,
1811 588, 588, 588, 588, 588, 589, 589, 0, 589, 589,
1812 589, 589, 590, 590, 590, 590, 590, 590, 590, 591,
1813 591, 591, 591, 591, 591, 591, 592, 592, 592, 592,
1814
1815 592, 592, 592, 593, 593, 593, 593, 593, 593, 593,
1816 594, 594, 594, 594, 594, 594, 594, 595, 595, 595,
1817 595, 595, 595, 595, 596, 596, 596, 596, 596, 596,
1818 596, 597, 597, 597, 597, 597, 597, 597, 598, 598,
1819 598, 598, 598, 598, 598, 599, 599, 599, 599, 599,
1820 599, 599, 600, 600, 600, 600, 600, 600, 600, 601,
1821 601, 601, 601, 601, 601, 601, 602, 602, 0, 602,
1822 602, 602, 602, 603, 603, 0, 603, 603, 603, 603,
1823 604, 604, 0, 604, 604, 604, 604, 605, 605, 605,
1824 605, 605, 605, 605, 606, 606, 606, 606, 606, 606,
1825
1826 606, 607, 607, 607, 607, 607, 607, 607, 608, 608,
1827 608, 608, 608, 608, 608, 609, 609, 609, 609, 609,
1828 609, 609, 610, 610, 0, 610, 610, 610, 610, 611,
1829 611, 0, 611, 611, 611, 611, 612, 612, 612, 612,
1830 612, 612, 612, 613, 613, 613, 613, 613, 613, 613,
1831 614, 614, 614, 614, 614, 614, 614, 615, 615, 615,
1832 615, 615, 615, 615, 616, 616, 616, 616, 616, 616,
1833 616, 617, 617, 0, 617, 617, 617, 617, 618, 618,
1834 618, 618, 618, 618, 618, 619, 619, 0, 619, 619,
1835 619, 619, 620, 620, 0, 620, 620, 620, 620, 621,
1836
1837 621, 0, 621, 621, 621, 621, 622, 622, 622, 622,
1838 622, 622, 622, 623, 623, 623, 623, 623, 623, 623,
1839 624, 624, 624, 624, 624, 624, 624, 625, 625, 625,
1840 625, 625, 625, 625, 626, 626, 626, 626, 626, 626,
1841 626, 627, 627, 627, 627, 627, 627, 627, 628, 628,
1842 0, 628, 628, 628, 628, 629, 629, 629, 629, 629,
1843 629, 629, 630, 630, 0, 630, 630, 630, 630, 631,
1844 631, 0, 631, 631, 631, 631, 632, 632, 632, 632,
1845 632, 632, 632, 633, 633, 633, 633, 633, 633, 633,
1846 634, 634, 634, 634, 634, 634, 634, 635, 635, 635,
1847
1848 635, 635, 635, 635, 636, 636, 636, 636, 636, 636,
1849 636, 637, 637, 637, 637, 637, 637, 637, 638, 638,
1850 0, 638, 638, 638, 638, 639, 639, 639, 639, 639,
1851 639, 639, 640, 640, 640, 640, 640, 640, 640, 641,
1852 641, 641, 641, 641, 641, 641, 642, 642, 642, 642,
1853 642, 642, 642, 643, 643, 643, 643, 643, 643, 643,
1854 644, 644, 644, 644, 644, 644, 644, 645, 645, 0,
1855 645, 645, 645, 645, 646, 646, 646, 646, 646, 646,
1856 646, 647, 647, 647, 647, 647, 647, 647, 648, 648,
1857 648, 648, 648, 648, 648, 649, 649, 649, 649, 649,
1858
1859 649, 649, 650, 650, 0, 650, 650, 650, 650, 651,
1860 651, 651, 651, 651, 651, 651, 652, 652, 652, 652,
1861 652, 652, 652, 653, 653, 0, 653, 653, 653, 653,
1862 654, 654, 0, 654, 654, 654, 654, 655, 655, 655,
1863 655, 655, 655, 655, 656, 656, 656, 656, 656, 656,
1864 656, 657, 657, 657, 657, 657, 657, 657, 658, 658,
1865 658, 658, 658, 658, 658, 659, 659, 659, 659, 659,
1866 659, 659, 660, 660, 660, 660, 660, 660, 660, 661,
1867 661, 661, 661, 661, 661, 661, 662, 662, 662, 662,
1868 662, 662, 662, 663, 663, 663, 663, 663, 663, 663,
1869
1870 664, 664, 664, 664, 664, 664, 664, 665, 665, 665,
1871 665, 665, 665, 665, 666, 666, 666, 666, 666, 666,
1872 666, 667, 667, 667, 667, 667, 667, 667, 668, 668,
1873 668, 668, 668, 668, 668, 669, 669, 669, 669, 669,
1874 669, 669, 670, 670, 670, 670, 670, 670, 670, 671,
1875 671, 671, 671, 671, 671, 671, 672, 672, 672, 672,
1876 672, 672, 672, 673, 673, 673, 673, 673, 673, 673,
1877 674, 674, 674, 674, 674, 674, 674, 675, 675, 675,
1878 675, 675, 675, 675, 676, 676, 676, 676, 676, 676,
1879 676, 677, 677, 677, 677, 677, 677, 677, 678, 678,
1880
1881 678, 678, 678, 678, 678, 679, 679, 679, 679, 679,
1882 679, 679, 680, 680, 680, 680, 680, 680, 680, 681,
1883 681, 681, 681, 681, 681, 681, 682, 682, 682, 682,
1884 682, 682, 682, 683, 683, 0, 683, 683, 683, 683,
1885 684, 684, 684, 684, 684, 684, 684, 685, 685, 685,
1886 685, 685, 685, 685, 686, 686, 686, 686, 686, 686,
1887 686, 687, 687, 687, 687, 687, 687, 687, 688, 688,
1888 688, 688, 688, 688, 688, 689, 689, 689, 689, 689,
1889 689, 689, 690, 690, 690, 690, 690, 690, 690, 691,
1890 691, 0, 691, 691, 691, 691, 692, 692, 692, 692,
1891
1892 692, 692, 692, 693, 693, 693, 693, 693, 693, 693,
1893 694, 694, 694, 694, 694, 694, 694, 695, 695, 695,
1894 695, 695, 695, 695, 696, 696, 696, 696, 696, 696,
1895 696, 697, 697, 697, 697, 697, 697, 697, 698, 698,
1896 698, 698, 698, 698, 698, 699, 699, 0, 699, 699,
1897 699, 699, 700, 700, 700, 700, 700, 700, 700, 701,
1898 701, 701, 701, 701, 701, 701, 702, 702, 702, 702,
1899 702, 702, 702, 703, 703, 703, 703, 703, 703, 703,
1900 704, 704, 0, 704, 704, 704, 704, 705, 705, 705,
1901 705, 705, 705, 705, 706, 706, 0, 706, 706, 706,
1902
1903 706, 707, 707, 0, 707, 707, 707, 707, 708, 708,
1904 0, 708, 708, 708, 708, 709, 709, 709, 709, 709,
1905 709, 709, 710, 710, 710, 710, 710, 710, 710, 711,
1906 711, 711, 711, 711, 711, 711, 712, 712, 712, 712,
1907 712, 712, 712, 713, 713, 713, 713, 713, 713, 713,
1908 714, 714, 714, 714, 714, 714, 714, 715, 715, 0,
1909 715, 715, 715, 715, 716, 716, 716, 716, 716, 716,
1910 716, 717, 717, 0, 717, 717, 717, 717, 718, 718,
1911 0, 718, 718, 718, 718, 719, 719, 719, 719, 719,
1912 719, 719, 720, 720, 720, 720, 720, 720, 720, 721,
1913
1914 721, 721, 721, 721, 721, 721, 722, 722, 722, 722,
1915 722, 722, 722, 723, 723, 723, 723, 723, 723, 723,
1916 724, 724, 724, 724, 724, 724, 724, 725, 725, 725,
1917 725, 725, 725, 725, 726, 726, 726, 726, 726, 726,
1918 726, 727, 727, 727, 727, 727, 727, 727, 728, 728,
1919 728, 728, 728, 728, 728, 729, 729, 729, 729, 729,
1920 729, 729, 730, 730, 730, 730, 730, 730, 730, 731,
1921 731, 731, 731, 731, 731, 731, 732, 732, 732, 732,
1922 732, 732, 732, 733, 733, 733, 733, 733, 733, 733,
1923 734, 734, 734, 734, 734, 734, 734, 735, 735, 735,
1924
1925 735, 735, 735, 735, 736, 736, 736, 736, 736, 736,
1926 736, 737, 737, 737, 737, 737, 737, 737, 738, 738,
1927 738, 738, 738, 738, 738, 739, 739, 739, 739, 739,
1928 739, 739, 740, 740, 740, 740, 740, 740, 740, 741,
1929 741, 741, 741, 741, 741, 741, 742, 742, 742, 742,
1930 742, 742, 742, 743, 743, 743, 743, 743, 743, 743,
1931 744, 744, 744, 744, 744, 744, 744, 745, 745, 745,
1932 745, 745, 745, 745, 746, 746, 746, 746, 746, 746,
1933 746, 747, 747, 747, 747, 747, 747, 747, 748, 748,
1934 748, 748, 748, 748, 748, 749, 749, 749, 749, 749,
1935
1936 749, 749, 750, 750, 750, 750, 750, 750, 750, 751,
1937 751, 751, 751, 751, 751, 751, 752, 752, 752, 752,
1938 752, 752, 752, 753, 753, 753, 753, 753, 753, 753,
1939 754, 754, 754, 754, 754, 754, 754, 755, 755, 755,
1940 755, 755, 755, 755, 756, 756, 756, 756, 756, 756,
1941 756, 757, 757, 757, 757, 757, 757, 757, 758, 758,
1942 758, 758, 758, 758, 758, 759, 759, 759, 759, 759,
1943 759, 759, 760, 760, 760, 760, 760, 760, 760, 761,
1944 761, 0, 761, 761, 761, 761, 762, 762, 762, 762,
1945 762, 762, 762, 763, 763, 763, 763, 763, 763, 763,
1946
1947 764, 764, 764, 764, 764, 764, 764, 765, 765, 765,
1948 765, 765, 765, 765, 766, 766, 766, 766, 766, 766,
1949 766, 767, 767, 767, 767, 767, 767, 767, 768, 768,
1950 768, 768, 768, 768, 768, 769, 769, 0, 769, 769,
1951 769, 769, 770, 770, 770, 770, 770, 770, 770, 771,
1952 771, 771, 771, 771, 771, 771, 772, 772, 772, 772,
1953 772, 772, 772, 773, 773, 773, 773, 773, 773, 773,
1954 774, 774, 774, 774, 774, 774, 774, 775, 775, 775,
1955 775, 775, 775, 775, 776, 776, 776, 776, 776, 776,
1956 776, 777, 777, 777, 777, 777, 777, 777, 778, 778,
1957
1958 778, 778, 778, 778, 778, 779, 779, 779, 779, 779,
1959 779, 779, 780, 780, 780, 780, 780, 780, 780, 781,
1960 781, 781, 781, 781, 781, 781, 782, 782, 782, 782,
1961 782, 782, 782, 783, 783, 783, 783, 783, 783, 783,
1962 784, 784, 784, 784, 784, 784, 784, 785, 785, 785,
1963 785, 785, 785, 785, 786, 786, 786, 786, 786, 786,
1964 786, 787, 787, 787, 787, 787, 787, 787, 475, 475,
1965 475, 475, 475, 475, 475, 475, 475, 475, 475, 475,
1966 475, 475, 475, 475, 475, 475, 475, 475, 475
1967 } ;
1968
1969 static yy_state_type yy_last_accepting_state;
1970 static char *yy_last_accepting_cpos;
1971
1972 extern int yy_flex_debug;
1973 int yy_flex_debug = 0;
1974
1975 /* The intent behind this definition is that it'll catch
1976 * any uses of REJECT which flex missed.
1977 */
1978 #define REJECT reject_used_but_not_detected
1979 #define yymore() yymore_used_but_not_detected
1980 #define YY_MORE_ADJ 0
1981 #define YY_RESTORE_YY_MORE_OFFSET
1982 char *yytext;
1983 #line 1 "lex.l"
1984 #line 2 "lex.l"
1985 /* +-------------------------------------------------------------------+ */
1986 /* | Copyright 1991, David Koblas. | */
1987 /* | Permission to use, copy, modify, and distribute this software | */
1988 /* | and its documentation for any purpose and without fee is hereby | */
1989 /* | granted, provided that the above copyright notice appear in all | */
1990 /* | copies and that both that copyright notice and this permission | */
1991 /* | notice appear in supporting documentation. This software is | */
1992 /* | provided "as is" without express or implied warranty. | */
1993 /* +-------------------------------------------------------------------+ */
1994
1995 #include "defs.h"
1996 #include <syslog.h>
1997
1998 #ifndef NDEBUG
1999 #define _msg(x)
2000 #else
2001 #define _msg(x) msg x
2002 static void msg(const char *format, ...);
2003 #endif
2004 static char *expandvars(const char *instr);
2005 static void preprocerror(const char *str);
2006 static void preproc(const char *str);
2007 static void addvar(const char *str);
2008 static void addquotedarg(int state, cmd_t * cmd, const char *instr);
2009 static void addarg(int state, cmd_t * cmd, const char *instr);
2010 static cmd_t *alloccmd(const char *name);
2011 static void freecmd(cmd_t * cmd);
2012 static cmd_t *newcmd(const char *name);
2013 #ifdef NUNUSED
2014 static int cmpopts(const char *a, const char *b);
2015 static void sortopts(cmd_t * cmd);
2016 #endif
2017
2018 int yyline = 1;
2019
2020 #define YY_NO_INPUT
2021
2022
2023 #line 2024 "lex.c"
2024
2025 #define INITIAL 0
2026 #define ARGS 1
2027
2028 #ifndef YY_NO_UNISTD_H
2029 /* Special case for "unistd.h", since it is non-ANSI. We include it way
2030 * down here because we want the user's section 1 to have been scanned first.
2031 * The user has a chance to override it with an option.
2032 */
2033 #include <unistd.h>
2034 #endif
2035
2036 #ifndef YY_EXTRA_TYPE
2037 #define YY_EXTRA_TYPE void *
2038 #endif
2039
2040 static int yy_init_globals (void );
2041
2042 /* Accessor methods to globals.
2043 These are made visible to non-reentrant scanners for convenience. */
2044
2045 int yylex_destroy (void );
2046
2047 int yyget_debug (void );
2048
2049 void yyset_debug (int debug_flag );
2050
2051 YY_EXTRA_TYPE yyget_extra (void );
2052
2053 void yyset_extra (YY_EXTRA_TYPE user_defined );
2054
2055 FILE *yyget_in (void );
2056
2057 void yyset_in (FILE * in_str );
2058
2059 FILE *yyget_out (void );
2060
2061 void yyset_out (FILE * out_str );
2062
2063 int yyget_leng (void );
2064
2065 char *yyget_text (void );
2066
2067 int yyget_lineno (void );
2068
2069 void yyset_lineno (int line_number );
2070
2071 /* Macros after this point can all be overridden by user definitions in
2072 * section 1.
2073 */
2074
2075 #ifndef YY_SKIP_YYWRAP
2076 #ifdef __cplusplus
2077 extern "C" int yywrap (void );
2078 #else
2079 extern int yywrap (void );
2080 #endif
2081 #endif
2082
2083 #ifndef yytext_ptr
2084 static void yy_flex_strncpy (char *,yyconst char *,int );
2085 #endif
2086
2087 #ifdef YY_NEED_STRLEN
2088 static int yy_flex_strlen (yyconst char * );
2089 #endif
2090
2091 #ifndef YY_NO_INPUT
2092
2093 #ifdef __cplusplus
2094 static int yyinput (void );
2095 #else
2096 static int input (void );
2097 #endif
2098
2099 #endif
2100
2101 /* Amount of stuff to slurp up with each read. */
2102 #ifndef YY_READ_BUF_SIZE
2103 #define YY_READ_BUF_SIZE 8192
2104 #endif
2105
2106 /* Copy whatever the last rule matched to the standard output. */
2107 #ifndef ECHO
2108 /* This used to be an fputs(), but since the string might contain NUL's,
2109 * we now use fwrite().
2110 */
2111 #define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
2112 #endif
2113
2114 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
2115 * is returned in "result".
2116 */
2117 #ifndef YY_INPUT
2118 #define YY_INPUT(buf,result,max_size) \
2119 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
2120 { \
2121 int c = '*'; \
2122 unsigned n; \
2123 for ( n = 0; n < max_size && \
2124 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
2125 buf[n] = (char) c; \
2126 if ( c == '\n' ) \
2127 buf[n++] = (char) c; \
2128 if ( c == EOF && ferror( yyin ) ) \
2129 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2130 result = n; \
2131 } \
2132 else \
2133 { \
2134 errno=0; \
2135 while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
2136 { \
2137 if( errno != EINTR) \
2138 { \
2139 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2140 break; \
2141 } \
2142 errno=0; \
2143 clearerr(yyin); \
2144 } \
2145 }\
2146 \
2147
2148 #endif
2149
2150 /* No semi-colon after return; correct usage is to write "yyterminate();" -
2151 * we don't want an extra ';' after the "return" because that will cause
2152 * some compilers to complain about unreachable statements.
2153 */
2154 #ifndef yyterminate
2155 #define yyterminate() return YY_NULL
2156 #endif
2157
2158 /* Number of entries by which start-condition stack grows. */
2159 #ifndef YY_START_STACK_INCR
2160 #define YY_START_STACK_INCR 25
2161 #endif
2162
2163 /* Report a fatal error. */
2164 #ifndef YY_FATAL_ERROR
2165 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
2166 #endif
2167
2168 /* end tables serialization structures and prototypes */
2169
2170 /* Default declaration of generated scanner - a define so the user can
2171 * easily add parameters.
2172 */
2173 #ifndef YY_DECL
2174 #define YY_DECL_IS_OURS 1
2175
2176 extern int yylex (void);
2177
2178 #define YY_DECL int yylex (void)
2179 #endif /* !YY_DECL */
2180
2181 /* Code executed at the beginning of each rule, after yytext and yyleng
2182 * have been set up.
2183 */
2184 #ifndef YY_USER_ACTION
2185 #define YY_USER_ACTION
2186 #endif
2187
2188 /* Code executed at the end of each rule. */
2189 #ifndef YY_BREAK
2190 #define YY_BREAK break;
2191 #endif
2192
2193 #define YY_RULE_SETUP \
2194 if ( yyleng > 0 ) \
2195 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
2196 (yytext[yyleng - 1] == '\n'); \
2197 YY_USER_ACTION
2198
2199 /** The main scanner function which does all the work.
2200 */
2201 YY_DECL
2202 {
2203 register yy_state_type yy_current_state;
2204 register char *yy_cp, *yy_bp;
2205 register int yy_act;
2206
2207 #line 50 "lex.l"
2208
2209 int state = 0;
2210 cmd_t *cmd = NULL;
2211
2212 #line 2213 "lex.c"
2213
2214 if ( !(yy_init) )
2215 {
2216 (yy_init) = 1;
2217
2218 #ifdef YY_USER_INIT
2219 YY_USER_INIT;
2220 #endif
2221
2222 if ( ! (yy_start) )
2223 (yy_start) = 1; /* first start state */
2224
2225 if ( ! yyin )
2226 yyin = stdin;
2227
2228 if ( ! yyout )
2229 yyout = stdout;
2230
2231 if ( ! YY_CURRENT_BUFFER ) {
2232 yyensure_buffer_stack ();
2233 YY_CURRENT_BUFFER_LVALUE =
2234 yy_create_buffer(yyin,YY_BUF_SIZE );
2235 }
2236
2237 yy_load_buffer_state( );
2238 }
2239
2240 while ( 1 ) /* loops until end-of-file is reached */
2241 {
2242 yy_cp = (yy_c_buf_p);
2243
2244 /* Support of yytext. */
2245 *yy_cp = (yy_hold_char);
2246
2247 /* yy_bp points to the position in yy_ch_buf of the start of
2248 * the current run.
2249 */
2250 yy_bp = yy_cp;
2251
2252 yy_current_state = (yy_start);
2253 yy_current_state += YY_AT_BOL();
2254 yy_match:
2255 do
2256 {
2257 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
2258 if ( yy_accept[yy_current_state] )
2259 {
2260 (yy_last_accepting_state) = yy_current_state;
2261 (yy_last_accepting_cpos) = yy_cp;
2262 }
2263 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2264 {
2265 yy_current_state = (int) yy_def[yy_current_state];
2266 if ( yy_current_state >= 476 )
2267 yy_c = yy_meta[(unsigned int) yy_c];
2268 }
2269 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2270 ++yy_cp;
2271 }
2272 while ( yy_base[yy_current_state] != 5969 );
2273
2274 yy_find_action:
2275 yy_act = yy_accept[yy_current_state];
2276 if ( yy_act == 0 )
2277 { /* have to back up */
2278 yy_cp = (yy_last_accepting_cpos);
2279 yy_current_state = (yy_last_accepting_state);
2280 yy_act = yy_accept[yy_current_state];
2281 }
2282
2283 YY_DO_BEFORE_ACTION;
2284
2285 do_action: /* This label is used only to access EOF actions. */
2286
2287 switch ( yy_act )
2288 { /* beginning of action switch */
2289 case 0: /* must back up */
2290 /* undo the effects of YY_DO_BEFORE_ACTION */
2291 *yy_cp = (yy_hold_char);
2292 yy_cp = (yy_last_accepting_cpos);
2293 yy_current_state = (yy_last_accepting_state);
2294 goto yy_find_action;
2295
2296 case 1:
2297 YY_RULE_SETUP
2298 #line 54 "lex.l"
2299 ;
2300 YY_BREAK
2301 case 2:
2302 YY_RULE_SETUP
2303 #line 55 "lex.l"
2304 { preproc(yytext); }
2305 YY_BREAK
2306 case 3:
2307 YY_RULE_SETUP
2308 #line 56 "lex.l"
2309 { preprocerror(yytext); }
2310 YY_BREAK
2311 case 4:
2312 /* rule 4 can match eol */
2313 YY_RULE_SETUP
2314 #line 57 "lex.l"
2315 { yyline++; BEGIN 0; }
2316 YY_BREAK
2317 case 5:
2318 YY_RULE_SETUP
2319 #line 58 "lex.l"
2320 { addvar(yytext); }
2321 YY_BREAK
2322 case 6:
2323 YY_RULE_SETUP
2324 #line 59 "lex.l"
2325 { cmd = newcmd(yytext);
2326 state = strcmp(yytext, "DEFAULT") == 0 ? 1 : 0;
2327 BEGIN ARGS; }
2328 YY_BREAK
2329 case 7:
2330 YY_RULE_SETUP
2331 #line 62 "lex.l"
2332 BEGIN ARGS;
2333 YY_BREAK
2334 case 8:
2335 YY_RULE_SETUP
2336 #line 63 "lex.l"
2337 state++;
2338 YY_BREAK
2339 case 9:
2340 /* rule 9 can match eol */
2341 YY_RULE_SETUP
2342 #line 64 "lex.l"
2343 addquotedarg(state, cmd, yytext);
2344 YY_BREAK
2345 case 10:
2346 /* rule 10 can match eol */
2347 YY_RULE_SETUP
2348 #line 65 "lex.l"
2349 addquotedarg(state, cmd, yytext);
2350 YY_BREAK
2351 case 11:
2352 YY_RULE_SETUP
2353 #line 66 "lex.l"
2354 addarg(state, cmd, yytext);
2355 YY_BREAK
2356 case 12:
2357 YY_RULE_SETUP
2358 #line 67 "lex.l"
2359 ;
2360 YY_BREAK
2361 case 13:
2362 YY_RULE_SETUP
2363 #line 68 "lex.l"
2364 ECHO;
2365 YY_BREAK
2366 #line 2367 "lex.c"
2367 case YY_STATE_EOF(INITIAL):
2368 case YY_STATE_EOF(ARGS):
2369 yyterminate();
2370
2371 case YY_END_OF_BUFFER:
2372 {
2373 /* Amount of text matched not including the EOB char. */
2374 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
2375
2376 /* Undo the effects of YY_DO_BEFORE_ACTION. */
2377 *yy_cp = (yy_hold_char);
2378 YY_RESTORE_YY_MORE_OFFSET
2379
2380 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
2381 {
2382 /* We're scanning a new file or input source. It's
2383 * possible that this happened because the user
2384 * just pointed yyin at a new source and called
2385 * yylex(). If so, then we have to assure
2386 * consistency between YY_CURRENT_BUFFER and our
2387 * globals. Here is the right place to do so, because
2388 * this is the first action (other than possibly a
2389 * back-up) that will match for the new input source.
2390 */
2391 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2392 YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
2393 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
2394 }
2395
2396 /* Note that here we test for yy_c_buf_p "<=" to the position
2397 * of the first EOB in the buffer, since yy_c_buf_p will
2398 * already have been incremented past the NUL character
2399 * (since all states make transitions on EOB to the
2400 * end-of-buffer state). Contrast this with the test
2401 * in input().
2402 */
2403 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
2404 { /* This was really a NUL. */
2405 yy_state_type yy_next_state;
2406
2407 (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
2408
2409 yy_current_state = yy_get_previous_state( );
2410
2411 /* Okay, we're now positioned to make the NUL
2412 * transition. We couldn't have
2413 * yy_get_previous_state() go ahead and do it
2414 * for us because it doesn't know how to deal
2415 * with the possibility of jamming (and we don't
2416 * want to build jamming into it because then it
2417 * will run more slowly).
2418 */
2419
2420 yy_next_state = yy_try_NUL_trans( yy_current_state );
2421
2422 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2423
2424 if ( yy_next_state )
2425 {
2426 /* Consume the NUL. */
2427 yy_cp = ++(yy_c_buf_p);
2428 yy_current_state = yy_next_state;
2429 goto yy_match;
2430 }
2431
2432 else
2433 {
2434 yy_cp = (yy_c_buf_p);
2435 goto yy_find_action;
2436 }
2437 }
2438
2439 else switch ( yy_get_next_buffer( ) )
2440 {
2441 case EOB_ACT_END_OF_FILE:
2442 {
2443 (yy_did_buffer_switch_on_eof) = 0;
2444
2445 if ( yywrap( ) )
2446 {
2447 /* Note: because we've taken care in
2448 * yy_get_next_buffer() to have set up
2449 * yytext, we can now set up
2450 * yy_c_buf_p so that if some total
2451 * hoser (like flex itself) wants to
2452 * call the scanner after we return the
2453 * YY_NULL, it'll still work - another
2454 * YY_NULL will get returned.
2455 */
2456 (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
2457
2458 yy_act = YY_STATE_EOF(YY_START);
2459 goto do_action;
2460 }
2461
2462 else
2463 {
2464 if ( ! (yy_did_buffer_switch_on_eof) )
2465 YY_NEW_FILE;
2466 }
2467 break;
2468 }
2469
2470 case EOB_ACT_CONTINUE_SCAN:
2471 (yy_c_buf_p) =
2472 (yytext_ptr) + yy_amount_of_matched_text;
2473
2474 yy_current_state = yy_get_previous_state( );
2475
2476 yy_cp = (yy_c_buf_p);
2477 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2478 goto yy_match;
2479
2480 case EOB_ACT_LAST_MATCH:
2481 (yy_c_buf_p) =
2482 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
2483
2484 yy_current_state = yy_get_previous_state( );
2485
2486 yy_cp = (yy_c_buf_p);
2487 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2488 goto yy_find_action;
2489 }
2490 break;
2491 }
2492
2493 default:
2494 YY_FATAL_ERROR(
2495 "fatal flex scanner internal error--no action found" );
2496 } /* end of action switch */
2497 } /* end of scanning one token */
2498 } /* end of yylex */
2499
2500 /* yy_get_next_buffer - try to read in a new buffer
2501 *
2502 * Returns a code representing an action:
2503 * EOB_ACT_LAST_MATCH -
2504 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2505 * EOB_ACT_END_OF_FILE - end of file
2506 */
yy_get_next_buffer(void)2507 static int yy_get_next_buffer (void)
2508 {
2509 register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
2510 register char *source = (yytext_ptr);
2511 register int number_to_move, i;
2512 int ret_val;
2513
2514 if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
2515 YY_FATAL_ERROR(
2516 "fatal flex scanner internal error--end of buffer missed" );
2517
2518 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
2519 { /* Don't try to fill the buffer, so this is an EOF. */
2520 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
2521 {
2522 /* We matched a single character, the EOB, so
2523 * treat this as a final EOF.
2524 */
2525 return EOB_ACT_END_OF_FILE;
2526 }
2527
2528 else
2529 {
2530 /* We matched some text prior to the EOB, first
2531 * process it.
2532 */
2533 return EOB_ACT_LAST_MATCH;
2534 }
2535 }
2536
2537 /* Try to read more data. */
2538
2539 /* First move last chars to start of buffer. */
2540 number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
2541
2542 for ( i = 0; i < number_to_move; ++i )
2543 *(dest++) = *(source++);
2544
2545 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
2546 /* don't do the read, it's not guaranteed to return an EOF,
2547 * just force an EOF
2548 */
2549 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
2550
2551 else
2552 {
2553 int num_to_read =
2554 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
2555
2556 while ( num_to_read <= 0 )
2557 { /* Not enough room in the buffer - grow it. */
2558
2559 /* just a shorter name for the current buffer */
2560 YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
2561
2562 int yy_c_buf_p_offset =
2563 (int) ((yy_c_buf_p) - b->yy_ch_buf);
2564
2565 if ( b->yy_is_our_buffer )
2566 {
2567 int new_size = b->yy_buf_size * 2;
2568
2569 if ( new_size <= 0 )
2570 b->yy_buf_size += b->yy_buf_size / 8;
2571 else
2572 b->yy_buf_size *= 2;
2573
2574 b->yy_ch_buf = (char *)
2575 /* Include room in for 2 EOB chars. */
2576 yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 );
2577 }
2578 else
2579 /* Can't grow it, we don't own it. */
2580 b->yy_ch_buf = 0;
2581
2582 if ( ! b->yy_ch_buf )
2583 YY_FATAL_ERROR(
2584 "fatal error - scanner input buffer overflow" );
2585
2586 (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
2587
2588 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
2589 number_to_move - 1;
2590
2591 }
2592
2593 if ( num_to_read > YY_READ_BUF_SIZE )
2594 num_to_read = YY_READ_BUF_SIZE;
2595
2596 /* Read in more data. */
2597 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
2598 (yy_n_chars), (size_t) num_to_read );
2599
2600 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2601 }
2602
2603 if ( (yy_n_chars) == 0 )
2604 {
2605 if ( number_to_move == YY_MORE_ADJ )
2606 {
2607 ret_val = EOB_ACT_END_OF_FILE;
2608 yyrestart(yyin );
2609 }
2610
2611 else
2612 {
2613 ret_val = EOB_ACT_LAST_MATCH;
2614 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
2615 YY_BUFFER_EOF_PENDING;
2616 }
2617 }
2618
2619 else
2620 ret_val = EOB_ACT_CONTINUE_SCAN;
2621
2622 if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
2623 /* Extend the array by 50%, plus the number we really need. */
2624 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
2625 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size );
2626 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
2627 YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
2628 }
2629
2630 (yy_n_chars) += number_to_move;
2631 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
2632 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
2633
2634 (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
2635
2636 return ret_val;
2637 }
2638
2639 /* yy_get_previous_state - get the state just before the EOB char was reached */
2640
yy_get_previous_state(void)2641 static yy_state_type yy_get_previous_state (void)
2642 {
2643 register yy_state_type yy_current_state;
2644 register char *yy_cp;
2645
2646 yy_current_state = (yy_start);
2647 yy_current_state += YY_AT_BOL();
2648
2649 for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
2650 {
2651 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
2652 if ( yy_accept[yy_current_state] )
2653 {
2654 (yy_last_accepting_state) = yy_current_state;
2655 (yy_last_accepting_cpos) = yy_cp;
2656 }
2657 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2658 {
2659 yy_current_state = (int) yy_def[yy_current_state];
2660 if ( yy_current_state >= 476 )
2661 yy_c = yy_meta[(unsigned int) yy_c];
2662 }
2663 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2664 }
2665
2666 return yy_current_state;
2667 }
2668
2669 /* yy_try_NUL_trans - try to make a transition on the NUL character
2670 *
2671 * synopsis
2672 * next_state = yy_try_NUL_trans( current_state );
2673 */
yy_try_NUL_trans(yy_state_type yy_current_state)2674 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
2675 {
2676 register int yy_is_jam;
2677 register char *yy_cp = (yy_c_buf_p);
2678
2679 register YY_CHAR yy_c = 1;
2680 if ( yy_accept[yy_current_state] )
2681 {
2682 (yy_last_accepting_state) = yy_current_state;
2683 (yy_last_accepting_cpos) = yy_cp;
2684 }
2685 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2686 {
2687 yy_current_state = (int) yy_def[yy_current_state];
2688 if ( yy_current_state >= 476 )
2689 yy_c = yy_meta[(unsigned int) yy_c];
2690 }
2691 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2692 yy_is_jam = (yy_current_state == 475);
2693
2694 return yy_is_jam ? 0 : yy_current_state;
2695 }
2696
2697 #ifndef YY_NO_INPUT
2698 #ifdef __cplusplus
yyinput(void)2699 static int yyinput (void)
2700 #else
2701 static int input (void)
2702 #endif
2703
2704 {
2705 int c;
2706
2707 *(yy_c_buf_p) = (yy_hold_char);
2708
2709 if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
2710 {
2711 /* yy_c_buf_p now points to the character we want to return.
2712 * If this occurs *before* the EOB characters, then it's a
2713 * valid NUL; if not, then we've hit the end of the buffer.
2714 */
2715 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
2716 /* This was really a NUL. */
2717 *(yy_c_buf_p) = '\0';
2718
2719 else
2720 { /* need more input */
2721 int offset = (yy_c_buf_p) - (yytext_ptr);
2722 ++(yy_c_buf_p);
2723
2724 switch ( yy_get_next_buffer( ) )
2725 {
2726 case EOB_ACT_LAST_MATCH:
2727 /* This happens because yy_g_n_b()
2728 * sees that we've accumulated a
2729 * token and flags that we need to
2730 * try matching the token before
2731 * proceeding. But for input(),
2732 * there's no matching to consider.
2733 * So convert the EOB_ACT_LAST_MATCH
2734 * to EOB_ACT_END_OF_FILE.
2735 */
2736
2737 /* Reset buffer status. */
2738 yyrestart(yyin );
2739
2740 /*FALLTHROUGH*/
2741
2742 case EOB_ACT_END_OF_FILE:
2743 {
2744 if ( yywrap( ) )
2745 return EOF;
2746
2747 if ( ! (yy_did_buffer_switch_on_eof) )
2748 YY_NEW_FILE;
2749 #ifdef __cplusplus
2750 return yyinput();
2751 #else
2752 return input();
2753 #endif
2754 }
2755
2756 case EOB_ACT_CONTINUE_SCAN:
2757 (yy_c_buf_p) = (yytext_ptr) + offset;
2758 break;
2759 }
2760 }
2761 }
2762
2763 c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
2764 *(yy_c_buf_p) = '\0'; /* preserve yytext */
2765 (yy_hold_char) = *++(yy_c_buf_p);
2766
2767 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
2768
2769 return c;
2770 }
2771 #endif /* ifndef YY_NO_INPUT */
2772
2773 /** Immediately switch to a different input stream.
2774 * @param input_file A readable stream.
2775 *
2776 * @note This function does not reset the start condition to @c INITIAL .
2777 */
yyrestart(FILE * input_file)2778 void yyrestart (FILE * input_file )
2779 {
2780
2781 if ( ! YY_CURRENT_BUFFER ){
2782 yyensure_buffer_stack ();
2783 YY_CURRENT_BUFFER_LVALUE =
2784 yy_create_buffer(yyin,YY_BUF_SIZE );
2785 }
2786
2787 yy_init_buffer(YY_CURRENT_BUFFER,input_file );
2788 yy_load_buffer_state( );
2789 }
2790
2791 /** Switch to a different input buffer.
2792 * @param new_buffer The new input buffer.
2793 *
2794 */
yy_switch_to_buffer(YY_BUFFER_STATE new_buffer)2795 void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer )
2796 {
2797
2798 /* TODO. We should be able to replace this entire function body
2799 * with
2800 * yypop_buffer_state();
2801 * yypush_buffer_state(new_buffer);
2802 */
2803 yyensure_buffer_stack ();
2804 if ( YY_CURRENT_BUFFER == new_buffer )
2805 return;
2806
2807 if ( YY_CURRENT_BUFFER )
2808 {
2809 /* Flush out information for old buffer. */
2810 *(yy_c_buf_p) = (yy_hold_char);
2811 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
2812 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2813 }
2814
2815 YY_CURRENT_BUFFER_LVALUE = new_buffer;
2816 yy_load_buffer_state( );
2817
2818 /* We don't actually know whether we did this switch during
2819 * EOF (yywrap()) processing, but the only time this flag
2820 * is looked at is after yywrap() is called, so it's safe
2821 * to go ahead and always set it.
2822 */
2823 (yy_did_buffer_switch_on_eof) = 1;
2824 }
2825
yy_load_buffer_state(void)2826 static void yy_load_buffer_state (void)
2827 {
2828 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2829 (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
2830 yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
2831 (yy_hold_char) = *(yy_c_buf_p);
2832 }
2833
2834 /** Allocate and initialize an input buffer state.
2835 * @param file A readable stream.
2836 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
2837 *
2838 * @return the allocated buffer state.
2839 */
yy_create_buffer(FILE * file,int size)2840 YY_BUFFER_STATE yy_create_buffer (FILE * file, int size )
2841 {
2842 YY_BUFFER_STATE b;
2843
2844 b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) );
2845 if ( ! b )
2846 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2847
2848 b->yy_buf_size = size;
2849
2850 /* yy_ch_buf has to be 2 characters longer than the size given because
2851 * we need to put in 2 end-of-buffer characters.
2852 */
2853 b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2 );
2854 if ( ! b->yy_ch_buf )
2855 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2856
2857 b->yy_is_our_buffer = 1;
2858
2859 yy_init_buffer(b,file );
2860
2861 return b;
2862 }
2863
2864 /** Destroy the buffer.
2865 * @param b a buffer created with yy_create_buffer()
2866 *
2867 */
yy_delete_buffer(YY_BUFFER_STATE b)2868 void yy_delete_buffer (YY_BUFFER_STATE b )
2869 {
2870
2871 if ( ! b )
2872 return;
2873
2874 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
2875 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
2876
2877 if ( b->yy_is_our_buffer )
2878 yyfree((void *) b->yy_ch_buf );
2879
2880 yyfree((void *) b );
2881 }
2882
2883 #ifndef __cplusplus
2884 extern int isatty (int );
2885 #endif /* __cplusplus */
2886
2887 /* Initializes or reinitializes a buffer.
2888 * This function is sometimes called more than once on the same buffer,
2889 * such as during a yyrestart() or at EOF.
2890 */
yy_init_buffer(YY_BUFFER_STATE b,FILE * file)2891 static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file )
2892
2893 {
2894 int oerrno = errno;
2895
2896 yy_flush_buffer(b );
2897
2898 b->yy_input_file = file;
2899 b->yy_fill_buffer = 1;
2900
2901 /* If b is the current buffer, then yy_init_buffer was _probably_
2902 * called from yyrestart() or through yy_get_next_buffer.
2903 * In that case, we don't want to reset the lineno or column.
2904 */
2905 if (b != YY_CURRENT_BUFFER){
2906 b->yy_bs_lineno = 1;
2907 b->yy_bs_column = 0;
2908 }
2909
2910 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
2911
2912 errno = oerrno;
2913 }
2914
2915 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
2916 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
2917 *
2918 */
yy_flush_buffer(YY_BUFFER_STATE b)2919 void yy_flush_buffer (YY_BUFFER_STATE b )
2920 {
2921 if ( ! b )
2922 return;
2923
2924 b->yy_n_chars = 0;
2925
2926 /* We always need two end-of-buffer characters. The first causes
2927 * a transition to the end-of-buffer state. The second causes
2928 * a jam in that state.
2929 */
2930 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
2931 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
2932
2933 b->yy_buf_pos = &b->yy_ch_buf[0];
2934
2935 b->yy_at_bol = 1;
2936 b->yy_buffer_status = YY_BUFFER_NEW;
2937
2938 if ( b == YY_CURRENT_BUFFER )
2939 yy_load_buffer_state( );
2940 }
2941
2942 /** Pushes the new state onto the stack. The new state becomes
2943 * the current state. This function will allocate the stack
2944 * if necessary.
2945 * @param new_buffer The new state.
2946 *
2947 */
yypush_buffer_state(YY_BUFFER_STATE new_buffer)2948 void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
2949 {
2950 if (new_buffer == NULL)
2951 return;
2952
2953 yyensure_buffer_stack();
2954
2955 /* This block is copied from yy_switch_to_buffer. */
2956 if ( YY_CURRENT_BUFFER )
2957 {
2958 /* Flush out information for old buffer. */
2959 *(yy_c_buf_p) = (yy_hold_char);
2960 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
2961 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2962 }
2963
2964 /* Only push if top exists. Otherwise, replace top. */
2965 if (YY_CURRENT_BUFFER)
2966 (yy_buffer_stack_top)++;
2967 YY_CURRENT_BUFFER_LVALUE = new_buffer;
2968
2969 /* copied from yy_switch_to_buffer. */
2970 yy_load_buffer_state( );
2971 (yy_did_buffer_switch_on_eof) = 1;
2972 }
2973
2974 /** Removes and deletes the top of the stack, if present.
2975 * The next element becomes the new top.
2976 *
2977 */
yypop_buffer_state(void)2978 void yypop_buffer_state (void)
2979 {
2980 if (!YY_CURRENT_BUFFER)
2981 return;
2982
2983 yy_delete_buffer(YY_CURRENT_BUFFER );
2984 YY_CURRENT_BUFFER_LVALUE = NULL;
2985 if ((yy_buffer_stack_top) > 0)
2986 --(yy_buffer_stack_top);
2987
2988 if (YY_CURRENT_BUFFER) {
2989 yy_load_buffer_state( );
2990 (yy_did_buffer_switch_on_eof) = 1;
2991 }
2992 }
2993
2994 /* Allocates the stack if it does not exist.
2995 * Guarantees space for at least one push.
2996 */
yyensure_buffer_stack(void)2997 static void yyensure_buffer_stack (void)
2998 {
2999 int num_to_alloc;
3000
3001 if (!(yy_buffer_stack)) {
3002
3003 /* First allocation is just for 2 elements, since we don't know if this
3004 * scanner will even need a stack. We use 2 instead of 1 to avoid an
3005 * immediate realloc on the next call.
3006 */
3007 num_to_alloc = 1;
3008 (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
3009 (num_to_alloc * sizeof(struct yy_buffer_state*)
3010 );
3011 if ( ! (yy_buffer_stack) )
3012 YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
3013
3014 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
3015
3016 (yy_buffer_stack_max) = num_to_alloc;
3017 (yy_buffer_stack_top) = 0;
3018 return;
3019 }
3020
3021 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
3022
3023 /* Increase the buffer to prepare for a possible push. */
3024 int grow_size = 8 /* arbitrary grow size */;
3025
3026 num_to_alloc = (yy_buffer_stack_max) + grow_size;
3027 (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
3028 ((yy_buffer_stack),
3029 num_to_alloc * sizeof(struct yy_buffer_state*)
3030 );
3031 if ( ! (yy_buffer_stack) )
3032 YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
3033
3034 /* zero only the new slots.*/
3035 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
3036 (yy_buffer_stack_max) = num_to_alloc;
3037 }
3038 }
3039
3040 /** Setup the input buffer state to scan directly from a user-specified character buffer.
3041 * @param base the character buffer
3042 * @param size the size in bytes of the character buffer
3043 *
3044 * @return the newly allocated buffer state object.
3045 */
yy_scan_buffer(char * base,yy_size_t size)3046 YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size )
3047 {
3048 YY_BUFFER_STATE b;
3049
3050 if ( size < 2 ||
3051 base[size-2] != YY_END_OF_BUFFER_CHAR ||
3052 base[size-1] != YY_END_OF_BUFFER_CHAR )
3053 /* They forgot to leave room for the EOB's. */
3054 return 0;
3055
3056 b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) );
3057 if ( ! b )
3058 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
3059
3060 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
3061 b->yy_buf_pos = b->yy_ch_buf = base;
3062 b->yy_is_our_buffer = 0;
3063 b->yy_input_file = 0;
3064 b->yy_n_chars = b->yy_buf_size;
3065 b->yy_is_interactive = 0;
3066 b->yy_at_bol = 1;
3067 b->yy_fill_buffer = 0;
3068 b->yy_buffer_status = YY_BUFFER_NEW;
3069
3070 yy_switch_to_buffer(b );
3071
3072 return b;
3073 }
3074
3075 /** Setup the input buffer state to scan a string. The next call to yylex() will
3076 * scan from a @e copy of @a str.
3077 * @param yystr a NUL-terminated string to scan
3078 *
3079 * @return the newly allocated buffer state object.
3080 * @note If you want to scan bytes that may contain NUL values, then use
3081 * yy_scan_bytes() instead.
3082 */
yy_scan_string(yyconst char * yystr)3083 YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
3084 {
3085
3086 return yy_scan_bytes(yystr,strlen(yystr) );
3087 }
3088
3089 /** Setup the input buffer state to scan the given bytes. The next call to yylex() will
3090 * scan from a @e copy of @a bytes.
3091 * @param bytes the byte buffer to scan
3092 * @param len the number of bytes in the buffer pointed to by @a bytes.
3093 *
3094 * @return the newly allocated buffer state object.
3095 */
yy_scan_bytes(yyconst char * yybytes,int _yybytes_len)3096 YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, int _yybytes_len )
3097 {
3098 YY_BUFFER_STATE b;
3099 char *buf;
3100 yy_size_t n;
3101 int i;
3102
3103 /* Get memory for full buffer, including space for trailing EOB's. */
3104 n = _yybytes_len + 2;
3105 buf = (char *) yyalloc(n );
3106 if ( ! buf )
3107 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
3108
3109 for ( i = 0; i < _yybytes_len; ++i )
3110 buf[i] = yybytes[i];
3111
3112 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
3113
3114 b = yy_scan_buffer(buf,n );
3115 if ( ! b )
3116 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
3117
3118 /* It's okay to grow etc. this buffer, and we should throw it
3119 * away when we're done.
3120 */
3121 b->yy_is_our_buffer = 1;
3122
3123 return b;
3124 }
3125
3126 #ifndef YY_EXIT_FAILURE
3127 #define YY_EXIT_FAILURE 2
3128 #endif
3129
yy_fatal_error(yyconst char * msg)3130 static void yy_fatal_error (yyconst char* msg )
3131 {
3132 (void) fprintf( stderr, "%s\n", msg );
3133 exit( YY_EXIT_FAILURE );
3134 }
3135
3136 /* Redefine yyless() so it works in section 3 code. */
3137
3138 #undef yyless
3139 #define yyless(n) \
3140 do \
3141 { \
3142 /* Undo effects of setting up yytext. */ \
3143 int yyless_macro_arg = (n); \
3144 YY_LESS_LINENO(yyless_macro_arg);\
3145 yytext[yyleng] = (yy_hold_char); \
3146 (yy_c_buf_p) = yytext + yyless_macro_arg; \
3147 (yy_hold_char) = *(yy_c_buf_p); \
3148 *(yy_c_buf_p) = '\0'; \
3149 yyleng = yyless_macro_arg; \
3150 } \
3151 while ( 0 )
3152
3153 /* Accessor methods (get/set functions) to struct members. */
3154
3155 /** Get the current line number.
3156 *
3157 */
yyget_lineno(void)3158 int yyget_lineno (void)
3159 {
3160
3161 return yylineno;
3162 }
3163
3164 /** Get the input stream.
3165 *
3166 */
yyget_in(void)3167 FILE *yyget_in (void)
3168 {
3169 return yyin;
3170 }
3171
3172 /** Get the output stream.
3173 *
3174 */
yyget_out(void)3175 FILE *yyget_out (void)
3176 {
3177 return yyout;
3178 }
3179
3180 /** Get the length of the current token.
3181 *
3182 */
yyget_leng(void)3183 int yyget_leng (void)
3184 {
3185 return yyleng;
3186 }
3187
3188 /** Get the current token.
3189 *
3190 */
3191
yyget_text(void)3192 char *yyget_text (void)
3193 {
3194 return yytext;
3195 }
3196
3197 /** Set the current line number.
3198 * @param line_number
3199 *
3200 */
yyset_lineno(int line_number)3201 void yyset_lineno (int line_number )
3202 {
3203
3204 yylineno = line_number;
3205 }
3206
3207 /** Set the input stream. This does not discard the current
3208 * input buffer.
3209 * @param in_str A readable stream.
3210 *
3211 * @see yy_switch_to_buffer
3212 */
yyset_in(FILE * in_str)3213 void yyset_in (FILE * in_str )
3214 {
3215 yyin = in_str ;
3216 }
3217
yyset_out(FILE * out_str)3218 void yyset_out (FILE * out_str )
3219 {
3220 yyout = out_str ;
3221 }
3222
yyget_debug(void)3223 int yyget_debug (void)
3224 {
3225 return yy_flex_debug;
3226 }
3227
yyset_debug(int bdebug)3228 void yyset_debug (int bdebug )
3229 {
3230 yy_flex_debug = bdebug ;
3231 }
3232
yy_init_globals(void)3233 static int yy_init_globals (void)
3234 {
3235 /* Initialization is the same as for the non-reentrant scanner.
3236 * This function is called from yylex_destroy(), so don't allocate here.
3237 */
3238
3239 (yy_buffer_stack) = 0;
3240 (yy_buffer_stack_top) = 0;
3241 (yy_buffer_stack_max) = 0;
3242 (yy_c_buf_p) = (char *) 0;
3243 (yy_init) = 0;
3244 (yy_start) = 0;
3245
3246 /* Defined in main.c */
3247 #ifdef YY_STDINIT
3248 yyin = stdin;
3249 yyout = stdout;
3250 #else
3251 yyin = (FILE *) 0;
3252 yyout = (FILE *) 0;
3253 #endif
3254
3255 /* For future reference: Set errno on error, since we are called by
3256 * yylex_init()
3257 */
3258 return 0;
3259 }
3260
3261 /* yylex_destroy is for both reentrant and non-reentrant scanners. */
yylex_destroy(void)3262 int yylex_destroy (void)
3263 {
3264
3265 /* Pop the buffer stack, destroying each element. */
3266 while(YY_CURRENT_BUFFER){
3267 yy_delete_buffer(YY_CURRENT_BUFFER );
3268 YY_CURRENT_BUFFER_LVALUE = NULL;
3269 yypop_buffer_state();
3270 }
3271
3272 /* Destroy the stack itself. */
3273 yyfree((yy_buffer_stack) );
3274 (yy_buffer_stack) = NULL;
3275
3276 /* Reset the globals. This is important in a non-reentrant scanner so the next time
3277 * yylex() is called, initialization will occur. */
3278 yy_init_globals( );
3279
3280 return 0;
3281 }
3282
3283 /*
3284 * Internal utility routines.
3285 */
3286
3287 #ifndef yytext_ptr
yy_flex_strncpy(char * s1,yyconst char * s2,int n)3288 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
3289 {
3290 register int i;
3291 for ( i = 0; i < n; ++i )
3292 s1[i] = s2[i];
3293 }
3294 #endif
3295
3296 #ifdef YY_NEED_STRLEN
yy_flex_strlen(yyconst char * s)3297 static int yy_flex_strlen (yyconst char * s )
3298 {
3299 register int n;
3300 for ( n = 0; s[n]; ++n )
3301 ;
3302
3303 return n;
3304 }
3305 #endif
3306
yyalloc(yy_size_t size)3307 void *yyalloc (yy_size_t size )
3308 {
3309 return (void *) malloc( size );
3310 }
3311
yyrealloc(void * ptr,yy_size_t size)3312 void *yyrealloc (void * ptr, yy_size_t size )
3313 {
3314 /* The cast to (char *) in the following accommodates both
3315 * implementations that use char* generic pointers, and those
3316 * that use void* generic pointers. It works with the latter
3317 * because both ANSI C and C++ allow castless assignment from
3318 * any pointer type to void*, and deal with argument conversions
3319 * as though doing an assignment.
3320 */
3321 return (void *) realloc( (char *) ptr, size );
3322 }
3323
yyfree(void * ptr)3324 void yyfree (void * ptr )
3325 {
3326 free( (char *) ptr ); /* see yyrealloc() for (char *) cast */
3327 }
3328
3329 #define YYTABLES_NAME "yytables"
3330
3331 #line 68 "lex.l"
3332
3333
3334 /* ' for emacs */
3335
3336 #include <sys/types.h>
3337 #include <sys/stat.h>
3338 #include <string.h>
3339
3340 #ifdef NDEBUG
3341 static void
msg(const char * format,...)3342 msg(const char *format, ...)
3343 {
3344 va_list ap;
3345 char *s;
3346
3347 va_start(ap);
3348 s = va_arg(ap, char *);
3349 fprintf(stderr, "line %d: ", yyline);
3350 /* Flawfinder: ignore (vfprintf) */
3351 vfprintf(stderr, s, ap);
3352 fputc('\n', stderr);
3353 va_end(ap);
3354 }
3355 #endif
3356
3357 static char *
expandvars(const char * instr)3358 expandvars(const char *instr)
3359 {
3360 char *str = (char *)malloc(VAR_EXPAND_LEN);
3361 size_t i = 0;
3362
3363 if (str == NULL)
3364 fatal(1, "Unable to allocate variable expansion buffer");
3365
3366 while (*instr)
3367 if (isupper((int)*instr) || *instr == '_') {
3368 const char *mark = instr;
3369 var_t *var;
3370
3371 while (*instr
3372 && (isupper((int)*instr) || isdigit((int)*instr)
3373 || *instr == '_'))
3374 ++instr;
3375 for (var = Variables; var != 0; var = var->next) {
3376 /* Flawfinder: ignore (strlen) */
3377 size_t l = strlen(var->name);
3378
3379 if ((size_t) (instr - mark) > l)
3380 l = (size_t) (instr - mark);
3381 if (!strncmp(mark, var->name, l)) {
3382 str[i] = 0;
3383 /* Flawfinder: fix (strcat) */
3384 strlcat(str, var->value, VAR_EXPAND_LEN);
3385 /* Flawfinder: ignore (strlen) */
3386 i += strlen(var->value);
3387 break;
3388 }
3389 }
3390 if (!var) {
3391 instr = mark + 1;
3392 str[i++] = *mark;
3393 }
3394 } else
3395 str[i++] = *instr++;
3396 str[i] = 0;
3397 return str;
3398 }
3399
3400 static void
preprocerror(const char * str)3401 preprocerror(const char *str)
3402 {
3403 fprintf(stderr, "Invalid preprocessor command '%s'\n", str);
3404 exit(1);
3405 }
3406
3407 static void
preproc(const char * str)3408 preproc(const char *str)
3409 {
3410 if (!strncmp(str, "%if", 3)) {
3411 } else if (!strncmp(str, "%elseif", 7)) {
3412 } else if (!strcmp(str, "%else")) {
3413 } else if (!strcmp(str, "%endif")) {
3414 } else
3415 preprocerror(str);
3416 }
3417
3418 static void
addvar(const char * str)3419 addvar(const char *str)
3420 {
3421 /* Flawfinder: ignore (char) */
3422 /* cppcheck-suppress variableScope */
3423 char name[VAR_NAME_LEN], value[VAR_EXPAND_LEN];
3424 const char *eq = strchr(str, '=');
3425
3426 if (eq && str - eq < VAR_NAME_LEN) {
3427 size_t i, o, len;
3428 var_t *var;
3429
3430 /* Flawfinder: fix (strncpy) */
3431 strlcpy(name, str, MIN((size_t) (eq - str + 1), sizeof(name)));
3432
3433 for (o = 0, i = (size_t) (eq - str + 1);
3434 o < VAR_EXPAND_LEN - 1 && str[i]; ++i)
3435 if (str[i] == '\\') {
3436 switch (str[++i]) {
3437 case 'n':
3438 value[o++] = '\n';
3439 break;
3440 case 'r':
3441 value[o++] = '\r';
3442 break;
3443 case 't':
3444 value[o++] = '\t';
3445 break;
3446 case 'a':
3447 value[o++] = '\a';
3448 break;
3449 case 'b':
3450 value[o++] = '\b';
3451 break;
3452 default:
3453 value[o++] = str[i];
3454 break;
3455 }
3456 } else if (str[i] == '"')
3457 break;
3458 else
3459 value[o++] = str[i];
3460 value[o++] = 0;
3461
3462 if ((var = (var_t *) malloc(sizeof(var_t))) == NULL)
3463 fatal(1, "Unable to allocate var_t");
3464 /* Flawfinder: fix (strlen) */
3465 len = strlen(name) + 1;
3466 if ((var->name = malloc(len)) == NULL) /* expected-warning */
3467 fatal(1, "Unable to allocate variable name");
3468 /* Flawfinder: fix (strcpy) */
3469 strlcpy(var->name, name, len);
3470 var->value = expandvars(value);
3471 var->next = 0;
3472
3473 if (Variables) {
3474 var_t *v;
3475
3476 for (v = Variables; v->next; v = v->next) ;
3477 v->next = var;
3478 } else
3479 Variables = var;
3480 } else
3481 fatal(1, "Invalid alias");
3482 }
3483
3484 static void
addquotedarg(int state,cmd_t * cmd,const char * instr)3485 addquotedarg(int state, cmd_t * cmd, const char *instr)
3486 {
3487 /* Flawfinder: ignore (char) */
3488 char buffer[MAXSTRLEN];
3489 size_t i, o, q;
3490
3491 /* Flawfinder: ignore (strlen) */
3492 if (strlen(instr) + 2 > MAXSTRLEN) {
3493 fatal(1, "Quoted argument too long\n");
3494 exit(1);
3495 }
3496 for (o = 0; !strchr("'\"", instr[o]); ++o)
3497 buffer[o] = instr[o];
3498 q = o;
3499
3500 for (i = o + 1; instr[i] && instr[i] != instr[q]; ++i, ++o) {
3501 if (instr[i] == '\\') {
3502 int c = instr[++i];
3503
3504 if (strchr("'\"", c)) {
3505 buffer[o] = (char)c;
3506 } else {
3507 buffer[o++] = '\\';
3508 buffer[o] = (char)c;
3509 }
3510 } else
3511 buffer[o] = instr[i];
3512 }
3513 buffer[o] = 0;
3514 addarg(state, cmd, buffer);
3515 }
3516
3517 static void
addarg(int state,cmd_t * cmd,const char * instr)3518 addarg(int state, cmd_t * cmd, const char *instr)
3519 {
3520 char *str = expandvars(instr);
3521
3522 if (state == 0) {
3523 _msg(("cmd='%s' add arg '%s'", cmd->name, str));
3524 if (cmd->margs == cmd->nargs) {
3525 cmd->margs += cmd->margs;
3526 cmd->args = (char **)realloc(cmd->args,
3527 sizeof(char *) * cmd->margs);
3528 if (cmd->args == NULL)
3529 fatal(1, "Unable to groupw args");
3530 }
3531 cmd->args[cmd->nargs++] = savestr(str);
3532 } else if (state == 1) {
3533 _msg(("cmd='%s' add opt '%s'", cmd->name, str));
3534 if (cmd->mopts == cmd->nopts) {
3535 cmd->mopts += cmd->mopts;
3536 cmd->opts = (char **)realloc(cmd->opts,
3537 sizeof(char *) * cmd->mopts);
3538 if (cmd->opts == NULL)
3539 fatal(1, "Unable to groupw opts");
3540 }
3541 cmd->opts[cmd->nopts++] = savestr(str);
3542 } else {
3543 fatal(1, "bad state (%d) received\n", state);
3544 }
3545 free(str);
3546 }
3547
3548 char *
savestr(const char * str)3549 savestr(const char *str)
3550 {
3551 /* Flawfinder: ignore (strlen) */
3552 size_t len = strlen(str) + 1;
3553 char *s = (char *)malloc(len);
3554
3555 if (s == NULL)
3556 fatal(1, "No string space");
3557
3558 /* Flawfinder: fix (strcpy) */
3559 strlcpy(s, str, len);
3560 return s;
3561 }
3562
3563 static cmd_t *
alloccmd(const char * name)3564 alloccmd(const char *name)
3565 {
3566 cmd_t *cmd = (cmd_t *) malloc(sizeof(cmd_t));
3567
3568 if (cmd == NULL)
3569 fatal(1, "Unable to alloc space for new command");
3570
3571 cmd->name = savestr(name);
3572 cmd->nargs = 0;
3573 cmd->margs = 16;
3574 cmd->nopts = 0;
3575 cmd->mopts = 16;
3576 cmd->args = (char **)malloc(sizeof(char *) * cmd->margs);
3577 cmd->opts = (char **)malloc(sizeof(char *) * cmd->mopts);
3578
3579 if (cmd->args == NULL || cmd->opts == NULL)
3580 fatal(1, "Unable to alloc args/opts");
3581
3582 return cmd;
3583 }
3584
3585 static void
freecmd(cmd_t * cmd)3586 freecmd(cmd_t * cmd)
3587 {
3588 if (cmd == NULL)
3589 return;
3590
3591 free(cmd->name);
3592 free(cmd->args);
3593 free(cmd->opts);
3594 free(cmd);
3595 }
3596
3597 static cmd_t *
newcmd(const char * name)3598 newcmd(const char *name)
3599 {
3600 cmd_t *cmd = alloccmd(name);
3601
3602 cmd->next = First;
3603 First = cmd;
3604
3605 return cmd;
3606 }
3607
3608 int
ReadFile(const char * file)3609 ReadFile(const char *file)
3610 {
3611 struct stat statbuf;
3612 FILE *fd;
3613
3614 if ((stat(file, &statbuf) < 0))
3615 return 0;
3616 if ((statbuf.st_uid != 0) || /* Owned by root */
3617 ((statbuf.st_mode & 0077) != 0)) { /* SD - no perm */
3618 logger(LOG_ERR, "Permission problems on %s", file);
3619 return 0;
3620 }
3621 /* Flawfinder: ignore (fopen) race condition */
3622 if ((fd = fopen(file, "r")) == NULL)
3623 return 0;
3624
3625 yyin = fd;
3626 yylex();
3627
3628 return 1;
3629 }
3630
3631 int
CountArgs(cmd_t * cmd)3632 CountArgs(cmd_t * cmd)
3633 {
3634 size_t i;
3635 /* NOLINTNEXTLINE(runtime/int) */
3636 long val, max = 0;
3637 int wild = 0;
3638 /* Flawfinder: ignore (char) */
3639 /* cppcheck-suppress variableScope */
3640 char *cp, *np, str[MAXSTRLEN];
3641
3642 for (i = 0; i < cmd->nargs; i++) {
3643 np = cmd->args[i];
3644
3645 while ((cp = strchr(np, '$')) != NULL) {
3646 if ((cp != cmd->args[i]) && (*(cp - 1) == '\\'))
3647 np = cp + 1;
3648 else {
3649 if (*(cp + 1) == '*') {
3650 wild = 1;
3651 ++cp;
3652 np = cp;
3653 continue;
3654 }
3655 cp++;
3656 np = cp;
3657
3658 while (isdigit((int)*cp))
3659 cp++;
3660 if ((cp - np) == 0)
3661 continue;
3662 /* Flawfinder: fix (strncpy) */
3663 strlcpy(str, np, MIN((size_t) (cp - np + 1), sizeof(str)));
3664 /* Flawfinder: fix (atoi -> strtolong) */
3665 val = strtolong(str, 10);
3666 if (val > max)
3667 max = val;
3668 }
3669 }
3670 }
3671
3672 if (wild)
3673 return (int)-max;
3674 return (int)max;
3675 }
3676
3677 #ifdef NUNUSED
3678 static int
cmpopts(const char * a,const char * b)3679 cmpopts(const char *a, const char *b)
3680 {
3681 char *cp_a, *cp_b;
3682 /* NOLINTNEXTLINE(runtime/int) */
3683 long val_a, val_b;
3684 /* Flawfinder: ignore (char) */
3685 char str_a[MAXSTRLEN], str_b[MAXSTRLEN];
3686
3687 if (*a != '$' && *b != '$')
3688 return 0;
3689 if (*a == '$' && *b != '$')
3690 return -1;
3691 if (*a != '$' && *b == '$')
3692 return 1;
3693
3694 cp_a = ++a;
3695 cp_b = ++b;
3696 while ((*cp_a != '\0') && (*cp_a != '='))
3697 if (!isdigit((int)*cp_a))
3698 break;
3699 while ((*cp_b != '\0') && (*cp_b != '='))
3700 if (!isdigit((int)*cp_b))
3701 break;
3702
3703 if (*cp_a != '=' && *cp_b != '=')
3704 return 0;
3705 if (*cp_a == '=' && *cp_b != '=')
3706 return -1;
3707 if (*cp_a != '=' && *cp_b == '=')
3708 return 1;
3709
3710 /* flawfinder: fix (strncpy) */
3711 strlcpy(str_a, a, MIN((size_t) (cp_a - a + 1), sizeof(str_a)));
3712 /* flawfinder: fix (atoi -> strtolong) */
3713 val_a = strtolong(str_a, 10);
3714 /* flawfinder: fix (strncpy) */
3715 strlcpy(str_b, b, MIN((size_t) (cp_b - a + 1), sizeof(str_b)));
3716 /* Flawfinder: fix (atoi -> strtolong) */
3717 val_b = strtolong(str_b, 10);
3718
3719 if (val_a < val_b)
3720 return -1;
3721 if (val_a > val_b)
3722 return 1;
3723 return 0;
3724 }
3725
3726 static void
sortopts(cmd_t * cmd)3727 sortopts(cmd_t * cmd)
3728 {
3729 qsort(cmd->opts, cmd->nopts, sizeof(char *),
3730 (int(*)(const void *, const void *))cmpopts);
3731 }
3732 #endif
3733
3734 /* Build a new command but don't merge it into the global list */
3735 cmd_t *
BuildSingle(cmd_t * def,cmd_t * cmd)3736 BuildSingle(cmd_t * def, cmd_t * cmd)
3737 {
3738 cmd_t *new = alloccmd(cmd->name ? cmd->name : "");
3739 /* Flawfinder: ignore (char) */
3740 char defname[MAXSTRLEN], optname[MAXSTRLEN], *cp;
3741 size_t i, j;
3742
3743 /* cppcheck-suppress nullPointer */
3744 if (cmd == NULL) {
3745 freecmd(new);
3746 return def;
3747 }
3748 if (def == NULL) {
3749 freecmd(new);
3750 return cmd;
3751 }
3752
3753 for (i = 0; i < cmd->nargs; i++)
3754 addarg(0, new, cmd->args[i]);
3755
3756 for (i = 0; i < def->nopts; i++) {
3757 int skipped = 0;
3758
3759 if ((cp = strchr(def->opts[i], '=')) == NULL)
3760 /* Flawfinder: fix (strcpy) */
3761 strlcpy(defname, def->opts[i], sizeof(defname));
3762 else {
3763 size_t l = (size_t) (cp - def->opts[i]);
3764 /* Flawfinder: fix (strncpy) */
3765 strlcpy(defname, def->opts[i], MIN(l + 1, sizeof(defname)));
3766 }
3767 for (j = 0; j < cmd->nopts; j++) {
3768 if ((cp = strchr(cmd->opts[j], '=')) == NULL)
3769 /* Flawfinder: fix (strcpy) */
3770 strlcpy(optname, cmd->opts[j], sizeof(optname));
3771 else {
3772 size_t l = (size_t) (cp - cmd->opts[j]);
3773 /* Flawfinder: fix (strncpy) */
3774 strlcpy(optname, cmd->opts[j], MIN(l + 1, sizeof(optname)));
3775 }
3776 if (strcmp(defname, optname) == 0) {
3777 skipped = 1;
3778 break;
3779 }
3780 }
3781 if (skipped)
3782 continue;
3783 if (def->opts[i][0] != '\0')
3784 addarg(1, new, def->opts[i]);
3785 }
3786 for (j = 0; j < cmd->nopts; j++)
3787 addarg(1, new, cmd->opts[j]);
3788
3789 /* sortopts(new); */
3790
3791 return new;
3792 }
3793
3794 /* Build a new command *and* merge it with the global command list */
3795 cmd_t *
Build(cmd_t * def,cmd_t * cmd)3796 Build(cmd_t * def, cmd_t * cmd)
3797 {
3798 cmd_t *new = BuildSingle(def, cmd);
3799
3800 new->next = First;
3801 First = new;
3802
3803 return new;
3804 }
3805
3806