util: Add hda-decoder
[coreboot.git] / util / kconfig / lexer.lex.c_shipped
blob2de805047569676a143a865d47180cce7e3123ce
2 #define  YY_INT_ALIGNED short int
4 /* A lexical scanner generated by flex */
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
14 /* First, we deal with  platform-specific or compiler-specific issues. */
16 /* begin standard C headers. */
17 #include <stdio.h>
18 #include <string.h>
19 #include <errno.h>
20 #include <stdlib.h>
22 /* end standard C headers. */
24 /* flex integer type definitions */
26 #ifndef FLEXINT_H
27 #define FLEXINT_H
29 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
31 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
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
40 #include <inttypes.h>
41 typedef int8_t flex_int8_t;
42 typedef uint8_t flex_uint8_t;
43 typedef int16_t flex_int16_t;
44 typedef uint16_t flex_uint16_t;
45 typedef int32_t flex_int32_t;
46 typedef uint32_t flex_uint32_t;
47 #else
48 typedef signed char flex_int8_t;
49 typedef short int flex_int16_t;
50 typedef int flex_int32_t;
51 typedef unsigned char flex_uint8_t; 
52 typedef unsigned short int flex_uint16_t;
53 typedef unsigned int flex_uint32_t;
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
84 #ifndef SIZE_MAX
85 #define SIZE_MAX               (~(size_t)0)
86 #endif
88 #endif /* ! C99 */
90 #endif /* ! FLEXINT_H */
92 /* begin standard C++ headers. */
94 /* TODO: this is always defined, so inline it */
95 #define yyconst const
97 #if defined(__GNUC__) && __GNUC__ >= 3
98 #define yynoreturn __attribute__((__noreturn__))
99 #else
100 #define yynoreturn
101 #endif
103 /* Returned upon end-of-file. */
104 #define YY_NULL 0
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))
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
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
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))
145 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
146 #define YY_TYPEDEF_YY_BUFFER_STATE
147 typedef struct yy_buffer_state *YY_BUFFER_STATE;
148 #endif
150 #ifndef YY_TYPEDEF_YY_SIZE_T
151 #define YY_TYPEDEF_YY_SIZE_T
152 typedef size_t yy_size_t;
153 #endif
155 extern int yyleng;
157 extern FILE *yyin, *yyout;
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)  )
200 #ifndef YY_STRUCT_YY_BUFFER_STATE
201 #define YY_STRUCT_YY_BUFFER_STATE
202 struct yy_buffer_state
203         {
204         FILE *yy_input_file;
206         char *yy_ch_buf;                /* input buffer */
207         char *yy_buf_pos;               /* current position in input buffer */
209         /* Size of input buffer in bytes, not including room for EOB
210          * characters.
211          */
212         int yy_buf_size;
214         /* Number of characters read into yy_ch_buf, not including EOB
215          * characters.
216          */
217         int yy_n_chars;
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;
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;
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;
238     int yy_bs_lineno; /**< The line count. */
239     int yy_bs_column; /**< The column count. */
241         /* Whether to try to fill the input buffer when we reach the
242          * end of it.
243          */
244         int yy_fill_buffer;
246         int yy_buffer_status;
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
262         };
263 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
265 /* Stack of input buffers. */
266 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
267 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
268 static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */
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".
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)]
284 /* yy_hold_char holds the character lost when yytext is formed. */
285 static char yy_hold_char;
286 static int yy_n_chars;          /* number of characters read into yy_ch_buf */
287 int yyleng;
289 /* Points to current character in buffer. */
290 static char *yy_c_buf_p = NULL;
291 static int yy_init = 0;         /* whether we need to initialize */
292 static int yy_start = 0;        /* start state number */
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  */
297 static int yy_did_buffer_switch_on_eof;
299 void yyrestart ( FILE *input_file  );
300 void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer  );
301 YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size  );
302 void yy_delete_buffer ( YY_BUFFER_STATE b  );
303 void yy_flush_buffer ( YY_BUFFER_STATE b  );
304 void yypush_buffer_state ( YY_BUFFER_STATE new_buffer  );
305 void yypop_buffer_state ( void );
307 static void yyensure_buffer_stack ( void );
308 static void yy_load_buffer_state ( void );
309 static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file  );
310 #define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER )
312 YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size  );
313 YY_BUFFER_STATE yy_scan_string ( const char *yy_str  );
314 YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len  );
316 void *yyalloc ( yy_size_t  );
317 void *yyrealloc ( void *, yy_size_t  );
318 void yyfree ( void *  );
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)
341 /* Begin user sect3 */
343 #define yywrap() (/*CONSTCOND*/1)
344 #define YY_SKIP_YYWRAP
345 typedef flex_uint8_t YY_CHAR;
347 FILE *yyin = NULL, *yyout = NULL;
349 typedef int yy_state_type;
351 extern int yylineno;
352 int yylineno = 1;
354 extern char *yytext;
355 #ifdef yytext_ptr
356 #undef yytext_ptr
357 #endif
358 #define yytext_ptr yytext
360 static 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     },
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
377     },
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     },
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
394     },
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     },
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
411     },
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     },
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
428     },
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     },
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
445     },
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     },
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
462     },
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     },
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
479     },
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     },
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
496     },
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     },
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
513     },
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     },
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
530     },
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     },
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
547     },
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     },
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
564     },
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     },
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
581     },
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     },
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
598     },
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     },
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
615     },
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     },
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
632     },
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     },
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
649     },
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     },
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
666     },
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     },
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
683     },
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     },
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
700     },
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     },
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
717     },
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     },
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
734     },
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     },
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
751     },
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     },
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
768     },
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     },
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
785     },
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     },
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
802     },
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     },
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
819     },
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     },
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
836     },
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     },
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
853     },
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     },
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
870     },
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     },
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
887     },
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     },
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
904     },
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     },
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
921     },
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     },
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
938     },
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     },
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
955     },
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     },
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
972     },
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     },
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
989     },
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     },
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
1006     },
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     },
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
1023     },
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     },
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
1040     },
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     },
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
1057     },
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     },
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
1074     },
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     },
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
1091     },
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     },
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
1108     },
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     },
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
1125     },
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     },
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
1142     },
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     },
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
1159     },
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     },
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
1176     },
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     },
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
1193     },
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     },
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
1210     },
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     },
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
1227     },
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     },
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
1244     },
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     },
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
1261     },
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     },
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
1278     },
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     },
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
1295     },
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     },
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
1312     },
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     },
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
1329     },
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     },
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
1346     },
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     },
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
1363     },
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     },
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
1380     },
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     },
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
1397     },
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     },
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
1414     },
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     },
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
1431     },
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     },
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
1448     },
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     },
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
1465     },
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     },
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
1482     },
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     },
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
1499     },
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     },
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
1516     },
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     },
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
1533     },
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     },
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
1550     },
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     },
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
1567     },
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     },
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
1584     },
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     },
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
1601     },
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     },
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
1618     },
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     },
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
1635     },
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     },
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
1652     },
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     },
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
1669     },
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     },
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
1686     },
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     },
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
1703     },
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     },
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
1720     },
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     },
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
1737     },
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     },
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
1754     },
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     },
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
1771     },
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     },
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
1788     },
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     },
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
1805     },
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     },
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
1822     },
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     },
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
1839     },
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     },
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
1856     },
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     },
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
1873     },
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     },
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
1890     },
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     },
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
1907     },
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     },
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
1924     },
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     },
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
1941     },
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     },
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
1958     },
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     },
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
1975     },
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     },
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
1992     },
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     },
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
2009     },
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     },
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
2026     },
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     },
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
2043     },
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     },
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
2060     },
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     },
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
2077     },
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     },
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
2094     },
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     },
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
2111     },
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     },
2121     } ;
2123 static yy_state_type yy_get_previous_state ( void );
2124 static yy_state_type yy_try_NUL_trans ( yy_state_type current_state  );
2125 static int yy_get_next_buffer ( void );
2126 static void yynoreturn yy_fatal_error ( const char* msg  );
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. */
2141 struct yy_trans_info
2142         {
2143         flex_int32_t yy_verify;
2144         flex_int32_t yy_nxt;
2145         };
2146 static 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,
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,
2170        13,   48,   48,   23,   48,   10
2171     } ;
2173 static 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,
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,
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     } ;
2205 /* Table of booleans, true if rule could match eol. */
2206 static const flex_int32_t yy_rule_can_match_eol[64] =
2207     {   0,
2208 0, 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,     };
2213 extern int yy_flex_debug;
2214 int yy_flex_debug = 0;
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
2223 char *yytext;
2224 /* SPDX-License-Identifier: GPL-2.0-only */
2226  * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
2227  */
2229 #include <assert.h>
2230 #include <glob.h>
2231 #include <limits.h>
2232 #include <stdio.h>
2233 #include <stdlib.h>
2234 #include <string.h>
2236 #include "lkc.h"
2237 #include "parser.tab.h"
2239 #define YY_DECL         static int yylex1(void)
2241 #define START_STRSIZE   16
2243 static struct {
2244         struct file *file;
2245         int lineno;
2246 } current_pos;
2248 static int prev_prev_token = T_EOL;
2249 static int prev_token = T_EOL;
2250 static char *text;
2251 static int text_size, text_asize;
2253 struct buffer {
2254         struct buffer *parent;
2255         YY_BUFFER_STATE state;
2258 static struct buffer *current_buf;
2260 static int last_ts, first_ts;
2262 static char *expand_token(const char *in, size_t n);
2263 static void append_expanded_string(const char *in);
2264 static void zconf_endhelp(void);
2265 static void zconf_endfile(void);
2267 static void new_string(void)
2269         text = xmalloc(START_STRSIZE);
2270         text_asize = START_STRSIZE;
2271         text_size = 0;
2272         *text = 0;
2275 static void append_string(const char *str, int size)
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;
2289 static void alloc_string(const char *str, int size)
2291         text = xmalloc(size + 1);
2292         memcpy(text, str, size);
2293         text[size] = 0;
2296 static void warn_ignored_character(char chr)
2298         fprintf(stderr,
2299                 "%s:%d:warning: ignoring unsupported character '%c'\n",
2300                 current_file->name, yylineno, chr);
2303 #define INITIAL 0
2304 #define ASSIGN_VAL 1
2305 #define HELP 2
2306 #define STRING 3
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
2316 #ifndef YY_EXTRA_TYPE
2317 #define YY_EXTRA_TYPE void *
2318 #endif
2320 static int yy_init_globals ( void );
2322 /* Accessor methods to globals.
2323    These are made visible to non-reentrant scanners for convenience. */
2325 int yylex_destroy ( void );
2327 int yyget_debug ( void );
2329 void yyset_debug ( int debug_flag  );
2331 YY_EXTRA_TYPE yyget_extra ( void );
2333 void yyset_extra ( YY_EXTRA_TYPE user_defined  );
2335 FILE *yyget_in ( void );
2337 void yyset_in  ( FILE * _in_str  );
2339 FILE *yyget_out ( void );
2341 void yyset_out  ( FILE * _out_str  );
2343                         int yyget_leng ( void );
2345 char *yyget_text ( void );
2347 int yyget_lineno ( void );
2349 void yyset_lineno ( int _line_number  );
2351 /* Macros after this point can all be overridden by user definitions in
2352  * section 1.
2353  */
2355 #ifndef YY_SKIP_YYWRAP
2356 #ifdef __cplusplus
2357 extern "C" int yywrap ( void );
2358 #else
2359 extern int yywrap ( void );
2360 #endif
2361 #endif
2363 #ifndef YY_NO_UNPUT
2364     
2365     static void yyunput ( int c, char *buf_ptr  );
2366     
2367 #endif
2369 #ifndef yytext_ptr
2370 static void yy_flex_strncpy ( char *, const char *, int );
2371 #endif
2373 #ifdef YY_NEED_STRLEN
2374 static int yy_flex_strlen ( const char * );
2375 #endif
2377 #ifndef YY_NO_INPUT
2378 #ifdef __cplusplus
2379 static int yyinput ( void );
2380 #else
2381 static int input ( void );
2382 #endif
2384 #endif
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
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
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         }\
2422 #endif
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
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
2437 /* Report a fatal error. */
2438 #ifndef YY_FATAL_ERROR
2439 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
2440 #endif
2442 /* end tables serialization structures and prototypes */
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
2450 extern int yylex (void);
2452 #define YY_DECL int yylex (void)
2453 #endif /* !YY_DECL */
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
2462 /* Code executed at the end of each rule. */
2463 #ifndef YY_BREAK
2464 #define YY_BREAK /*LINTED*/break;
2465 #endif
2467 #define YY_RULE_SETUP \
2468         YY_USER_ACTION
2470 /** The main scanner function which does all the work.
2471  */
2472 YY_DECL
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;
2482 #ifdef YY_USER_INIT
2483                 YY_USER_INIT;
2484 #endif
2486                 if ( ! (yy_start) )
2487                         (yy_start) = 1; /* first start state */
2489                 if ( ! yyin )
2490                         yyin = stdin;
2492                 if ( ! yyout )
2493                         yyout = stdout;
2495                 if ( ! YY_CURRENT_BUFFER ) {
2496                         yyensure_buffer_stack ();
2497                         YY_CURRENT_BUFFER_LVALUE =
2498                                 yy_create_buffer( yyin, YY_BUF_SIZE );
2499                 }
2501                 yy_load_buffer_state(  );
2502                 }
2504         {
2506         int str = 0;
2507         int ts, i;
2509         while ( /*CONSTCOND*/1 )                /* loops until end-of-file is reached */
2510                 {
2511                 yy_cp = (yy_c_buf_p);
2513                 /* Support of yytext. */
2514                 *yy_cp = (yy_hold_char);
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;
2521                 yy_current_state = (yy_start);
2522 yy_match:
2523                 while ( (yy_current_state = yy_nxt[yy_current_state][ yy_ec[YY_SC_TO_UI(*yy_cp)]  ]) > 0 )
2524                         ++yy_cp;
2526                 yy_current_state = -yy_current_state;
2528 yy_find_action:
2529                 yy_act = yy_accept[yy_current_state];
2531                 YY_DO_BEFORE_ACTION;
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++;
2541                         }
2543 do_action:      /* This label is used only to access EOF actions. */
2545                 switch ( yy_act )
2546         { /* beginning of action switch */
2547 case 1:
2548 YY_RULE_SETUP
2549 /* ignore comment */
2550         YY_BREAK
2551 case 2:
2552 YY_RULE_SETUP
2553 /* whitespaces */
2554         YY_BREAK
2555 case 3:
2556 /* rule 3 can match eol */
2557 YY_RULE_SETUP
2558 /* escaped new line */
2559         YY_BREAK
2560 case 4:
2561 /* rule 4 can match eol */
2562 YY_RULE_SETUP
2563 return T_EOL;
2564         YY_BREAK
2565 case 5:
2566 YY_RULE_SETUP
2567 return T_BOOL;
2568         YY_BREAK
2569 case 6:
2570 YY_RULE_SETUP
2571 return T_CHOICE;
2572         YY_BREAK
2573 case 7:
2574 YY_RULE_SETUP
2575 return T_COMMENT;
2576         YY_BREAK
2577 case 8:
2578 YY_RULE_SETUP
2579 return T_CONFIG;
2580         YY_BREAK
2581 case 9:
2582 YY_RULE_SETUP
2583 return T_DEF_BOOL;
2584         YY_BREAK
2585 case 10:
2586 YY_RULE_SETUP
2587 return T_DEF_TRISTATE;
2588         YY_BREAK
2589 case 11:
2590 YY_RULE_SETUP
2591 return T_DEFAULT;
2592         YY_BREAK
2593 case 12:
2594 YY_RULE_SETUP
2595 return T_DEPENDS;
2596         YY_BREAK
2597 case 13:
2598 YY_RULE_SETUP
2599 return T_ENDCHOICE;
2600         YY_BREAK
2601 case 14:
2602 YY_RULE_SETUP
2603 return T_ENDIF;
2604         YY_BREAK
2605 case 15:
2606 YY_RULE_SETUP
2607 return T_ENDMENU;
2608         YY_BREAK
2609 case 16:
2610 YY_RULE_SETUP
2611 return T_HELP;
2612         YY_BREAK
2613 case 17:
2614 YY_RULE_SETUP
2615 return T_HEX;
2616         YY_BREAK
2617 case 18:
2618 YY_RULE_SETUP
2619 return T_IF;
2620         YY_BREAK
2621 case 19:
2622 YY_RULE_SETUP
2623 return T_IMPLY;
2624         YY_BREAK
2625 case 20:
2626 YY_RULE_SETUP
2627 return T_INT;
2628         YY_BREAK
2629 case 21:
2630 YY_RULE_SETUP
2631 return T_MAINMENU;
2632         YY_BREAK
2633 case 22:
2634 YY_RULE_SETUP
2635 return T_MENU;
2636         YY_BREAK
2637 case 23:
2638 YY_RULE_SETUP
2639 return T_MENUCONFIG;
2640         YY_BREAK
2641 case 24:
2642 YY_RULE_SETUP
2643 return T_MODULES;
2644         YY_BREAK
2645 case 25:
2646 YY_RULE_SETUP
2647 return T_ON;
2648         YY_BREAK
2649 case 26:
2650 YY_RULE_SETUP
2651 return T_OPTIONAL;
2652         YY_BREAK
2653 case 27:
2654 YY_RULE_SETUP
2655 return T_PROMPT;
2656         YY_BREAK
2657 case 28:
2658 YY_RULE_SETUP
2659 return T_RANGE;
2660         YY_BREAK
2661 case 29:
2662 YY_RULE_SETUP
2663 return T_SELECT;
2664         YY_BREAK
2665 case 30:
2666 YY_RULE_SETUP
2667 return T_SOURCE;
2668         YY_BREAK
2669 case 31:
2670 YY_RULE_SETUP
2671 return T_STRING;
2672         YY_BREAK
2673 case 32:
2674 YY_RULE_SETUP
2675 return T_TRISTATE;
2676         YY_BREAK
2677 case 33:
2678 YY_RULE_SETUP
2679 return T_VISIBLE;
2680         YY_BREAK
2681 case 34:
2682 YY_RULE_SETUP
2683 return T_OR;
2684         YY_BREAK
2685 case 35:
2686 YY_RULE_SETUP
2687 return T_AND;
2688         YY_BREAK
2689 case 36:
2690 YY_RULE_SETUP
2691 return T_EQUAL;
2692         YY_BREAK
2693 case 37:
2694 YY_RULE_SETUP
2695 return T_UNEQUAL;
2696         YY_BREAK
2697 case 38:
2698 YY_RULE_SETUP
2699 return T_LESS;
2700         YY_BREAK
2701 case 39:
2702 YY_RULE_SETUP
2703 return T_LESS_EQUAL;
2704         YY_BREAK
2705 case 40:
2706 YY_RULE_SETUP
2707 return T_GREATER;
2708         YY_BREAK
2709 case 41:
2710 YY_RULE_SETUP
2711 return T_GREATER_EQUAL;
2712         YY_BREAK
2713 case 42:
2714 YY_RULE_SETUP
2715 return T_NOT;
2716         YY_BREAK
2717 case 43:
2718 YY_RULE_SETUP
2719 return T_OPEN_PAREN;
2720         YY_BREAK
2721 case 44:
2722 YY_RULE_SETUP
2723 return T_CLOSE_PAREN;
2724         YY_BREAK
2725 case 45:
2726 YY_RULE_SETUP
2727 return T_COLON_EQUAL;
2728         YY_BREAK
2729 case 46:
2730 YY_RULE_SETUP
2731 return T_PLUS_EQUAL;
2732         YY_BREAK
2733 case 47:
2734 YY_RULE_SETUP
2736                                 str = yytext[0];
2737                                 new_string();
2738                                 BEGIN(STRING);
2739                         }
2740         YY_BREAK
2741 case 48:
2742 YY_RULE_SETUP
2744                                 alloc_string(yytext, yyleng);
2745                                 yylval.string = text;
2746                                 return T_WORD;
2747                         }
2748         YY_BREAK
2749 case 49:
2750 YY_RULE_SETUP
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
2759 case 50:
2760 YY_RULE_SETUP
2761 warn_ignored_character(*yytext);
2762         YY_BREAK
2764 case 51:
2765 YY_RULE_SETUP
2767                 alloc_string(yytext, yyleng);
2768                 yylval.string = text;
2769                 return T_ASSIGN_VAL;
2770         }
2771         YY_BREAK
2772 case 52:
2773 /* rule 52 can match eol */
2774 YY_RULE_SETUP
2775 { BEGIN(INITIAL); return T_EOL; }
2776         YY_BREAK
2777 case 53:
2778 YY_RULE_SETUP
2780         YY_BREAK
2782 case 54:
2783 YY_RULE_SETUP
2784 append_expanded_string(yytext);
2785         YY_BREAK
2786 case 55:
2787 YY_RULE_SETUP
2789                 append_string(yytext, yyleng);
2790         }
2791         YY_BREAK
2792 case 56:
2793 YY_RULE_SETUP
2795                 append_string(yytext + 1, yyleng - 1);
2796         }
2797         YY_BREAK
2798 case 57:
2799 YY_RULE_SETUP
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
2809 case 58:
2810 /* rule 58 can match eol */
2811 YY_RULE_SETUP
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
2822 case YY_STATE_EOF(STRING):
2824                 BEGIN(INITIAL);
2825                 yylval.string = text;
2826                 return T_WORD_QUOTE;
2827         }
2828         YY_BREAK
2830 case 59:
2831 YY_RULE_SETUP
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
2855 case 60:
2856 /* rule 60 can match eol */
2857 *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
2858 YY_LINENO_REWIND_TO(yy_cp - 1);
2859 (yy_c_buf_p) = yy_cp -= 1;
2860 YY_DO_BEFORE_ACTION; /* set up yytext again */
2861 YY_RULE_SETUP
2863                 zconf_endhelp();
2864                 return T_HELPTEXT;
2865         }
2866         YY_BREAK
2867 case 61:
2868 /* rule 61 can match eol */
2869 YY_RULE_SETUP
2871                 append_string("\n", 1);
2872         }
2873         YY_BREAK
2874 case 62:
2875 YY_RULE_SETUP
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
2887 case YY_STATE_EOF(HELP):
2889                 zconf_endhelp();
2890                 return T_HELPTEXT;
2891         }
2892         YY_BREAK
2894 case YY_STATE_EOF(INITIAL):
2895 case YY_STATE_EOF(ASSIGN_VAL):
2897         BEGIN(INITIAL);
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);
2903         if (current_file) {
2904                 zconf_endfile();
2905                 return T_EOL;
2906         }
2907         fclose(yyin);
2908         yyterminate();
2910         YY_BREAK
2911 case 63:
2912 YY_RULE_SETUP
2913 YY_FATAL_ERROR( "flex scanner jammed" );
2914         YY_BREAK
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;
2921                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
2922                 *yy_cp = (yy_hold_char);
2923                 YY_RESTORE_YY_MORE_OFFSET
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                         }
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;
2952                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
2954                         yy_current_state = yy_get_previous_state(  );
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                          */
2965                         yy_next_state = yy_try_NUL_trans( yy_current_state );
2967                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
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                                 }
2977                         else
2978                                 {
2979                                 yy_cp = (yy_c_buf_p);
2980                                 goto yy_find_action;
2981                                 }
2982                         }
2984                 else switch ( yy_get_next_buffer(  ) )
2985                         {
2986                         case EOB_ACT_END_OF_FILE:
2987                                 {
2988                                 (yy_did_buffer_switch_on_eof) = 0;
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;
3003                                         yy_act = YY_STATE_EOF(YY_START);
3004                                         goto do_action;
3005                                         }
3007                                 else
3008                                         {
3009                                         if ( ! (yy_did_buffer_switch_on_eof) )
3010                                                 YY_NEW_FILE;
3011                                         }
3012                                 break;
3013                                 }
3015                         case EOB_ACT_CONTINUE_SCAN:
3016                                 (yy_c_buf_p) =
3017                                         (yytext_ptr) + yy_amount_of_matched_text;
3019                                 yy_current_state = yy_get_previous_state(  );
3021                                 yy_cp = (yy_c_buf_p);
3022                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3023                                 goto yy_match;
3025                         case EOB_ACT_LAST_MATCH:
3026                                 (yy_c_buf_p) =
3027                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
3029                                 yy_current_state = yy_get_previous_state(  );
3031                                 yy_cp = (yy_c_buf_p);
3032                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3033                                 goto yy_find_action;
3034                         }
3035                 break;
3036                 }
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 */
3046 /* yy_get_next_buffer - try to read in a new buffer
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  */
3053 static int yy_get_next_buffer (void)
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;
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" );
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                         }
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                 }
3083         /* Try to read more data. */
3085         /* First move last chars to start of buffer. */
3086         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1);
3088         for ( i = 0; i < number_to_move; ++i )
3089                 *(dest++) = *(source++);
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;
3097         else
3098                 {
3099                         int num_to_read =
3100                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
3102                 while ( num_to_read <= 0 )
3103                         { /* Not enough room in the buffer - grow it. */
3105                         /* just a shorter name for the current buffer */
3106                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
3108                         int yy_c_buf_p_offset =
3109                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
3111                         if ( b->yy_is_our_buffer )
3112                                 {
3113                                 int new_size = b->yy_buf_size * 2;
3115                                 if ( new_size <= 0 )
3116                                         b->yy_buf_size += b->yy_buf_size / 8;
3117                                 else
3118                                         b->yy_buf_size *= 2;
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;
3129                         if ( ! b->yy_ch_buf )
3130                                 YY_FATAL_ERROR(
3131                                 "fatal error - scanner input buffer overflow" );
3133                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
3135                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
3136                                                 number_to_move - 1;
3138                         }
3140                 if ( num_to_read > YY_READ_BUF_SIZE )
3141                         num_to_read = YY_READ_BUF_SIZE;
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 );
3147                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3148                 }
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                         }
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                 }
3166         else
3167                 ret_val = EOB_ACT_CONTINUE_SCAN;
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         }
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;
3184         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
3186         return ret_val;
3189 /* yy_get_previous_state - get the state just before the EOB char was reached */
3191     static yy_state_type yy_get_previous_state (void)
3193         yy_state_type yy_current_state;
3194         char *yy_cp;
3195     
3196         yy_current_state = (yy_start);
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                 }
3203         return yy_current_state;
3206 /* yy_try_NUL_trans - try to make a transition on the NUL character
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 )
3213         int yy_is_jam;
3214     
3215         yy_current_state = yy_nxt[yy_current_state][1];
3216         yy_is_jam = (yy_current_state <= 0);
3218                 return yy_is_jam ? 0 : yy_current_state;
3221 #ifndef YY_NO_UNPUT
3223     static void yyunput (int c, char * yy_bp )
3225         char *yy_cp;
3226     
3227     yy_cp = (yy_c_buf_p);
3229         /* undo effects of setting up yytext */
3230         *yy_cp = (yy_hold_char);
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];
3241                 while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
3242                         *--dest = *--source;
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;
3249                 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
3250                         YY_FATAL_ERROR( "flex scanner push-back overflow" );
3251                 }
3253         *--yy_cp = (char) c;
3255     if ( c == '\n' ){
3256         --yylineno;
3257     }
3259         (yytext_ptr) = yy_bp;
3260         (yy_hold_char) = *yy_cp;
3261         (yy_c_buf_p) = yy_cp;
3264 #endif
3266 #ifndef YY_NO_INPUT
3267 #ifdef __cplusplus
3268     static int yyinput (void)
3269 #else
3270     static int input  (void)
3271 #endif
3274         int c;
3275     
3276         *(yy_c_buf_p) = (yy_hold_char);
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';
3288                 else
3289                         { /* need more input */
3290                         int offset = (int) ((yy_c_buf_p) - (yytext_ptr));
3291                         ++(yy_c_buf_p);
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                                          */
3306                                         /* Reset buffer status. */
3307                                         yyrestart( yyin );
3309                                         /*FALLTHROUGH*/
3311                                 case EOB_ACT_END_OF_FILE:
3312                                         {
3313                                         if ( yywrap(  ) )
3314                                                 return 0;
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                                         }
3325                                 case EOB_ACT_CONTINUE_SCAN:
3326                                         (yy_c_buf_p) = (yytext_ptr) + offset;
3327                                         break;
3328                                 }
3329                         }
3330                 }
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);
3336         if ( c == '\n' )
3337                 
3338     yylineno++;
3341         return c;
3343 #endif  /* ifndef YY_NO_INPUT */
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 )
3352     
3353         if ( ! YY_CURRENT_BUFFER ){
3354         yyensure_buffer_stack ();
3355                 YY_CURRENT_BUFFER_LVALUE =
3356             yy_create_buffer( yyin, YY_BUF_SIZE );
3357         }
3359         yy_init_buffer( YY_CURRENT_BUFFER, input_file );
3360         yy_load_buffer_state(  );
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 )
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;
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                 }
3387         YY_CURRENT_BUFFER_LVALUE = new_buffer;
3388         yy_load_buffer_state(  );
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;
3398 static void yy_load_buffer_state  (void)
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);
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 )
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()" );
3420         b->yy_buf_size = size;
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()" );
3429         b->yy_is_our_buffer = 1;
3431         yy_init_buffer( b, file );
3433         return b;
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 )
3442     
3443         if ( ! b )
3444                 return;
3446         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
3447                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
3449         if ( b->yy_is_our_buffer )
3450                 yyfree( (void *) b->yy_ch_buf  );
3452         yyfree( (void *) b  );
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 )
3462         int oerrno = errno;
3463     
3464         yy_flush_buffer( b );
3466         b->yy_input_file = file;
3467         b->yy_fill_buffer = 1;
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     }
3478         b->yy_is_interactive = 0;
3479     
3480         errno = oerrno;
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 )
3489         if ( ! b )
3490                 return;
3492         b->yy_n_chars = 0;
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;
3501         b->yy_buf_pos = &b->yy_ch_buf[0];
3503         b->yy_at_bol = 1;
3504         b->yy_buffer_status = YY_BUFFER_NEW;
3506         if ( b == YY_CURRENT_BUFFER )
3507                 yy_load_buffer_state(  );
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  */
3516 void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
3518         if (new_buffer == NULL)
3519                 return;
3521         yyensure_buffer_stack();
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                 }
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;
3537         /* copied from yy_switch_to_buffer. */
3538         yy_load_buffer_state(  );
3539         (yy_did_buffer_switch_on_eof) = 1;
3542 /** Removes and deletes the top of the stack, if present.
3543  *  The next element becomes the new top.
3544  *  
3545  */
3546 void yypop_buffer_state (void)
3548         if (!YY_CURRENT_BUFFER)
3549                 return;
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);
3556         if (YY_CURRENT_BUFFER) {
3557                 yy_load_buffer_state(  );
3558                 (yy_did_buffer_switch_on_eof) = 1;
3559         }
3562 /* Allocates the stack if it does not exist.
3563  *  Guarantees space for at least one push.
3564  */
3565 static void yyensure_buffer_stack (void)
3567         yy_size_t num_to_alloc;
3568     
3569         if (!(yy_buffer_stack)) {
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()" );
3582                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
3584                 (yy_buffer_stack_max) = num_to_alloc;
3585                 (yy_buffer_stack_top) = 0;
3586                 return;
3587         }
3589         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
3591                 /* Increase the buffer to prepare for a possible push. */
3592                 yy_size_t grow_size = 8 /* arbitrary grow size */;
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()" );
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         }
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  */
3614 YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
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;
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()" );
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;
3638         yy_switch_to_buffer( b  );
3640         return b;
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  */
3651 YY_BUFFER_STATE yy_scan_string (const char * yystr )
3653     
3654         return yy_scan_bytes( yystr, (int) strlen(yystr) );
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  */
3664 YY_BUFFER_STATE yy_scan_bytes  (const char * yybytes, int  _yybytes_len )
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()" );
3677         for ( i = 0; i < _yybytes_len; ++i )
3678                 buf[i] = yybytes[i];
3680         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
3682         b = yy_scan_buffer( buf, n );
3683         if ( ! b )
3684                 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
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;
3691         return b;
3694 #ifndef YY_EXIT_FAILURE
3695 #define YY_EXIT_FAILURE 2
3696 #endif
3698 static void yynoreturn yy_fatal_error (const char* msg )
3700                         fprintf( stderr, "%s\n", msg );
3701         exit( YY_EXIT_FAILURE );
3704 /* Redefine yyless() so it works in section 3 code. */
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 )
3721 /* Accessor  methods (get/set functions) to struct members. */
3723 /** Get the current line number.
3724  * 
3725  */
3726 int yyget_lineno  (void)
3728     
3729     return yylineno;
3732 /** Get the input stream.
3733  * 
3734  */
3735 FILE *yyget_in  (void)
3737         return yyin;
3740 /** Get the output stream.
3741  * 
3742  */
3743 FILE *yyget_out  (void)
3745         return yyout;
3748 /** Get the length of the current token.
3749  * 
3750  */
3751 int yyget_leng  (void)
3753         return yyleng;
3756 /** Get the current token.
3757  * 
3758  */
3760 char *yyget_text  (void)
3762         return yytext;
3765 /** Set the current line number.
3766  * @param _line_number line number
3767  * 
3768  */
3769 void yyset_lineno (int  _line_number )
3771     
3772     yylineno = _line_number;
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  */
3781 void yyset_in (FILE *  _in_str )
3783         yyin = _in_str ;
3786 void yyset_out (FILE *  _out_str )
3788         yyout = _out_str ;
3791 int yyget_debug  (void)
3793         return yy_flex_debug;
3796 void yyset_debug (int  _bdebug )
3798         yy_flex_debug = _bdebug ;
3801 static int yy_init_globals (void)
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      */
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;
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
3826     /* For future reference: Set errno on error, since we are called by
3827      * yylex_init()
3828      */
3829     return 0;
3832 /* yylex_destroy is for both reentrant and non-reentrant scanners. */
3833 int yylex_destroy  (void)
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         }
3843         /* Destroy the stack itself. */
3844         yyfree((yy_buffer_stack) );
3845         (yy_buffer_stack) = NULL;
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( );
3851     return 0;
3855  * Internal utility routines.
3856  */
3858 #ifndef yytext_ptr
3859 static void yy_flex_strncpy (char* s1, const char * s2, int n )
3861                 
3862         int i;
3863         for ( i = 0; i < n; ++i )
3864                 s1[i] = s2[i];
3866 #endif
3868 #ifdef YY_NEED_STRLEN
3869 static int yy_flex_strlen (const char * s )
3871         int n;
3872         for ( n = 0; s[n]; ++n )
3873                 ;
3875         return n;
3877 #endif
3879 void *yyalloc (yy_size_t  size )
3881                         return malloc(size);
3884 void *yyrealloc  (void * ptr, yy_size_t  size )
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);
3897 void yyfree (void * ptr )
3899                         free( (char *) ptr );   /* see yyrealloc() for (char *) cast */
3902 #define YYTABLES_NAME "yytables"
3904 /* second stage lexer */
3905 int yylex(void)
3907         int token;
3909 repeat:
3910         token = yylex1();
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         }
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);
3932         prev_prev_token = prev_token;
3933         prev_token = token;
3935         return token;
3938 static char *expand_token(const char *in, size_t n)
3940         char *out;
3941         int c;
3942         char c2;
3943         const char *rest, *end;
3945         new_string();
3946         append_string(in, n);
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         }
3958         rest = text;
3959         out = expand_one_token(&rest);
3961         /* push back unused characters to the input stream */
3962         end = rest + strlen(rest);
3963         while (end > rest)
3964                 unput(*--end);
3966         free(text);
3968         return out;
3971 static void append_expanded_string(const char *str)
3973         const char *end;
3974         char *res;
3976         str++;
3978         res = expand_dollar(&str);
3980         /* push back unused characters to the input stream */
3981         end = str + strlen(str);
3982         while (end > str)
3983                 unput(*--end);
3985         append_string(res, strlen(res));
3987         free(res);
3990 void zconf_starthelp(void)
3992         new_string();
3993         last_ts = first_ts = 0;
3994         BEGIN(HELP);
3997 static void zconf_endhelp(void)
3999         yylval.string = text;
4000         BEGIN(INITIAL);
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  */
4011 FILE *zconf_fopen(const char *name)
4013         char *env, fullname[PATH_MAX+1];
4014         FILE *f;
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;
4028 void zconf_initscan(const char *name)
4030         yyin = zconf_fopen(name);
4031         if (!yyin) {
4032                 fprintf(stderr, "can't find file %s\n", name);
4033                 exit(1);
4034         }
4036         current_buf = xmalloc(sizeof(*current_buf));
4037         memset(current_buf, 0, sizeof(*current_buf));
4039         current_file = file_lookup(name);
4040         yylineno = 1;
4043 void zconf_nextfile(const char *name)
4045         struct file *iter;
4046         struct file *file = file_lookup(name);
4047         struct buffer *buf = xmalloc(sizeof(*buf));
4048         memset(buf, 0, sizeof(*buf));
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;
4061         current_file->lineno = yylineno;
4062         file->parent = current_file;
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         }
4080         yylineno = 1;
4081         current_file = file;
4084 void zconf_nextfiles(const char *wildcard)
4086         glob_t g;
4087         char **w;
4088         int i;
4090         if (glob(wildcard, 0, NULL, &g) != 0) {
4091                 return;
4092         }
4093         if (g.gl_pathv == NULL) {
4094                 globfree(&g);
4095                 return;
4096         }
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         }
4107         globfree(&g);
4110 static void zconf_endfile(void)
4112         struct buffer *parent;
4114         current_file = current_file->parent;
4115         if (current_file)
4116                 yylineno = current_file->lineno;
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;
4128 int zconf_lineno(void)
4130         return current_pos.lineno;
4133 const char *zconf_curname(void)
4135         return current_pos.file ? current_pos.file->name : "<none>";