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