]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - util/configlexer.c
Vendor import of Unbound 1.8.0.
[FreeBSD/FreeBSD.git] / util / configlexer.c
1 #include "config.h"
2 #include "util/configyyrename.h"
3
4 #line 3 "<stdout>"
5
6 #define  YY_INT_ALIGNED short int
7
8 /* A lexical scanner generated by flex */
9
10 #define FLEX_SCANNER
11 #define YY_FLEX_MAJOR_VERSION 2
12 #define YY_FLEX_MINOR_VERSION 6
13 #define YY_FLEX_SUBMINOR_VERSION 1
14 #if YY_FLEX_SUBMINOR_VERSION > 0
15 #define FLEX_BETA
16 #endif
17
18 /* First, we deal with  platform-specific or compiler-specific issues. */
19
20 /* begin standard C headers. */
21 #include <stdio.h>
22 #include <string.h>
23 #include <errno.h>
24 #include <stdlib.h>
25
26 /* end standard C headers. */
27
28 /* flex integer type definitions */
29
30 #ifndef FLEXINT_H
31 #define FLEXINT_H
32
33 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
34
35 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
36
37 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
38  * if you want the limit (max/min) macros for int types. 
39  */
40 #ifndef __STDC_LIMIT_MACROS
41 #define __STDC_LIMIT_MACROS 1
42 #endif
43
44 #include <inttypes.h>
45 typedef int8_t flex_int8_t;
46 typedef uint8_t flex_uint8_t;
47 typedef int16_t flex_int16_t;
48 typedef uint16_t flex_uint16_t;
49 typedef int32_t flex_int32_t;
50 typedef uint32_t flex_uint32_t;
51 #else
52 typedef signed char flex_int8_t;
53 typedef short int flex_int16_t;
54 typedef int flex_int32_t;
55 typedef unsigned char flex_uint8_t; 
56 typedef unsigned short int flex_uint16_t;
57 typedef unsigned int flex_uint32_t;
58
59 /* Limits of integral types. */
60 #ifndef INT8_MIN
61 #define INT8_MIN               (-128)
62 #endif
63 #ifndef INT16_MIN
64 #define INT16_MIN              (-32767-1)
65 #endif
66 #ifndef INT32_MIN
67 #define INT32_MIN              (-2147483647-1)
68 #endif
69 #ifndef INT8_MAX
70 #define INT8_MAX               (127)
71 #endif
72 #ifndef INT16_MAX
73 #define INT16_MAX              (32767)
74 #endif
75 #ifndef INT32_MAX
76 #define INT32_MAX              (2147483647)
77 #endif
78 #ifndef UINT8_MAX
79 #define UINT8_MAX              (255U)
80 #endif
81 #ifndef UINT16_MAX
82 #define UINT16_MAX             (65535U)
83 #endif
84 #ifndef UINT32_MAX
85 #define UINT32_MAX             (4294967295U)
86 #endif
87
88 #endif /* ! C99 */
89
90 #endif /* ! FLEXINT_H */
91
92 /* TODO: this is always defined, so inline it */
93 #define yyconst const
94
95 #if defined(__GNUC__) && __GNUC__ >= 3
96 #define yynoreturn __attribute__((__noreturn__))
97 #else
98 #define yynoreturn
99 #endif
100
101 /* Returned upon end-of-file. */
102 #define YY_NULL 0
103
104 /* Promotes a possibly negative, possibly signed char to an unsigned
105  * integer for use as an array index.  If the signed char is negative,
106  * we want to instead treat it as an 8-bit unsigned char, hence the
107  * double cast.
108  */
109 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
110
111 /* Enter a start condition.  This macro really ought to take a parameter,
112  * but we do it the disgusting crufty way forced on us by the ()-less
113  * definition of BEGIN.
114  */
115 #define BEGIN (yy_start) = 1 + 2 *
116
117 /* Translate the current start state into a value that can be later handed
118  * to BEGIN to return to the state.  The YYSTATE alias is for lex
119  * compatibility.
120  */
121 #define YY_START (((yy_start) - 1) / 2)
122 #define YYSTATE YY_START
123
124 /* Action number for EOF rule of a given start state. */
125 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
126
127 /* Special action meaning "start processing a new file". */
128 #define YY_NEW_FILE yyrestart(yyin  )
129
130 #define YY_END_OF_BUFFER_CHAR 0
131
132 /* Size of default input buffer. */
133 #ifndef YY_BUF_SIZE
134 #ifdef __ia64__
135 /* On IA-64, the buffer size is 16k, not 8k.
136  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
137  * Ditto for the __ia64__ case accordingly.
138  */
139 #define YY_BUF_SIZE 32768
140 #else
141 #define YY_BUF_SIZE 16384
142 #endif /* __ia64__ */
143 #endif
144
145 /* The state buf must be large enough to hold one state per character in the main buffer.
146  */
147 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
148
149 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
150 #define YY_TYPEDEF_YY_BUFFER_STATE
151 typedef struct yy_buffer_state *YY_BUFFER_STATE;
152 #endif
153
154 #ifndef YY_TYPEDEF_YY_SIZE_T
155 #define YY_TYPEDEF_YY_SIZE_T
156 typedef size_t yy_size_t;
157 #endif
158
159 extern int yyleng;
160
161 extern FILE *yyin, *yyout;
162
163 #define EOB_ACT_CONTINUE_SCAN 0
164 #define EOB_ACT_END_OF_FILE 1
165 #define EOB_ACT_LAST_MATCH 2
166
167     #define YY_LESS_LINENO(n)
168     #define YY_LINENO_REWIND_TO(ptr)
169     
170 /* Return all but the first "n" matched characters back to the input stream. */
171 #define yyless(n) \
172         do \
173                 { \
174                 /* Undo effects of setting up yytext. */ \
175         yy_size_t yyless_macro_arg = (n); \
176         YY_LESS_LINENO(yyless_macro_arg);\
177                 *yy_cp = (yy_hold_char); \
178                 YY_RESTORE_YY_MORE_OFFSET \
179                 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
180                 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
181                 } \
182         while ( 0 )
183
184 #define unput(c) yyunput( c, (yytext_ptr)  )
185
186 #ifndef YY_STRUCT_YY_BUFFER_STATE
187 #define YY_STRUCT_YY_BUFFER_STATE
188 struct yy_buffer_state
189         {
190         FILE *yy_input_file;
191
192         char *yy_ch_buf;                /* input buffer */
193         char *yy_buf_pos;               /* current position in input buffer */
194
195         /* Size of input buffer in bytes, not including room for EOB
196          * characters.
197          */
198         int yy_buf_size;
199
200         /* Number of characters read into yy_ch_buf, not including EOB
201          * characters.
202          */
203         int yy_n_chars;
204
205         /* Whether we "own" the buffer - i.e., we know we created it,
206          * and can realloc() it to grow it, and should free() it to
207          * delete it.
208          */
209         int yy_is_our_buffer;
210
211         /* Whether this is an "interactive" input source; if so, and
212          * if we're using stdio for input, then we want to use getc()
213          * instead of fread(), to make sure we stop fetching input after
214          * each newline.
215          */
216         int yy_is_interactive;
217
218         /* Whether we're considered to be at the beginning of a line.
219          * If so, '^' rules will be active on the next match, otherwise
220          * not.
221          */
222         int yy_at_bol;
223
224     int yy_bs_lineno; /**< The line count. */
225     int yy_bs_column; /**< The column count. */
226     
227         /* Whether to try to fill the input buffer when we reach the
228          * end of it.
229          */
230         int yy_fill_buffer;
231
232         int yy_buffer_status;
233
234 #define YY_BUFFER_NEW 0
235 #define YY_BUFFER_NORMAL 1
236         /* When an EOF's been seen but there's still some text to process
237          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
238          * shouldn't try reading from the input source any more.  We might
239          * still have a bunch of tokens to match, though, because of
240          * possible backing-up.
241          *
242          * When we actually see the EOF, we change the status to "new"
243          * (via yyrestart()), so that the user can continue scanning by
244          * just pointing yyin at a new input file.
245          */
246 #define YY_BUFFER_EOF_PENDING 2
247
248         };
249 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
250
251 /* Stack of input buffers. */
252 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
253 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
254 static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */
255
256 /* We provide macros for accessing buffer states in case in the
257  * future we want to put the buffer states in a more general
258  * "scanner state".
259  *
260  * Returns the top of the stack, or NULL.
261  */
262 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
263                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
264                           : NULL)
265
266 /* Same as previous macro, but useful when we know that the buffer stack is not
267  * NULL or when we need an lvalue. For internal use only.
268  */
269 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
270
271 /* yy_hold_char holds the character lost when yytext is formed. */
272 static char yy_hold_char;
273 static int yy_n_chars;          /* number of characters read into yy_ch_buf */
274 int yyleng;
275
276 /* Points to current character in buffer. */
277 static char *yy_c_buf_p = NULL;
278 static int yy_init = 0;         /* whether we need to initialize */
279 static int yy_start = 0;        /* start state number */
280
281 /* Flag which is used to allow yywrap()'s to do buffer switches
282  * instead of setting up a fresh yyin.  A bit of a hack ...
283  */
284 static int yy_did_buffer_switch_on_eof;
285
286 void yyrestart (FILE *input_file  );
287 void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
288 YY_BUFFER_STATE yy_create_buffer (FILE *file,int size  );
289 void yy_delete_buffer (YY_BUFFER_STATE b  );
290 void yy_flush_buffer (YY_BUFFER_STATE b  );
291 void yypush_buffer_state (YY_BUFFER_STATE new_buffer  );
292 void yypop_buffer_state (void );
293
294 static void yyensure_buffer_stack (void );
295 static void yy_load_buffer_state (void );
296 static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file  );
297
298 #define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
299
300 YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size  );
301 YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str  );
302 YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len  );
303
304 void *yyalloc (yy_size_t  );
305 void *yyrealloc (void *,yy_size_t  );
306 void yyfree (void *  );
307
308 #define yy_new_buffer yy_create_buffer
309
310 #define yy_set_interactive(is_interactive) \
311         { \
312         if ( ! YY_CURRENT_BUFFER ){ \
313         yyensure_buffer_stack (); \
314                 YY_CURRENT_BUFFER_LVALUE =    \
315             yy_create_buffer(yyin,YY_BUF_SIZE ); \
316         } \
317         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
318         }
319
320 #define yy_set_bol(at_bol) \
321         { \
322         if ( ! YY_CURRENT_BUFFER ){\
323         yyensure_buffer_stack (); \
324                 YY_CURRENT_BUFFER_LVALUE =    \
325             yy_create_buffer(yyin,YY_BUF_SIZE ); \
326         } \
327         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
328         }
329
330 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
331
332 /* Begin user sect3 */
333
334 typedef unsigned char YY_CHAR;
335
336 FILE *yyin = NULL, *yyout = NULL;
337
338 typedef int yy_state_type;
339
340 extern int yylineno;
341
342 int yylineno = 1;
343
344 extern char *yytext;
345 #ifdef yytext_ptr
346 #undef yytext_ptr
347 #endif
348 #define yytext_ptr yytext
349
350 static yy_state_type yy_get_previous_state (void );
351 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
352 static int yy_get_next_buffer (void );
353 static void yynoreturn yy_fatal_error (yyconst char* msg  );
354
355 /* Done after the current pattern has been matched and before the
356  * corresponding action - sets up yytext.
357  */
358 #define YY_DO_BEFORE_ACTION \
359         (yytext_ptr) = yy_bp; \
360         (yytext_ptr) -= (yy_more_len); \
361         yyleng = (int) (yy_cp - (yytext_ptr)); \
362         (yy_hold_char) = *yy_cp; \
363         *yy_cp = '\0'; \
364         (yy_c_buf_p) = yy_cp;
365
366 #define YY_NUM_RULES 278
367 #define YY_END_OF_BUFFER 279
368 /* This struct is not used in this scanner,
369    but its presence is necessary. */
370 struct yy_trans_info
371         {
372         flex_int32_t yy_verify;
373         flex_int32_t yy_nxt;
374         };
375 static yyconst flex_int16_t yy_accept[2750] =
376     {   0,
377         1,    1,  260,  260,  264,  264,  268,  268,  272,  272,
378         1,    1,  279,  276,    1,  258,  258,  277,    2,  276,
379       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
380       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
381       276,  277,  260,  261,  261,  262,  277,  264,  265,  265,
382       266,  277,  271,  268,  269,  269,  270,  277,  272,  273,
383       273,  274,  277,  275,  259,    2,  263,  275,  277,  276,
384         0,    1,    2,    2,    2,    2,  276,  276,  276,  276,
385       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
386       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
387
388       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
389       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
390       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
391       276,  276,  276,  276,  276,  276,  276,  276,  276,  260,
392         0,  264,    0,  271,    0,  268,  272,    0,  275,    0,
393         2,    2,  275,  276,  276,  276,  276,  276,  276,  276,
394       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
395       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
396       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
397       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
398
399       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
400       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
401       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
402       276,  276,  276,  276,  276,  276,  275,  276,  276,  276,
403       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
404       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
405       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
406       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
407       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
408       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
409
410       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
411       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
412       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
413       109,  276,  276,  276,  276,  276,  276,  276,  275,  276,
414       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
415       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
416       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
417       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
418       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
419       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
420
421       276,  276,  276,  276,  276,  276,  276,   91,  276,  276,
422       276,  276,  276,  276,    8,  276,  276,  276,  276,  276,
423       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
424       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
425       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
426       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
427       276,  276,  276,  276,  276,  276,  276,  114,  276,  275,
428       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
429       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
430       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
431
432       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
433       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
434       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
435       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
436       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
437       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
438       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
439       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
440       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
441       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
442
443       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
444       276,  276,  276,  276,  275,  276,  276,  276,  276,  276,
445       276,  276,  276,  276,  276,  276,   51,  276,  276,  276,
446       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
447       203,  276,   14,   15,  276,   18,   17,  276,  276,  276,
448       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
449       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
450       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
451       276,  276,  276,  276,  276,  276,  276,  276,  108,  276,
452       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
453
454       276,  276,  276,  276,  276,  188,  276,  276,  276,  276,
455       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
456         3,  276,  276,  276,  276,  276,  276,  276,  276,  276,
457       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
458       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
459       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
460       276,  276,  276,  276,  276,  276,  276,  276,  276,  275,
461       276,  276,  276,  276,  276,  276,  276,  251,  276,  276,
462       250,  276,  276,  276,  276,  276,  276,  276,  276,  276,
463       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
464
465       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
466       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
467       276,  276,  276,  267,  276,  276,  276,  276,  276,  276,
468       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
469       276,  276,  276,  276,  276,  276,   54,  276,  227,  276,
470       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
471        55,  276,  276,  276,  276,  276,  276,  276,  276,  276,
472       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
473       276,  177,  276,  276,  276,  276,  276,  276,  276,  276,
474       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
475
476       276,   20,  276,  276,  276,  276,  276,  276,  276,  276,
477       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
478       276,  276,  276,  276,  276,  276,  129,  276,  276,  267,
479       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
480       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
481       276,  276,  276,  276,  276,  276,  276,  233,  276,  276,
482       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
483       150,  276,  276,  276,  276,  276,  276,  276,  276,  276,
484       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
485       276,  276,  128,  276,  276,  276,  276,  276,  276,  276,
486
487       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
488       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
489       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
490        89,  276,  276,  276,  276,  276,  276,  276,  276,  276,
491       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
492       276,  276,  276,  276,   31,  276,  276,  276,  276,  276,
493       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
494       276,  276,   32,  276,  276,  276,  276,  276,  276,  276,
495       276,  276,  276,  276,   52,  276,  276,  276,  276,  276,
496       276,  276,  276,  276,  107,  276,  276,  276,  276,  276,
497
498       106,  276,  276,  276,  276,  276,  276,  276,  276,  276,
499       276,  276,  276,  276,  276,   53,  276,  276,  276,  276,
500       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
501       276,  276,  276,  276,  276,  276,  276,  151,  276,  276,
502       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
503       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
504       276,  276,  276,  276,  276,   42,  276,  276,  276,  276,
505       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
506       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
507       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
508
509       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
510       276,  218,  276,  276,  276,  276,  276,  276,  276,  276,
511       276,  276,  276,  276,  276,  276,   46,  276,   47,  276,
512       276,  276,  276,   92,  276,   93,  276,  276,  276,  276,
513        90,  276,  276,  276,  276,  276,  276,  276,  276,  276,
514       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
515       276,  276,  276,  276,  276,    7,  276,  276,  276,  276,
516       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
517       276,  276,  276,  276,  196,  276,  276,  276,  276,  131,
518       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
519
520       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
521       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
522       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
523       276,  276,  276,  276,  276,  276,  276,  276,   43,  276,
524       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
525       276,  276,  169,  276,  168,  276,  276,  276,  276,  276,
526       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
527       276,  276,  276,  276,  276,  276,  276,  276,   16,  276,
528       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
529       276,   56,  276,  276,  276,  276,  276,  276,  276,  276,
530
531       176,  276,  276,  276,  276,  276,   95,  276,   94,  276,
532       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
533       276,  276,  276,  276,  276,  276,  161,  276,  276,  276,
534       276,  276,  276,  276,  276,  115,  276,  276,  276,  276,
535       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
536       276,  276,  276,  276,  276,   74,  276,  276,  276,  276,
537       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
538       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
539       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
540       276,  276,  276,  276,   78,  276,  276,  276,  276,  276,
541
542       276,  276,  276,  276,  276,  276,  276,  276,   50,  276,
543       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
544       276,  276,  276,  276,  276,  276,  164,  165,  276,  276,
545       228,  276,  276,  276,  276,  276,  276,  276,  276,  276,
546       276,    6,  276,  276,  276,  276,  276,  276,  276,  276,
547       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
548       276,  276,  231,  276,  276,  276,  252,  276,  276,  276,
549       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
550       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
551       276,  276,  276,  276,  276,   40,  276,  276,  276,  276,
552
553       276,  276,  276,  276,  157,  276,  276,  276,  110,  276,
554       276,  276,  276,  276,  276,  276,  276,  276,  276,  181,
555       276,  158,  276,  276,  276,  193,  276,  276,  276,  276,
556       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
557       276,  276,   41,  276,  276,  276,  276,  276,  276,  276,
558       112,  100,  276,  101,  276,  276,  276,   99,  276,  276,
559       276,  276,  276,  276,  276,  276,  126,  276,  276,  276,
560       276,  276,  276,  276,  276,  276,  276,  276,  217,  276,
561       276,  276,  276,  276,  276,  276,  276,  159,  276,  276,
562       276,  276,  276,  162,  276,  167,  276,  276,  276,  192,
563
564       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
565       276,  276,  276,   88,  276,  276,  276,  276,  276,  276,
566       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
567       276,  276,  276,  276,  276,   48,  276,  276,  276,   25,
568       276,  276,  276,  276,  276,  276,  276,  276,   19,  276,
569       276,  276,  276,   26,   35,  276,  136,  276,  276,  276,
570       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
571       276,  276,  276,  276,  276,   63,   65,  276,  276,  276,
572       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
573       235,  276,  276,  276,  204,  276,  276,  276,  276,  276,
574
575       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
576       276,  102,  276,  276,  276,  276,  276,  276,  276,  276,
577       276,  125,  276,  276,  276,  276,  276,  276,  276,  276,
578       276,  276,  276,  276,  276,  276,  276,  246,  276,  276,
579       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
580       276,  276,  276,  130,  276,  276,  276,  276,  276,  276,
581       276,  276,  276,  276,  276,  276,  276,  187,  276,  276,
582       276,  276,  276,  276,  276,  276,  255,  276,  276,  276,
583       276,  276,  276,  276,  276,  276,  147,  276,  276,  276,
584       276,  276,  276,  276,   96,  276,  276,  276,  276,  276,
585
586       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
587       276,  142,  276,  152,  276,  276,  276,  276,  276,  118,
588       276,  276,  276,  276,  276,   84,  276,  276,  276,  276,
589       179,  276,  276,  276,  276,  276,  276,  194,  276,  276,
590       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
591       209,  276,  276,  276,  276,  276,  276,  276,  111,  276,
592       276,  276,  276,  276,  276,  276,  276,  276,  276,  146,
593       276,  276,  276,  276,  276,   66,   67,  276,  276,  276,
594       276,  276,   49,  276,  276,  276,  276,  276,   73,  153,
595       276,  170,  276,  197,  276,  163,  229,  276,  276,  276,
596
597        59,  276,  155,  276,  276,  276,  276,  276,    9,  276,
598       276,  276,   87,  276,  276,  276,  276,  222,  276,  276,
599       276,  178,  276,  276,  276,  276,  276,  276,  276,  276,
600       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
601       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
602       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
603       276,  276,  276,  145,  276,  276,  276,  276,  276,  276,
604       276,  276,  276,  276,  132,  276,  234,  276,  276,  276,
605       276,  208,  276,  276,  276,  276,  276,  276,  276,  276,
606       189,  276,  276,  276,  276,  276,  276,  276,  276,  276,
607
608       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
609       276,  276,  276,  276,  276,  276,  276,  276,  249,  276,
610       154,  276,  276,  276,  276,   58,   60,  276,  276,  276,
611       276,  276,  276,  276,   86,  276,  276,  276,  276,  220,
612       276,  276,  276,  230,  276,  276,  276,  276,  276,  276,
613       276,  183,   33,   27,   29,  276,  276,  276,  276,  276,
614       276,  276,  276,   34,   28,   30,  276,  276,  276,  276,
615       276,  276,   83,  276,  276,  276,  276,  276,  276,  276,
616       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
617       185,  182,  276,  276,  276,  276,  276,  276,  276,  276,
618
619       276,  276,  276,  276,  276,  276,   57,  276,  276,  113,
620       103,  276,  276,  276,  276,  276,  276,  276,  276,  127,
621        13,  276,  276,  276,  276,  276,  276,  276,  276,  276,
622       244,  276,  247,  276,  276,  276,  276,  276,  276,  276,
623        12,  276,  276,   21,  276,  276,  276,  226,  276,  276,
624       276,  232,  276,   61,  276,  191,  276,  276,  184,  276,
625       276,  276,  276,  276,  276,   22,  276,  276,  276,  276,
626       276,  276,  276,  276,  276,  276,  276,  141,  140,  276,
627       276,  276,  276,  276,  276,  276,  276,  276,  186,  180,
628       276,  195,  276,  276,  236,  276,  276,  276,  276,  276,
629
630       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
631       276,  276,  276,  276,  276,  276,  276,  276,   68,  276,
632       276,  276,  221,  276,  276,  276,  276,  166,  276,  190,
633       276,  276,  276,  276,  276,  276,  276,  276,  253,  254,
634       138,   62,  276,  276,  148,  276,  276,   97,   98,  276,
635       276,  276,  133,  276,  135,  276,  171,  276,  276,  276,
636       139,  276,  276,  198,  276,  276,  276,  276,  276,  276,
637       276,  120,  276,  276,  276,  276,  276,  276,  276,  276,
638       276,  276,  276,  205,  276,  276,  276,   23,  276,  276,
639       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
640
641       172,  276,  276,  219,  276,  248,  276,  276,  276,   44,
642       276,  276,  276,  276,    4,  276,  276,  119,  276,  276,
643       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
644       276,  276,  201,   36,   37,  276,  276,  276,  276,  276,
645       276,  276,  237,  276,  276,  276,  276,  276,  276,  207,
646       276,  276,  276,  175,  276,  276,  276,  276,  276,  276,
647       276,  276,  276,   71,  276,   45,  225,  276,  202,  276,
648       276,   11,  276,  276,  276,  276,  276,  276,  276,  173,
649        75,  276,   39,  276,  276,  276,  276,  276,  276,  144,
650       276,  276,  276,  276,  276,  122,  276,  276,  276,  276,
651
652       276,  276,  276,  276,  276,  206,  116,  276,  276,  104,
653       105,  276,  276,  276,   77,   81,   76,  276,   69,  276,
654       276,  276,   10,  276,  276,  276,  223,  276,  276,  257,
655        38,  276,  276,  276,  143,  276,  276,  276,  276,  276,
656       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
657       276,  276,  276,   82,   80,  276,   70,  245,  276,  276,
658       276,  160,  276,  276,  276,  174,  276,  276,  276,  276,
659       276,  276,  134,   64,  276,  276,  276,  276,  276,  238,
660       276,  276,  276,  276,  276,  276,  276,  117,  276,   79,
661       123,  124,   72,  276,  224,  276,  137,  276,  276,  276,
662
663       276,  200,  276,  276,  276,  276,  276,  276,  276,  276,
664       276,  276,  276,  276,  276,  276,  149,  276,  276,  276,
665       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
666       276,  276,  276,  276,  276,  276,   85,  276,  199,  276,
667       216,  242,  276,  276,  276,  276,  276,  276,  276,  276,
668       276,  276,    5,  276,  276,  276,  243,  276,  276,  276,
669       276,  276,  276,  276,  276,   24,  276,  276,  276,  276,
670       276,  276,  276,  276,  276,  276,  276,  276,  276,  121,
671       276,  276,  276,  276,  276,  276,  276,  276,  276,  156,
672       276,  276,  276,  276,  276,  276,  276,  276,  276,  239,
673
674       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
675       276,  276,  276,  276,  276,  276,  276,  256,  276,  276,
676       212,  276,  276,  276,  276,  276,  240,  276,  276,  276,
677       276,  276,  276,  241,  276,  276,  276,  210,  276,  213,
678       214,  276,  276,  276,  276,  276,  211,  215,    0
679     } ;
680
681 static yyconst YY_CHAR yy_ec[256] =
682     {   0,
683         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
684         1,    1,    4,    1,    1,    1,    1,    1,    1,    1,
685         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
686         1,    2,    1,    5,    6,    1,    1,    1,    7,    1,
687         1,    1,    1,    1,    8,    1,    1,    1,    9,    1,
688        10,   11,    1,   12,    1,    1,    1,   13,    1,    1,
689         1,    1,    1,    1,   14,   15,   16,   17,   18,   19,
690        20,   21,   22,   23,   24,   25,   26,   27,   28,   29,
691        30,   31,   32,   33,   34,   35,   36,   37,   38,   39,
692         1,   40,    1,    1,    1,    1,   41,   42,   43,   44,
693
694        45,   46,   47,   48,   49,   50,   51,   52,   53,   54,
695        55,   56,   57,   58,   59,   60,   61,   62,   63,   64,
696        65,   66,    1,    1,    1,    1,    1,    1,    1,    1,
697         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
698         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
699         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
700         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
701         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
702         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
703         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
704
705         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
706         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
707         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
708         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
709         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
710         1,    1,    1,    1,    1
711     } ;
712
713 static yyconst YY_CHAR yy_meta[67] =
714     {   0,
715         1,    2,    3,    4,    5,    1,    6,    1,    1,    1,
716         1,    1,    7,    1,    1,    1,    1,    1,    1,    1,
717         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
718         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
719         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
720         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
721         1,    1,    1,    1,    1,    1
722     } ;
723
724 static yyconst flex_uint16_t yy_base[2764] =
725     {   0,
726         0,    0,   64,   67,   70,   72,   78,   84,   89,   92,
727       131,  137,  352,  307,   96, 7896, 7896, 7896,  109,  171,
728        85,  142,  215,   83,  117,  152,  207,   50,  110,   75,
729       167,  231,  112,  275,  121,  259,  323,  243,  291,  320,
730       170,  368,  289, 7896, 7896, 7896,  104,  288, 7896, 7896,
731      7896,  147,  286,  289, 7896, 7896, 7896,  305,  239, 7896,
732      7896, 7896,  160,  210, 7896,  372, 7896,  177,  382,  201,
733       386,  115,    0,  390,    0,    0,  160,  162,  199,  204,
734       188,  169,  303,  222,  256,  248,  377,  369,  254,  226,
735       313,  271,  365,  382,  296,  327,  391,  392,  384,  420,
736
737       408,  386,  424,  434,  409,  417,  403,  317,  425,  435,
738       432,  443,  453,  469,  456,  470,  458,  476,  461,  503,
739       467,  468,  509,  486,  212,  498,  490,  497,  504,  502,
740       514,  517,  530,  528,  541,  539,  534,  558,  531,  190,
741       164,  138,  231,  122,  592,  158,   79,  277,   66,  600,
742       604,    0,  572,  577,  561,  583,  585,  598,  576,  597,
743       588,  593,  611,  599,  609,  622,  624,  620,  340,  638,
744       682,  643,  633,  634,  637,  645,  660,  649,  662,  663,
745       666,  680,  655,  693,  694,  726,  701,  704,  718,  627,
746       687,  710,  635,  715,  722,  729,  720,  745,  731,  753,
747
748       755,  750,  739,  754,  747,  758,  748,  761,  763,  773,
749       774,  771,  777,  772,  784,  788,  670,  780,  800,  790,
750       817,  794,  816,  815,  828,  829,  807,  830,  819,  836,
751       492,  833,  835,  846,  827,  834,  820,  849,  844,  847,
752       864,  857,  843,  845,  876,  877,  888,  870,  872,  871,
753       873,  893,  892,  899,  903,  909,  173,  900,  920,  922,
754       895,  916,  930,  935,  915,  898,  926,  946,  932,  948,
755       953,  950,  951,  936,  947,  943,  958,  967,  973,  966,
756       982,  970,  989,  981,  998,  975,  977, 1002,  994, 1025,
757      1003, 1004, 1014, 1032, 1011, 1028, 1054,  712, 1020, 1046,
758
759      1033, 1049, 1059, 1027, 1060, 1073, 1062, 1083, 1067, 1072,
760      1076, 1082, 1087, 1078, 1102, 1113, 1106, 1115, 1114, 1108,
761      1129, 1103, 1133, 1131, 1152, 1200, 1137, 1141, 1139, 1153,
762      7896, 1166, 1156, 1249, 1163, 1177, 1207, 1110, 1187, 1172,
763      1183, 1197, 1190, 1220, 1205, 1202, 1212, 1250, 1217, 1235,
764      1239, 1242, 1266, 1245, 1243, 1253, 1262, 1269, 1280, 1272,
765      1278, 1298, 1310, 1284, 1286, 1290, 1300, 1316, 1308, 1315,
766      1321, 1305, 1324, 1326, 1338, 1346, 1345, 1351, 1353, 1349,
767      1333, 1343, 1363, 1370, 1372, 1367, 1361, 1373, 1393, 1379,
768      1401, 1380, 1399, 1390, 1388, 1406, 1407, 1413, 1311, 1396,
769
770      1400, 1419, 1417, 1423, 1430, 1420, 1436, 7896, 1451, 1432,
771      1434, 1445, 1440, 1443, 7896, 1456, 1446, 1457, 1461, 1468,
772      1470, 1480, 1472, 1481, 1495, 1482, 1488, 1499, 1496, 1500,
773      1484, 1493, 1520, 1516, 1513, 1525, 1515, 1519, 1565, 1529,
774      1535, 1532, 1526, 1551, 1556, 1563, 1555, 1569, 1559, 1580,
775      1604, 1587, 1602, 1590, 1612, 1594, 1614, 1607, 1608, 1611,
776      1542, 1601, 1628, 1616, 1629, 1630, 1638, 7896, 1642, 1650,
777      1632, 1646, 1647, 1649, 1652, 1655, 1665, 1657, 1667, 1684,
778      1679, 1663, 1669, 1688, 1672, 1689, 1695, 1676, 1697, 1705,
779      1714, 1693, 1717, 1713, 1704, 1719, 1710, 1721, 1734, 1743,
780
781      1718, 1744, 1737, 1732, 1741, 1752, 1731, 1746, 1758, 1748,
782      1759, 1766, 1767, 1760, 1761, 1778, 1777, 1794, 1782, 1795,
783      1785, 1793, 1808, 1787, 1804, 1820, 1807, 1814, 1822, 1827,
784      1833, 1834, 1829, 1824, 1825, 1850, 1837, 1858, 1853, 1851,
785      1856, 1875, 1865, 1870, 1876, 1869, 1863, 1872, 1892, 1883,
786      1896, 1890, 1899, 1912, 1898, 1901, 1902, 1910, 1897, 1900,
787      1913, 1929, 1935, 1930, 1928, 1951, 1943, 1925, 1952, 1934,
788      1956, 1945, 1946, 1948, 1949, 1962, 1961, 1975, 1971, 1972,
789      1976, 1977, 1985, 1990, 1940, 1992, 1988, 1989, 1991, 2003,
790      2002, 2004, 2018, 2019, 2012, 2024, 2037, 2021, 2017, 2045,
791
792      2027, 2039, 2029, 2052, 2055, 2054, 2057, 2066, 2056, 2068,
793      2064, 2076, 2069, 2080, 2089, 2096, 2093, 2095, 2101, 2091,
794      2098, 2087, 2104, 2129, 2113, 2118, 7896, 2115, 2116, 2121,
795      2128, 2135, 2126, 2151, 2142, 2145, 2131, 2139, 2140, 2187,
796      7896, 2148, 7896, 7896, 2153, 7896, 7896, 2174, 2167, 2168,
797      2177, 2185, 2188, 2191, 2193, 2178, 2190, 2236, 2217, 2203,
798      2214, 2220, 2239, 2231, 2246, 2234, 2241, 2249, 2247, 2257,
799      2266, 2276, 2273, 2267, 2284, 2269, 2272, 2282, 2294, 2277,
800      2283, 2300, 2296, 2308, 2280, 2321, 2306, 2330, 7896, 2327,
801      2313, 2336, 2331, 2333, 2329, 2335, 2324, 2340, 2348, 2319,
802
803      2344, 2341, 2365, 2354, 2357, 7896, 2369, 2370, 2375, 2374,
804      2382, 2381, 2377, 2362, 2389, 2384, 2396, 2410, 2371, 2417,
805      7896, 2422, 2394, 2404, 2427, 2408, 2413, 2414, 2416, 2430,
806      2436, 2435, 2440, 2449, 2453, 2455, 2457, 2451, 2459, 2465,
807      2460, 2476, 2475, 2463, 2479, 2484, 2485, 2467, 2487, 2498,
808      2495, 2518, 2497, 2523, 2515, 2501, 2521, 2494, 2508, 2526,
809      2528, 2534, 2512, 2525, 2545, 2531, 2543, 2544, 2554, 2549,
810      2548, 2565, 2566, 2552, 2553, 2572, 2564, 7896, 2558, 2570,
811      7896, 2568, 2581, 2627, 2586, 2594, 2591, 2592, 2608, 2607,
812      2610, 2615, 2614, 2631, 2626, 2619, 2637, 2651, 2655, 2647,
813
814      2641, 2657, 2663, 2650, 2677, 2673,  993, 2681, 2667, 2674,
815      2719, 2668, 2694, 2683, 2679, 2684, 2704, 2695, 2688, 2713,
816      2715, 2714, 2724, 7896, 2710, 2740, 2729, 2722, 2749, 2752,
817      2731, 2744, 2754, 2758, 2769, 2759, 2764, 2773, 2762, 2779,
818      2767, 2776, 2789, 2790, 2786, 2802, 7896, 2791, 7896, 2794,
819      2785, 2805, 2809, 2806, 2817, 2825, 2818, 2836, 2833, 2826,
820      7896, 2831, 2846, 2855, 2840, 2828, 2841, 2844, 2852, 2857,
821      2853, 2858, 2880, 2873, 2860, 2885, 2886, 2877, 2889, 2892,
822      2883, 7896, 2896, 2882, 2900, 2901, 2911, 2905, 2908, 2912,
823      2913, 2917, 2910, 2940, 2921, 2950, 2951, 2942, 2944, 2954,
824
825      2955, 7896, 2938, 2946, 2957, 2960, 2953, 2961, 2965, 2969,
826      2964, 2967, 2978, 3002, 3003, 2986, 2995, 3004, 2988, 2994,
827      2997, 1124, 2992, 3005, 2999, 2998, 7896, 3019, 3016,   61,
828      3006, 3024, 3028, 3037, 3035, 3048, 3029, 3057, 3058, 3054,
829      3061, 3055, 3056, 3064, 3067, 3053, 3073, 3082, 3081, 3074,
830      3077, 3084, 3085, 3087, 3100, 3090, 3126, 7896, 3120, 3117,
831      3125, 3114, 3133, 3116, 3129, 3119, 3135, 3152, 3139, 3149,
832      7896, 3164, 3165, 3151, 3169, 3176, 3166, 3158, 3167, 3185,
833      3178, 3172, 3179, 3196, 3191, 3194, 3193, 3213, 3201, 3202,
834      3205, 3217, 7896, 3112, 3220, 3228, 3221, 3240, 3212, 3259,
835
836      3231, 3242, 3244, 3261, 3285, 3247, 3255, 3238, 3269, 3268,
837      3283, 3280, 3274, 3297, 3310, 3312, 3300, 3289, 3306, 3317,
838      3314, 3316, 3319, 3323, 3321, 3341, 3364, 3358, 1768, 3336,
839      7896, 3348, 3339, 3338, 3360, 3362, 3349, 3365, 3363, 3379,
840      3374, 3375, 3387, 3385, 3398, 3396, 3404, 3390, 3391, 3414,
841      3424, 3412, 3428, 3430, 7896, 3426, 3431, 3415, 3433, 3418,
842      3444, 3446, 3443, 3441, 3445, 3449, 3457, 3461, 3458, 3474,
843      3460, 3465, 7896, 3480, 3476, 3485, 3487, 3492, 3493, 3499,
844      3484, 3503, 3506, 3505, 7896, 3455, 3504, 3510, 3521, 3514,
845      3516, 3517, 3534, 3519, 7896, 3527, 3526, 3543, 3556, 3546,
846
847      7896, 3561, 3544, 3540, 3545, 3551, 3541, 3562, 3555, 3568,
848      3576, 3572, 3569, 3574, 3595, 7896, 3579, 3610, 3589, 3599,
849      3601, 3603, 3596, 3614, 3634, 3616, 3619, 3585, 3627, 3636,
850      3621, 3623, 3635, 3646, 3637, 3652, 3645, 7896, 3654, 3659,
851      3669, 3667, 3672, 3656, 3586, 3673, 3674, 3689, 3691, 3692,
852      3686, 3682, 3681, 3716, 3704, 3701, 3723, 3696, 3719, 3708,
853      3731, 3732, 3744, 3739, 3741, 7896, 3726, 3743, 3745, 3737,
854      3746, 3750, 3768, 3756, 3758, 3753, 3771, 3772, 3770, 3796,
855      3806, 3773, 3803, 3788, 3790, 3785, 3791, 3799, 3811, 3784,
856      3798, 3795, 3821, 3813, 3816, 3820, 3823, 3825, 3818, 3828,
857
858      3838, 3856, 3855, 3848, 3861, 3859, 3863, 3865, 3868, 3866,
859      3894, 7896, 3876, 3874, 3882, 3883, 3870, 3893, 3906, 3903,
860      3908, 3895, 3901, 3897, 3923, 3914, 7896, 3918, 7896, 3910,
861      3927, 3942, 3952, 7896, 3948, 7896, 3946, 3951, 3937, 3939,
862      7896, 3954, 3940, 3947, 3961, 3950, 3964, 3963, 3970, 3975,
863      3979, 3974, 3995, 3986, 3998, 3989, 4005, 4006, 3987, 4008,
864      3997, 4017, 4011, 4020, 4013, 7896, 4029, 4023, 4034, 4032,
865      4035, 4033, 4042, 4059, 4045, 4047, 4044, 4068, 4057, 4061,
866      4076, 4062, 4078, 4087, 7896, 4069, 4093, 4080, 4091, 7896,
867      4096, 4082, 4110, 4112, 4088, 4103, 4104, 4114, 4115, 4120,
868
869      4107, 4146, 4140, 4131, 4141, 4148, 4130, 4142, 4156, 4157,
870      4159, 4165, 4169, 4158, 4143, 4175, 4170, 4178, 4183, 4200,
871      4198, 4204, 4184, 4201, 4209, 4208, 4196, 4192, 4195, 4202,
872      4210, 4220, 4225, 4223, 4226, 4228, 4230, 4233, 7896, 4245,
873      4229, 4253, 4260, 4247, 4250, 4239, 4251, 4259, 4252, 4275,
874      4288, 4276, 7896, 4278, 7896, 4274, 4280, 4284, 4304, 4294,
875      4305, 4312, 4301, 4303, 4311, 4302, 4325, 4317, 4328, 4333,
876      4351, 4323, 4327, 4335, 4338, 4339, 4341, 4346, 7896, 4345,
877      4359, 4375, 4355, 4372, 4374, 4390, 4380, 4369, 4367, 4382,
878      4395, 7896, 4396, 4398, 4393, 4412, 4418, 4416, 4429, 4420,
879
880      7896, 4408, 4417, 4434, 4423, 4437, 7896, 4422, 7896, 4414,
881      4432, 4444, 4445, 4449, 4453, 4455, 4456, 4447, 4464, 4448,
882      4467, 4465, 4473, 4492, 4472, 4480, 7896, 4490, 4481, 4499,
883      4497, 4500, 4504, 4507, 4483, 7896, 4508, 4514, 4518, 4526,
884      4520, 4521, 4528, 4533, 4532, 4534, 4530, 4531, 4525, 4550,
885      4536, 4564, 4556, 4565, 4572, 7896, 4569, 4566, 4584, 4580,
886      4573, 4586, 4579, 4567, 4576, 4590, 4592, 4599, 4596, 4606,
887      4601, 4615, 4612, 4602, 4609, 4627, 4635, 4617, 4631, 4625,
888      4626, 4653, 4639, 4656, 4657, 4643, 4659, 4668, 4651, 4654,
889      4660, 4667, 4679, 4661, 7896, 4681, 4674, 4684, 4678, 4682,
890
891      4689, 4696, 4698, 4701, 4680, 4690, 4709, 4702, 7896, 4726,
892      4704, 4730, 4723, 4724, 4738, 4735, 4728, 4725, 4743, 4737,
893      4753, 4740, 4747, 4755, 4758, 4752, 7896, 7896, 4768, 4767,
894      7896, 4775, 4765, 4777, 4773, 4771, 4780, 4782, 4790, 4793,
895      4785, 7896, 4805, 4798, 4794, 4799, 4802, 4827, 4823, 4825,
896      4815, 4811, 4817, 4822, 4837, 4821, 4829, 4842, 4832, 4833,
897      4847, 4861, 7896, 4848, 4852, 4857, 7896, 4858, 4869, 4870,
898      4874, 4878, 4882, 4891, 4887, 4885, 4897, 4888, 4896, 4899,
899      4895, 4910, 4912, 4894, 4926, 4924, 4920, 4930, 4932, 4940,
900      4946, 4947, 4922, 4933, 4955, 7896, 4944, 4957, 4950, 4939,
901
902      4970, 4954, 4973, 4966, 7896, 4967, 4968, 4975, 7896, 4982,
903      4989, 4969, 4986, 4972, 5003, 4995, 4999, 5002, 5006, 7896,
904      5005, 7896, 5017, 5009, 5022, 7896, 5012, 5013, 5029, 5011,
905      5018, 5036, 5038, 5046, 5033, 5048, 5037, 5039, 5063, 5054,
906      5074, 5062, 7896, 5071, 5060, 5068, 5087, 5070, 5080, 5089,
907      7896, 7896, 5091, 7896, 5090, 5084, 5096, 7896, 5094, 5099,
908      5101, 5105, 5107, 5123, 5124, 5129, 7896, 5126, 5111, 5140,
909      5121, 5134, 5132, 5135, 5142, 5119, 5148, 5159, 7896, 5146,
910      5158, 5176, 5161, 5157, 5180, 5182, 5169, 7896, 5186, 5192,
911      5181, 5190, 5193, 7896, 5202, 7896, 5203, 5213, 5221, 7896,
912
913      5201, 5224, 5205, 5228, 5232, 5230, 5236, 5219, 5227, 5248,
914      5239, 5240, 5257, 7896, 5250, 5256, 5245, 5272, 5261, 5258,
915      5254, 5274, 5280, 5286, 5287, 5277, 5290, 5292, 5299, 5303,
916      5296, 5301, 5332, 5324, 5319, 7896, 5325, 5329, 5335, 7896,
917      5323, 5318, 5341, 5326, 5330, 5327, 5352, 5354, 7896, 5360,
918      5361, 5350, 5371, 7896, 7896, 5378, 7896, 5368, 5362, 5365,
919      5377, 5381, 5383, 5382, 5386, 5387, 5411, 5389, 5407, 5427,
920      5424, 5428, 5422, 5418, 5410, 7896, 7896, 5431, 5435, 5432,
921      5439, 5442, 5444, 5446, 5433, 5460, 5447, 5440, 5467, 5449,
922      7896, 5474, 5459, 5476, 7896, 5457, 5484, 5458, 5475, 5488,
923
924      5477, 5494, 5496, 5508, 5498, 5492, 5500, 5502, 5509, 5525,
925      5518, 7896, 5523, 5515, 5519, 5520, 5524, 5535, 5539, 5532,
926      5542, 7896, 5541, 5549, 5561, 5559, 5553, 5565, 5573, 5577,
927      5579, 5569, 5576, 5581, 5586, 5585, 5588, 7896, 5592, 5587,
928      5590, 5606, 5602, 5621, 5604, 5626, 5609, 5628, 5615, 5632,
929      5635, 5624, 5620, 7896, 5636, 5640, 5625, 5643, 5631, 5650,
930      5657, 5645, 5664, 5655, 5654, 5659, 5675, 7896, 5665, 5666,
931      5679, 5676, 5690, 5681, 5682, 5683, 7896, 5695, 5684, 5692,
932      5701, 5687, 5717, 5711, 5721, 5709, 7896, 5722, 5725, 5727,
933      5708, 5724, 5741, 5738, 7896, 5748, 5750, 5731, 5505, 5742,
934
935      5744, 5761, 5747, 5754, 5769, 5770, 5774, 5775, 5771, 5781,
936      5782, 7896, 5780, 7896, 5794, 5790, 5792, 5813, 5804, 7896,
937      5807, 5809, 5815, 5801, 5811, 7896, 5817, 5819, 5818, 5827,
938      7896, 5834, 5843, 5838, 5845, 5832, 5854, 7896, 5863, 5864,
939      5866, 5873, 5874, 5876, 5865, 5877, 5868, 5869, 5870, 5885,
940      7896, 5884, 5896, 5887, 5897, 5900, 5898, 5904, 7896, 5912,
941      5901, 5910, 5905, 5916, 5913, 5929, 5927, 5932, 5923, 7896,
942      5926, 5944, 5956, 5947, 5950, 7896, 7896, 5948, 5957, 5960,
943      5940, 5969, 7896, 5968, 5978, 5974, 5964, 5971, 7896, 7896,
944      5981, 7896, 5976, 7896, 5988, 7896, 7896, 5987, 5995, 6004,
945
946      7896, 6006, 7896, 5983, 6008, 5996, 5989, 6013, 7896, 5998,
947      6014, 6020, 7896, 6015, 6033, 6016, 6022, 7896, 6030, 6027,
948      6032, 7896, 6047, 6052, 6051, 6053, 6060, 6041, 6049, 6045,
949      6061, 6067, 6069, 6070, 6071, 6072, 6068, 6080, 6090, 6088,
950      6089, 6082, 6087, 6104, 6105, 6106, 6098, 6112, 6108, 6114,
951      6116, 6118, 6122, 6115, 6126, 6130, 6127, 6131, 6142, 6135,
952      6151, 6144, 6149, 7896, 6148, 6146, 6147, 6169, 6167, 6175,
953      6179, 6185, 6188, 6189, 7896, 6191, 7896, 6197, 6182, 6193,
954      6186, 7896, 6183, 6196, 6199, 6202, 6219, 6213, 6216, 6235,
955      7896, 6237, 6217, 6229, 6242, 6245, 6232, 6240, 6244, 6253,
956
957      6252, 6255, 6259, 6257, 6247, 6254, 6117, 6265, 6272, 6269,
958      6284, 6271, 6274, 6285, 6302, 6293, 6303, 6306, 7896, 6300,
959      7896, 6298, 6309, 6315, 6318, 7896, 7896, 6320, 6321, 6322,
960      6311, 6323, 6339, 6348, 7896, 6329, 6350, 6343, 6345, 7896,
961      6349, 6353, 6357, 7896, 6347, 6360, 6363, 6361, 6378, 6377,
962      6365, 7896, 7896, 7896, 7896, 6390, 6371, 6381, 6384, 6386,
963      6392, 6399, 6387, 7896, 7896, 7896, 6398, 6409, 6407, 6419,
964      6413, 6425, 7896, 6416, 6410, 6430, 6426, 6438, 6444, 6440,
965      6443, 6437, 6445, 6450, 6446, 6460, 6454, 6471, 6456, 6466,
966      7896, 7896, 6467, 6479, 6481, 6491, 6487, 6490, 6494, 6493,
967
968      6496, 6500, 6489, 6502, 6507, 6503, 7896, 6508, 6522, 7896,
969      7896, 6521, 6527, 6520, 6528, 6524, 6534, 6544, 6537, 7896,
970      7896, 6531, 6536, 6547, 6557, 6548, 6553, 6554, 6576, 6559,
971      7896, 6564, 7896, 6565, 6583, 6582, 6593, 6590, 6589, 6594,
972      7896, 6586, 6588, 7896, 6596, 6584, 6592, 7896, 6603, 6602,
973      6608, 7896, 6618, 7896, 6632, 7896, 6613, 6641, 7896, 6617,
974      6638, 6642, 6643, 6644, 6635, 7896, 6628, 6649, 6650, 6652,
975      6657, 6653, 6636, 6668, 6661, 6658, 6663, 7896, 7896, 6691,
976      6660, 6669, 6673, 6686, 6702, 6676, 6694, 6704, 7896, 7896,
977      6700, 7896, 6699, 6703, 7896, 6687, 6708, 6719, 6717, 6697,
978
979      6720, 6727, 6723, 6724, 6744, 6753, 6738, 6754, 6758, 6760,
980      6765, 6729, 6764, 6756, 6747, 6768, 6770, 6774, 7896, 6762,
981      6772, 6780, 7896, 6778, 6799, 6808, 6804, 7896, 6801, 7896,
982      6793, 6812, 6814, 6807, 6800, 6819, 6817, 6813, 7896, 7896,
983      7896, 7896, 6823, 6829, 7896, 6839, 6840, 7896, 7896, 6826,
984      6845, 6835, 7896, 6846, 7896, 6838, 7896, 6856, 6862, 6860,
985      7896, 6865, 6867, 7896, 6864, 6876, 6877, 6875, 6873, 6880,
986      6896, 7896, 6885, 6900, 6903, 6906, 6891, 6889, 6912, 6895,
987      6919, 6904, 6915, 7896, 6922, 6923, 6925, 7896, 6921, 6930,
988      6934, 6949, 6942, 6939, 6935, 6950, 6959, 6957, 6960, 6944,
989
990      7896, 6967, 6973, 7896, 6968, 7896, 6975, 6972, 6974, 7896,
991      6992, 6976, 6970, 6985, 7896, 6997, 6991, 7896, 7002, 6986,
992      7009, 7011, 6994, 7026, 7013, 7010, 7020, 7015, 7023, 7017,
993      7025, 7032, 7896, 7896, 7896, 7034, 7031, 7053, 7056, 7059,
994      7068, 7047, 7896, 7064, 7066, 7048, 7073, 7070, 7076, 7896,
995      7077, 7063, 7072, 7896, 7079, 7084, 7080, 7091, 7096, 7102,
996      7110, 7113, 7111, 7896, 7117, 7896, 7896, 7100, 7896, 7098,
997      7121, 7896, 7124, 7112, 7114, 7127, 7130, 7123, 7128, 7896,
998      7896, 7131, 7896, 7135, 7138, 7150, 7148, 7159, 7161, 7896,
999      7144, 7147, 7163, 7158, 7172, 7896, 7165, 7157, 7160, 7162,
1000
1001      7183, 7186, 7194, 7177, 7191, 7896, 7896, 7188, 7193, 7896,
1002      7896, 7214, 7216, 7213, 7896, 7896, 7896, 7219, 7896, 7222,
1003      7228, 7220, 7896, 7230, 7218, 7223, 7896, 7226, 7232, 7896,
1004      7896, 7227, 7238, 7233, 7896, 7244, 7243, 7255, 7266, 7267,
1005      7253, 7269, 7264, 7277, 7283, 7259, 7270, 7260, 7287, 7293,
1006      7280, 7288, 7297, 7896, 7896, 7290, 7896, 7896, 7305, 7306,
1007      7309, 7896, 7304, 7316, 7301, 7896, 7318, 7307, 7311, 7326,
1008      7315, 7335, 7896, 7896, 7319, 7336, 7325, 7340, 7329, 7896,
1009      7352, 7349, 7344, 7354, 7342, 7357, 7356, 7896, 7350, 7896,
1010      7896, 7896, 7896, 7367, 7896, 7360, 7896, 7366, 7369, 7371,
1011
1012      7376, 7896, 7378, 7384, 7399, 7405, 7393, 7409, 7400, 7387,
1013      7394, 7403, 7398, 7414, 7417, 7422, 7896, 7431, 7424, 7434,
1014      7447, 7451, 7448, 7453, 7435, 7437, 7456, 7450, 7458, 7441,
1015      7461, 7465, 7473, 7469, 7467, 7472, 7896, 7480, 7896, 7479,
1016      7896, 7896, 7471, 7500, 7494, 7485, 7478, 7513, 7496, 7498,
1017      7490, 7515, 7896, 7499, 7506, 7526, 7896, 7512, 7529, 7516,
1018      7528, 7531, 7533, 7540, 7543, 7896, 7536, 7546, 7549, 7559,
1019      7555, 7550, 7561, 7569, 7575, 7568, 7588, 7579, 7585, 7896,
1020      7586, 7570, 7591, 7581, 7601, 7599, 7602, 7592, 7603, 7896,
1021      7609, 7625, 7617, 7614, 7616, 7611, 7638, 7618, 7627, 7896,
1022
1023      7629, 7641, 7644, 7645, 7652, 7654, 7650, 7651, 7658, 7669,
1024      7673, 7676, 7680, 7681, 7664, 7684, 7679, 7896, 7692, 7685,
1025      7896, 7690, 7694, 7686, 7701, 7708, 7896, 7718, 7710, 7711,
1026      7722, 7724, 7726, 7896, 7727, 7734, 7732, 7896, 7735, 7896,
1027      7896, 7736, 7725, 7745, 7742, 7743, 7896, 7896, 7896, 7804,
1028      7811, 7818, 7825, 7832,   83, 7839, 7846, 7853, 7860, 7867,
1029      7874, 7881, 7888
1030     } ;
1031
1032 static yyconst flex_int16_t yy_def[2764] =
1033     {   0,
1034      2749,    1, 2750, 2750, 2751, 2751, 2752, 2752, 2753, 2753,
1035      2754, 2754, 2749, 2755, 2749, 2749, 2749, 2749, 2756, 2755,
1036      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1037      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1038      2755, 2755, 2757, 2749, 2749, 2749, 2757, 2758, 2749, 2749,
1039      2749, 2758, 2759, 2749, 2749, 2749, 2749, 2759, 2760, 2749,
1040      2749, 2749, 2760, 2761, 2749, 2762, 2749, 2761, 2761, 2755,
1041      2755, 2749, 2763, 2756, 2763, 2756, 2755, 2755, 2755, 2755,
1042      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1043      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1044
1045      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1046      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1047      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1048      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2757,
1049      2757, 2758, 2758, 2759, 2759, 2749, 2760, 2760, 2761, 2761,
1050      2762, 2762, 2761, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1051      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1052      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1053      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1054      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1055
1056      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1057      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1058      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1059      2755, 2755, 2755, 2755, 2755, 2755, 2761, 2755, 2755, 2755,
1060      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1061      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1062      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1063      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1064      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1065      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1066
1067      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1068      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1069      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1070      2749, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2761, 2755,
1071      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1072      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1073      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1074      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1075      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1076      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1077
1078      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2749, 2755, 2755,
1079      2755, 2755, 2755, 2755, 2749, 2755, 2755, 2755, 2755, 2755,
1080      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1081      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1082      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1083      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1084      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2749, 2755, 2761,
1085      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1086      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1087      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1088
1089      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1090      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1091      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1092      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1093      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1094      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1095      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1096      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1097      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1098      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1099
1100      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1101      2755, 2755, 2755, 2755, 2761, 2755, 2755, 2755, 2755, 2755,
1102      2755, 2755, 2755, 2755, 2755, 2755, 2749, 2755, 2755, 2755,
1103      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1104      2749, 2755, 2749, 2749, 2755, 2749, 2749, 2755, 2755, 2755,
1105      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1106      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1107      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1108      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2749, 2755,
1109      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1110
1111      2755, 2755, 2755, 2755, 2755, 2749, 2755, 2755, 2755, 2755,
1112      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1113      2749, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1114      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1115      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1116      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1117      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2761,
1118      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2749, 2755, 2755,
1119      2749, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1120      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1121
1122      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1123      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1124      2755, 2755, 2755, 2749, 2755, 2755, 2755, 2755, 2755, 2755,
1125      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1126      2755, 2755, 2755, 2755, 2755, 2755, 2749, 2755, 2749, 2755,
1127      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1128      2749, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1129      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1130      2755, 2749, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1131      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1132
1133      2755, 2749, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1134      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1135      2755, 2755, 2755, 2755, 2755, 2755, 2749, 2755, 2755, 2761,
1136      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1137      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1138      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2749, 2755, 2755,
1139      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1140      2749, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1141      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1142      2755, 2755, 2749, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1143
1144      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1145      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1146      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1147      2749, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1148      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1149      2755, 2755, 2755, 2755, 2749, 2755, 2755, 2755, 2755, 2755,
1150      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1151      2755, 2755, 2749, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1152      2755, 2755, 2755, 2755, 2749, 2755, 2755, 2755, 2755, 2755,
1153      2755, 2755, 2755, 2755, 2749, 2755, 2755, 2755, 2755, 2755,
1154
1155      2749, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1156      2755, 2755, 2755, 2755, 2755, 2749, 2755, 2755, 2755, 2755,
1157      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1158      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2749, 2755, 2755,
1159      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1160      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1161      2755, 2755, 2755, 2755, 2755, 2749, 2755, 2755, 2755, 2755,
1162      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1163      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1164      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1165
1166      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1167      2755, 2749, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1168      2755, 2755, 2755, 2755, 2755, 2755, 2749, 2755, 2749, 2755,
1169      2755, 2755, 2755, 2749, 2755, 2749, 2755, 2755, 2755, 2755,
1170      2749, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1171      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1172      2755, 2755, 2755, 2755, 2755, 2749, 2755, 2755, 2755, 2755,
1173      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1174      2755, 2755, 2755, 2755, 2749, 2755, 2755, 2755, 2755, 2749,
1175      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1176
1177      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1178      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1179      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1180      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2749, 2755,
1181      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1182      2755, 2755, 2749, 2755, 2749, 2755, 2755, 2755, 2755, 2755,
1183      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1184      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2749, 2755,
1185      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1186      2755, 2749, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1187
1188      2749, 2755, 2755, 2755, 2755, 2755, 2749, 2755, 2749, 2755,
1189      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1190      2755, 2755, 2755, 2755, 2755, 2755, 2749, 2755, 2755, 2755,
1191      2755, 2755, 2755, 2755, 2755, 2749, 2755, 2755, 2755, 2755,
1192      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1193      2755, 2755, 2755, 2755, 2755, 2749, 2755, 2755, 2755, 2755,
1194      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1195      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1196      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1197      2755, 2755, 2755, 2755, 2749, 2755, 2755, 2755, 2755, 2755,
1198
1199      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2749, 2755,
1200      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1201      2755, 2755, 2755, 2755, 2755, 2755, 2749, 2749, 2755, 2755,
1202      2749, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1203      2755, 2749, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1204      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1205      2755, 2755, 2749, 2755, 2755, 2755, 2749, 2755, 2755, 2755,
1206      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1207      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1208      2755, 2755, 2755, 2755, 2755, 2749, 2755, 2755, 2755, 2755,
1209
1210      2755, 2755, 2755, 2755, 2749, 2755, 2755, 2755, 2749, 2755,
1211      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2749,
1212      2755, 2749, 2755, 2755, 2755, 2749, 2755, 2755, 2755, 2755,
1213      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1214      2755, 2755, 2749, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1215      2749, 2749, 2755, 2749, 2755, 2755, 2755, 2749, 2755, 2755,
1216      2755, 2755, 2755, 2755, 2755, 2755, 2749, 2755, 2755, 2755,
1217      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2749, 2755,
1218      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2749, 2755, 2755,
1219      2755, 2755, 2755, 2749, 2755, 2749, 2755, 2755, 2755, 2749,
1220
1221      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1222      2755, 2755, 2755, 2749, 2755, 2755, 2755, 2755, 2755, 2755,
1223      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1224      2755, 2755, 2755, 2755, 2755, 2749, 2755, 2755, 2755, 2749,
1225      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2749, 2755,
1226      2755, 2755, 2755, 2749, 2749, 2755, 2749, 2755, 2755, 2755,
1227      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1228      2755, 2755, 2755, 2755, 2755, 2749, 2749, 2755, 2755, 2755,
1229      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1230      2749, 2755, 2755, 2755, 2749, 2755, 2755, 2755, 2755, 2755,
1231
1232      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1233      2755, 2749, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1234      2755, 2749, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1235      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2749, 2755, 2755,
1236      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1237      2755, 2755, 2755, 2749, 2755, 2755, 2755, 2755, 2755, 2755,
1238      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2749, 2755, 2755,
1239      2755, 2755, 2755, 2755, 2755, 2755, 2749, 2755, 2755, 2755,
1240      2755, 2755, 2755, 2755, 2755, 2755, 2749, 2755, 2755, 2755,
1241      2755, 2755, 2755, 2755, 2749, 2755, 2755, 2755, 2755, 2755,
1242
1243      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1244      2755, 2749, 2755, 2749, 2755, 2755, 2755, 2755, 2755, 2749,
1245      2755, 2755, 2755, 2755, 2755, 2749, 2755, 2755, 2755, 2755,
1246      2749, 2755, 2755, 2755, 2755, 2755, 2755, 2749, 2755, 2755,
1247      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1248      2749, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2749, 2755,
1249      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2749,
1250      2755, 2755, 2755, 2755, 2755, 2749, 2749, 2755, 2755, 2755,
1251      2755, 2755, 2749, 2755, 2755, 2755, 2755, 2755, 2749, 2749,
1252      2755, 2749, 2755, 2749, 2755, 2749, 2749, 2755, 2755, 2755,
1253
1254      2749, 2755, 2749, 2755, 2755, 2755, 2755, 2755, 2749, 2755,
1255      2755, 2755, 2749, 2755, 2755, 2755, 2755, 2749, 2755, 2755,
1256      2755, 2749, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1257      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1258      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1259      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1260      2755, 2755, 2755, 2749, 2755, 2755, 2755, 2755, 2755, 2755,
1261      2755, 2755, 2755, 2755, 2749, 2755, 2749, 2755, 2755, 2755,
1262      2755, 2749, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1263      2749, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1264
1265      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1266      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2749, 2755,
1267      2749, 2755, 2755, 2755, 2755, 2749, 2749, 2755, 2755, 2755,
1268      2755, 2755, 2755, 2755, 2749, 2755, 2755, 2755, 2755, 2749,
1269      2755, 2755, 2755, 2749, 2755, 2755, 2755, 2755, 2755, 2755,
1270      2755, 2749, 2749, 2749, 2749, 2755, 2755, 2755, 2755, 2755,
1271      2755, 2755, 2755, 2749, 2749, 2749, 2755, 2755, 2755, 2755,
1272      2755, 2755, 2749, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1273      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1274      2749, 2749, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1275
1276      2755, 2755, 2755, 2755, 2755, 2755, 2749, 2755, 2755, 2749,
1277      2749, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2749,
1278      2749, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1279      2749, 2755, 2749, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1280      2749, 2755, 2755, 2749, 2755, 2755, 2755, 2749, 2755, 2755,
1281      2755, 2749, 2755, 2749, 2755, 2749, 2755, 2755, 2749, 2755,
1282      2755, 2755, 2755, 2755, 2755, 2749, 2755, 2755, 2755, 2755,
1283      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2749, 2749, 2755,
1284      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2749, 2749,
1285      2755, 2749, 2755, 2755, 2749, 2755, 2755, 2755, 2755, 2755,
1286
1287      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1288      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2749, 2755,
1289      2755, 2755, 2749, 2755, 2755, 2755, 2755, 2749, 2755, 2749,
1290      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2749, 2749,
1291      2749, 2749, 2755, 2755, 2749, 2755, 2755, 2749, 2749, 2755,
1292      2755, 2755, 2749, 2755, 2749, 2755, 2749, 2755, 2755, 2755,
1293      2749, 2755, 2755, 2749, 2755, 2755, 2755, 2755, 2755, 2755,
1294      2755, 2749, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1295      2755, 2755, 2755, 2749, 2755, 2755, 2755, 2749, 2755, 2755,
1296      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1297
1298      2749, 2755, 2755, 2749, 2755, 2749, 2755, 2755, 2755, 2749,
1299      2755, 2755, 2755, 2755, 2749, 2755, 2755, 2749, 2755, 2755,
1300      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1301      2755, 2755, 2749, 2749, 2749, 2755, 2755, 2755, 2755, 2755,
1302      2755, 2755, 2749, 2755, 2755, 2755, 2755, 2755, 2755, 2749,
1303      2755, 2755, 2755, 2749, 2755, 2755, 2755, 2755, 2755, 2755,
1304      2755, 2755, 2755, 2749, 2755, 2749, 2749, 2755, 2749, 2755,
1305      2755, 2749, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2749,
1306      2749, 2755, 2749, 2755, 2755, 2755, 2755, 2755, 2755, 2749,
1307      2755, 2755, 2755, 2755, 2755, 2749, 2755, 2755, 2755, 2755,
1308
1309      2755, 2755, 2755, 2755, 2755, 2749, 2749, 2755, 2755, 2749,
1310      2749, 2755, 2755, 2755, 2749, 2749, 2749, 2755, 2749, 2755,
1311      2755, 2755, 2749, 2755, 2755, 2755, 2749, 2755, 2755, 2749,
1312      2749, 2755, 2755, 2755, 2749, 2755, 2755, 2755, 2755, 2755,
1313      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1314      2755, 2755, 2755, 2749, 2749, 2755, 2749, 2749, 2755, 2755,
1315      2755, 2749, 2755, 2755, 2755, 2749, 2755, 2755, 2755, 2755,
1316      2755, 2755, 2749, 2749, 2755, 2755, 2755, 2755, 2755, 2749,
1317      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2749, 2755, 2749,
1318      2749, 2749, 2749, 2755, 2749, 2755, 2749, 2755, 2755, 2755,
1319
1320      2755, 2749, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1321      2755, 2755, 2755, 2755, 2755, 2755, 2749, 2755, 2755, 2755,
1322      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1323      2755, 2755, 2755, 2755, 2755, 2755, 2749, 2755, 2749, 2755,
1324      2749, 2749, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1325      2755, 2755, 2749, 2755, 2755, 2755, 2749, 2755, 2755, 2755,
1326      2755, 2755, 2755, 2755, 2755, 2749, 2755, 2755, 2755, 2755,
1327      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2749,
1328      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2749,
1329      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2749,
1330
1331      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
1332      2755, 2755, 2755, 2755, 2755, 2755, 2755, 2749, 2755, 2755,
1333      2749, 2755, 2755, 2755, 2755, 2755, 2749, 2755, 2755, 2755,
1334      2755, 2755, 2755, 2749, 2755, 2755, 2755, 2749, 2755, 2749,
1335      2749, 2755, 2755, 2755, 2755, 2755, 2749, 2749,    0, 2749,
1336      2749, 2749, 2749, 2749, 2749, 2749, 2749, 2749, 2749, 2749,
1337      2749, 2749, 2749
1338     } ;
1339
1340 static yyconst flex_uint16_t yy_nxt[7963] =
1341     {   0,
1342        14,   15,   16,   17,   18,   19,   18,   14,   14,   14,
1343        14,   14,   18,   20,   21,   22,   23,   24,   25,   14,
1344        26,   27,   28,   29,   30,   31,   32,   33,   34,   35,
1345        36,   37,   38,   39,   40,   14,   14,   14,   41,   42,
1346        20,   21,   22,   23,   24,   25,   14,   26,   27,   28,
1347        29,   30,   31,   32,   33,   34,   35,   36,   37,   38,
1348        39,   40,   14,   14,   14,   41,   44,   45,   46,   44,
1349        45,   46,   49,   50,   49,   50,   51,  102,   51,   54,
1350        55,   56,   57,   70,   18,   54,   55,   56,   57,   71,
1351        18,   60,   61,   62,   60,   61,   62,   72,   82,   92,
1352
1353       150,   73,  104,   47,  102,  150,   47,  140,  140,   52,
1354        75,   52,   75,   75,   71,   75,   72,   58,  148,   93,
1355        73,   75,   71,   58,   71,   82,   92,  103,   63,  104,
1356        94,   63,   15,   16,   17,   65,   66,   67,   15,   16,
1357        17,   65,   66,   67,   95,  112,   93,  118,   76,   71,
1358       142,   71,   68,  142,  103,   83,   71,   94,   68,  146,
1359        71,  145,   84,  147,  147,   96,   85,  140,  140,   86,
1360        69,   95,  112,   97,  118,  154,   69,  143,  155,   68,
1361       105,   71,   83,  359,  159,   68,   77,   78,  106,   84,
1362        79,   71,   96,   85,  107,   80,   86,  139,  108,   71,
1363
1364        97,   71,  154,  153,   81,  155,   71,  105,   71,   71,
1365        71,  159,   71,   77,   78,  106,  150,   79,  156,  220,
1366       158,  107,   80,   98,  139,  108,   99,   71,  157,  141,
1367       153,   81,   87,  100,  142,  101,   88,  142,   71,   89,
1368        71,   90,   91,   71,  109,  156,   71,  158,  110,  150,
1369        98,   71,  162,   99,   71,  157,  128,  170,  129,   87,
1370       100,   71,  101,   88,  111,   71,   89,  130,   90,   91,
1371        71,  109,  119,  131,  164,  110,  120,  163,  148,  162,
1372       147,  147,   71,  128,  170,  129,  121,   71,  169,  122,
1373       146,  111,  113,   71,  130,   71,  114,  173,   71,  119,
1374
1375       131,  164,  115,  120,  163,  116,  144,  132,  144,  144,
1376        71,  144,  117,  121,   71,  169,  122,  133,  160,  113,
1377       171,  134,  135,  114,  173,  145,  177,  143,  141,  115,
1378        71,  161,  116,  136,  132,   71,  198,  137,  172,  117,
1379       123,  138,   71,  124,  133,  160,   71,  256,  134,  135,
1380       125, 2749,   71,  177,  126,  127,   71,  178,  161,   71,
1381       136, 2749,   71,  198,  137,  172,   71,  123,  138,   70,
1382       124,   70,   70,   75,   70,   75,   75,  125,   75,   71,
1383        70,  126,  127,  149,  178,  149,  149,   70,  149,   70,
1384        70,   75,   70,   75,   75,  165,   75,  174,   70,  167,
1385
1386       168,  166,   75, 2749,   71,  175,  176,  179,   71,  180,
1387       181,  152, 2749, 2749, 2749,  186,   71,  188, 2749,  197,
1388      2749,   71,  165,   71,  174,   71,  167,  168,  166,   76,
1389        71,   71,  175,  176,  179,  182,  180,  181,  183,  187,
1390       194,  189,   71,  196,  188,  195,  197,   71,   71,  191,
1391       199,  184,  185,  192,  200, 2749,   71,  201, 2749,   71,
1392      2749,  190,  182,   71,   71,  183,  187,  194,  189,  193,
1393       196,   71,  195,   71,   71,  202,  191,  199,  184,  185,
1394       192,  200,   71,  203,  201,  204,  205,  206,  190,  209,
1395       208,  207,   71,  210,  214,   71,  193,   71, 2749,  215,
1396
1397        71, 2749,  202,  222,  331, 2749,   71,   71,   71,   71,
1398       203,  219,  204,  205,  206,   71,  209,  208,  207,  211,
1399       210,  214,  221,  223,  216,   71,  215,  224,  212,   71,
1400       222,   71,  225,  226,  213,  217,   71,   71,  219,  218,
1401      2749,   71,   71,   71,  229,  228,  211,  227,   71,  221,
1402       223,  216,  231,   71,  224,  212,   71,  236,  232,  225,
1403       226,  213,  217,  233,  234,  230,  218,   71,  239,   71,
1404        71,  229,  228,   71,  227,  235, 2749, 2749,   71,  231,
1405        71, 2749,  240, 2749,  236,  232, 2749,  237, 2749, 2749,
1406       233,  234,  230,  144,  238,  144,  144,   71,  144,  245,
1407
1408        71,  149,  235,  149,  149,   75,  149,   75,   75,  240,
1409        75,  150,  242,  241,  237,   71,   71,  246,  243,  247,
1410       248,  238,   71, 2749,   71,  244,  245,   71,  249,  252,
1411       251,  250,   71,  255,  288,  253,   71,   71,   71,  242,
1412       241,  254,  292,  152,  246,  243,  247,  248,   71,  257,
1413        71,  267,  244,  258,  268,  249,  265,  251,  250,   71,
1414       255,   71,  253,   71,  266,  272,   71,  270,  254,  269,
1415       259, 2749,   71,   71,   71, 2749,   71,   71,  267,  273,
1416       258,  268,   71,  265,   71,  278,  316, 2749,   71,  274,
1417      2749,  266,  272,  275,   71,  271,  269,  259,  260,   71,
1418
1419       289,   71,   71,  261,  276,   71,  273,  277,  262,   71,
1420       279,  280,  278,  316,  263,  264,  274,  290,  285,   71,
1421       275,   71,  271, 2749,  408,  260,   71,  289,  291,  294,
1422       261,  276,   71,   71,  277,  262,  286,  279,  280,  281,
1423        71,  263,  264,   71,  282,  285,  287,  293,  298,   71,
1424       295,   71,  297,  296,   71,  291,  283,   71,  284,   71,
1425       299,   71,  300,  286,  302,   71,  281, 2749,   71,  301,
1426        71,  282,  303,  287,  293,  298,  305,  295,   71,  304,
1427       296,  307,  306,  283,   71,  284,   71,   71,  308,   71,
1428       309,  302,   71,   71,   71,  310,  301,   71,  311,  303,
1429
1430        71,  314,   71,  305,  313,  312,  304,  318,  307,  306,
1431        71,   71,   71,   71,  317,  308,   71,  309,  315,   71,
1432       319,  320,  310,   71,  321,  311,  322,   71,  314,   71,
1433       323,  313,  312,   71,  324,  325,  326,  328,  327,   71,
1434       332,  317,  334,  329,  339,  315,   71,  319,  320,  330,
1435       345,  338,  346,  322,   71,   71,   71,  323,   71,  150,
1436       335,  324,  337,  333,  341,  327,   71,   71,   71,   71,
1437       329,  339,   71,   71,   71,   71,  330,  336,  338,  342,
1438       340,  343,   71,   71,   71,   71,   71,  335,   71,  337,
1439       333,  341,  344,  347,  348,  349,   71,  350,  351,  353,
1440
1441      2749,  352, 2749,   71,  336,  368,  342,  340,  343,   71,
1442        71,   71,   71,  354,  356,   71,   71,  357, 2749,  344,
1443       347,  348,  358,  363,  350,  351,  353,   71,  352,  355,
1444       360,   71,   71,  361,   71,  362,  367,   71,   71,   71,
1445       354,  356,   71,  364,  357,  365,  371, 2749,   71,  358,
1446       363,  366,  369,  370,   71,   71,  355,  360,  376,   71,
1447       361,   71,  362,  367,  372,   71,  374,  375,  377,   71,
1448       364,   71,  365,  371,   71,   71,  379,  378,  366,  369,
1449       381,  373,   71,  380,  390,   71,   71,   71,  382,   71,
1450        71,  372,   71,  374,  375,  377,  383,   71,  384,  389,
1451
1452       385,  972,  386,  379,  378,   71,   71,  381,  373,   71,
1453       380,  387,   71,  388,   71,  382,   71,  391,  392, 2749,
1454        71,   71, 2749,  383,  399,  384,  389,  385,   71,  386,
1455      2749,  401,   71,   71,  400,  409,  404,   71,  387,  415,
1456       388,   71,   71,   71,  391,  392,  393,  402, 2749,  394,
1457        71,  399,  405,   71,  395,  396,  397,  398,  401,   71,
1458       412,  400,  409,  404,   71,  403,   71,   71,  406,  407,
1459       413,   71,   71,  393,  402,  410,  394,  416,  411,  405,
1460       414,  395,  396,  397,  398,   71,  417,  412,   71,  418,
1461      2749,  420,  403,   71,  424,  406,  407,  413,   71,   71,
1462
1463       419,   71,  410,  421,  416,  411,   71,  414,  422,  423,
1464       425,   71,   71,  417, 2749,   71,  418,   71,  420,  426,
1465       427,   71,   71,  428,  438, 2749,   71,  419,  469,  431,
1466       421,  432,  429, 1089,  433,  422,  423,  425,  430, 2749,
1467       439,   71,   71, 2749,  434,   71,  426,   71,  440,   71,
1468       428,  438,   71,   71,   71,  469,  431,  435,  432,  429,
1469       436,  433,  437,   71, 2749,  430,  453,  441,   71,  451,
1470        71,  434,   71,  442,  452,  440,   71,  443,   71,  454,
1471        71,  455,  457, 2749,  435,  444, 2749,  436, 2749,  437,
1472       465,   71,   71,  453,  441,   71,  451,  456,  466, 2749,
1473
1474       442,  452,   71,  471,  443,   71,  454, 2749,  455,  457,
1475       472,   71,  444,  445,  467,  446,   71,  465,  473,  468,
1476       470,  474,   71, 2749,  456,  466,  150,  475,  447,   71,
1477       471,  448, 2749,  449,  477,  450,   71,  472,  478,   71,
1478       445,   71,  446,  476,   71,  473,   71,  470,  474, 2749,
1479       487,   71,  481, 2749, 2749,  447,   71,  479,  448,   71,
1480       449,  477,  450,  458,  459,  478,  480,  482, 2749,  484,
1481       476,  483,  486,  460,   71,  461,  462,  463,   71,  481,
1482       464,   71,   71,  485,   71,  488,  489,  491,   71,   71,
1483       458,  459,   71,  480,  482,  490,  484, 2749,  483,  486,
1484
1485       460,   71,  461,  462,  463,   71,  493,  464,   71,  492,
1486       485,   71,  488,  489,  498,  494,  497,   71,  499,   71,
1487       495,  496,  490,   71,  503,   71,  500, 2749, 2749,   71,
1488       501,  504,  507,  493,  506,  536,  492,   71, 2749,   71,
1489       518,  498,  494,  497,   71,  499,  505,   71,  502,   71,
1490        71,  503,  508,  500,   71,   71,  509,  501,  504,  507,
1491        71,  506,  536,   71,  510,   71,  514,  511,  515,  516,
1492       517, 2749,   71,  505,  524,  502,  519,   71,  512,  508,
1493       513,  520,   71,  509,   71,   71,  521,  529,   71,  522,
1494        71,  510,   71,  514,  511,  515,  516,  517,  525,  523,
1495
1496        71,  524,   71,  519,  527,  512,   71,  513,  520,   71,
1497       526,   71,   71,  521,  528,  530,  522,  531,   71,   71,
1498      2749,  532, 2749,  533,  534,  525,  523,   71,  537,   71,
1499       538,  527,   71,  540,  535,   71,  541,  526,   71,   71,
1500        71,  528,  530,  539,  531,   71,   71,  542,  532,  544,
1501       533,  534,   71,  543,  547,  537,   71,  538,   71,   71,
1502       540,  535,   71,  541,  545,  546,  548,  550,  555,   71,
1503       539,   71,  549,   71,  542,   71,  544,  557,  553,   71,
1504       543,  547,   71,  554,   71,   71,  551, 2749,  552,  556,
1505        71,  545,  546,  548,  550,   71,   71,  558,  559,  549,
1506
1507        71,  560,  562,  564,  561,  553,  565,   71, 2749,   71,
1508       554,   71, 2749,  551,  563,  552,  556,  568,  569,   71,
1509        71,   71,  567,   71,  558,  559,  570,   71,  560,  566,
1510       564,  561,   71,  572,   71,   71,  571, 2749,   71,   71,
1511       573,  563,  574,  575,  568,  569, 2749, 2749,  587,  567,
1512       576, 2749,   71,  570,   71,   71,  566,  588,   71,   71,
1513       572,  585,  586,  571,   71,   71, 2749,  573,   71,  574,
1514       575,   71,  590,  607,   71,  587, 2749,  576,  577,  589,
1515       591,   71,  592,  578,  588,  579,  593,  594,  585,  586,
1516        71,  580, 2749,  581,   71,   71,  582,  583,   71,  590,
1517
1518       607,  595,   71,  584,   71,  577,  589,  591,   71,  592,
1519       578,  596,  579,  593,  594,  598, 2749,  599,  580,   71,
1520       581,  597,  600,  582,  583,  601,   71,  603,  595,   71,
1521       584,  602,  605,   71,  604,  608, 2749,  610,  606,  616,
1522        71,   71,  598,   71,  599,  609,   71,   71,  597,  600,
1523        71,   71,  601,   71,  603,   71,  613,  612,  602,  605,
1524       611,  604,  608,  614,  610,  606,  615,   71,   71,   71,
1525       617,   71,  609,  623,  618,  627,  628,   71,  620,  630,
1526       619,   71,  621,  613,  612,   71,   71,  611,   71,  150,
1527       614,   71,  624,  615,   71,  622,   71,  617,  625,  626,
1528
1529       623,  618,   71,  633,   71,  620,   71,  619,   71,  621,
1530       632,   71,  629,  631,  634,   71,  643,  645,   71,  624,
1531       635,  639,  622,   71,  640,  625,  626,   71,   71,  641,
1532       633,  644,   71,  646,   71,  636,   71,  632,  642,  629,
1533       631,  634,  637,   71,   71,  638,  647,  635,  639,   71,
1534       648,  649,   71,   71,  651,  658,   71,   71,   71,  650,
1535        71,  653,  636,  652, 2749,  642,  655,  654,  663,  637,
1536        71,   71,  638,   71,  657,  659,   71,  656,  649, 1205,
1537        71,  651,   71,   71,  661,   71,  650,   71,  653, 2749,
1538       652,   71,  662,  655,  654,  664,  660,   71,   71,   71,
1539
1540        71,  657,  659,  665,  656,   71,   71,   71,  670,  666,
1541       672,  661,  669,  674,  667,  671,   71,   71,  668,  662,
1542      2749,   71,  664,  660,   71,  673,   71,  676,  677,  678,
1543       665,  675,   71,   71,   71,  670,  666,  672,  679,  669,
1544       674,  667,  671,   71,  681,  668,   71,   71,  682, 2749,
1545       686,  683,  673,   71,  685,  677,  678,  684,  675,   71,
1546       680,   71, 2749,   71,   71,  679,   71,  687,   71,  688,
1547       689,  681,   71,   71,  690,  682,   71,  686,  683,  691,
1548       692,  685,  693,  694,  684,  695,  697,  680, 2749,   71,
1549        71,  696,   71,  698,  687,   71,  688,   71,  699,  700,
1550
1551       701,  690,   71,  702,   71,  703,  691,  692,   71,   71,
1552       694,   71,  695,  697,   71,   71,  704,  711,  696,  705,
1553       698,  713,   71,  707,  706,  699,  708,  701,  712,   71,
1554       714,   71,  703,  709,  710,   71,   71,   71,   71,   71,
1555        71,   71,  717,  704,  715,  719, 2749,  740,  713,   71,
1556       707,   71,   71,  708,  718,  712,  722,  714,  720,  716,
1557       709,  710,  723,  721,   71,  725,  724,   71,   71,   71,
1558       726,  715,  719,   71,   71,  727,  728,  732,  729,   71,
1559       730,  718,   71,  722,   71,   71,  716,   71,   71,  723,
1560        71,   71,  725,  724,  731,   71,  733,  726,  734,  735,
1561
1562        71,   71,  727,  728,  732,  729,  736,  730,  737,  738,
1563        71,   71,  742, 2749,   71,   71,   71,  739,  741,  745,
1564       743,  731,  744,  733,   71,  734,  735,   71,   71,   71,
1565        71,   71,  746,  736,  747,  737,  738,  751,  750,  742,
1566       754,   71,   71,   71,  739,  741,  745,  743,  748,  744,
1567       749,   71,  753,  752,  758,  756,   71,   71,   71,  746,
1568        71,  747,  755,   71,  751,  750,   71,  754,   71, 2749,
1569       757,  759,  760,  761,  762,  748,   71,  749,   71,  753,
1570       752,  758,  756,  763,   71,  766,  764,  765, 2749,  755,
1571       768,   71, 2749,   71,   71,   71,   71,  757,  759,  760,
1572
1573       761,  762,  767,   71,  769,   71,  770,   71,   71,  772,
1574       763,  771,  766,  764,  765,   71,  778,  768,  775,   71,
1575       777,  773,  774,  784,  776,  781,   71, 2749,  150,  767,
1576        71,  769,   71,  770,   71,   71,  772,   71,  771,  782,
1577        71, 2749,  779,   71,  786,  775,  783,  777,  773,  774,
1578       780,  776,   71,  785,   71,   71,  788,   71,  789,  787,
1579        71,  792,  790, 2749,  791,   71,  782,   71,   71,  779,
1580        71,  786,  794,  783,   71,  800,  793,  780,   71,   71,
1581       785,   71,  801,  788,   71,  803,  787,   71,  792,  790,
1582        71,  791,   71,  805, 2749,  802,  804,  811,  806,  794,
1583
1584      2749,  807,  800,  793,  795, 2749,   71,   71,  796,  801,
1585       810,  797,  803,   71,  808, 2749,   71,   71,  798,  809,
1586       805,  799,  802,  804,   71,  806,   71,   71,  807,   71,
1587        71,  795,   71, 2749,  819,  796,  820,  810,  797, 2749,
1588      2749,  808,   71,  824,  821,  798,  809,  826,  799,  812,
1589       813, 2749,  814,   71,  823,  815,   71,  822, 2749,   71,
1590       816,  819,  828,  820,  829,  825,  817,  818,  827, 2749,
1591        71,  821,  830,   71,  826,   71,  812,  813,   71,  814,
1592        71,  823,  815,  831,  822,   71,   71,  816,   71,  828,
1593       832,  829,  825,  817,  818,  827,   71,  833,  834,  830,
1594
1595       835,  836,  838,  837,  840,   71,   71,  839,   71,  841,
1596       831,   71,   71,  842,  845,   71,   71,  832,  847,   71,
1597       851,   71,   71,   71,  833,  834,  843,  835,  836,  838,
1598       837,  840,  844,   71,  839,   71,  841,  848,  846,   71,
1599       842,  845,  849,  852,  850,   71,  853,   71, 2749,  855,
1600       860,  854,   71,  843,  857,  856,  861,  858,   71,  844,
1601        71,  864,  862,   71, 2749,  846,   71,  859,   71,   71,
1602        71,  850,   71,  853,   71,   71,  855,  860,  854,   71,
1603        71,  857,  856,   71,  858,  863, 2749,   71,  865,  862,
1604       866,  867,  868,   71,  859,  869,   71,  870,  871,  873,
1605
1606      2749,   71,  874,  872,   71, 2749,  882,  878,   71,   71,
1607        71,  875,  863,   71,   71,  865,   71,  866,  867,  868,
1608        71,   71,  869,   71,  870,  871,  873,  876,   71,  874,
1609       872,  877,  879,   71,  878,   71,  881,  883,  875, 2749,
1610       880,  885, 2749,   71,  884,  886,  887,   71, 2749,   71,
1611       888,  891,   71,   71,  876,   71,   71,  890,  877,  879,
1612       894,   71,  889,  881,  883, 2749,   71,  880,  885,   71,
1613       892,  884,  886,  887,   71,   71,  895,  888,  891,   71,
1614       893,  896,  897,  899,  890,  898,  900,  902,   71,  889,
1615        71, 2749,   71,  901,   71,  903,   71,  892,   71,   71,
1616
1617       904,  907,   71,  895,   71,  909,   71,  893,  896,  897,
1618       899,  918,  898,  900,   71,   71,  905,  906,   71,  908,
1619       901,  910,  903,   71,   71,  911,   71,  904,  907,  912,
1620       913,  914,  915,   71,   71,  921,   71,   71,  918,  920,
1621        71,  919,  923,  905,  906,  916,  908,   71,  910,  922,
1622       924,   71,  925,  917,   71,  927,  912,   71,  914,  915,
1623        71,  930,   71,  926,   71,   71,  920,   71,  919,  923,
1624        71,  929,  916,   71,  928,  931,  922,  924, 2749,  933,
1625       917,  932,   71,   71,   71,  935,  934,   71,  150,  936,
1626       926,   71,   71,   71,  938,  937,  939,   71,  929,  948,
1627
1628       940,  928,  931,   71,   71,   71,  933,   71,  932,   71,
1629       949,   71,  935,  934,  941, 2749,  936, 2749,  950, 2749,
1630        71,  938,  937,  939,  952,   71,  948,  940, 2749,  951,
1631        71,   71,  955,   71,  953,  960,  954,  949,  957, 2749,
1632       956,  941,  942,  958,  943,  950,   71,   71,  944,   71,
1633       945,  952,  959,   71,   71,  946,  951,  969,   71,  955,
1634       947,  953,  960,  954,  961,   71,   71,  956,  962,  942,
1635        71,  943,  964,  965,  966,  944,   71,  945,  963,  959,
1636        71,  968,  946,  967,  970,  971,   71,  947,  973,   71,
1637        71,  961,  983, 2749,   71,  962,   71,  987,  974,  964,
1638
1639       965,  966,   71,  986,  975,  963,   71,   71,  968,  985,
1640       967,  984,   71,   71,  990,  989,   71,  995,   71,  983,
1641        71,  988,   71,   71,  987,  974,  993,   71, 2749, 2749,
1642       986,  975,  976,   71,   71, 2749,  985,  977,  984,  978,
1643       994,  990,  989,   71,  991,  979,  992,  998,  988,   71,
1644       980,  981,   71,   71,   71,  996,  999,  982,   71,  976,
1645       997,   71, 1001,   71,  977, 1002,  978,  994,   71, 1000,
1646        71,  991,  979,  992,  998, 1003, 1005,  980,  981,   71,
1647      1006, 2749,  996,   71,  982, 2749, 1004,  997,   71, 1001,
1648      1008,   71, 1002,   71, 1009, 1007, 1000,   71,   71, 1011,
1649
1650      1012,   71, 1003,   71, 1015, 1010,   71, 1006,   71, 1016,
1651      1013, 1014,   71, 1004, 2749,   71, 1019, 1008,   71, 1017,
1652      1018, 1009, 1007, 1022,   71,   71, 1011, 1012,   71,   71,
1653        71, 1015, 1010,   71, 1023, 1020, 1021, 1013, 1014, 1025,
1654      1027,   71, 1024, 1019,   71,   71, 1017, 1018,   71, 1026,
1655      1022, 1028, 2749, 1030, 1035, 1034,   71,   71, 1031, 1029,
1656      1040, 1023, 1020, 1021,   71,   71, 1025,   71, 1032, 1024,
1657        71, 1033,   71, 1036, 1037,   71, 1026, 1038, 1028,   71,
1658        71, 1035, 1034,   71, 1039,   71, 1029, 1042, 1043, 2749,
1659      1041,   71,   71, 1044,   71, 1032,   71,   71, 1033,   71,
1660
1661      1036, 1037, 1045, 1046, 1038, 1047, 1048, 1050, 1054, 1049,
1662      1052, 1039,   71, 2749, 1051, 1043,   71, 1041, 1053,   71,
1663      1044,   71,   71, 1055,   71,   71, 1056, 1058,   71, 1045,
1664      1046,   71, 1047, 1048, 1050,   71, 1049, 1052, 1057,   71,
1665        71, 1051, 1061, 1059,   71, 1053, 1063,   71, 1060,   71,
1666        71,   71,   71, 1056, 1058, 1062,   71, 1064, 1065, 1066,
1667        71, 1067, 1069, 2749, 1072, 1057, 2749, 2749, 1070, 1061,
1668      1059, 1068, 1073, 1063, 1074, 1060, 2749,   71, 1071,   71,
1669      1076,   71, 1062,   71, 1077,   71, 1066, 1078, 1067,   71,
1670        71, 1075,   71,   71,   71, 1070,   71, 1079, 1068,   71,
1671
1672        71, 1074, 1080,   71,   71, 1071,   71, 1076,   71, 1081,
1673      1082, 1077, 1084, 1083, 1078, 2749, 1085,   71, 1075, 1086,
1674      1087, 1088, 1090, 2749, 1079,   71, 1091,   71, 1095, 1080,
1675      1092,   71, 1096,   71,   71, 1093,   71,   71,   71, 1084,
1676      1083,   71,   71,   71,   71,   71, 1086, 1087, 1088, 1090,
1677      1094, 1097, 1098, 1091, 1099,   71, 1100, 1092,   71, 1096,
1678      1101, 1102, 1093,   71, 1103, 1104, 2749,   71,   71, 2749,
1679      2749, 1105, 1107, 2749,   71, 1106,   71, 1094, 1097, 1098,
1680      1111, 1099, 1108, 1100, 1110, 2749, 2749,   71, 1102, 1116,
1681      1109, 2749,   71,   71,   71,   71,   71,   71, 1105, 1107,
1682
1683        71, 1113, 1106,   71, 1112, 1115,   71, 1111, 1114, 1108,
1684      1117, 1110,   71,   71, 1119, 1118,   71, 1109, 1120, 1159,
1685        71,   71, 1121,   71,   71, 2749,   71, 2749, 1113,   71,
1686      2749, 1112, 1115, 1126, 1127, 1114, 1133, 1117, 2749,   71,
1687      1129, 1119, 1118, 1122, 1128, 1120, 1131, 2749, 1130, 1121,
1688      1132,   71, 1123,   71, 1124,   71,   71, 1125,   71,   71,
1689      1126, 1127, 1136, 1133,   71,   71, 1134, 1129,   71, 1135,
1690      1122, 1128,   71, 1131,   71, 1130, 1138, 1132,   71, 1123,
1691      1137, 1124, 1139, 1140, 1125, 1144, 1141, 1143,   71, 1136,
1692        71,   71, 1142, 1134, 1145, 2749, 1135,   71, 1149, 1148,
1693
1694      2749, 2749, 1147,   71,   71,   71,   71, 1137,   71, 1139,
1695      1140,   71, 1144, 1141, 1143,   71, 1146,   71,   71, 1142,
1696      1150, 1145, 1151, 1153,   71, 1149, 1148, 1152, 1155, 1147,
1697        71, 1154,   71,   71, 1156,   71, 1164, 1157, 1158, 2749,
1698        71,   71, 2749, 1146,   71, 1179, 1160, 1150, 1161, 1151,
1699      1153,   71,   71, 1162, 1152, 1155,   71, 1163, 1154,   71,
1700        71, 1156, 1167, 1164, 1157, 1158, 1165,   71, 1168, 1169,
1701        71, 1166, 1177, 1160, 1170, 1161, 1178,   71, 2749,   71,
1702      1162,   71, 1180,   71, 1163, 1181,   71, 1183, 2749, 1167,
1703      2749, 1184, 2749, 2749,   71, 1168, 1169, 2749,   71, 1177,
1704
1705        71, 1170, 1171, 1178, 1182, 1172, 1173,   71,   71, 1180,
1706      1174, 2749, 1181,   71, 1185, 1188, 1175, 1189, 1184,   71,
1707      1176, 1190,   71, 1186,   71, 1187, 1195, 1191,   71, 1171,
1708      1196, 1182, 1172, 1173, 1192, 2749,   71, 1174, 1197,   71,
1709      1193, 1185, 1188, 1175, 1189,   71, 1194, 1176, 1190,   71,
1710      1186,   71, 1187,   71, 1191,   71,   71, 1198,   71, 1206,
1711        71, 1192,   71, 2749, 1207, 1197, 1208, 1193, 1209, 1211,
1712      2749, 1204, 2749, 1194, 1212,   71, 2749,   71,   71, 2749,
1713        71, 1210, 1214, 1213, 1198, 1199, 1206,   71,   71, 1215,
1714      1200, 1207, 1201, 1208, 1202, 1209, 1203,   71, 1204,   71,
1715
1716      1216,   71,   71,   71,   71, 1217, 1218, 1219, 1210, 1214,
1717      1213, 1220, 1199,   71,   71, 1221, 1215, 1200,   71, 1201,
1718      1224, 1202, 1222, 1203,   71, 1223,   71, 1216, 1225,   71,
1719        71, 1226, 1217, 1218, 1219,   71, 1227,   71, 1220, 1228,
1720      1229, 1231, 1221,   71, 1230, 1234, 1233, 1224, 1232, 1222,
1721      1235,   71, 1223,   71,   71, 1225, 1236,   71, 1226, 1237,
1722      1238, 1241, 1259,   71, 2749,   71, 1228,   71, 1231,   71,
1723        71, 1230,   71, 1233, 1239, 1232, 1243, 1235, 1240, 1247,
1724        71, 1246,   71,   71,   71,   71, 1237, 1238,   71, 1242,
1725      1244, 1245, 2749, 1249,   71, 1248,   71,   71, 2749,   71,
1726
1727        71, 1239, 1250, 1243,   71, 1240, 1247, 1251, 1246, 1252,
1728      1253, 1260, 1254,   71, 1255,   71, 1242, 1244, 1245,   71,
1729      1249, 1256, 1248,   71,   71, 1257,   71, 1261, 1262, 1250,
1730      1258,   71,   71, 2749, 1251, 1263, 1252, 1253,   71, 1254,
1731      1265, 1255,   71,   71,   71,   71, 1266, 1264, 1256,   71,
1732      1270, 1267, 1257,   71, 1261,   71,   71, 1258,   71, 1268,
1733        71, 1269, 1263, 1271, 1272,   71,   71, 1265, 1273, 1277,
1734      1274, 1279, 1276,   71, 1264, 1280, 1275, 1278, 1267,   71,
1735        71, 1285,   71,   71,   71,   71, 1268, 1281, 1269, 1284,
1736        71, 1272, 1302, 1318,   71,   71, 1277, 1274, 1279, 1276,
1737
1738        71,   71, 1280, 1275, 1278, 1282, 1283,   71,   71, 1286,
1739      1288,   71, 1287,   71, 1281,   71, 1284, 1289,   71, 1291,
1740      1292, 1293, 1290, 1295,   71,   71, 2749, 2749,   71, 1294,
1741      1300, 2749, 1282, 1283,   71,   71, 1286, 1288,   71, 1287,
1742        71, 1296,   71, 1303, 1297, 1301, 1291, 1292, 1293,   71,
1743      1295, 1298, 1305,   71, 1299,   71, 1294, 1300,   71, 1304,
1744        71, 1306,   71, 1308, 2749, 1307,   71, 1309, 1296, 1310,
1745      1303, 1297, 1301,   71,   71,   71,   71, 1311, 1298, 1305,
1746      1312, 1299, 1314, 1315,   71,   71, 1304, 1317, 1306, 1313,
1747      1308,   71, 1307,   71, 1309,   71, 1310, 1319,   71, 1325,
1748
1749      1326, 2749, 1316, 2749, 1311, 1320,   71, 1312,   71, 1314,
1750      1315,   71,   71,   71, 1317, 1321, 1313, 1324, 1322, 1323,
1751        71,   71, 1329, 1331, 1319,   71, 1325, 1326,   71, 1316,
1752        71,   71, 1320, 1327, 1328,   71, 1330, 1332, 1339, 1335,
1753        71, 1333, 1321,   71, 1324, 1322, 1323,   71, 1334, 1329,
1754      1331, 1336, 1337, 2749, 1338,   71, 2749, 2749,   71, 1340,
1755      1327, 1328,   71, 1330, 1332,   71, 1341, 1342, 1333, 1346,
1756        71,   71, 1343, 1348, 2749, 1334,   71, 1344,   71, 1337,
1757        71, 1338,   71,   71,   71,   71, 1340, 1345, 1349,   71,
1758      1347, 1364,   71, 1341, 1342,   71, 1346,   71, 1350, 1343,
1759
1760      1348, 1351, 2749, 1352, 1344, 1356, 1360,   71, 1353,   71,
1761        71,   71,   71, 1354, 1345, 1349, 1357, 1347, 1355, 1358,
1762      1368, 1359, 1361,   71,   71, 1350, 1366,   71, 1351,   71,
1763        71, 1362, 1356, 1360,   71,   71, 1365,   71,   71, 1367,
1764      2749, 1363,   71, 1357, 1373,   71, 1358, 1369, 1359, 1361,
1765        71, 1370,   71, 1366, 1371,   71, 1372,   71, 1362,   71,
1766        71, 1374,   71, 1365,   71, 1375, 1367,   71, 1363, 1376,
1767      1377, 1373, 1378, 1379, 1369, 2749, 1380,   71, 1370, 1381,
1768      2749, 1371, 1392, 1372, 2749, 2749, 2749,   71, 1374, 1383,
1769      1382, 1384, 1375, 1388,   71,   71, 1376, 1377,   71, 1378,
1770
1771        71, 1389,   71, 1380,   71,   71, 1381,   71, 1385,   71,
1772      1393, 1391, 1386,   71, 1390,   71, 1383, 1382, 1384, 1395,
1773      1388,   71,   71, 1394, 1396, 1387, 1401, 1397, 1389, 1399,
1774      1400, 1398,   71,   71,   71, 1385,   71, 1393, 1391, 1386,
1775        71, 1390,   71, 1403, 1404,   71, 1395,   71, 1402,   71,
1776      1394, 1396, 1387,   71, 1397, 1405, 1399,   71, 1398, 1406,
1777      1407, 1408,   71, 1409, 2749, 1410,   71, 1411, 1414, 1412,
1778      1403, 1404, 1413, 2749, 1415, 1402,   71, 1416,   71,   71,
1779      1418,   71, 1405, 1419, 2749,   71,   71,   71, 1408,   71,
1780        71,   71, 1410,   71, 1411, 1414, 1412, 1417, 2749, 1413,
1781
1782        71, 1415,   71,   71, 1416, 1420, 1421, 1418, 1423,   71,
1783      1419, 1422, 1424,   71,   71, 1425, 1426, 1427,   71, 1429,
1784      2749, 1430, 1428, 2749, 1417,   71,   71, 1433,   71, 2749,
1785      1435, 1431, 1420, 1421,   71, 1423,   71,   71, 1422, 1424,
1786      1432, 1436, 1425, 1426,   71,   71, 1429,   71, 1430, 1428,
1787        71, 1434,   71, 1437, 1433, 1443,   71, 1435, 1431,   71,
1788      1438, 1441,   71, 1439, 1440, 1447, 2749, 1432,   71, 1452,
1789      1442,   71,   71,   71,   71, 1450, 1444, 1445, 1434, 1446,
1790      1437,   71, 1443,   71,   71, 1448,   71, 1438, 1441, 1449,
1791      1439, 1440, 1447, 1451, 1454, 1455,   71, 1442,   71, 2749,
1792
1793        71,   71, 1450, 1444, 1445, 1456, 1446,   71,   71, 1458,
1794      1453, 1457, 1448, 1459, 1463,   71, 1449,   71, 1460,   71,
1795      1451,   71, 1455, 1461, 2749, 1462,   71,   71, 1467, 1466,
1796        71, 1465,   71, 1464, 2749,   71, 1458, 1453, 1457, 1469,
1797      1459, 1463,   71,   71, 1468, 1460,   71, 1473, 1474,   71,
1798      1461,   71, 1462,   71,   71, 1467, 1466, 1478, 1465,   71,
1799      1464, 1470, 1475, 1479, 1471, 1476, 1469, 1477, 2749,   71,
1800        71, 1468, 1481, 1485, 1480, 1474, 1472, 2749, 1482,   71,
1801        71,   71,   71, 1484, 1478,   71, 1483,   71, 1470, 1475,
1802      1489, 1471, 1476, 1488, 1477,   71,   71,   71,   71, 1481,
1803
1804      1485, 1480, 1487, 1472,   71, 1482, 1486, 1490,   71,   71,
1805      1484, 1492, 2749, 1483,   71, 1491, 2749,   71, 1494, 1493,
1806      1488, 1495,   71,   71, 1498, 1496, 1497, 1499, 1500, 1487,
1807      1504,   71, 2749, 1486,   71,   71, 1501,   71, 2749,   71,
1808        71,   71, 1491,   71, 1502, 1494, 1493,   71,   71,   71,
1809      1503, 1498, 1496, 1497, 1499, 1500, 1507, 1509, 1505,   71,
1810      1506, 1510,   71, 1501,   71,   71, 1508,   71,   71,   71,
1811      1511, 1502,   71, 1512, 1513, 1515, 1514, 1503,   71, 1518,
1812      1517, 1516, 2749, 1507,   71, 1505,   71, 1506, 1510,   71,
1813        71,   71,   71, 1508, 1519, 1526, 1527, 1511,   71,   71,
1814
1815      1512, 1513, 1515, 1514, 1522, 1523, 1518, 1517, 1516, 1520,
1816      1524, 1525, 1521,   71,   71,   71, 1528,   71, 1529,   71,
1817      1530, 1519, 1526,   71, 1531, 2749, 1532,   71, 1534, 2749,
1818      1535, 1522, 1523,   71, 1533, 1542, 1520, 1524, 1525, 1521,
1819        71,   71,   71,   71,   71, 1529, 1536, 1530, 1537, 1538,
1820        71,   71, 1539, 1532, 1540, 1534,   71, 1535, 1541, 1543,
1821      1544, 1533,   71, 2749,   71, 1546,   71,   71, 1545, 1547,
1822      1548, 2749,   71, 1536,   71, 1537, 1538,   71,   71, 1539,
1823        71, 1540, 1549, 1552,   71,   71, 1543, 1544, 1551, 1550,
1824        71, 1554, 1546, 1553,   71, 1545, 1547, 1548,   71, 1559,
1825
1826      1560, 1557, 1562, 1555, 1558, 1565,   71, 1563,   71, 1549,
1827      1552,   71, 1561,   71,   71, 1551, 1550, 1556, 1554,   71,
1828      1553,   71, 1564, 1566, 1567, 1568, 1559, 1560, 1557,   71,
1829      1555, 1558,   71, 1569,   71,   71, 1570,   71, 1571, 1561,
1830      1572, 1574, 1578, 1573, 1556, 1579, 2749,   71, 1575, 1564,
1831      1566,   71, 1576,   71, 1587,   71,   71,   71, 1577,   71,
1832      1569,   71,   71, 1580, 1581, 1571, 1582, 1572,   71, 1578,
1833      1573,   71, 1579,   71, 1583, 1575,   71, 2749, 1584, 1576,
1834      1589, 1585, 1586,   71,   71, 1577,   71,   71,   71, 1588,
1835      1580, 1581,   71, 1582,   71,   71, 1591, 1590, 1592, 1593,
1836
1837      1594, 1583, 1596,   71,   71, 1584,   71, 1589, 1585, 1586,
1838      1595,   71,   71, 1597, 1599, 1598, 1588, 1600, 1603,   71,
1839        71, 1601,   71, 1591, 1590, 1592, 1605, 1594, 1602,   71,
1840      2749,   71, 1616, 1609, 2749, 1604,   71, 1595,   71,   71,
1841      1597, 1599, 1598,   71, 1600, 1603,   71,   71, 1601, 1606,
1842      1607, 1608, 1611,   71, 1610, 1602, 1612,   71, 1613,   71,
1843        71, 1614, 1604, 1615,   71,   71, 1618,   71, 1620,   71,
1844        71,   71,   71,   71, 1617,   71, 1606, 1607, 1608, 1611,
1845      1621, 1610, 1619, 1612, 1622, 1613, 1623, 1624, 1614,   71,
1846      1615, 1625, 1626, 1618, 1629,   71, 2749, 1627, 2749, 1630,
1847
1848      1628, 1617, 2749,   71,   71,   71,   71, 1621,   71, 1619,
1849      1631,   71,   71, 1623, 1624,   71, 1634, 1635,   71,   71,
1850      1632, 1629, 1633,   71, 1627,   71, 1630, 1628, 1637,   71,
1851      1636,   71, 1638, 1639, 1641,   71, 1642, 1631,   71, 1643,
1852        71,   71, 1644, 1634, 1635,   71, 1640, 1632,   71, 1633,
1853      1645,   71, 1650, 1647,   71, 1637,   71, 1636, 1648, 1638,
1854      1639, 1641, 1646, 1642,   71,   71,   71, 1649, 1651, 1652,
1855        71, 1654, 1658, 1640,   71, 1653, 1661, 1645,   71, 1650,
1856      1647, 1655,   71, 1659, 1656, 1648, 1660, 1657, 1662, 1646,
1857        71, 1664,   71,   71, 1649,   71,   71, 1666,   71,   71,
1858
1859        71, 1667, 1653, 1661, 1663, 1669,   71,   71, 1655, 1668,
1860      1659, 1656, 1674,   71, 1657, 1665, 1676,   71,   71,   71,
1861        71,   71, 1675,   71, 1666, 1670, 1671, 1672,   71,   71,
1862      1680, 1663, 1673, 1678, 1677,   71, 1668,   71, 1679, 1674,
1863        71,   71, 1665,   71, 1681, 1684, 1682, 2749,   71, 1675,
1864      2749, 1683, 1670, 1671, 1672, 1688, 1685, 1680, 1687, 1673,
1865      1686, 1677,   71,   71,   71,   71, 1690,   71, 1693,   71,
1866      1694, 1681, 1691, 1682,   71, 1689,   71,   71, 1683,   71,
1867      1696, 1692,   71, 1685, 1695, 1687,   71, 1686, 1697, 1700,
1868      1702,   71,   71, 1690,   71, 1693, 1698,   71, 1699, 1691,
1869
1870      1701, 1703, 1689, 1705,   71, 1709,   71,   71, 1692, 1712,
1871        71, 1695,   71, 1707,   71, 1697,   71, 1702, 1711,   71,
1872      1704,   71, 1708, 1698,   71, 1699, 1710, 1701, 1703,   71,
1873      1705, 1706,   71,   71, 1713, 1714, 1716,   71,   71, 1724,
1874      1707,   71, 1715, 1717,   71, 1711, 1719, 1704, 1718, 1708,
1875        71, 1721, 1720, 1710,   71, 1723,   71, 2749, 1706, 2749,
1876        71,   71,   71, 1716,   71, 1725,   71, 1722,   71, 1715,
1877      1717,   71,   71, 1719, 1726, 1718,   71, 1727, 1721, 1720,
1878      1729,   71, 1723, 1730, 1731, 1733,   71,   71, 1734, 1732,
1879      1736,   71, 1725, 1728, 1722, 1735,   71,   71, 1737, 1740,
1880
1881        71, 1726, 1746, 2749, 1727, 1743, 1749, 1729,   71,   71,
1882      1730, 1731, 1733,   71, 1738, 1734, 1732,   71, 1741, 1739,
1883      1728,   71, 1735, 1742,   71, 1737,   71,   71, 1744, 1748,
1884        71, 1745, 1743,   71,   71,   71,   71, 1747,   71, 1750,
1885      1751, 1738, 1754, 1752, 1755, 1741, 1739, 1756, 1753,   71,
1886      1742,   71, 1757, 1758, 1759, 1744, 1748, 1761, 1745,   71,
1887      1760,   71, 1762,   71, 1747,   71, 1750, 1751, 1763,   71,
1888      1752,   71,   71, 1764, 1765, 1753, 1766, 1767,   71,   71,
1889      1769, 1776, 2749,   71, 1761,   71,   71, 1760, 1768,   71,
1890      1770, 1771, 1773,   71,   71, 1763,   71, 1774, 1777, 1772,
1891
1892      1764, 1765, 1775, 1766, 1778,   71,   71,   71,   71,   71,
1893      1779,   71,   71, 1780,   71, 1768, 1781, 1770, 1771, 1773,
1894      1782,   71, 1784, 1791, 1774,   71, 1772, 1783,   71, 1775,
1895      2749, 1778, 1785, 1786,   71, 1787, 1788, 1789,   71, 1792,
1896      1780,   71,   71, 1781,   71,   71, 1790, 1782,   71, 1784,
1897        71,   71,   71, 1793, 1783, 1794,   71,   71, 1795, 1785,
1898      1786,   71, 1787, 1788, 1789, 1796, 1792, 1798,   71, 1797,
1899      1799, 1801,   71, 1790, 2749,   71,   71,   71,   71, 1800,
1900      1793, 1802, 1794, 2749, 1804,   71, 2749,   71, 1803, 1807,
1901      1806, 1809, 1796,   71, 1798, 1805, 1797, 1799, 1801,   71,
1902
1903      1808,   71,   71, 1812, 1810, 1813, 1800,   71, 1818,   71,
1904        71, 1804, 1814,   71, 1811, 1803, 1807, 1806, 1809,   71,
1905      1820, 1816, 1805,   71, 1815, 1817,   71, 1808,   71,   71,
1906        71, 1810, 1813,   71, 1819,   71, 1822, 1821,   71, 1814,
1907        71, 1811, 1827, 1825,   71, 1824,   71, 1820, 1816, 1823,
1908        71, 1815, 1817, 1826, 2749, 2749, 1829, 1832,   71, 1830,
1909        71, 1819,   71,   71, 1821,   71, 1831, 1828,   71, 1827,
1910      1825,   71, 1824,   71,   71, 1833, 1823, 1834, 1836,   71,
1911      1826,   71, 1837, 1829, 1832,   71, 1830,   71, 1838, 1840,
1912      1835, 1839, 2749, 1831, 1828, 1841,   71,   71,   71, 1842,
1913
1914        71, 1843, 1833, 1844, 1834, 1836, 1845, 1847,   71, 1837,
1915      2749, 1846, 1848, 2749, 2749,   71, 1840, 1835, 1839,   71,
1916        71,   71, 1841, 1849, 1850,   71, 1842, 1853, 1843,   71,
1917      1844,   71,   71, 1845, 1847, 1852, 1854, 1851, 1846, 1848,
1918        71,   71,   71, 1855,   71, 1856, 1857, 1858, 2749, 1860,
1919      1849, 1850,   71, 1859, 1853, 1862, 1863, 1868,   71, 1861,
1920        71, 1872, 1852,   71, 1851, 1864,   71,   71, 2749,   71,
1921      1855,   71, 1856, 1857, 1858,   71, 1860, 1865,   71,   71,
1922      1859, 1866, 1867, 1863,   71, 1869, 1861,   71, 1870,   71,
1923      1871, 1873, 1864,   71, 1874,   71,   71,   71, 2749, 1877,
1924
1925        71, 1878, 2749, 1879, 1865, 1880, 1875, 2749, 1866, 1867,
1926      1884,   71, 1869,   71, 1876, 1870,   71, 1871, 1873,   71,
1927      1881, 1874, 2749, 2749, 1882,   71,   71, 1883, 1878,   71,
1928      1879,   71, 1880, 1875, 1885,   71, 2749, 1884,   71, 1886,
1929        71, 1876,   71, 1889, 1887, 1888, 1891, 1881, 1893, 1890,
1930      1894, 1882, 1892, 1895, 1883, 1898, 1896,   71,   71, 2749,
1931      1897, 1885,   71,   71,   71,   71,   71, 1903,   71,   71,
1932      1889,   71, 1888, 1891,   71, 1893, 1890, 1894, 1899, 1892,
1933        71, 1900, 1898, 1896, 1901, 1902, 1907, 1897, 1904,   71,
1934      2749,   71, 1909,   71, 1903, 1912, 1905, 1908, 1914,   71,
1935
1936        71,   71, 1911, 1913,   71, 1899, 1917,   71, 1900, 1906,
1937        71, 1901, 1902, 1907, 1910, 1904,   71,   71, 1915, 1909,
1938        71,   71,   71, 1905, 1908,   71,   71, 1916,   71, 1911,
1939      1913, 1921, 1918, 1917, 1919, 1922, 1906, 1923, 1924, 1920,
1940      1935, 1910, 1925, 1926, 2749, 1915,   71, 2749, 1927,   71,
1941        71, 1931, 1938, 1930, 1916, 1932, 1940,   71, 2749, 1918,
1942      1937,   71, 1928,   71, 1923, 1924,   71,   71, 1933, 1925,
1943        71,   71,   71, 1929,   71, 1927, 1934, 1936,   71,   71,
1944      1930,   71, 1932,   71, 1939,   71,   71, 1937,   71, 1928,
1945      1941, 1942, 1943, 1946, 1944, 1933,   71,   71,   71,   71,
1946
1947      1929, 1945, 1947, 1934, 1936, 1948,   71, 1949, 1951, 1954,
1948      2749, 1939, 2041,   71,   71,   71,   71, 1941, 1942, 1943,
1949      1946, 1944, 1950,   71, 1952, 1953, 1956,   71, 1945, 1947,
1950      1959,   71, 1948,   71, 1949,   71, 1954,   71, 1955,   71,
1951      1957,   71, 1958, 1960,   71, 2749, 1961,   71,   71, 1950,
1952      1962, 1952, 1953, 1956,   71, 1963, 1967,   71,   71,   71,
1953      1964, 1970,   71,   71,   71, 1955, 1965, 1957, 1969, 1958,
1954      1960,   71, 1966, 1961,   71, 1968, 1971, 1962,   71, 1973,
1955        71,   71, 1963, 1967, 1972, 2749, 1975, 1964,   71, 1976,
1956      1974, 1977,   71, 1965, 1980, 1969, 1978, 1983,   71, 1966,
1957
1958        71, 1979, 1968, 1971,   71, 1984, 1973, 1981,   71, 1985,
1959      1982, 1972,   71, 1975, 1989,   71,   71, 1974,   71, 1986,
1960        71, 1980, 1987, 1978,   71,   71,   71,   71, 1979,   71,
1961      1988,   71, 1984, 1990, 1981, 1991, 1985, 1982, 1992, 1993,
1962      1994,   71, 1995,   71, 1996,   71, 1986, 1997,   71, 1987,
1963      1998, 1999, 2001, 2000,   71, 2003, 2002, 1988, 2007,   71,
1964        71, 2004, 1991,   71,   71,   71, 1993,   71, 2005, 1995,
1965        71,   71, 2006, 2008,   71,   71, 2009, 1998, 1999,   71,
1966      2000, 2011,   71, 2002,   71, 2007, 2010, 2013, 2004,   71,
1967      2012, 2749, 2017,   71,   71, 2005,   71, 2014,   71, 2006,
1968
1969      2008, 2015, 2018,   71,   71,   71, 2016, 2022, 2011, 2020,
1970      2021, 2024, 2019, 2010,   71,   71, 2023, 2012,   71, 2017,
1971        71,   71,   71,   71, 2014, 2026,   71, 2025, 2015,   71,
1972      2027,   71, 2028, 2016,   71, 2029, 2020, 2021, 2024, 2019,
1973        71, 2030, 2032, 2023, 2033, 2034, 2031,   71,   71, 2035,
1974        71, 2043, 2026, 2749, 2025, 2037,   71, 2027, 2040, 2028,
1975        71,   71, 2029,   71,   71, 2038,   71, 2039, 2030, 2032,
1976        71, 2033, 2034, 2031, 2036, 2042, 2035,   71, 2044, 2046,
1977        71,   71, 2037,   71, 2045, 2040,   71,   71, 2052,   71,
1978      2047, 2048, 2038,   71, 2039, 2049, 2050, 2051, 2053, 2057,
1979
1980        71, 2036, 2042, 2056, 2749, 2044, 2046, 2749,   71,   71,
1981        71, 2045, 2054,   71,   71, 2055, 2749, 2047, 2048,   71,
1982        71,   71, 2049, 2050, 2051, 2053, 2058, 2064, 2065,   71,
1983      2056,   71, 2066,   71, 2059, 2062, 2060, 2063, 2061, 2054,
1984        71, 2067, 2055,   71, 2075, 2069,   71, 2068,   71, 2071,
1985        71, 2070,   71, 2058,   71, 2065,   71,   71,   71, 2066,
1986      2072, 2059, 2062, 2060, 2063, 2061,   71, 2076, 2067, 2074,
1987      2073,   71, 2069,   71, 2068, 2077, 2071,   71, 2070, 2078,
1988      2080, 2081,   71, 2079,   71, 2749, 2749, 2072, 2082, 2749,
1989      2084, 2083, 2085,   71, 2076, 2086, 2074, 2073, 2088, 2091,
1990
1991      2089, 2087,   71,   71,   71,   71, 2078,   71,   71,   71,
1992      2079, 2090,   71,   71, 2092,   71,   71, 2084, 2083, 2085,
1993      2095, 2093, 2086,   71,   71, 2088,   71, 2089, 2087, 2096,
1994      2094, 2099, 2100, 2097, 2103,   71,   71,   71, 2090,   71,
1995        71, 2092, 2098,   71,   71, 2101, 2102, 2095, 2093,   71,
1996      2104,   71,   71, 2105, 2106,   71, 2096, 2094, 2099, 2100,
1997      2097, 2107,   71, 2108, 2110,   71,   71, 2109,   71, 2098,
1998      2112,   71, 2101, 2102, 2111, 2113, 2119, 2104, 2114,   71,
1999      2105, 2106, 2115,   71, 2116, 2117,   71,   71, 2107,   71,
2000      2128, 2110, 2120, 2121, 2109,   71,   71, 2112, 2118,   71,
2001
2002      2749, 2111, 2113,   71, 2124, 2114, 2122,   71,   71, 2115,
2003        71, 2116, 2125,   71, 2123,   71, 2126,   71, 2127, 2120,
2004        71, 2129,   71, 2131, 2130, 2118,   71,   71,   71, 2133,
2005      2132, 2124, 2135, 2122,   71,   71, 2136,   71, 2134, 2125,
2006      2137, 2123, 2140,   71, 2749,   71, 2138,   71, 2129, 2139,
2007      2131, 2130,   71,   71,   71,   71, 2133, 2132, 2141,   71,
2008      2143,   71, 2142, 2136, 2144, 2134,   71, 2148, 2145,   71,
2009      2146,   71,   71, 2138, 2147, 2149, 2139, 2150, 2151, 2152,
2010        71, 2153, 2154, 2155,   71, 2141,   71, 2143,   71, 2142,
2011        71,   71,   71, 2158, 2148, 2145, 2156, 2146, 2157,   71,
2012
2013        71, 2147, 2149, 2159, 2150, 2151,   71,   71,   71,   71,
2014        71,   71, 2160, 2161, 2162, 2163, 2164, 2165, 2166,   71,
2015      2158,   71, 2167, 2156, 2222, 2157,   71,   71,   71,   71,
2016      2159, 2168, 2169, 2171, 2173, 2749, 2174,   71, 2749, 2160,
2017      2161, 2162, 2163,   71,   71,   71, 2170,   71, 2180, 2167,
2018      2172,   71, 2177,   71,   71,   71,   71,   71, 2168, 2169,
2019      2171,   71, 2176, 2174, 2175,   71,   71, 2178, 2179,   71,
2020        71, 2182, 2181, 2170,   71, 2180, 2183, 2172, 2184, 2177,
2021      2185,   71, 2186,   71, 2187,   71,   71,   71,   71, 2176,
2022        71, 2175, 2189, 2188, 2178, 2179, 2190, 2191, 2182, 2181,
2023
2024      2192, 2749, 2193, 2183, 2194, 2184,   71, 2185,   71, 2186,
2025      2195, 2187, 2196, 2749,   71, 2199, 2197, 2198,   71, 2189,
2026      2188,   71,   71, 2190,   71,   71, 2200,   71,   71, 2193,
2027        71, 2194,   71, 2201, 2202,   71,   71, 2195,   71, 2196,
2028      2203,   71, 2199, 2197, 2198, 2204, 2205, 2749, 2206, 2207,
2029      2209, 2208,   71, 2200, 2210,   71,   71, 2211,   71, 2220,
2030      2201, 2202, 2212, 2214, 2749, 2749, 2221, 2203,   71, 2749,
2031      2213,   71, 2204, 2205,   71, 2206,   71, 2209, 2208,   71,
2032      2215,   71, 2216,   71,   71, 2217,   71, 2218, 2219, 2212,
2033      2214,   71,   71,   71,   71, 2223,   71, 2213,   71, 2224,
2034
2035      2225, 2226, 2229, 2227,   71, 2231, 2228, 2215,   71, 2216,
2036        71,   71, 2217,   71, 2218, 2219, 2230, 2232, 2233, 2235,
2037      2749, 2749, 2223,   71,   71, 2749, 2224, 2225, 2226, 2229,
2038      2227, 2234,   71, 2228, 2241, 2749, 2240,   71, 2242,   71,
2039      2236,   71,   71, 2230, 2232,   71, 2235, 2237,   71, 2238,
2040        71, 2244, 2239, 2243,   71, 2248, 2246,   71, 2234,   71,
2041        71,   71,   71, 2240, 2245, 2242, 2247, 2236,   71, 2252,
2042      2249, 2253, 2254, 2256, 2237, 2749, 2238, 2259,   71, 2239,
2043      2243, 2250,   71, 2246,   71, 2251,   71,   71,   71,   71,
2044      2749, 2245,   71, 2247, 2255, 2257,   71, 2249, 2253,   71,
2045
2046        71, 2258,   71, 2260,   71, 2261, 2262, 2264, 2250, 2263,
2047        71, 2266, 2251, 2265, 2267, 2268,   71,   71, 2749, 2749,
2048        71, 2255, 2257,   71, 2270,   71,   71, 2275, 2258,   71,
2049      2260,   71, 2261, 2262, 2264, 2269, 2263,   71,   71, 2271,
2050      2265, 2267, 2268, 2274, 2272, 2273,   71, 2276,   71,   71,
2051      2278, 2270,   71, 2277, 2275,   71, 2279, 2284,   71, 2280,
2052      2281, 2749, 2269, 2285,   71,   71, 2271, 2282, 2289,   71,
2053      2274, 2272, 2273, 2286, 2276, 2283,   71,   71, 2290,   71,
2054      2277, 2287,   71,   71,   71,   71, 2280, 2281, 2288,   71,
2055      2285, 2292, 2291,   71, 2282,   71, 2293, 2749, 2294,   71,
2056
2057      2286, 2298, 2283, 2295, 2296,   71,   71, 2297, 2287, 2299,
2058        71, 2749, 2749, 2300, 2749, 2288, 2302, 2749,   71, 2291,
2059        71, 2301, 2303, 2293, 2304, 2306,   71, 2305,   71,   71,
2060        71, 2296,   71,   71, 2297,   71, 2299, 2307, 2308,   71,
2061      2300,   71,   71, 2302, 2309, 2312,   71,   71, 2301, 2303,
2062      2310, 2304, 2306, 2311, 2305, 2313, 2749, 2314, 2315,   71,
2063        71,   71, 2316,   71, 2307, 2308,   71,   71, 2317, 2319,
2064        71, 2309, 2312,   71, 2321,   71,   71, 2310, 2318, 2320,
2065      2311, 2322, 2313,   71, 2314, 2315,   71,   71, 2323, 2316,
2066      2324, 2325,   71,   71, 2328, 2317,   71, 2326,   71, 2327,
2067
2068      2329, 2321, 2330,   71,   71, 2318, 2320, 2333, 2322, 2331,
2069      2336, 2332, 2335, 2334, 2339,   71, 2338, 2324, 2325, 2337,
2070      2340,   71,   71,   71, 2326,   71, 2327,   71,   71,   71,
2071      2341,   71,   71,   71, 2333,   71, 2331, 2336, 2332, 2335,
2072      2334,   71,   71, 2338, 2342, 2343, 2337,   71, 2344, 2346,
2073      2749, 2347,   71, 2345, 2348, 2349,   71,   71, 2352, 2350,
2074      2351, 2353, 2749, 2354, 2355, 2357, 2358,   71, 2360, 2749,
2075      2361,   71, 2343, 2749,   71,   71, 2346,   71, 2347, 2362,
2076        71,   71,   71,   71, 2356, 2352, 2350, 2351,   71,   71,
2077      2354,   71,   71, 2358, 2359, 2365,   71,   71, 2363,   71,
2078
2079        71, 2366,   71, 2364, 2368, 2367, 2362,   71,   71, 2369,
2080      2371, 2356,   71, 2370, 2749,   71, 2372, 2373, 2375, 2374,
2081      2749, 2359, 2365, 2377, 2376,   71,   71, 2381, 2366, 2749,
2082        71, 2368, 2367,   71, 2380, 2384,   71, 2371,   71,   71,
2083      2370,   71,   71,   71, 2373, 2375, 2374,   71, 2378, 2379,
2084      2377, 2376, 2382, 2383, 2381, 2385,   71, 2394,   71,   71,
2085      2387, 2380,   71,   71, 2386, 2388,   71, 2390,   71, 2389,
2086      2749, 2391, 2749, 2392, 2401, 2378, 2379,   71, 2393, 2382,
2087      2383, 2395, 2385,   71, 2394, 2397,   71, 2402, 2396, 2398,
2088      2404, 2386,   71,   71, 2390,   71, 2389,   71, 2391,   71,
2089
2090      2392,   71, 2399,   71,   71, 2393, 2400,   71, 2395,   71,
2091      2403,   71, 2397,   71, 2402, 2396, 2398,   71, 2405,   71,
2092      2406, 2407, 2408, 2409, 2410, 2749, 2414, 2413, 2412, 2399,
2093      2411, 2415,   71, 2400, 2417, 2418, 2749, 2403,   71,   71,
2094        71, 2749, 2416,   71, 2749, 2405,   71,   71, 2407, 2408,
2095      2409,   71,   71,   71, 2413, 2412,   71, 2411,   71, 2419,
2096      2420, 2417,   71, 2422, 2421,   71, 2423, 2424,   71, 2416,
2097      2425, 2426, 2749, 2427,   71, 2428, 2433,   71,   71,   71,
2098      2431, 2429, 2430, 2432,   71,   71, 2419, 2420, 2434, 2435,
2099      2422, 2421, 2440, 2423, 2424,   71, 2436, 2425, 2426,   71,
2100
2101      2427,   71, 2428,   71,   71, 2437,   71, 2431, 2429, 2430,
2102      2432, 2438,   71, 2439,   71,   71,   71, 2441, 2443,   71,
2103      2442, 2444, 2445, 2436,   71, 2447, 2448, 2450,   71, 2446,
2104        71, 2749, 2437, 2454,   71,   71, 2749, 2749, 2438,   71,
2105      2439, 2449,   71,   71, 2441,   71, 2749, 2442, 2444, 2445,
2106      2452,   71, 2447, 2451,   71, 2455, 2446, 2453,   71, 2456,
2107        71,   71,   71, 2458,   71, 2457, 2460, 2459, 2449,   71,
2108      2461, 2749, 2464,   71,   71, 2465, 2462, 2452,   71, 2466,
2109      2451,   71, 2455,   71, 2453, 2467, 2456, 2469,   71,   71,
2110      2458, 2471, 2457, 2460, 2459, 2463,   71, 2461,   71,   71,
2111
2112      2470, 2468, 2465, 2462, 2472, 2474,   71,   71, 2473,   71,
2113      2476,   71,   71,   71,   71,   71, 2475, 2477, 2471, 2478,
2114      2479, 2480, 2463, 2481,   71,   71, 2482, 2470, 2468, 2490,
2115        71,   71, 2474,   71, 2485, 2473,   71, 2476, 2483, 2488,
2116      2491,   71, 2486, 2475, 2477, 2492, 2478, 2479,   71,   71,
2117        71, 2487,   71, 2482,   71, 2489,   71, 2484, 2493,   71,
2118      2495, 2485,   71, 2494,   71,   71, 2488, 2491, 2496, 2486,
2119        71,   71, 2492,   71, 2497, 2498, 2749, 2499, 2487, 2502,
2120      2503, 2500, 2489, 2501, 2484, 2493,   71,   71, 2506, 2507,
2121      2494, 2510,   71, 2509, 2508,   71, 2511, 2512,   71, 2504,
2122
2123      2505, 2497,   71,   71, 2499,   71, 2502,   71, 2500,   71,
2124      2501,   71,   71, 2514, 2515,   71,   71, 2513,   71,   71,
2125      2509, 2508, 2516,   71, 2512, 2517, 2504, 2505, 2518, 2519,
2126        71, 2520, 2521, 2749, 2522,   71, 2523,   71, 2524,   71,
2127      2514,   71, 2527, 2530, 2513, 2529, 2525, 2531, 2526,   71,
2128        71,   71,   71,   71, 2528, 2518,   71, 2533, 2520, 2521,
2129        71, 2522,   71,   71, 2532, 2524,   71,   71, 2534,   71,
2130        71, 2535, 2529, 2525,   71, 2526, 2537,   71, 2536, 2538,
2131      2539, 2528, 2540,   71, 2749, 2542,   71,   71, 2543,   71,
2132      2541, 2532, 2544, 2749, 2545, 2534,   71,   71,   71,   71,
2133
2134        71,   71,   71, 2537,   71, 2536, 2538, 2539, 2551, 2540,
2135      2550,   71, 2542, 2546, 2547, 2543,   71, 2541, 2553, 2544,
2136      2552, 2545,   71, 2548, 2549,   71, 2554,   71, 2555, 2556,
2137        71, 2557,   71,   71, 2558, 2551, 2561, 2550, 2559, 2560,
2138      2546, 2547, 2562, 2565, 2566, 2553, 2567, 2552, 2563, 2564,
2139      2548, 2549,   71,   71, 2568,   71, 2556,   71,   71,   71,
2140      2569,   71,   71, 2561, 2571,   71,   71,   71, 2572,   71,
2141      2565,   71,   71, 2567, 2570, 2563, 2564,   71, 2573, 2574,
2142      2575, 2568,   71,   71, 2579, 2577, 2576, 2569, 2578, 2580,
2143      2581, 2571,   71, 2584,   71, 2572, 2582, 2583,   71,   71,
2144
2145      2588, 2570, 2590,   71, 2585,   71,   71, 2575,   71,   71,
2146      2586, 2587, 2577, 2576, 2589, 2578,   71, 2591, 2592,   71,
2147      2584, 2593,   71, 2582, 2583, 2594,   71,   71, 2595,   71,
2148      2597, 2585,   71, 2596, 2598, 2599,   71, 2586, 2587, 2600,
2149        71, 2589, 2601,   71,   71,   71,   71, 2602,   71, 2603,
2150        71, 2604, 2594, 2606,   71,   71, 2609,   71,   71, 2607,
2151      2596, 2598, 2599, 2605,   71,   71, 2600, 2608,   71, 2601,
2152      2610, 2611, 2617, 2612,   71,   71, 2603, 2615, 2604,   71,
2153      2606,   71, 2616,   71, 2614, 2619, 2607, 2613,   71,   71,
2154      2605,   71, 2749,   71, 2608,   71,   71, 2610, 2611,   71,
2155
2156      2612, 2618, 2621, 2620, 2615,   71,   71, 2623,   71, 2616,
2157        71, 2614, 2619, 2622, 2613,   71, 2624,   71, 2629, 2625,
2158      2626, 2749, 2627,   71, 2630, 2628,   71, 2749, 2618, 2621,
2159      2620, 2631,   71,   71, 2623, 2632, 2637,   71,   71,   71,
2160      2622, 2633,   71, 2624,   71, 2629, 2625, 2626,   71, 2627,
2161      2634, 2630, 2628,   71, 2635, 2638,   71, 2636, 2631, 2639,
2162      2641,   71, 2632,   71, 2640, 2642, 2643, 2646, 2633, 2644,
2163        71, 2645, 2650,   71,   71, 2647,   71, 2634, 2648, 2653,
2164        71, 2635, 2638, 2657, 2636, 2661,   71,   71, 2649,   71,
2165        71, 2640,   71, 2643, 2646,   71, 2644,   71, 2645, 2651,
2166
2167        71, 2652, 2647, 2654,   71, 2648,   71, 2655,   71, 2656,
2168        71,   71,   71, 2658, 2659, 2649, 2660,   71,   71,   71,
2169      2662, 2665, 2663, 2664,   71, 2749, 2651, 2666, 2652,   71,
2170      2654, 2667, 2668,   71, 2655,   71, 2656,   71,   71,   71,
2171      2658, 2659, 2669, 2660, 2670,   71, 2671, 2672, 2665, 2663,
2172      2664,   71,   71, 2673,   71,   71, 2674, 2676, 2667, 2668,
2173      2677, 2680, 2682, 2683, 2675,   71, 2678,   71,   71, 2669,
2174        71, 2670,   71, 2671, 2672,   71, 2681, 2679, 2684,   71,
2175      2673, 2749,   71, 2674, 2676,   71, 2685, 2677,   71,   71,
2176      2683, 2675, 2686, 2678,   71, 2688, 2689, 2690,   71, 2687,
2177
2178        71, 2692, 2691, 2681, 2679, 2684, 2696,   71,   71,   71,
2179      2693, 2749, 2694, 2685,   71, 2749, 2699, 2698,   71, 2686,
2180        71, 2700, 2749, 2689,   71,   71, 2687,   71, 2692, 2691,
2181        71,   71, 2695, 2697, 2703, 2708, 2706, 2693,   71, 2694,
2182        71,   71,   71, 2699, 2698, 2704, 2701, 2705,   71, 2702,
2183        71, 2707, 2709,   71, 2711,   71,   71,   71, 2713, 2695,
2184      2697, 2703, 2708, 2706,   71, 2714,   71, 2710,   71, 2716,
2185      2718, 2715, 2704, 2701, 2705, 2712, 2702,   71, 2707, 2709,
2186        71, 2711, 2717,   71,   71, 2713, 2719, 2720, 2721,   71,
2187        71,   71, 2714,   71, 2710, 2724, 2716,   71, 2715, 2722,
2188
2189      2723, 2725, 2712,   71, 2727, 2749, 2749, 2729,   71, 2717,
2190      2726, 2730,   71, 2719, 2720,   71, 2728, 2731,   71,   71,
2191        71, 2733, 2724,   71,   71,   71, 2722, 2723, 2725,   71,
2192      2734,   71, 2732,   71, 2729, 2737, 2738, 2726, 2730, 2740,
2193        71, 2735, 2736, 2728, 2731, 2739, 2741,   71, 2733,   71,
2194        71, 2742, 2743, 2744, 2747, 2748, 2745,   71, 2749, 2732,
2195      2749,   71, 2737,   71,   71,   71,   71, 2749, 2735, 2736,
2196      2749,   71, 2739,   71,   71,   71, 2746, 2749, 2742, 2743,
2197      2744,   71,   71, 2745,   71, 2749, 2749, 2749, 2749, 2749,
2198      2749, 2749, 2749, 2749, 2749, 2749, 2749, 2749, 2749, 2749,
2199
2200      2749, 2749, 2749, 2746,   43,   43,   43,   43,   43,   43,
2201        43,   48,   48,   48,   48,   48,   48,   48,   53,   53,
2202        53,   53,   53,   53,   53,   59,   59,   59,   59,   59,
2203        59,   59,   64,   64,   64,   64,   64,   64,   64,   74,
2204        74, 2749,   74,   74,   74,   74,  140,  140, 2749, 2749,
2205      2749,  140,  140,  142,  142, 2749, 2749,  142, 2749,  142,
2206       144, 2749, 2749, 2749, 2749, 2749,  144,  147,  147, 2749,
2207      2749, 2749,  147,  147,  149, 2749, 2749, 2749, 2749, 2749,
2208       149,  151,  151, 2749,  151,  151,  151,  151,   75,   75,
2209      2749,   75,   75,   75,   75,   13, 2749, 2749, 2749, 2749,
2210
2211      2749, 2749, 2749, 2749, 2749, 2749, 2749, 2749, 2749, 2749,
2212      2749, 2749, 2749, 2749, 2749, 2749, 2749, 2749, 2749, 2749,
2213      2749, 2749, 2749, 2749, 2749, 2749, 2749, 2749, 2749, 2749,
2214      2749, 2749, 2749, 2749, 2749, 2749, 2749, 2749, 2749, 2749,
2215      2749, 2749, 2749, 2749, 2749, 2749, 2749, 2749, 2749, 2749,
2216      2749, 2749, 2749, 2749, 2749, 2749, 2749, 2749, 2749, 2749,
2217      2749, 2749
2218     } ;
2219
2220 static yyconst flex_int16_t yy_chk[7963] =
2221     {   0,
2222         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2223         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2224         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2225         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2226         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2227         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2228         1,    1,    1,    1,    1,    1,    3,    3,    3,    4,
2229         4,    4,    5,    5,    6,    6,    5,   28,    6,    7,
2230         7,    7,    7, 2755,    7,    8,    8,    8,    8,   28,
2231         8,    9,    9,    9,   10,   10,   10,   15,   21,   24,
2232
2233       930,   15,   30,    3,   28,  149,    4,   47,   47,    5,
2234        19,    6,   19,   19,   30,   19,   72,    7,  147,   24,
2235        72,   19,   24,    8,   21,   21,   24,   29,    9,   30,
2236        25,   10,   11,   11,   11,   11,   11,   11,   12,   12,
2237        12,   12,   12,   12,   25,   33,   24,   35,   19,   29,
2238        52,   33,   11,   52,   29,   22,   25,   25,   12,  146,
2239        35,  144,   22,   63,   63,   26,   22,  141,  141,   22,
2240        11,   25,   33,   26,   35,   77,   12,  142,   78,   11,
2241        31,   22,   22,  257,   82,   12,   20,   20,   31,   22,
2242        20,   26,   26,   22,   31,   20,   22,   41,   31,   77,
2243
2244        26,   78,   77,   68,   20,   78,   31,   31,   82,   41,
2245        20,   82,  257,   20,   20,   31,   68,   20,   79,  125,
2246        81,   31,   20,   27,   41,   31,   27,   81,   80,  140,
2247        68,   20,   23,   27,  143,   27,   23,  143,   79,   23,
2248        70,   23,   23,   80,   32,   79,   27,   81,   32,   64,
2249        27,  125,   84,   27,   23,   80,   38,   90,   38,   23,
2250        27,   84,   27,   23,   32,   90,   23,   38,   23,   23,
2251        32,   32,   36,   38,   86,   32,   36,   85,   59,   84,
2252       148,  148,   38,   38,   90,   38,   36,   86,   89,   36,
2253        54,   32,   34,   89,   38,   85,   34,   92,   36,   36,
2254
2255        38,   86,   34,   36,   85,   34,   58,   39,   58,   58,
2256        92,   58,   34,   36,   34,   89,   36,   39,   83,   34,
2257        91,   39,   39,   34,   92,   53,   95,   48,   43,   34,
2258        39,   83,   34,   40,   39,   95,  108,   40,   91,   34,
2259        37,   40,   83,   37,   39,   83,   14,  169,   39,   39,
2260        37,   13,   91,   95,   37,   37,  108,   96,   83,   40,
2261        40,    0,   37,  108,   40,   91,   96,   37,   40,   42,
2262        37,   42,   42,   66,   42,   66,   66,   37,   66,  169,
2263        42,   37,   37,   69,   96,   69,   69,   71,   69,   71,
2264        71,   74,   71,   74,   74,   87,   74,   93,   71,   88,
2265
2266        88,   87,   74,    0,   93,   94,   94,   97,   88,   98,
2267        99,   66,    0,    0,    0,  101,   87,  102,    0,  107,
2268         0,   94,   87,   99,   93,  102,   88,   88,   87,   74,
2269        97,   98,   94,   94,   97,  100,   98,   99,  100,  101,
2270       105,  103,  107,  106,  102,  105,  107,  101,  105,  104,
2271       109,  100,  100,  104,  110,    0,  106,  111,    0,  100,
2272         0,  103,  100,  103,  109,  100,  101,  105,  103,  104,
2273       106,  111,  105,  104,  110,  112,  104,  109,  100,  100,
2274       104,  110,  112,  113,  111,  114,  115,  116,  103,  118,
2275       117,  116,  113,  119,  121,  115,  104,  117,    0,  122,
2276
2277       119,    0,  112,  127,  231,    0,  121,  122,  114,  116,
2278       113,  124,  114,  115,  116,  118,  118,  117,  116,  120,
2279       119,  121,  126,  127,  123,  124,  122,  128,  120,  127,
2280       127,  231,  129,  130,  120,  123,  128,  126,  124,  123,
2281         0,  130,  120,  129,  133,  132,  120,  131,  123,  126,
2282       127,  123,  134,  131,  128,  120,  132,  139,  135,  129,
2283       130,  120,  123,  136,  137,  133,  123,  134,  155,  133,
2284       139,  133,  132,  137,  131,  138,    0,    0,  136,  134,
2285       135,    0,  155,    0,  139,  135,    0,  153,    0,    0,
2286       136,  137,  133,  145,  154,  145,  145,  138,  145,  159,
2287
2288       155,  150,  138,  150,  150,  151,  150,  151,  151,  155,
2289       151,  153,  157,  156,  153,  159,  154,  160,  158,  161,
2290       162,  154,  156,    0,  157,  158,  159,  161,  163,  166,
2291       165,  164,  162,  168,  190,  166,  160,  158,  164,  157,
2292       156,  167,  193,  151,  160,  158,  161,  162,  165,  170,
2293       163,  174,  158,  170,  175,  163,  172,  165,  164,  168,
2294       168,  166,  166,  167,  173,  178,  190,  177,  167,  176,
2295       170,    0,  173,  174,  193,    0,  175,  170,  174,  179,
2296       170,  175,  172,  172,  176,  183,  217,    0,  178,  180,
2297         0,  173,  178,  181,  183,  177,  176,  170,  171,  177,
2298
2299       191,  179,  180,  171,  182,  181,  179,  182,  171,  217,
2300       184,  185,  183,  217,  171,  171,  180,  192,  187,  182,
2301       181,  171,  177,    0,  298,  171,  191,  191,  192,  195,
2302       171,  182,  184,  185,  182,  171,  188,  184,  185,  186,
2303       187,  171,  171,  188,  186,  187,  189,  194,  199,  192,
2304       196,  298,  198,  197,  194,  192,  186,  189,  186,  197,
2305       200,  195,  201,  188,  203,  186,  186,    0,  196,  202,
2306       199,  186,  204,  189,  194,  199,  206,  196,  203,  205,
2307       197,  208,  207,  186,  198,  186,  205,  207,  209,  202,
2308       210,  203,  200,  204,  201,  211,  202,  206,  212,  204,
2309
2310       208,  215,  209,  206,  214,  213,  205,  219,  208,  207,
2311       212,  214,  210,  211,  218,  209,  213,  210,  216,  218,
2312       220,  220,  211,  215,  221,  212,  222,  216,  215,  220,
2313       223,  214,  213,  222,  224,  225,  226,  228,  227,  219,
2314       232,  218,  233,  229,  237,  216,  227,  220,  220,  230,
2315       243,  236,  244,  222,  224,  223,  221,  223,  229,  237,
2316       234,  224,  235,  232,  239,  227,  235,  225,  226,  228,
2317       229,  237,  232,  236,  233,  230,  230,  234,  236,  240,
2318       238,  241,  243,  239,  244,  234,  240,  234,  238,  235,
2319       232,  239,  242,  245,  246,  247,  242,  248,  249,  251,
2320
2321         0,  250,    0,  241,  234,  266,  240,  238,  241,  248,
2322       250,  249,  251,  252,  254,  245,  246,  255,    0,  242,
2323       245,  246,  256,  261,  248,  249,  251,  247,  250,  253,
2324       258,  253,  252,  259,  261,  260,  265,  266,  254,  258,
2325       252,  254,  255,  262,  255,  263,  269,    0,  256,  256,
2326       261,  264,  267,  268,  265,  262,  253,  258,  273,  259,
2327       259,  260,  260,  265,  270,  267,  271,  272,  274,  263,
2328       262,  269,  263,  269,  264,  274,  276,  275,  264,  267,
2329       278,  270,  276,  277,  287,  268,  275,  270,  279,  272,
2330       273,  270,  271,  271,  272,  274,  280,  277,  281,  286,
2331
2332       282,  807,  283,  276,  275,  280,  278,  278,  270,  282,
2333       277,  284,  279,  285,  286,  279,  287,  288,  289,    0,
2334       284,  281,    0,  280,  291,  281,  286,  282,  283,  283,
2335         0,  293,  807,  289,  292,  299,  295,  285,  284,  304,
2336       285,  288,  291,  292,  288,  289,  290,  294,    0,  290,
2337       295,  291,  296,  293,  290,  290,  290,  290,  293,  299,
2338       301,  292,  299,  295,  290,  294,  304,  296,  297,  297,
2339       302,  294,  301,  290,  294,  300,  290,  305,  300,  296,
2340       303,  290,  290,  290,  290,  300,  306,  301,  302,  307,
2341         0,  309,  294,  297,  313,  297,  297,  302,  303,  305,
2342
2343       308,  307,  300,  310,  305,  300,  309,  303,  311,  312,
2344       314,  310,  306,  306,    0,  311,  307,  314,  309,  315,
2345       316,  312,  308,  317,  322,    0,  313,  308,  338,  319,
2346       310,  319,  318,  922,  320,  311,  312,  314,  318,    0,
2347       323,  315,  322,    0,  321,  317,  315,  320,  324,  338,
2348       317,  322,  316,  319,  318,  338,  319,  321,  319,  318,
2349       321,  320,  321,  922,    0,  318,  329,  325,  321,  327,
2350       324,  321,  323,  325,  328,  324,  327,  325,  329,  330,
2351       328,  332,  333,    0,  321,  325,    0,  321,    0,  321,
2352       335,  325,  330,  329,  325,  333,  327,  332,  336,    0,
2353
2354       325,  328,  335,  340,  325,  332,  330,    0,  332,  333,
2355       341,  340,  325,  326,  337,  326,  336,  335,  342,  337,
2356       339,  343,  341,    0,  332,  336,  339,  344,  326,  343,
2357       340,  326,    0,  326,  346,  326,  342,  341,  347,  326,
2358       326,  346,  326,  345,  345,  342,  337,  339,  343,    0,
2359       355,  347,  349,    0,    0,  326,  349,  348,  326,  344,
2360       326,  346,  326,  334,  334,  347,  348,  350,    0,  352,
2361       345,  351,  354,  334,  350,  334,  334,  334,  351,  349,
2362       334,  352,  355,  353,  354,  356,  357,  359,  334,  348,
2363       334,  334,  356,  348,  350,  358,  352,    0,  351,  354,
2364
2365       334,  357,  334,  334,  334,  353,  361,  334,  358,  360,
2366       353,  360,  356,  357,  365,  362,  364,  361,  366,  359,
2367       363,  363,  358,  364,  369,  365,  367,    0,    0,  366,
2368       368,  370,  372,  361,  371,  399,  360,  362,    0,  367,
2369       381,  365,  362,  364,  372,  366,  370,  369,  368,  363,
2370       399,  369,  373,  367,  370,  368,  374,  368,  370,  372,
2371       371,  371,  399,  373,  375,  374,  377,  376,  378,  379,
2372       380,    0,  381,  370,  387,  368,  382,  375,  376,  373,
2373       376,  383,  382,  374,  377,  376,  384,  392,  380,  385,
2374       378,  375,  379,  377,  376,  378,  379,  380,  388,  386,
2375
2376       387,  387,  383,  382,  390,  376,  386,  376,  383,  384,
2377       389,  385,  388,  384,  391,  393,  385,  394,  390,  392,
2378         0,  395,    0,  396,  397,  388,  386,  395,  400,  394,
2379       401,  390,  389,  403,  398,  400,  404,  389,  393,  401,
2380       391,  391,  393,  402,  394,  396,  397,  405,  395,  407,
2381       396,  397,  398,  406,  411,  400,  403,  401,  402,  406,
2382       403,  398,  404,  404,  409,  410,  412,  414,  419,  405,
2383       402,  410,  413,  411,  405,  407,  407,  421,  417,  413,
2384       406,  411,  414,  418,  412,  417,  416,    0,  416,  420,
2385       409,  409,  410,  412,  414,  416,  418,  422,  423,  413,
2386
2387       419,  424,  425,  427,  424,  417,  428,  420,    0,  421,
2388       418,  423,    0,  416,  426,  416,  420,  430,  431,  422,
2389       424,  426,  429,  431,  422,  423,  432,  427,  424,  428,
2390       427,  424,  432,  434,  425,  429,  433,    0,  428,  430,
2391       435,  426,  436,  437,  430,  431,    0,    0,  442,  429,
2392       438,    0,  435,  432,  437,  434,  428,  443,  438,  433,
2393       434,  440,  441,  433,  436,  443,    0,  435,  440,  436,
2394       437,  442,  445,  461,  441,  442,    0,  438,  439,  444,
2395       446,  461,  447,  439,  443,  439,  448,  449,  440,  441,
2396       444,  439,    0,  439,  447,  445,  439,  439,  449,  445,
2397
2398       461,  450,  446,  439,  439,  439,  444,  446,  448,  447,
2399       439,  451,  439,  448,  449,  452,    0,  453,  439,  450,
2400       439,  451,  454,  439,  439,  455,  452,  457,  450,  454,
2401       439,  456,  459,  456,  458,  462,    0,  464,  460,  471,
2402       462,  453,  452,  451,  453,  463,  458,  459,  451,  454,
2403       460,  455,  455,  457,  457,  464,  467,  466,  456,  459,
2404       465,  458,  462,  469,  464,  460,  470,  463,  465,  466,
2405       472,  471,  463,  478,  473,  482,  483,  467,  475,  485,
2406       474,  469,  476,  467,  466,  472,  473,  465,  474,  470,
2407       469,  475,  479,  470,  476,  477,  478,  472,  480,  481,
2408
2409       478,  473,  482,  488,  477,  475,  479,  474,  483,  476,
2410       487,  485,  484,  486,  489,  488,  495,  497,  481,  479,
2411       490,  492,  477,  480,  493,  480,  481,  484,  486,  493,
2412       488,  496,  492,  498,  487,  491,  489,  487,  494,  484,
2413       486,  489,  491,  495,  490,  491,  499,  490,  492,  497,
2414       500,  501,  494,  491,  503,  510,  493,  501,  496,  502,
2415       498,  505,  491,  504,    0,  494,  507,  506,  515,  491,
2416       507,  504,  491,  499,  509,  511,  503,  508,  501, 1029,
2417       505,  503,  500,  502,  513,  508,  502,  510,  505,    0,
2418       504,  506,  514,  507,  506,  516,  512,  509,  511,  514,
2419
2420       515,  509,  511,  517,  508,  512,  513, 1029,  520,  518,
2421       522,  513,  519,  524,  518,  521,  517,  516,  518,  514,
2422         0,  519,  516,  512,  521,  523,  524,  526,  527,  528,
2423       517,  525,  522,  518,  520,  520,  518,  522,  529,  519,
2424       524,  518,  521,  525,  530,  518,  527,  523,  531,    0,
2425       535,  532,  523,  528,  534,  527,  528,  533,  525,  526,
2426       529,  529,    0,  534,  535,  529,  530,  536,  533,  537,
2427       538,  530,  531,  532,  539,  531,  537,  535,  532,  540,
2428       541,  534,  542,  543,  533,  544,  546,  529,    0,  536,
2429       540,  545,  539,  547,  536,  541,  537,  538,  548,  549,
2430
2431       550,  539,  547,  551,  543,  552,  540,  541,  546,  544,
2432       543,  548,  544,  546,  542,  545,  553,  558,  545,  554,
2433       547,  560,  550,  555,  554,  548,  556,  550,  559,  552,
2434       561,  549,  552,  557,  557,  551,  559,  555,  553,  560,
2435       556,  557,  563,  553,  562,  565,    0,  585,  560,  558,
2436       555,  554,  561,  556,  564,  559,  567,  561,  566,  562,
2437       557,  557,  568,  566,  568,  570,  569,  565,  562,  564,
2438       571,  562,  565,  570,  563,  572,  573,  577,  574,  585,
2439       575,  564,  567,  567,  572,  573,  562,  574,  575,  568,
2440       566,  569,  570,  569,  576,  571,  578,  571,  579,  580,
2441
2442       577,  576,  572,  573,  577,  574,  581,  575,  582,  583,
2443       579,  580,  587,    0,  578,  581,  582,  584,  586,  590,
2444       588,  576,  589,  578,  583,  579,  580,  587,  588,  584,
2445       589,  586,  591,  581,  592,  582,  583,  596,  595,  587,
2446       599,  591,  590,  592,  584,  586,  590,  588,  593,  589,
2447       594,  595,  598,  597,  603,  601,  599,  593,  594,  591,
2448       598,  592,  600,  596,  596,  595,  601,  599,  603,    0,
2449       602,  604,  605,  606,  607,  593,  597,  594,  602,  598,
2450       597,  603,  601,  608,  600,  611,  609,  610,    0,  600,
2451       613,  604,    0,  606,  605,  609,  607,  602,  604,  605,
2452
2453       606,  607,  612,  611,  614,  608,  615,  610,  613,  617,
2454       608,  616,  611,  609,  610,  612,  623,  613,  620,  614,
2455       622,  618,  619,  629,  621,  625,  622,    0,  615,  612,
2456       620,  614,  617,  615,  618,  616,  617,  621,  616,  626,
2457       619,    0,  624,  623,  631,  620,  628,  622,  618,  619,
2458       624,  621,  625,  630,  628,  629,  633,  626,  634,  632,
2459       630,  637,  635,    0,  636,  633,  626,  631,  624,  624,
2460       637,  631,  639,  628,  632,  642,  638,  624,  638,  639,
2461       630,  635,  645,  633,  636,  649,  632,  642,  637,  635,
2462       634,  636,  645,  651,    0,  648,  650,  657,  652,  639,
2463
2464         0,  653,  642,  638,  640,    0,  649,  650,  640,  645,
2465       656,  640,  649,  648,  654,    0,  651,  656,  640,  655,
2466       651,  640,  648,  650,  652,  652,  640,  653,  653,  657,
2467       654,  640,  655,    0,  659,  640,  660,  656,  640,    0,
2468         0,  654,  660,  664,  661,  640,  655,  666,  640,  658,
2469       658,    0,  658,  661,  663,  658,  659,  662,    0,  662,
2470       658,  659,  668,  660,  669,  665,  658,  658,  667,    0,
2471       664,  661,  670,  666,  666,  658,  658,  658,  663,  658,
2472       667,  663,  658,  671,  662,  665,  669,  658,  668,  668,
2473       672,  669,  665,  658,  658,  667,  670,  673,  674,  670,
2474
2475       675,  676,  678,  677,  680,  671,  674,  679,  676,  681,
2476       671,  677,  673,  682,  685,  672,  680,  672,  687,  685,
2477       691,  678,  681,  675,  673,  674,  683,  675,  676,  678,
2478       677,  680,  684,  679,  679,  683,  681,  688,  686,  682,
2479       682,  685,  688,  692,  690,  687,  693,  684,    0,  695,
2480       700,  694,  691,  683,  697,  696,  701,  698,  700,  684,
2481       686,  704,  702,  697,    0,  686,  690,  699,  695,  688,
2482       693,  690,  694,  693,  696,  692,  695,  700,  694,  698,
2483       702,  697,  696,  701,  698,  703,    0,  699,  705,  702,
2484       707,  708,  709,  704,  699,  710,  705,  711,  712,  714,
2485
2486         0,  714,  715,  713,  703,    0,  723,  719,  707,  708,
2487       719,  716,  703,  710,  709,  705,  713,  707,  708,  709,
2488       712,  711,  710,  716,  711,  712,  714,  717,  715,  715,
2489       713,  718,  720,  723,  719,  717,  722,  724,  716,    0,
2490       720,  726,    0,  724,  725,  727,  728,  726,    0,  718,
2491       729,  732,  727,  728,  717,  729,  720,  731,  718,  720,
2492       735,  722,  730,  722,  724,    0,  725,  720,  726,  730,
2493       733,  725,  727,  728,  732,  731,  736,  729,  732,  733,
2494       734,  737,  738,  740,  731,  739,  741,  743,  734,  730,
2495       738,    0,  735,  742,  736,  744,  737,  733,  739,  741,
2496
2497       745,  748,  744,  736,  740,  750,  748,  734,  737,  738,
2498       740,  758,  739,  741,  743,  742,  746,  747,  745,  749,
2499       742,  751,  744,  746,  747,  752,  749,  745,  748,  753,
2500       754,  755,  756,  758,  751,  761,  753,  750,  758,  760,
2501       756,  759,  763,  746,  747,  757,  749,  759,  751,  762,
2502       764,  763,  765,  757,  755,  767,  753,  752,  755,  756,
2503       757,  770,  754,  766,  764,  760,  760,  761,  759,  763,
2504       766,  769,  757,  762,  768,  771,  762,  764,    0,  773,
2505       757,  772,  767,  768,  765,  775,  774,  771,  770,  776,
2506       766,  774,  775,  769,  779,  777,  780,  779,  769,  785,
2507
2508       782,  768,  771,  777,  772,  773,  773,  782,  772,  780,
2509       786,  776,  775,  774,  783,    0,  776,    0,  787,    0,
2510       783,  779,  777,  780,  789,  785,  785,  782,    0,  788,
2511       787,  788,  792,  786,  790,  796,  791,  786,  794,    0,
2512       793,  783,  784,  794,  784,  787,  790,  789,  784,  791,
2513       784,  789,  795,  793,  792,  784,  788,  804,  796,  792,
2514       784,  790,  796,  791,  797,  795,  784,  793,  798,  784,
2515       794,  784,  799,  800,  801,  784,  797,  784,  798,  795,
2516       801,  803,  784,  802,  805,  806,  800,  784,  808,  804,
2517       798,  797,  812,    0,  799,  798,  802,  816,  809,  799,
2518
2519       800,  801,  803,  815,  810,  798,  809,  812,  803,  814,
2520       802,  813,  806,  810,  819,  818,  805,  825,  815,  812,
2521       808,  817,  814,  816,  816,  809,  822,  819,    0,    0,
2522       815,  810,  811,  813,  818,    0,  814,  811,  813,  811,
2523       823,  819,  818,  817,  820,  811,  821,  828,  817,  825,
2524       811,  811,  820,  822,  821,  826,  829,  811,  811,  811,
2525       827,  828,  831,  823,  811,  832,  811,  823,  827,  830,
2526       831,  820,  811,  821,  828,  833,  835,  811,  811,  826,
2527       836,    0,  826,  832,  811,    0,  834,  827,  829,  831,
2528       838,  830,  832,  833,  839,  837,  830,  834,  836,  841,
2529
2530       842,  839,  833,  837,  845,  840,  841,  836,  835,  846,
2531       843,  844,  838,  834,    0,  842,  851,  838,  840,  848,
2532       850,  839,  837,  854,  851,  845,  841,  842,  843,  844,
2533       848,  845,  840,  850,  855,  852,  853,  843,  844,  857,
2534       859,  846,  856,  851,  852,  854,  848,  850,  853,  858,
2535       854,  860,    0,  863,  866,  865,  855,  857,  863,  862,
2536       871,  855,  852,  853,  856,  860,  857,  866,  864,  856,
2537       862,  864,  859,  867,  868,  858,  858,  869,  860,  865,
2538       867,  866,  865,  868,  870,  863,  862,  873,  874,    0,
2539       872,  869,  871,  875,  864,  864,  870,  872,  864,  875,
2540
2541       867,  868,  876,  877,  869,  878,  879,  881,  886,  880,
2542       884,  870,  874,    0,  883,  874,  878,  872,  885,  873,
2543       875,  884,  881,  887,  876,  877,  888,  890,  879,  876,
2544       877,  880,  878,  879,  881,  883,  880,  884,  889,  885,
2545       886,  883,  893,  891,  888,  885,  895,  889,  892,  893,
2546       887,  890,  891,  888,  890,  894,  892,  896,  897,  898,
2547       895,  899,  901,    0,  905,  889,    0,    0,  903,  893,
2548       891,  900,  906,  895,  907,  892,    0,  903,  904,  894,
2549       909,  898,  894,  899,  910,  904,  898,  911,  899,  896,
2550       897,  908,  907,  900,  901,  903,  905,  912,  900,  906,
2551
2552       908,  907,  913,  911,  909,  904,  912,  909,  910,  914,
2553       915,  910,  917,  916,  911,    0,  918,  913,  908,  919,
2554       920,  921,  923,    0,  912,  916,  924,  919,  929,  913,
2555       925,  923,  931,  920,  917,  926,  921,  926,  925,  917,
2556       916,  914,  915,  918,  924,  931,  919,  920,  921,  923,
2557       928,  932,  933,  924,  934,  929,  935,  925,  928,  931,
2558       936,  937,  926,  932,  938,  939,    0,  933,  937,    0,
2559         0,  940,  942,    0,  935,  941,  934,  928,  932,  933,
2560       946,  934,  943,  935,  945,    0,    0,  936,  937,  951,
2561       944,    0,  946,  940,  942,  943,  938,  939,  940,  942,
2562
2563       941,  948,  941,  944,  947,  950,  945,  946,  949,  943,
2564       952,  945,  947,  950,  954,  953,  951,  944,  955,  994,
2565       949,  948,  956,  952,  953,    0,  954,    0,  948,  956,
2566         0,  947,  950,  959,  960,  949,  966,  952,    0,  955,
2567       962,  954,  953,  957,  961,  955,  964,    0,  963,  956,
2568       965,  994,  957,  962,  957,  964,  960,  957,  966,  959,
2569       959,  960,  969,  966,  961,  957,  967,  962,  965,  968,
2570       957,  961,  963,  964,  967,  963,  972,  965,  969,  957,
2571       970,  957,  973,  974,  957,  978,  975,  977,  970,  969,
2572       974,  968,  976,  967,  979,    0,  968,  978,  983,  982,
2573
2574         0,    0,  981,  972,  973,  977,  979,  970,  975,  973,
2575       974,  982,  978,  975,  977,  976,  980,  981,  983,  976,
2576       984,  979,  985,  987,  980,  983,  982,  986,  989,  981,
2577       985,  988,  987,  986,  990,  984,  999,  991,  992,    0,
2578       989,  990,    0,  980,  991, 1008,  995,  984,  996,  985,
2579       987,  999,  988,  997,  986,  989,  992,  998,  988,  995,
2580       997,  990, 1001,  999,  991,  992, 1000,  996, 1002, 1003,
2581      1001, 1000, 1006,  995, 1004,  996, 1007, 1008,    0,  998,
2582       997, 1002, 1009, 1003,  998, 1010, 1006, 1012,    0, 1001,
2583         0, 1013,    0,    0, 1007, 1002, 1003,    0, 1000, 1006,
2584
2585      1004, 1004, 1005, 1007, 1011, 1005, 1005, 1010, 1009, 1009,
2586      1005,    0, 1010, 1013, 1014, 1017, 1005, 1017, 1013, 1012,
2587      1005, 1018, 1011, 1015, 1005, 1016, 1023, 1019, 1018, 1005,
2588      1024, 1011, 1005, 1005, 1020,    0, 1014, 1005, 1025, 1017,
2589      1021, 1014, 1017, 1005, 1017, 1019, 1022, 1005, 1018, 1015,
2590      1015, 1016, 1016, 1021, 1019, 1022, 1020, 1026, 1023, 1030,
2591      1025, 1020, 1024,    0, 1032, 1025, 1033, 1021, 1034, 1036,
2592         0, 1028,    0, 1022, 1036, 1030,    0, 1034, 1033,    0,
2593      1026, 1035, 1038, 1037, 1026, 1027, 1030, 1032, 1037, 1039,
2594      1027, 1032, 1027, 1033, 1027, 1034, 1027, 1028, 1028, 1035,
2595
2596      1040, 1036, 1039, 1027, 1038, 1041, 1042, 1043, 1035, 1038,
2597      1037, 1044, 1027, 1041, 1042, 1045, 1039, 1027, 1040, 1027,
2598      1048, 1027, 1046, 1027, 1044, 1047, 1043, 1040, 1049, 1048,
2599      1049, 1050, 1041, 1042, 1043, 1046, 1051, 1045, 1044, 1052,
2600      1053, 1056, 1045, 1047, 1054, 1059, 1058, 1048, 1057, 1046,
2601      1060, 1052, 1047, 1050, 1058, 1049, 1061, 1060, 1050, 1062,
2602      1063, 1066, 1086, 1051,    0, 1056, 1052, 1053, 1056, 1054,
2603      1057, 1054, 1059, 1058, 1064, 1057, 1068, 1060, 1065, 1072,
2604      1064, 1071, 1063, 1061, 1065, 1062, 1062, 1063, 1066, 1067,
2605      1069, 1070,    0, 1075, 1086, 1074, 1067, 1069,    0, 1071,
2606
2607      1068, 1064, 1076, 1068, 1072, 1065, 1072, 1077, 1071, 1078,
2608      1079, 1087, 1080, 1070, 1081, 1075, 1067, 1069, 1070, 1074,
2609      1075, 1082, 1074, 1081, 1076, 1083, 1077, 1088, 1089, 1076,
2610      1084, 1078, 1079,    0, 1077, 1090, 1078, 1079, 1080, 1080,
2611      1092, 1081, 1082, 1087, 1084, 1083, 1093, 1091, 1082, 1088,
2612      1098, 1094, 1083, 1090, 1088, 1091, 1092, 1084, 1094, 1096,
2613      1089, 1097, 1090, 1099, 1100, 1097, 1096, 1092, 1102, 1105,
2614      1103, 1107, 1104, 1093, 1091, 1108, 1103, 1106, 1094, 1104,
2615      1107, 1113, 1098, 1103, 1105, 1100, 1096, 1109, 1097, 1112,
2616      1106, 1100, 1128, 1145, 1109, 1099, 1105, 1103, 1107, 1104,
2617
2618      1102, 1108, 1108, 1103, 1106, 1110, 1111, 1110, 1113, 1114,
2619      1117, 1112, 1115, 1114, 1109, 1111, 1112, 1118, 1117, 1119,
2620      1120, 1121, 1118, 1123, 1128, 1145,    0,    0, 1119, 1122,
2621      1126,    0, 1110, 1111, 1115, 1123, 1114, 1117, 1120, 1115,
2622      1121, 1124, 1122, 1129, 1124, 1127, 1119, 1120, 1121, 1118,
2623      1123, 1125, 1131, 1124, 1125, 1126, 1122, 1126, 1127, 1130,
2624      1131, 1132, 1132, 1134,    0, 1133, 1129, 1135, 1124, 1136,
2625      1129, 1124, 1127, 1125, 1133, 1130, 1135, 1137, 1125, 1131,
2626      1139, 1125, 1141, 1142, 1137, 1134, 1130, 1144, 1132, 1140,
2627      1134, 1136, 1133, 1139, 1135, 1144, 1136, 1146, 1140, 1152,
2628
2629      1153,    0, 1143,    0, 1137, 1147, 1142, 1139, 1141, 1141,
2630      1142, 1143, 1146, 1147, 1144, 1148, 1140, 1151, 1149, 1150,
2631      1153, 1152, 1156, 1158, 1146, 1151, 1152, 1153, 1148, 1143,
2632      1149, 1150, 1147, 1154, 1155, 1158, 1157, 1159, 1167, 1162,
2633      1156, 1160, 1148, 1155, 1151, 1149, 1150, 1160, 1161, 1156,
2634      1158, 1163, 1164,    0, 1165, 1154,    0,    0, 1159, 1168,
2635      1154, 1155, 1157, 1157, 1159, 1167, 1169, 1170, 1160, 1174,
2636      1161, 1162, 1171, 1176,    0, 1161, 1170, 1172, 1164, 1164,
2637      1165, 1165, 1168, 1163, 1169, 1171, 1168, 1173, 1177, 1172,
2638      1175, 1190, 1176, 1169, 1170, 1174, 1174, 1175, 1178, 1171,
2639
2640      1176, 1179,    0, 1180, 1172, 1182, 1186, 1173, 1180, 1179,
2641      1177, 1178, 1182, 1181, 1173, 1177, 1183, 1175, 1181, 1184,
2642      1194, 1185, 1187, 1190, 1186, 1178, 1192, 1184, 1179, 1185,
2643      1187, 1188, 1182, 1186, 1192, 1180, 1191, 1191, 1188, 1193,
2644         0, 1189, 1183, 1183, 1199, 1181, 1184, 1195, 1185, 1187,
2645      1189, 1196, 1194, 1192, 1197, 1195, 1198, 1199, 1188, 1196,
2646      1193, 1200, 1197, 1191, 1198, 1201, 1193, 1200, 1189, 1202,
2647      1203, 1199, 1204, 1205, 1195,    0, 1206, 1201, 1196, 1207,
2648         0, 1197, 1217, 1198,    0,    0,    0, 1204, 1200, 1209,
2649      1208, 1210, 1201, 1213, 1203, 1202, 1202, 1203, 1206, 1204,
2650
2651      1205, 1214, 1207, 1206, 1208, 1210, 1207, 1209, 1211, 1217,
2652      1218, 1216, 1211, 1214, 1215, 1213, 1209, 1208, 1210, 1220,
2653      1213, 1215, 1216, 1219, 1221, 1211, 1226, 1222, 1214, 1224,
2654      1225, 1223, 1218, 1211, 1222, 1211, 1224, 1218, 1216, 1211,
2655      1223, 1215, 1220, 1230, 1231, 1219, 1220, 1221, 1228, 1230,
2656      1219, 1221, 1211, 1226, 1222, 1232, 1224, 1228, 1223, 1233,
2657      1235, 1237, 1225, 1238,    0, 1239, 1231, 1240, 1244, 1242,
2658      1230, 1231, 1243,    0, 1245, 1228, 1239, 1246, 1240, 1243,
2659      1248, 1232, 1232, 1249,    0, 1237, 1244, 1235, 1237, 1246,
2660      1238, 1233, 1239, 1242, 1240, 1244, 1242, 1247,    0, 1243,
2661
2662      1245, 1245, 1248, 1247, 1246, 1250, 1251, 1248, 1253, 1249,
2663      1249, 1252, 1254, 1252, 1250, 1255, 1256, 1257, 1251, 1259,
2664         0, 1260, 1258,    0, 1247, 1254, 1259, 1263, 1256,    0,
2665      1265, 1261, 1250, 1251, 1253, 1253, 1261, 1255, 1252, 1254,
2666      1262, 1267, 1255, 1256, 1257, 1258, 1259, 1260, 1260, 1258,
2667      1263, 1264, 1265, 1268, 1263, 1273, 1262, 1265, 1261, 1264,
2668      1269, 1271, 1268, 1270, 1270, 1277,    0, 1262, 1267, 1282,
2669      1272, 1270, 1272, 1269, 1271, 1280, 1274, 1275, 1264, 1276,
2670      1268, 1273, 1273, 1277, 1275, 1278, 1276, 1269, 1271, 1279,
2671      1270, 1270, 1277, 1281, 1284, 1286, 1279, 1272, 1274,    0,
2672
2673      1280, 1282, 1280, 1274, 1275, 1287, 1276, 1278, 1286, 1289,
2674      1283, 1288, 1278, 1291, 1295, 1281, 1279, 1283, 1292, 1288,
2675      1281, 1292, 1286, 1293,    0, 1294, 1284, 1295, 1299, 1298,
2676      1289, 1297, 1287, 1296,    0, 1291, 1289, 1283, 1288, 1301,
2677      1291, 1295, 1296, 1297, 1300, 1292, 1301, 1303, 1304, 1293,
2678      1293, 1294, 1294, 1298, 1299, 1299, 1298, 1308, 1297, 1300,
2679      1296, 1302, 1305, 1309, 1302, 1306, 1301, 1307,    0, 1307,
2680      1304, 1300, 1311, 1315, 1310, 1304, 1302,    0, 1312, 1303,
2681      1305, 1308, 1315, 1314, 1308, 1302, 1313, 1306, 1302, 1305,
2682      1319, 1302, 1306, 1318, 1307, 1309, 1310, 1314, 1311, 1311,
2683
2684      1315, 1310, 1317, 1302, 1312, 1312, 1316, 1320, 1313, 1317,
2685      1314, 1322,    0, 1313, 1316, 1321,    0, 1318, 1324, 1323,
2686      1318, 1325, 1319, 1323, 1328, 1326, 1327, 1329, 1330, 1317,
2687      1334, 1328,    0, 1316, 1329, 1327, 1331, 1321,    0, 1320,
2688      1324, 1330, 1321, 1322, 1332, 1324, 1323, 1326, 1325, 1331,
2689      1333, 1328, 1326, 1327, 1329, 1330, 1337, 1340, 1335, 1332,
2690      1336, 1341, 1334, 1331, 1333, 1335, 1338, 1336, 1341, 1337,
2691      1342, 1332, 1338, 1343, 1344, 1346, 1345, 1333, 1346, 1349,
2692      1348, 1347,    0, 1337, 1340, 1335, 1344, 1336, 1341, 1345,
2693      1347, 1349, 1342, 1338, 1350, 1357, 1358, 1342, 1348, 1343,
2694
2695      1343, 1344, 1346, 1345, 1352, 1354, 1349, 1348, 1347, 1351,
2696      1354, 1356, 1351, 1356, 1350, 1352, 1359, 1354, 1360, 1357,
2697      1361, 1350, 1357, 1358, 1362,    0, 1363, 1351, 1365,    0,
2698      1366, 1352, 1354, 1360, 1364, 1372, 1351, 1354, 1356, 1351,
2699      1363, 1366, 1364, 1359, 1361, 1360, 1367, 1361, 1368, 1369,
2700      1365, 1362, 1369, 1363, 1370, 1365, 1368, 1366, 1371, 1373,
2701      1374, 1364, 1372,    0, 1367, 1376, 1373, 1369, 1375, 1377,
2702      1378,    0, 1370, 1367, 1374, 1368, 1369, 1375, 1376, 1369,
2703      1377, 1370, 1380, 1383, 1380, 1378, 1373, 1374, 1382, 1381,
2704      1371, 1385, 1376, 1384, 1383, 1375, 1377, 1378, 1381, 1388,
2705
2706      1389, 1387, 1391, 1386, 1387, 1394, 1389, 1391, 1388, 1380,
2707      1383, 1384, 1390, 1385, 1382, 1382, 1381, 1386, 1385, 1387,
2708      1384, 1390, 1393, 1395, 1396, 1397, 1388, 1389, 1387, 1386,
2709      1386, 1387, 1395, 1398, 1391, 1393, 1399, 1394, 1400, 1390,
2710      1402, 1404, 1408, 1403, 1386, 1410,    0, 1402, 1405, 1393,
2711      1395, 1396, 1406, 1410, 1418, 1398, 1403, 1397, 1406, 1400,
2712      1398, 1408, 1405, 1411, 1412, 1400, 1413, 1402, 1399, 1408,
2713      1403, 1411, 1410, 1404, 1414, 1405, 1406,    0, 1415, 1406,
2714      1420, 1416, 1417, 1412, 1413, 1406, 1418, 1420, 1414, 1419,
2715      1411, 1412, 1415, 1413, 1416, 1417, 1422, 1421, 1423, 1424,
2716
2717      1425, 1414, 1428, 1419, 1422, 1415, 1421, 1420, 1416, 1417,
2718      1426, 1425, 1423, 1429, 1431, 1430, 1419, 1432, 1435, 1426,
2719      1429, 1433, 1435, 1422, 1421, 1423, 1438, 1425, 1434, 1428,
2720         0, 1424, 1449, 1442,    0, 1437, 1431, 1426, 1430, 1432,
2721      1429, 1431, 1430, 1433, 1432, 1435, 1434, 1437, 1433, 1439,
2722      1440, 1441, 1444, 1438, 1443, 1434, 1445, 1439, 1446, 1441,
2723      1442, 1447, 1437, 1448, 1449, 1440, 1451, 1443, 1453, 1447,
2724      1448, 1445, 1444, 1446, 1450, 1451, 1439, 1440, 1441, 1444,
2725      1454, 1443, 1452, 1445, 1455, 1446, 1457, 1458, 1447, 1450,
2726      1448, 1459, 1460, 1451, 1463, 1453,    0, 1461,    0, 1464,
2727
2728      1462, 1450,    0, 1452, 1454, 1458, 1464, 1454, 1457, 1452,
2729      1465, 1455, 1461, 1457, 1458, 1465, 1468, 1469, 1463, 1460,
2730      1466, 1463, 1467, 1459, 1461, 1462, 1464, 1462, 1471, 1466,
2731      1470, 1467, 1472, 1473, 1474, 1469, 1475, 1465, 1468, 1476,
2732      1471, 1474, 1477, 1468, 1469, 1470, 1473, 1466, 1475, 1467,
2733      1478, 1473, 1483, 1480, 1472, 1471, 1478, 1470, 1481, 1472,
2734      1473, 1474, 1479, 1475, 1480, 1481, 1476, 1482, 1484, 1485,
2735      1479, 1487, 1491, 1473, 1477, 1486, 1494, 1478, 1483, 1483,
2736      1480, 1488, 1486, 1492, 1489, 1481, 1493, 1490, 1496, 1479,
2737      1489, 1498, 1482, 1490, 1482, 1484, 1485, 1500, 1487, 1491,
2738
2739      1494, 1501, 1486, 1494, 1497, 1503, 1492, 1488, 1488, 1502,
2740      1492, 1489, 1505, 1497, 1490, 1499, 1507, 1499, 1493, 1505,
2741      1496, 1500, 1506, 1498, 1500, 1504, 1504, 1504, 1501, 1506,
2742      1511, 1497, 1504, 1510, 1508, 1502, 1502, 1503, 1510, 1505,
2743      1504, 1508, 1499, 1511, 1512, 1515, 1513,    0, 1507, 1506,
2744         0, 1514, 1504, 1504, 1504, 1519, 1516, 1511, 1518, 1504,
2745      1517, 1508, 1513, 1514, 1518, 1510, 1521, 1517, 1524, 1512,
2746      1525, 1512, 1522, 1513, 1516, 1520, 1520, 1515, 1514, 1522,
2747      1529, 1523, 1519, 1516, 1526, 1518, 1523, 1517, 1530, 1534,
2748      1536, 1526, 1521, 1521, 1524, 1524, 1532, 1525, 1533, 1522,
2749
2750      1535, 1537, 1520, 1539, 1533, 1544, 1530, 1529, 1523, 1547,
2751      1536, 1526, 1535, 1541, 1532, 1530, 1534, 1536, 1546, 1537,
2752      1538, 1538, 1543, 1532, 1541, 1533, 1545, 1535, 1537, 1539,
2753      1539, 1540, 1540, 1545, 1548, 1549, 1551, 1544, 1546, 1559,
2754      1541, 1547, 1550, 1552, 1543, 1546, 1554, 1538, 1553, 1543,
2755      1552, 1556, 1555, 1545, 1551, 1558, 1553,    0, 1540,    0,
2756      1556, 1554, 1549, 1551, 1550, 1560, 1548, 1557, 1557, 1550,
2757      1552, 1559, 1560, 1554, 1561, 1553, 1555, 1562, 1556, 1555,
2758      1564, 1558, 1558, 1565, 1566, 1569, 1561, 1564, 1570, 1568,
2759      1572, 1565, 1560, 1562, 1557, 1571, 1566, 1568, 1573, 1575,
2760
2761      1562, 1561, 1581,    0, 1562, 1578, 1584, 1564, 1569, 1570,
2762      1565, 1566, 1569, 1571, 1574, 1570, 1568, 1572, 1576, 1574,
2763      1562, 1573, 1571, 1577, 1576, 1573, 1575, 1578, 1579, 1583,
2764      1574, 1580, 1578, 1584, 1581, 1579, 1577, 1582, 1580, 1585,
2765      1586, 1574, 1588, 1587, 1589, 1576, 1574, 1590, 1587, 1582,
2766      1577, 1583, 1590, 1591, 1592, 1579, 1583, 1594, 1580, 1587,
2767      1593, 1593, 1595, 1586, 1582, 1585, 1585, 1586, 1597, 1588,
2768      1587, 1589, 1594, 1598, 1599, 1587, 1600, 1601, 1600, 1590,
2769      1603, 1612,    0, 1597, 1594, 1591, 1592, 1593, 1602, 1599,
2770      1604, 1606, 1608, 1602, 1595, 1597, 1598, 1610, 1613, 1607,
2771
2772      1598, 1599, 1611, 1600, 1614, 1604, 1606, 1607, 1612, 1601,
2773      1615, 1614, 1603, 1616, 1608, 1602, 1617, 1604, 1606, 1608,
2774      1618, 1610, 1621, 1630, 1610, 1613, 1607, 1619, 1611, 1611,
2775         0, 1614, 1623, 1624, 1616, 1625, 1627, 1628, 1617, 1631,
2776      1616, 1618, 1615, 1617, 1621, 1619, 1629, 1618, 1624, 1621,
2777      1630, 1627, 1628, 1632, 1619, 1633, 1623, 1631, 1634, 1623,
2778      1624, 1625, 1625, 1627, 1628, 1635, 1631, 1637, 1629, 1636,
2779      1638, 1640, 1635, 1629,    0, 1632, 1637, 1633, 1638, 1639,
2780      1632, 1641, 1633,    0, 1644, 1634,    0, 1636, 1642, 1646,
2781      1645, 1648, 1635, 1640, 1637, 1644, 1636, 1638, 1640, 1645,
2782
2783      1647, 1642, 1639, 1653, 1649, 1655, 1639, 1646, 1661, 1648,
2784      1644, 1644, 1656, 1641, 1650, 1642, 1646, 1645, 1648, 1649,
2785      1663, 1659, 1644, 1656, 1657, 1660, 1647, 1647, 1650, 1655,
2786      1653, 1649, 1655, 1659, 1662, 1657, 1665, 1664, 1660, 1656,
2787      1661, 1650, 1671, 1669, 1662, 1668, 1663, 1663, 1659, 1666,
2788      1669, 1657, 1660, 1670,    0,    0, 1673, 1676, 1676, 1674,
2789      1671, 1662, 1664, 1665, 1664, 1668, 1675, 1672, 1666, 1671,
2790      1669, 1673, 1668, 1672, 1674, 1677, 1666, 1678, 1680, 1670,
2791      1670, 1675, 1681, 1673, 1676, 1680, 1674, 1677, 1682, 1684,
2792      1678, 1683,    0, 1675, 1672, 1685, 1684, 1681, 1678, 1686,
2793
2794      1683, 1687, 1677, 1689, 1678, 1680, 1690, 1692, 1687, 1681,
2795         0, 1691, 1693,    0,    0, 1682, 1684, 1678, 1683, 1685,
2796      1691, 1686, 1685, 1695, 1697, 1689, 1686, 1701, 1687, 1692,
2797      1689, 1690, 1693, 1690, 1692, 1699, 1702, 1698, 1691, 1693,
2798      1701, 1695, 1697, 1703, 1703, 1704, 1705, 1706,    0, 1708,
2799      1695, 1697, 1698, 1707, 1701, 1710, 1711, 1717, 1708, 1709,
2800      1699, 1721, 1699, 1702, 1698, 1712, 1709, 1704,    0, 1706,
2801      1703, 1705, 1704, 1705, 1706, 1707, 1708, 1713, 1711, 1712,
2802      1707, 1715, 1716, 1711, 1717, 1718, 1709, 1710, 1719, 1715,
2803      1720, 1722, 1712, 1721, 1723, 1716, 1713, 1720,    0, 1725,
2804
2805      1719, 1726,    0, 1727, 1713, 1728, 1724,    0, 1715, 1716,
2806      1731, 1718, 1718, 1722, 1724, 1719, 1726, 1720, 1722, 1723,
2807      1729, 1723,    0,    0, 1730, 1724, 1725, 1730, 1726, 1727,
2808      1727, 1728, 1728, 1724, 1732, 1731,    0, 1731, 1729, 1733,
2809      1732, 1724, 1730, 1735, 1733, 1734, 1738, 1729, 1741, 1737,
2810      1742, 1730, 1739, 1743, 1730, 1746, 1744, 1742, 1735,    0,
2811      1745, 1732, 1741, 1734, 1737, 1744, 1746, 1752, 1738, 1745,
2812      1735, 1733, 1734, 1738, 1739, 1741, 1737, 1742, 1747, 1739,
2813      1743, 1748, 1746, 1744, 1750, 1751, 1758, 1745, 1753, 1752,
2814         0, 1747, 1760, 1748, 1752, 1763, 1756, 1759, 1765, 1750,
2815
2816      1751, 1759, 1762, 1764, 1760, 1747, 1768, 1758, 1748, 1756,
2817      1753, 1750, 1751, 1758, 1761, 1753, 1761, 1756, 1766, 1760,
2818      1762, 1764, 1763, 1756, 1759, 1765, 1766, 1767, 1768, 1762,
2819      1764, 1771, 1769, 1768, 1770, 1772, 1756, 1773, 1774, 1770,
2820      1785, 1761, 1775, 1778,    0, 1766, 1769,    0, 1779, 1775,
2821      1767, 1781, 1788, 1780, 1767, 1782, 1790, 1774,    0, 1769,
2822      1787, 1773, 1779, 1771, 1773, 1774, 1770, 1772, 1783, 1775,
2823      1778, 1780, 1785, 1779, 1779, 1779, 1784, 1786, 1781, 1788,
2824      1780, 1782, 1782, 1783, 1789, 1784, 1787, 1787, 1790, 1779,
2825      1792, 1793, 1794, 1798, 1796, 1783, 1796, 1798, 1793, 1786,
2826
2827      1779, 1797, 1799, 1784, 1786, 1800, 1789, 1801, 1803, 1806,
2828         0, 1789, 1899, 1792, 1799, 1794, 1801, 1792, 1793, 1794,
2829      1798, 1796, 1802, 1797, 1804, 1805, 1808, 1800, 1797, 1799,
2830      1811, 1806, 1800, 1802, 1801, 1803, 1806, 1805, 1807, 1807,
2831      1809, 1808, 1810, 1813, 1899,    0, 1814, 1804, 1809, 1802,
2832      1815, 1804, 1805, 1808, 1814, 1816, 1820, 1811, 1815, 1816,
2833      1817, 1824, 1813, 1817, 1810, 1807, 1818, 1809, 1823, 1810,
2834      1813, 1820, 1819, 1814, 1818, 1821, 1825, 1815, 1819, 1827,
2835      1823, 1821, 1816, 1820, 1826,    0, 1829, 1817, 1824, 1830,
2836      1828, 1831, 1827, 1818, 1834, 1823, 1832, 1836, 1826, 1819,
2837
2838      1825, 1833, 1821, 1825, 1828, 1837, 1827, 1835, 1832, 1839,
2839      1835, 1826, 1829, 1829, 1843, 1833, 1830, 1828, 1831, 1840,
2840      1834, 1834, 1841, 1832, 1836, 1835, 1840, 1837, 1833, 1841,
2841      1842, 1839, 1837, 1844, 1835, 1845, 1839, 1835, 1846, 1847,
2842      1848, 1843, 1849, 1845, 1850, 1842, 1840, 1851, 1847, 1841,
2843      1852, 1853, 1856, 1855, 1849, 1858, 1857, 1842, 1862, 1853,
2844      1844, 1859, 1845, 1852, 1857, 1846, 1847, 1848, 1860, 1849,
2845      1859, 1850, 1861, 1862, 1851, 1855, 1863, 1852, 1853, 1856,
2846      1855, 1865, 1858, 1857, 1862, 1862, 1864, 1867, 1859, 1860,
2847      1866,    0, 1872, 1865, 1864, 1860, 1861, 1869, 1866, 1861,
2848
2849      1862, 1870, 1873, 1863, 1869, 1870, 1871, 1878, 1865, 1875,
2850      1876, 1880, 1874, 1864, 1867, 1872, 1879, 1866, 1871, 1872,
2851      1874, 1875, 1876, 1879, 1869, 1882, 1882, 1881, 1870, 1873,
2852      1883, 1880, 1884, 1871, 1878, 1885, 1875, 1876, 1880, 1874,
2853      1881, 1886, 1889, 1879, 1890, 1891, 1888, 1891, 1886, 1892,
2854      1884, 1901, 1882,    0, 1881, 1894, 1883, 1883, 1898, 1884,
2855      1885, 1888, 1885, 1892, 1889, 1896, 1890, 1897, 1886, 1889,
2856      1898, 1890, 1891, 1888, 1893, 1900, 1892, 1894, 1902, 1904,
2857      1893, 1900, 1894, 1901, 1903, 1898, 1903, 1896, 1910, 1897,
2858      1905, 1906, 1896, 1904, 1897, 1907, 1908, 1909, 1911, 1917,
2859
2860      1902, 1893, 1900, 1916,    0, 1902, 1904,    0, 1905, 1906,
2861      1909, 1903, 1913, 1907, 1908, 1915,    0, 1905, 1906, 1913,
2862      1910, 1911, 1907, 1908, 1909, 1911, 1918, 1923, 1924, 1916,
2863      1916, 1917, 1925, 1915, 1918, 1921, 1919, 1922, 1919, 1913,
2864      1924, 1927, 1915, 1919, 1936, 1929, 1921, 1928, 1922, 1932,
2865      1925, 1930, 1918, 1918, 1923, 1924, 1927, 1929, 1928, 1925,
2866      1933, 1918, 1921, 1919, 1922, 1919, 1930, 1937, 1927, 1935,
2867      1934, 1936, 1929, 1932, 1928, 1939, 1932, 1934, 1930, 1940,
2868      1942, 1943, 1933, 1941, 1935,    0,    0, 1933, 1944,    0,
2869      1946, 1945, 1947, 1937, 1937, 1948, 1935, 1934, 1950, 1954,
2870
2871      1952, 1949, 1939, 1940, 1945, 1941, 1940, 1947, 1948, 1949,
2872      1941, 1953, 1942, 1943, 1955, 1944, 1946, 1946, 1945, 1947,
2873      1958, 1956, 1948, 1952, 1950, 1950, 1954, 1952, 1949, 1960,
2874      1957, 1963, 1964, 1961, 1967, 1953, 1955, 1957, 1953, 1956,
2875      1961, 1955, 1962, 1958, 1963, 1965, 1966, 1958, 1956, 1962,
2876      1968, 1960, 1965, 1969, 1971, 1964, 1960, 1957, 1963, 1964,
2877      1961, 1972, 1969, 1973, 1975, 1971, 1967, 1974, 1966, 1962,
2878      1979, 1968, 1965, 1966, 1978, 1980, 1987, 1968, 1981, 1981,
2879      1969, 1971, 1982, 1972, 1984, 1985, 1974, 1978, 1972, 1975,
2880      2004, 1975, 1988, 1991, 1974, 1973, 1979, 1979, 1986, 1980,
2881
2882         0, 1978, 1980, 1987, 1998, 1981, 1993, 1984, 1982, 1982,
2883      1988, 1984, 1999, 1986, 1995, 1993, 2000, 1985, 2002, 1988,
2884      1991, 2005, 2004, 2007, 2006, 1986, 1998, 1995, 2007, 2010,
2885      2008, 1998, 2012, 1993, 1999, 2006, 2014, 2010, 2011, 1999,
2886      2015, 1995, 2019, 2000,    0, 2002, 2016, 2005, 2005, 2017,
2887      2007, 2006, 2008, 2011, 2014, 2016, 2010, 2008, 2020, 2012,
2888      2023, 2017, 2021, 2014, 2024, 2011, 2020, 2028, 2025, 2019,
2889      2026, 2021, 2015, 2016, 2027, 2029, 2017, 2030, 2031, 2032,
2890      2028, 2033, 2034, 2035, 2030, 2020, 2023, 2023, 2029, 2021,
2891      2025, 2024, 2026, 2038, 2028, 2025, 2036, 2026, 2037, 2027,
2892
2893      2031, 2027, 2029, 2039, 2030, 2031, 2032, 2037, 2033, 2034,
2894      2035, 2036, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2038,
2895      2038, 2042, 2047, 2036, 2107, 2037, 2043, 2040, 2041, 2039,
2896      2039, 2048, 2049, 2051, 2053,    0, 2054, 2047,    0, 2040,
2897      2041, 2042, 2043, 2044, 2045, 2046, 2050, 2049, 2060, 2047,
2898      2052, 2048, 2057, 2050, 2054, 2051, 2107, 2052, 2048, 2049,
2899      2051, 2053, 2056, 2054, 2055, 2055, 2057, 2058, 2059, 2056,
2900      2058, 2062, 2061, 2050, 2060, 2060, 2063, 2052, 2065, 2057,
2901      2066, 2059, 2067, 2062, 2068, 2066, 2067, 2065, 2063, 2056,
2902      2061, 2055, 2070, 2069, 2058, 2059, 2071, 2072, 2062, 2061,
2903
2904      2073,    0, 2074, 2063, 2076, 2065, 2069, 2066, 2068, 2067,
2905      2078, 2068, 2079,    0, 2070, 2083, 2080, 2081, 2071, 2070,
2906      2069, 2079, 2083, 2071, 2072, 2081, 2084, 2073, 2074, 2074,
2907      2076, 2076, 2080, 2085, 2086, 2084, 2078, 2078, 2085, 2079,
2908      2087, 2086, 2083, 2080, 2081, 2088, 2089,    0, 2090, 2092,
2909      2094, 2093, 2088, 2084, 2095, 2089, 2093, 2096, 2087, 2105,
2910      2085, 2086, 2097, 2099,    0,    0, 2106, 2087, 2094,    0,
2911      2098, 2097, 2088, 2089, 2090, 2090, 2092, 2094, 2093, 2098,
2912      2100, 2095, 2101, 2099, 2096, 2102, 2105, 2103, 2104, 2097,
2913      2099, 2101, 2100, 2106, 2102, 2108, 2104, 2098, 2103, 2109,
2914
2915      2110, 2111, 2114, 2112, 2108, 2116, 2113, 2100, 2110, 2101,
2916      2112, 2109, 2102, 2113, 2103, 2104, 2115, 2117, 2118, 2122,
2917         0,    0, 2108, 2111, 2114,    0, 2109, 2110, 2111, 2114,
2918      2112, 2120, 2116, 2113, 2130,    0, 2129, 2122, 2131, 2120,
2919      2123, 2115, 2117, 2115, 2117, 2118, 2122, 2124, 2123, 2125,
2920      2131, 2133, 2128, 2132, 2124, 2138, 2136, 2125, 2120, 2128,
2921      2129, 2130, 2132, 2129, 2134, 2131, 2137, 2123, 2136, 2143,
2922      2139, 2145, 2146, 2148, 2124,    0, 2125, 2151, 2133, 2128,
2923      2132, 2141, 2138, 2136, 2139, 2142, 2145, 2134, 2141, 2137,
2924         0, 2134, 2142, 2137, 2147, 2149, 2143, 2139, 2145, 2146,
2925
2926      2148, 2150, 2147, 2156, 2151, 2157, 2158, 2160, 2141, 2159,
2927      2157, 2162, 2142, 2161, 2163, 2167, 2150, 2149,    0,    0,
2928      2158, 2147, 2149, 2159, 2169, 2160, 2163, 2175, 2150, 2156,
2929      2156, 2161, 2157, 2158, 2160, 2168, 2159, 2167, 2162, 2170,
2930      2161, 2163, 2167, 2174, 2171, 2172, 2169, 2176, 2168, 2175,
2931      2178, 2169, 2171, 2177, 2175, 2174, 2179, 2184, 2170, 2180,
2932      2181,    0, 2168, 2185, 2172, 2177, 2170, 2182, 2189, 2176,
2933      2174, 2171, 2172, 2186, 2176, 2183, 2182, 2178, 2190, 2180,
2934      2177, 2187, 2181, 2179, 2183, 2185, 2180, 2181, 2188, 2184,
2935      2185, 2194, 2193, 2187, 2182, 2189, 2195,    0, 2196, 2186,
2936
2937      2186, 2199, 2183, 2196, 2197, 2190, 2193, 2198, 2187, 2200,
2938      2188,    0,    0, 2201,    0, 2188, 2203,    0, 2194, 2193,
2939      2195, 2202, 2204, 2195, 2205, 2208, 2197, 2206, 2203, 2198,
2940      2196, 2197, 2200, 2199, 2198, 2201, 2200, 2209, 2212, 2202,
2941      2201, 2204, 2206, 2203, 2213, 2216, 2205, 2208, 2202, 2204,
2942      2214, 2205, 2208, 2215, 2206, 2217,    0, 2218, 2219, 2214,
2943      2212, 2209, 2222, 2216, 2209, 2212, 2213, 2215, 2223, 2225,
2944      2222, 2213, 2216, 2217, 2227, 2223, 2219, 2214, 2224, 2226,
2945      2215, 2228, 2217, 2218, 2218, 2219, 2224, 2226, 2229, 2222,
2946      2230, 2232, 2227, 2228, 2236, 2223, 2225, 2234, 2230, 2235,
2947
2948      2237, 2227, 2238, 2232, 2234, 2224, 2226, 2242, 2228, 2239,
2949      2246, 2240, 2245, 2243, 2250, 2229, 2249, 2230, 2232, 2247,
2950      2251, 2236, 2235, 2246, 2234, 2242, 2235, 2243, 2239, 2238,
2951      2253, 2247, 2237, 2240, 2242, 2245, 2239, 2246, 2240, 2245,
2952      2243, 2250, 2249, 2249, 2255, 2257, 2247, 2251, 2258, 2260,
2953         0, 2261, 2257, 2258, 2262, 2263, 2260, 2253, 2267, 2264,
2954      2265, 2268,    0, 2269, 2270, 2272, 2273, 2267, 2275,    0,
2955      2276, 2255, 2257,    0, 2265, 2273, 2260, 2261, 2261, 2277,
2956      2258, 2262, 2263, 2264, 2271, 2267, 2264, 2265, 2268, 2269,
2957      2269, 2270, 2272, 2273, 2274, 2281, 2271, 2276, 2280, 2281,
2958
2959      2275, 2282, 2277, 2280, 2284, 2283, 2277, 2274, 2282, 2285,
2960      2287, 2271, 2283, 2286,    0, 2286, 2288, 2291, 2294, 2293,
2961         0, 2274, 2281, 2297, 2296, 2284, 2296, 2300, 2282,    0,
2962      2280, 2284, 2283, 2287, 2299, 2303, 2300, 2287, 2293, 2291,
2963      2286, 2285, 2294, 2288, 2291, 2294, 2293, 2297, 2298, 2298,
2964      2297, 2296, 2301, 2302, 2300, 2304, 2299, 2312, 2298, 2301,
2965      2306, 2299, 2303, 2304, 2305, 2306, 2302, 2308, 2312, 2307,
2966         0, 2309,    0, 2310, 2320, 2298, 2298, 2307, 2311, 2301,
2967      2302, 2313, 2304, 2305, 2312, 2315, 2315, 2321, 2314, 2316,
2968      2324, 2305, 2306, 2308, 2308, 2314, 2307, 2309, 2309, 2310,
2969
2970      2310, 2320, 2317, 2313, 2311, 2311, 2318, 2316, 2313, 2317,
2971      2322, 2321, 2315, 2318, 2321, 2314, 2316, 2324, 2325, 2322,
2972      2326, 2327, 2329, 2331, 2332,    0, 2336, 2335, 2334, 2317,
2973      2333, 2336, 2331, 2318, 2338, 2343,    0, 2322, 2325, 2335,
2974      2329,    0, 2337, 2327,    0, 2325, 2334, 2326, 2327, 2329,
2975      2331, 2332, 2338, 2333, 2335, 2334, 2337, 2333, 2336, 2344,
2976      2346, 2338, 2343, 2350, 2347, 2350, 2351, 2352, 2344, 2337,
2977      2354, 2356,    0, 2358, 2352, 2359, 2365, 2356, 2346, 2347,
2978      2363, 2360, 2362, 2363, 2351, 2354, 2344, 2346, 2366, 2367,
2979      2350, 2347, 2373, 2351, 2352, 2358, 2368, 2354, 2356, 2360,
2980
2981      2358, 2359, 2359, 2365, 2362, 2369, 2363, 2363, 2360, 2362,
2982      2363, 2370, 2369, 2371, 2368, 2366, 2367, 2374, 2376, 2370,
2983      2375, 2377, 2378, 2368, 2373, 2380, 2381, 2383, 2378, 2379,
2984      2377,    0, 2369, 2389, 2380, 2371,    0,    0, 2370, 2374,
2985      2371, 2382, 2375, 2382, 2374, 2376,    0, 2375, 2377, 2378,
2986      2386, 2379, 2380, 2385, 2383, 2390, 2379, 2387, 2381, 2391,
2987      2389, 2385, 2386, 2393, 2387, 2392, 2395, 2394, 2382, 2390,
2988      2396,    0, 2399, 2391, 2395, 2400, 2397, 2386, 2394, 2402,
2989      2385, 2393, 2390, 2400, 2387, 2403, 2391, 2407, 2392, 2396,
2990      2393, 2409, 2392, 2395, 2394, 2398, 2398, 2396, 2397, 2399,
2991
2992      2408, 2405, 2400, 2397, 2411, 2413, 2402, 2405, 2412, 2413,
2993      2416, 2408, 2403, 2409, 2407, 2412, 2414, 2417, 2409, 2419,
2994      2420, 2421, 2398, 2422, 2414, 2420, 2423, 2408, 2405, 2430,
2995      2417, 2411, 2413, 2423, 2425, 2412, 2416, 2416, 2424, 2428,
2996      2431, 2419, 2426, 2414, 2417, 2432, 2419, 2420, 2421, 2426,
2997      2422, 2427, 2425, 2423, 2428, 2429, 2430, 2424, 2436, 2427,
2998      2438, 2425, 2429, 2437, 2431, 2424, 2428, 2431, 2439, 2426,
2999      2437, 2432, 2432, 2436, 2440, 2441,    0, 2442, 2427, 2446,
3000      2447, 2444, 2429, 2445, 2424, 2436, 2442, 2446, 2449, 2451,
3001      2437, 2455, 2438, 2453, 2452, 2439, 2456, 2457, 2440, 2448,
3002
3003      2448, 2440, 2452, 2444, 2442, 2445, 2446, 2441, 2444, 2448,
3004      2445, 2453, 2447, 2459, 2460, 2449, 2451, 2458, 2455, 2457,
3005      2453, 2452, 2461, 2456, 2457, 2462, 2448, 2448, 2463, 2465,
3006      2458, 2468, 2470,    0, 2471, 2459, 2473, 2470, 2474, 2468,
3007      2459, 2460, 2477, 2482, 2458, 2479, 2475, 2484, 2476, 2461,
3008      2463, 2474, 2462, 2475, 2478, 2463, 2465, 2486, 2468, 2470,
3009      2471, 2471, 2478, 2473, 2485, 2474, 2476, 2479, 2487, 2477,
3010      2482, 2488, 2479, 2475, 2484, 2476, 2491, 2485, 2489, 2492,
3011      2493, 2478, 2494, 2491,    0, 2497, 2492, 2487, 2498, 2486,
3012      2495, 2485, 2499,    0, 2500, 2487, 2498, 2494, 2488, 2499,
3013
3014      2489, 2500, 2493, 2491, 2497, 2489, 2492, 2493, 2505, 2494,
3015      2504, 2495, 2497, 2501, 2502, 2498, 2504, 2495, 2509, 2499,
3016      2508, 2500, 2501, 2503, 2503, 2502, 2512, 2508, 2513, 2514,
3017      2505, 2518, 2509, 2503, 2520, 2505, 2522, 2504, 2521, 2521,
3018      2501, 2502, 2524, 2528, 2529, 2509, 2532, 2508, 2525, 2526,
3019      2503, 2503, 2514, 2512, 2533, 2513, 2514, 2525, 2518, 2522,
3020      2534, 2520, 2526, 2522, 2537, 2528, 2532, 2521, 2538, 2524,
3021      2528, 2529, 2534, 2532, 2536, 2525, 2526, 2533, 2539, 2540,
3022      2541, 2533, 2537, 2536, 2544, 2543, 2542, 2534, 2543, 2544,
3023      2545, 2537, 2541, 2548, 2538, 2538, 2546, 2547, 2546, 2548,
3024
3025      2552, 2536, 2556, 2543, 2549, 2539, 2540, 2541, 2542, 2547,
3026      2550, 2551, 2543, 2542, 2553, 2543, 2544, 2559, 2560, 2551,
3027      2548, 2561, 2545, 2546, 2547, 2563, 2549, 2552, 2564, 2556,
3028      2567, 2549, 2550, 2565, 2568, 2569, 2553, 2550, 2551, 2570,
3029      2565, 2553, 2571, 2563, 2559, 2560, 2568, 2572, 2561, 2575,
3030      2569, 2576, 2563, 2578, 2571, 2564, 2582, 2567, 2575, 2579,
3031      2565, 2568, 2569, 2577, 2577, 2570, 2570, 2581, 2579, 2571,
3032      2583, 2584, 2596, 2585, 2572, 2576, 2575, 2589, 2576, 2578,
3033      2578, 2585, 2594, 2583, 2587, 2599, 2579, 2586, 2582, 2589,
3034      2577, 2581,    0, 2584, 2581, 2587, 2586, 2583, 2584, 2596,
3035
3036      2585, 2598, 2601, 2600, 2589, 2598, 2594, 2604, 2599, 2594,
3037      2600, 2587, 2599, 2603, 2586, 2601, 2605, 2603, 2610, 2606,
3038      2607,    0, 2608, 2604, 2611, 2609, 2610,    0, 2598, 2601,
3039      2600, 2612, 2607, 2611, 2604, 2613, 2619, 2613, 2605, 2609,
3040      2603, 2614, 2612, 2605, 2606, 2610, 2606, 2607, 2608, 2608,
3041      2615, 2611, 2609, 2614, 2616, 2620, 2615, 2618, 2612, 2621,
3042      2623, 2616, 2613, 2619, 2622, 2624, 2625, 2628, 2614, 2626,
3043      2618, 2627, 2632, 2620, 2625, 2629, 2626, 2615, 2630, 2635,
3044      2630, 2616, 2620, 2643, 2618, 2647, 2621, 2623, 2631, 2628,
3045      2622, 2622, 2624, 2625, 2628, 2627, 2626, 2629, 2627, 2633,
3046
3047      2631, 2634, 2629, 2636, 2632, 2630, 2635, 2638, 2634, 2640,
3048      2643, 2636, 2633, 2644, 2645, 2631, 2646, 2647, 2640, 2638,
3049      2648, 2651, 2649, 2650, 2646,    0, 2633, 2652, 2634, 2651,
3050      2636, 2654, 2655, 2645, 2638, 2649, 2640, 2650, 2654, 2644,
3051      2644, 2645, 2656, 2646, 2658, 2655, 2659, 2660, 2651, 2649,
3052      2650, 2658, 2648, 2661, 2652, 2660, 2662, 2664, 2654, 2655,
3053      2665, 2669, 2671, 2672, 2663, 2656, 2667, 2661, 2659, 2656,
3054      2662, 2658, 2663, 2659, 2660, 2667, 2670, 2668, 2673, 2664,
3055      2661,    0, 2665, 2662, 2664, 2668, 2674, 2665, 2669, 2672,
3056      2672, 2663, 2675, 2667, 2671, 2677, 2678, 2679, 2670, 2676,
3057
3058      2673, 2682, 2681, 2670, 2668, 2673, 2686, 2676, 2674, 2682,
3059      2683,    0, 2684, 2674, 2675,    0, 2689, 2688, 2678, 2675,
3060      2684, 2691,    0, 2678, 2679, 2681, 2676, 2677, 2682, 2681,
3061      2683, 2688, 2685, 2687, 2693, 2698, 2696, 2683, 2686, 2684,
3062      2685, 2687, 2689, 2689, 2688, 2694, 2692, 2695, 2691, 2692,
3063      2696, 2697, 2699, 2694, 2702, 2695, 2693, 2698, 2704, 2685,
3064      2687, 2693, 2698, 2696, 2692, 2705, 2699, 2701, 2701, 2707,
3065      2709, 2706, 2694, 2692, 2695, 2703, 2692, 2697, 2697, 2699,
3066      2702, 2702, 2708, 2703, 2704, 2704, 2710, 2711, 2712, 2707,
3067      2708, 2705, 2705, 2706, 2701, 2715, 2707, 2709, 2706, 2713,
3068
3069      2714, 2716, 2703, 2715, 2719,    0,    0, 2722, 2710, 2708,
3070      2717, 2723, 2711, 2710, 2711, 2712, 2720, 2724, 2717, 2713,
3071      2714, 2726, 2715, 2716, 2720, 2724, 2713, 2714, 2716, 2722,
3072      2728, 2719, 2725, 2723, 2722, 2731, 2732, 2717, 2723, 2735,
3073      2725, 2729, 2730, 2720, 2724, 2733, 2736, 2726, 2726, 2729,
3074      2730, 2737, 2739, 2742, 2745, 2746, 2743, 2728,    0, 2725,
3075         0, 2731, 2731, 2732, 2743, 2733, 2735,    0, 2729, 2730,
3076         0, 2737, 2733, 2736, 2739, 2742, 2744,    0, 2737, 2739,
3077      2742, 2745, 2746, 2743, 2744,    0,    0,    0,    0,    0,
3078         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
3079
3080         0,    0,    0, 2744, 2750, 2750, 2750, 2750, 2750, 2750,
3081      2750, 2751, 2751, 2751, 2751, 2751, 2751, 2751, 2752, 2752,
3082      2752, 2752, 2752, 2752, 2752, 2753, 2753, 2753, 2753, 2753,
3083      2753, 2753, 2754, 2754, 2754, 2754, 2754, 2754, 2754, 2756,
3084      2756,    0, 2756, 2756, 2756, 2756, 2757, 2757,    0,    0,
3085         0, 2757, 2757, 2758, 2758,    0,    0, 2758,    0, 2758,
3086      2759,    0,    0,    0,    0,    0, 2759, 2760, 2760,    0,
3087         0,    0, 2760, 2760, 2761,    0,    0,    0,    0,    0,
3088      2761, 2762, 2762,    0, 2762, 2762, 2762, 2762, 2763, 2763,
3089         0, 2763, 2763, 2763, 2763, 2749, 2749, 2749, 2749, 2749,
3090
3091      2749, 2749, 2749, 2749, 2749, 2749, 2749, 2749, 2749, 2749,
3092      2749, 2749, 2749, 2749, 2749, 2749, 2749, 2749, 2749, 2749,
3093      2749, 2749, 2749, 2749, 2749, 2749, 2749, 2749, 2749, 2749,
3094      2749, 2749, 2749, 2749, 2749, 2749, 2749, 2749, 2749, 2749,
3095      2749, 2749, 2749, 2749, 2749, 2749, 2749, 2749, 2749, 2749,
3096      2749, 2749, 2749, 2749, 2749, 2749, 2749, 2749, 2749, 2749,
3097      2749, 2749
3098     } ;
3099
3100 static yy_state_type yy_last_accepting_state;
3101 static char *yy_last_accepting_cpos;
3102
3103 extern int yy_flex_debug;
3104 int yy_flex_debug = 0;
3105
3106 /* The intent behind this definition is that it'll catch
3107  * any uses of REJECT which flex missed.
3108  */
3109 #define REJECT reject_used_but_not_detected
3110 static int yy_more_flag = 0;
3111 static int yy_more_len = 0;
3112 #define yymore() ((yy_more_flag) = 1)
3113 #define YY_MORE_ADJ (yy_more_len)
3114 #define YY_RESTORE_YY_MORE_OFFSET
3115 char *yytext;
3116 #line 1 "util/configlexer.lex"
3117 #line 2 "util/configlexer.lex"
3118 /*
3119  * configlexer.lex - lexical analyzer for unbound config file
3120  *
3121  * Copyright (c) 2001-2006, NLnet Labs. All rights reserved
3122  *
3123  * See LICENSE for the license.
3124  *
3125  */
3126
3127 /* because flex keeps having sign-unsigned compare problems that are unfixed*/
3128 #if defined(__clang__)||(defined(__GNUC__)&&((__GNUC__ >4)||(defined(__GNUC_MINOR__)&&(__GNUC__ ==4)&&(__GNUC_MINOR__ >=2))))
3129 #pragma GCC diagnostic ignored "-Wsign-compare"
3130 #endif
3131
3132 #include <ctype.h>
3133 #include <strings.h>
3134 #ifdef HAVE_GLOB_H
3135 # include <glob.h>
3136 #endif
3137
3138 #include "util/config_file.h"
3139 #include "util/configparser.h"
3140 void ub_c_error(const char *message);
3141
3142 #if 0
3143 #define LEXOUT(s)  printf s /* used ONLY when debugging */
3144 #else
3145 #define LEXOUT(s)
3146 #endif
3147
3148 /** avoid warning in about fwrite return value */
3149 #define ECHO ub_c_error_msg("syntax error at text: %s", yytext)
3150
3151 /** A parser variable, this is a statement in the config file which is
3152  * of the form variable: value1 value2 ...  nargs is the number of values. */
3153 #define YDVAR(nargs, var) \
3154         num_args=(nargs); \
3155         LEXOUT(("v(%s%d) ", yytext, num_args)); \
3156         if(num_args > 0) { BEGIN(val); } \
3157         return (var);
3158
3159 struct inc_state {
3160         char* filename;
3161         int line;
3162         YY_BUFFER_STATE buffer;
3163         struct inc_state* next;
3164 };
3165 static struct inc_state* config_include_stack = NULL;
3166 static int inc_depth = 0;
3167 static int inc_prev = 0;
3168 static int num_args = 0;
3169
3170 void init_cfg_parse(void)
3171 {
3172         config_include_stack = NULL;
3173         inc_depth = 0;
3174         inc_prev = 0;
3175         num_args = 0;
3176 }
3177
3178 static void config_start_include(const char* filename)
3179 {
3180         FILE *input;
3181         struct inc_state* s;
3182         char* nm;
3183         if(inc_depth++ > 100000) {
3184                 ub_c_error_msg("too many include files");
3185                 return;
3186         }
3187         if(*filename == '\0') {
3188                 ub_c_error_msg("empty include file name");
3189                 return;
3190         }
3191         s = (struct inc_state*)malloc(sizeof(*s));
3192         if(!s) {
3193                 ub_c_error_msg("include %s: malloc failure", filename);
3194                 return;
3195         }
3196         if(cfg_parser->chroot && strncmp(filename, cfg_parser->chroot,
3197                 strlen(cfg_parser->chroot)) == 0) {
3198                 filename += strlen(cfg_parser->chroot);
3199         }
3200         nm = strdup(filename);
3201         if(!nm) {
3202                 ub_c_error_msg("include %s: strdup failure", filename);
3203                 free(s);
3204                 return;
3205         }
3206         input = fopen(filename, "r");
3207         if(!input) {
3208                 ub_c_error_msg("cannot open include file '%s': %s",
3209                         filename, strerror(errno));
3210                 free(s);
3211                 free(nm);
3212                 return;
3213         }
3214         LEXOUT(("switch_to_include_file(%s)\n", filename));
3215         s->filename = cfg_parser->filename;
3216         s->line = cfg_parser->line;
3217         s->buffer = YY_CURRENT_BUFFER;
3218         s->next = config_include_stack;
3219         config_include_stack = s;
3220         cfg_parser->filename = nm;
3221         cfg_parser->line = 1;
3222         yy_switch_to_buffer(yy_create_buffer(input,YY_BUF_SIZE));
3223 }
3224
3225 static void config_start_include_glob(const char* filename)
3226 {
3227
3228         /* check for wildcards */
3229 #ifdef HAVE_GLOB
3230         glob_t g;
3231         size_t i;
3232         int r, flags;
3233         if(!(!strchr(filename, '*') && !strchr(filename, '?') && !strchr(filename, '[') &&
3234                 !strchr(filename, '{') && !strchr(filename, '~'))) {
3235                 flags = 0
3236 #ifdef GLOB_ERR
3237                         | GLOB_ERR
3238 #endif
3239 #ifdef GLOB_NOSORT
3240                         | GLOB_NOSORT
3241 #endif
3242 #ifdef GLOB_BRACE
3243                         | GLOB_BRACE
3244 #endif
3245 #ifdef GLOB_TILDE
3246                         | GLOB_TILDE
3247 #endif
3248                 ;
3249                 memset(&g, 0, sizeof(g));
3250                 if(cfg_parser->chroot && strncmp(filename, cfg_parser->chroot,
3251                         strlen(cfg_parser->chroot)) == 0) {
3252                         filename += strlen(cfg_parser->chroot);
3253                 }
3254                 r = glob(filename, flags, NULL, &g);
3255                 if(r) {
3256                         /* some error */
3257                         globfree(&g);
3258                         if(r == GLOB_NOMATCH)
3259                                 return; /* no matches for pattern */
3260                         config_start_include(filename); /* let original deal with it */
3261                         return;
3262                 }
3263                 /* process files found, if any */
3264                 for(i=0; i<(size_t)g.gl_pathc; i++) {
3265                         config_start_include(g.gl_pathv[i]);
3266                 }
3267                 globfree(&g);
3268                 return;
3269         }
3270 #endif /* HAVE_GLOB */
3271
3272         config_start_include(filename);
3273 }
3274
3275 static void config_end_include(void)
3276 {
3277         struct inc_state* s = config_include_stack;
3278         --inc_depth;
3279         if(!s) return;
3280         free(cfg_parser->filename);
3281         cfg_parser->filename = s->filename;
3282         cfg_parser->line = s->line;
3283         yy_delete_buffer(YY_CURRENT_BUFFER);
3284         yy_switch_to_buffer(s->buffer);
3285         config_include_stack = s->next;
3286         free(s);
3287 }
3288
3289 #ifndef yy_set_bol /* compat definition, for flex 2.4.6 */
3290 #define yy_set_bol(at_bol) \
3291         { \
3292                 if ( ! yy_current_buffer ) \
3293                         yy_current_buffer = yy_create_buffer(yyin,YY_BUF_SIZE ); \
3294                 yy_current_buffer->yy_ch_buf[0] = ((at_bol)?'\n':' '); \
3295         }
3296 #endif
3297
3298 #define YY_NO_INPUT 1
3299 #line 186 "util/configlexer.lex"
3300 #ifndef YY_NO_UNPUT
3301 #define YY_NO_UNPUT 1
3302 #endif
3303 #ifndef YY_NO_INPUT
3304 #define YY_NO_INPUT 1
3305 #endif
3306
3307 #line 3306 "<stdout>"
3308
3309 #define INITIAL 0
3310 #define quotedstring 1
3311 #define singlequotedstr 2
3312 #define include 3
3313 #define include_quoted 4
3314 #define val 5
3315
3316 #ifndef YY_NO_UNISTD_H
3317 /* Special case for "unistd.h", since it is non-ANSI. We include it way
3318  * down here because we want the user's section 1 to have been scanned first.
3319  * The user has a chance to override it with an option.
3320  */
3321 #include <unistd.h>
3322 #endif
3323
3324 #ifndef YY_EXTRA_TYPE
3325 #define YY_EXTRA_TYPE void *
3326 #endif
3327
3328 static int yy_init_globals (void );
3329
3330 /* Accessor methods to globals.
3331    These are made visible to non-reentrant scanners for convenience. */
3332
3333 int yylex_destroy (void );
3334
3335 int yyget_debug (void );
3336
3337 void yyset_debug (int debug_flag  );
3338
3339 YY_EXTRA_TYPE yyget_extra (void );
3340
3341 void yyset_extra (YY_EXTRA_TYPE user_defined  );
3342
3343 FILE *yyget_in (void );
3344
3345 void yyset_in  (FILE * _in_str  );
3346
3347 FILE *yyget_out (void );
3348
3349 void yyset_out  (FILE * _out_str  );
3350
3351                         int yyget_leng (void );
3352
3353 char *yyget_text (void );
3354
3355 int yyget_lineno (void );
3356
3357 void yyset_lineno (int _line_number  );
3358
3359 /* Macros after this point can all be overridden by user definitions in
3360  * section 1.
3361  */
3362
3363 #ifndef YY_SKIP_YYWRAP
3364 #ifdef __cplusplus
3365 extern "C" int yywrap (void );
3366 #else
3367 extern int yywrap (void );
3368 #endif
3369 #endif
3370
3371 #ifndef YY_NO_UNPUT
3372     
3373 #endif
3374
3375 #ifndef yytext_ptr
3376 static void yy_flex_strncpy (char *,yyconst char *,int );
3377 #endif
3378
3379 #ifdef YY_NEED_STRLEN
3380 static int yy_flex_strlen (yyconst char * );
3381 #endif
3382
3383 #ifndef YY_NO_INPUT
3384
3385 #ifdef __cplusplus
3386 static int yyinput (void );
3387 #else
3388 static int input (void );
3389 #endif
3390
3391 #endif
3392
3393 /* Amount of stuff to slurp up with each read. */
3394 #ifndef YY_READ_BUF_SIZE
3395 #ifdef __ia64__
3396 /* On IA-64, the buffer size is 16k, not 8k */
3397 #define YY_READ_BUF_SIZE 16384
3398 #else
3399 #define YY_READ_BUF_SIZE 8192
3400 #endif /* __ia64__ */
3401 #endif
3402
3403 /* Copy whatever the last rule matched to the standard output. */
3404 #ifndef ECHO
3405 /* This used to be an fputs(), but since the string might contain NUL's,
3406  * we now use fwrite().
3407  */
3408 #define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
3409 #endif
3410
3411 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
3412  * is returned in "result".
3413  */
3414 #ifndef YY_INPUT
3415 #define YY_INPUT(buf,result,max_size) \
3416         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
3417                 { \
3418                 int c = '*'; \
3419                 int n; \
3420                 for ( n = 0; n < max_size && \
3421                              (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
3422                         buf[n] = (char) c; \
3423                 if ( c == '\n' ) \
3424                         buf[n++] = (char) c; \
3425                 if ( c == EOF && ferror( yyin ) ) \
3426                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
3427                 result = n; \
3428                 } \
3429         else \
3430                 { \
3431                 errno=0; \
3432                 while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
3433                         { \
3434                         if( errno != EINTR) \
3435                                 { \
3436                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
3437                                 break; \
3438                                 } \
3439                         errno=0; \
3440                         clearerr(yyin); \
3441                         } \
3442                 }\
3443 \
3444
3445 #endif
3446
3447 /* No semi-colon after return; correct usage is to write "yyterminate();" -
3448  * we don't want an extra ';' after the "return" because that will cause
3449  * some compilers to complain about unreachable statements.
3450  */
3451 #ifndef yyterminate
3452 #define yyterminate() return YY_NULL
3453 #endif
3454
3455 /* Number of entries by which start-condition stack grows. */
3456 #ifndef YY_START_STACK_INCR
3457 #define YY_START_STACK_INCR 25
3458 #endif
3459
3460 /* Report a fatal error. */
3461 #ifndef YY_FATAL_ERROR
3462 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
3463 #endif
3464
3465 /* end tables serialization structures and prototypes */
3466
3467 /* Default declaration of generated scanner - a define so the user can
3468  * easily add parameters.
3469  */
3470 #ifndef YY_DECL
3471 #define YY_DECL_IS_OURS 1
3472
3473 extern int yylex (void);
3474
3475 #define YY_DECL int yylex (void)
3476 #endif /* !YY_DECL */
3477
3478 /* Code executed at the beginning of each rule, after yytext and yyleng
3479  * have been set up.
3480  */
3481 #ifndef YY_USER_ACTION
3482 #define YY_USER_ACTION
3483 #endif
3484
3485 /* Code executed at the end of each rule. */
3486 #ifndef YY_BREAK
3487 #define YY_BREAK /*LINTED*/break;
3488 #endif
3489
3490 #define YY_RULE_SETUP \
3491         YY_USER_ACTION
3492
3493 /** The main scanner function which does all the work.
3494  */
3495 YY_DECL
3496 {
3497         yy_state_type yy_current_state;
3498         char *yy_cp, *yy_bp;
3499         int yy_act;
3500     
3501         if ( !(yy_init) )
3502                 {
3503                 (yy_init) = 1;
3504
3505 #ifdef YY_USER_INIT
3506                 YY_USER_INIT;
3507 #endif
3508
3509                 if ( ! (yy_start) )
3510                         (yy_start) = 1; /* first start state */
3511
3512                 if ( ! yyin )
3513                         yyin = stdin;
3514
3515                 if ( ! yyout )
3516                         yyout = stdout;
3517
3518                 if ( ! YY_CURRENT_BUFFER ) {
3519                         yyensure_buffer_stack ();
3520                         YY_CURRENT_BUFFER_LVALUE =
3521                                 yy_create_buffer(yyin,YY_BUF_SIZE );
3522                 }
3523
3524                 yy_load_buffer_state( );
3525                 }
3526
3527         {
3528 #line 206 "util/configlexer.lex"
3529
3530 #line 3529 "<stdout>"
3531
3532         while ( /*CONSTCOND*/1 )                /* loops until end-of-file is reached */
3533                 {
3534                 (yy_more_len) = 0;
3535                 if ( (yy_more_flag) )
3536                         {
3537                         (yy_more_len) = (yy_c_buf_p) - (yytext_ptr);
3538                         (yy_more_flag) = 0;
3539                         }
3540                 yy_cp = (yy_c_buf_p);
3541
3542                 /* Support of yytext. */
3543                 *yy_cp = (yy_hold_char);
3544
3545                 /* yy_bp points to the position in yy_ch_buf of the start of
3546                  * the current run.
3547                  */
3548                 yy_bp = yy_cp;
3549
3550                 yy_current_state = (yy_start);
3551 yy_match:
3552                 do
3553                         {
3554                         YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
3555                         if ( yy_accept[yy_current_state] )
3556                                 {
3557                                 (yy_last_accepting_state) = yy_current_state;
3558                                 (yy_last_accepting_cpos) = yy_cp;
3559                                 }
3560                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3561                                 {
3562                                 yy_current_state = (int) yy_def[yy_current_state];
3563                                 if ( yy_current_state >= 2750 )
3564                                         yy_c = yy_meta[(unsigned int) yy_c];
3565                                 }
3566                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
3567                         ++yy_cp;
3568                         }
3569                 while ( yy_base[yy_current_state] != 7896 );
3570
3571 yy_find_action:
3572                 yy_act = yy_accept[yy_current_state];
3573                 if ( yy_act == 0 )
3574                         { /* have to back up */
3575                         yy_cp = (yy_last_accepting_cpos);
3576                         yy_current_state = (yy_last_accepting_state);
3577                         yy_act = yy_accept[yy_current_state];
3578                         }
3579
3580                 YY_DO_BEFORE_ACTION;
3581
3582 do_action:      /* This label is used only to access EOF actions. */
3583
3584                 switch ( yy_act )
3585         { /* beginning of action switch */
3586                         case 0: /* must back up */
3587                         /* undo the effects of YY_DO_BEFORE_ACTION */
3588                         *yy_cp = (yy_hold_char);
3589                         yy_cp = (yy_last_accepting_cpos);
3590                         yy_current_state = (yy_last_accepting_state);
3591                         goto yy_find_action;
3592
3593 case 1:
3594 YY_RULE_SETUP
3595 #line 207 "util/configlexer.lex"
3596
3597         LEXOUT(("SP ")); /* ignore */ }
3598         YY_BREAK
3599 case 2:
3600 YY_RULE_SETUP
3601 #line 209 "util/configlexer.lex"
3602
3603         /* note that flex makes the longest match and '.' is any but not nl */
3604         LEXOUT(("comment(%s) ", yytext)); /* ignore */ }
3605         YY_BREAK
3606 case 3:
3607 YY_RULE_SETUP
3608 #line 212 "util/configlexer.lex"
3609 { YDVAR(0, VAR_SERVER) }
3610         YY_BREAK
3611 case 4:
3612 YY_RULE_SETUP
3613 #line 213 "util/configlexer.lex"
3614 { YDVAR(1, VAR_QNAME_MINIMISATION) }
3615         YY_BREAK
3616 case 5:
3617 YY_RULE_SETUP
3618 #line 214 "util/configlexer.lex"
3619 { YDVAR(1, VAR_QNAME_MINIMISATION_STRICT) }
3620         YY_BREAK
3621 case 6:
3622 YY_RULE_SETUP
3623 #line 215 "util/configlexer.lex"
3624 { YDVAR(1, VAR_NUM_THREADS) }
3625         YY_BREAK
3626 case 7:
3627 YY_RULE_SETUP
3628 #line 216 "util/configlexer.lex"
3629 { YDVAR(1, VAR_VERBOSITY) }
3630         YY_BREAK
3631 case 8:
3632 YY_RULE_SETUP
3633 #line 217 "util/configlexer.lex"
3634 { YDVAR(1, VAR_PORT) }
3635         YY_BREAK
3636 case 9:
3637 YY_RULE_SETUP
3638 #line 218 "util/configlexer.lex"
3639 { YDVAR(1, VAR_OUTGOING_RANGE) }
3640         YY_BREAK
3641 case 10:
3642 YY_RULE_SETUP
3643 #line 219 "util/configlexer.lex"
3644 { YDVAR(1, VAR_OUTGOING_PORT_PERMIT) }
3645         YY_BREAK
3646 case 11:
3647 YY_RULE_SETUP
3648 #line 220 "util/configlexer.lex"
3649 { YDVAR(1, VAR_OUTGOING_PORT_AVOID) }
3650         YY_BREAK
3651 case 12:
3652 YY_RULE_SETUP
3653 #line 221 "util/configlexer.lex"
3654 { YDVAR(1, VAR_OUTGOING_NUM_TCP) }
3655         YY_BREAK
3656 case 13:
3657 YY_RULE_SETUP
3658 #line 222 "util/configlexer.lex"
3659 { YDVAR(1, VAR_INCOMING_NUM_TCP) }
3660         YY_BREAK
3661 case 14:
3662 YY_RULE_SETUP
3663 #line 223 "util/configlexer.lex"
3664 { YDVAR(1, VAR_DO_IP4) }
3665         YY_BREAK
3666 case 15:
3667 YY_RULE_SETUP
3668 #line 224 "util/configlexer.lex"
3669 { YDVAR(1, VAR_DO_IP6) }
3670         YY_BREAK
3671 case 16:
3672 YY_RULE_SETUP
3673 #line 225 "util/configlexer.lex"
3674 { YDVAR(1, VAR_PREFER_IP6) }
3675         YY_BREAK
3676 case 17:
3677 YY_RULE_SETUP
3678 #line 226 "util/configlexer.lex"
3679 { YDVAR(1, VAR_DO_UDP) }
3680         YY_BREAK
3681 case 18:
3682 YY_RULE_SETUP
3683 #line 227 "util/configlexer.lex"
3684 { YDVAR(1, VAR_DO_TCP) }
3685         YY_BREAK
3686 case 19:
3687 YY_RULE_SETUP
3688 #line 228 "util/configlexer.lex"
3689 { YDVAR(1, VAR_TCP_UPSTREAM) }
3690         YY_BREAK
3691 case 20:
3692 YY_RULE_SETUP
3693 #line 229 "util/configlexer.lex"
3694 { YDVAR(1, VAR_TCP_MSS) }
3695         YY_BREAK
3696 case 21:
3697 YY_RULE_SETUP
3698 #line 230 "util/configlexer.lex"
3699 { YDVAR(1, VAR_OUTGOING_TCP_MSS) }
3700         YY_BREAK
3701 case 22:
3702 YY_RULE_SETUP
3703 #line 231 "util/configlexer.lex"
3704 { YDVAR(1, VAR_TCP_IDLE_TIMEOUT) }
3705         YY_BREAK
3706 case 23:
3707 YY_RULE_SETUP
3708 #line 232 "util/configlexer.lex"
3709 { YDVAR(1, VAR_EDNS_TCP_KEEPALIVE) }
3710         YY_BREAK
3711 case 24:
3712 YY_RULE_SETUP
3713 #line 233 "util/configlexer.lex"
3714 { YDVAR(1, VAR_EDNS_TCP_KEEPALIVE_TIMEOUT) }
3715         YY_BREAK
3716 case 25:
3717 YY_RULE_SETUP
3718 #line 234 "util/configlexer.lex"
3719 { YDVAR(1, VAR_SSL_UPSTREAM) }
3720         YY_BREAK
3721 case 26:
3722 YY_RULE_SETUP
3723 #line 235 "util/configlexer.lex"
3724 { YDVAR(1, VAR_SSL_UPSTREAM) }
3725         YY_BREAK
3726 case 27:
3727 YY_RULE_SETUP
3728 #line 236 "util/configlexer.lex"
3729 { YDVAR(1, VAR_SSL_SERVICE_KEY) }
3730         YY_BREAK
3731 case 28:
3732 YY_RULE_SETUP
3733 #line 237 "util/configlexer.lex"
3734 { YDVAR(1, VAR_SSL_SERVICE_KEY) }
3735         YY_BREAK
3736 case 29:
3737 YY_RULE_SETUP
3738 #line 238 "util/configlexer.lex"
3739 { YDVAR(1, VAR_SSL_SERVICE_PEM) }
3740         YY_BREAK
3741 case 30:
3742 YY_RULE_SETUP
3743 #line 239 "util/configlexer.lex"
3744 { YDVAR(1, VAR_SSL_SERVICE_PEM) }
3745         YY_BREAK
3746 case 31:
3747 YY_RULE_SETUP
3748 #line 240 "util/configlexer.lex"
3749 { YDVAR(1, VAR_SSL_PORT) }
3750         YY_BREAK
3751 case 32:
3752 YY_RULE_SETUP
3753 #line 241 "util/configlexer.lex"
3754 { YDVAR(1, VAR_SSL_PORT) }
3755         YY_BREAK
3756 case 33:
3757 YY_RULE_SETUP
3758 #line 242 "util/configlexer.lex"
3759 { YDVAR(1, VAR_TLS_CERT_BUNDLE) }
3760         YY_BREAK
3761 case 34:
3762 YY_RULE_SETUP
3763 #line 243 "util/configlexer.lex"
3764 { YDVAR(1, VAR_TLS_CERT_BUNDLE) }
3765         YY_BREAK
3766 case 35:
3767 YY_RULE_SETUP
3768 #line 244 "util/configlexer.lex"
3769 { YDVAR(1, VAR_TLS_WIN_CERT) }
3770         YY_BREAK
3771 case 36:
3772 YY_RULE_SETUP
3773 #line 245 "util/configlexer.lex"
3774 { YDVAR(1, VAR_TLS_ADDITIONAL_PORT) }
3775         YY_BREAK
3776 case 37:
3777 YY_RULE_SETUP
3778 #line 246 "util/configlexer.lex"
3779 { YDVAR(1, VAR_TLS_ADDITIONAL_PORT) }
3780         YY_BREAK
3781 case 38:
3782 YY_RULE_SETUP
3783 #line 247 "util/configlexer.lex"
3784 { YDVAR(1, VAR_TLS_ADDITIONAL_PORT) }
3785         YY_BREAK
3786 case 39:
3787 YY_RULE_SETUP
3788 #line 248 "util/configlexer.lex"
3789 { YDVAR(1, VAR_TLS_ADDITIONAL_PORT) }
3790         YY_BREAK
3791 case 40:
3792 YY_RULE_SETUP
3793 #line 249 "util/configlexer.lex"
3794 { YDVAR(1, VAR_USE_SYSTEMD) }
3795         YY_BREAK
3796 case 41:
3797 YY_RULE_SETUP
3798 #line 250 "util/configlexer.lex"
3799 { YDVAR(1, VAR_DO_DAEMONIZE) }
3800         YY_BREAK
3801 case 42:
3802 YY_RULE_SETUP
3803 #line 251 "util/configlexer.lex"
3804 { YDVAR(1, VAR_INTERFACE) }
3805         YY_BREAK
3806 case 43:
3807 YY_RULE_SETUP
3808 #line 252 "util/configlexer.lex"
3809 { YDVAR(1, VAR_INTERFACE) }
3810         YY_BREAK
3811 case 44:
3812 YY_RULE_SETUP
3813 #line 253 "util/configlexer.lex"
3814 { YDVAR(1, VAR_OUTGOING_INTERFACE) }
3815         YY_BREAK
3816 case 45:
3817 YY_RULE_SETUP
3818 #line 254 "util/configlexer.lex"
3819 { YDVAR(1, VAR_INTERFACE_AUTOMATIC) }
3820         YY_BREAK
3821 case 46:
3822 YY_RULE_SETUP
3823 #line 255 "util/configlexer.lex"
3824 { YDVAR(1, VAR_SO_RCVBUF) }
3825         YY_BREAK
3826 case 47:
3827 YY_RULE_SETUP
3828 #line 256 "util/configlexer.lex"
3829 { YDVAR(1, VAR_SO_SNDBUF) }
3830         YY_BREAK
3831 case 48:
3832 YY_RULE_SETUP
3833 #line 257 "util/configlexer.lex"
3834 { YDVAR(1, VAR_SO_REUSEPORT) }
3835         YY_BREAK
3836 case 49:
3837 YY_RULE_SETUP
3838 #line 258 "util/configlexer.lex"
3839 { YDVAR(1, VAR_IP_TRANSPARENT) }
3840         YY_BREAK
3841 case 50:
3842 YY_RULE_SETUP
3843 #line 259 "util/configlexer.lex"
3844 { YDVAR(1, VAR_IP_FREEBIND) }
3845         YY_BREAK
3846 case 51:
3847 YY_RULE_SETUP
3848 #line 260 "util/configlexer.lex"
3849 { YDVAR(1, VAR_CHROOT) }
3850         YY_BREAK
3851 case 52:
3852 YY_RULE_SETUP
3853 #line 261 "util/configlexer.lex"
3854 { YDVAR(1, VAR_USERNAME) }
3855         YY_BREAK
3856 case 53:
3857 YY_RULE_SETUP
3858 #line 262 "util/configlexer.lex"
3859 { YDVAR(1, VAR_DIRECTORY) }
3860         YY_BREAK
3861 case 54:
3862 YY_RULE_SETUP
3863 #line 263 "util/configlexer.lex"
3864 { YDVAR(1, VAR_LOGFILE) }
3865         YY_BREAK
3866 case 55:
3867 YY_RULE_SETUP
3868 #line 264 "util/configlexer.lex"
3869 { YDVAR(1, VAR_PIDFILE) }
3870         YY_BREAK
3871 case 56:
3872 YY_RULE_SETUP
3873 #line 265 "util/configlexer.lex"
3874 { YDVAR(1, VAR_ROOT_HINTS) }
3875         YY_BREAK
3876 case 57:
3877 YY_RULE_SETUP
3878 #line 266 "util/configlexer.lex"
3879 { YDVAR(1, VAR_EDNS_BUFFER_SIZE) }
3880         YY_BREAK
3881 case 58:
3882 YY_RULE_SETUP
3883 #line 267 "util/configlexer.lex"
3884 { YDVAR(1, VAR_MSG_BUFFER_SIZE) }
3885         YY_BREAK
3886 case 59:
3887 YY_RULE_SETUP
3888 #line 268 "util/configlexer.lex"
3889 { YDVAR(1, VAR_MSG_CACHE_SIZE) }
3890         YY_BREAK
3891 case 60:
3892 YY_RULE_SETUP
3893 #line 269 "util/configlexer.lex"
3894 { YDVAR(1, VAR_MSG_CACHE_SLABS) }
3895         YY_BREAK
3896 case 61:
3897 YY_RULE_SETUP
3898 #line 270 "util/configlexer.lex"
3899 { YDVAR(1, VAR_RRSET_CACHE_SIZE) }
3900         YY_BREAK
3901 case 62:
3902 YY_RULE_SETUP
3903 #line 271 "util/configlexer.lex"
3904 { YDVAR(1, VAR_RRSET_CACHE_SLABS) }
3905         YY_BREAK
3906 case 63:
3907 YY_RULE_SETUP
3908 #line 272 "util/configlexer.lex"
3909 { YDVAR(1, VAR_CACHE_MAX_TTL) }
3910         YY_BREAK
3911 case 64:
3912 YY_RULE_SETUP
3913 #line 273 "util/configlexer.lex"
3914 { YDVAR(1, VAR_CACHE_MAX_NEGATIVE_TTL) }
3915         YY_BREAK
3916 case 65:
3917 YY_RULE_SETUP
3918 #line 274 "util/configlexer.lex"
3919 { YDVAR(1, VAR_CACHE_MIN_TTL) }
3920         YY_BREAK
3921 case 66:
3922 YY_RULE_SETUP
3923 #line 275 "util/configlexer.lex"
3924 { YDVAR(1, VAR_INFRA_HOST_TTL) }
3925         YY_BREAK
3926 case 67:
3927 YY_RULE_SETUP
3928 #line 276 "util/configlexer.lex"
3929 { YDVAR(1, VAR_INFRA_LAME_TTL) }
3930         YY_BREAK
3931 case 68:
3932 YY_RULE_SETUP
3933 #line 277 "util/configlexer.lex"
3934 { YDVAR(1, VAR_INFRA_CACHE_SLABS) }
3935         YY_BREAK
3936 case 69:
3937 YY_RULE_SETUP
3938 #line 278 "util/configlexer.lex"
3939 { YDVAR(1, VAR_INFRA_CACHE_NUMHOSTS) }
3940         YY_BREAK
3941 case 70:
3942 YY_RULE_SETUP
3943 #line 279 "util/configlexer.lex"
3944 { YDVAR(1, VAR_INFRA_CACHE_LAME_SIZE) }
3945         YY_BREAK
3946 case 71:
3947 YY_RULE_SETUP
3948 #line 280 "util/configlexer.lex"
3949 { YDVAR(1, VAR_INFRA_CACHE_MIN_RTT) }
3950         YY_BREAK
3951 case 72:
3952 YY_RULE_SETUP
3953 #line 281 "util/configlexer.lex"
3954 { YDVAR(1, VAR_NUM_QUERIES_PER_THREAD) }
3955         YY_BREAK
3956 case 73:
3957 YY_RULE_SETUP
3958 #line 282 "util/configlexer.lex"
3959 { YDVAR(1, VAR_JOSTLE_TIMEOUT) }
3960         YY_BREAK
3961 case 74:
3962 YY_RULE_SETUP
3963 #line 283 "util/configlexer.lex"
3964 { YDVAR(1, VAR_DELAY_CLOSE) }
3965         YY_BREAK
3966 case 75:
3967 YY_RULE_SETUP
3968 #line 284 "util/configlexer.lex"
3969 { YDVAR(1, VAR_TARGET_FETCH_POLICY) }
3970         YY_BREAK
3971 case 76:
3972 YY_RULE_SETUP
3973 #line 285 "util/configlexer.lex"
3974 { YDVAR(1, VAR_HARDEN_SHORT_BUFSIZE) }
3975         YY_BREAK
3976 case 77:
3977 YY_RULE_SETUP
3978 #line 286 "util/configlexer.lex"
3979 { YDVAR(1, VAR_HARDEN_LARGE_QUERIES) }
3980         YY_BREAK
3981 case 78:
3982 YY_RULE_SETUP
3983 #line 287 "util/configlexer.lex"
3984 { YDVAR(1, VAR_HARDEN_GLUE) }
3985         YY_BREAK
3986 case 79:
3987 YY_RULE_SETUP
3988 #line 288 "util/configlexer.lex"
3989 { YDVAR(1, VAR_HARDEN_DNSSEC_STRIPPED) }
3990         YY_BREAK
3991 case 80:
3992 YY_RULE_SETUP
3993 #line 289 "util/configlexer.lex"
3994 { YDVAR(1, VAR_HARDEN_BELOW_NXDOMAIN) }
3995         YY_BREAK
3996 case 81:
3997 YY_RULE_SETUP
3998 #line 290 "util/configlexer.lex"
3999 { YDVAR(1, VAR_HARDEN_REFERRAL_PATH) }
4000         YY_BREAK
4001 case 82:
4002 YY_RULE_SETUP
4003 #line 291 "util/configlexer.lex"
4004 { YDVAR(1, VAR_HARDEN_ALGO_DOWNGRADE) }
4005         YY_BREAK
4006 case 83:
4007 YY_RULE_SETUP
4008 #line 292 "util/configlexer.lex"
4009 { YDVAR(1, VAR_USE_CAPS_FOR_ID) }
4010         YY_BREAK
4011 case 84:
4012 YY_RULE_SETUP
4013 #line 293 "util/configlexer.lex"
4014 { YDVAR(1, VAR_CAPS_WHITELIST) }
4015         YY_BREAK
4016 case 85:
4017 YY_RULE_SETUP
4018 #line 294 "util/configlexer.lex"
4019 { YDVAR(1, VAR_UNWANTED_REPLY_THRESHOLD) }
4020         YY_BREAK
4021 case 86:
4022 YY_RULE_SETUP
4023 #line 295 "util/configlexer.lex"
4024 { YDVAR(1, VAR_PRIVATE_ADDRESS) }
4025         YY_BREAK
4026 case 87:
4027 YY_RULE_SETUP
4028 #line 296 "util/configlexer.lex"
4029 { YDVAR(1, VAR_PRIVATE_DOMAIN) }
4030         YY_BREAK
4031 case 88:
4032 YY_RULE_SETUP
4033 #line 297 "util/configlexer.lex"
4034 { YDVAR(1, VAR_PREFETCH_KEY) }
4035         YY_BREAK
4036 case 89:
4037 YY_RULE_SETUP
4038 #line 298 "util/configlexer.lex"
4039 { YDVAR(1, VAR_PREFETCH) }
4040         YY_BREAK
4041 case 90:
4042 YY_RULE_SETUP
4043 #line 299 "util/configlexer.lex"
4044 { YDVAR(0, VAR_STUB_ZONE) }
4045         YY_BREAK
4046 case 91:
4047 YY_RULE_SETUP
4048 #line 300 "util/configlexer.lex"
4049 { YDVAR(1, VAR_NAME) }
4050         YY_BREAK
4051 case 92:
4052 YY_RULE_SETUP
4053 #line 301 "util/configlexer.lex"
4054 { YDVAR(1, VAR_STUB_ADDR) }
4055         YY_BREAK
4056 case 93:
4057 YY_RULE_SETUP
4058 #line 302 "util/configlexer.lex"
4059 { YDVAR(1, VAR_STUB_HOST) }
4060         YY_BREAK
4061 case 94:
4062 YY_RULE_SETUP
4063 #line 303 "util/configlexer.lex"
4064 { YDVAR(1, VAR_STUB_PRIME) }
4065         YY_BREAK
4066 case 95:
4067 YY_RULE_SETUP
4068 #line 304 "util/configlexer.lex"
4069 { YDVAR(1, VAR_STUB_FIRST) }
4070         YY_BREAK
4071 case 96:
4072 YY_RULE_SETUP
4073 #line 305 "util/configlexer.lex"
4074 { YDVAR(1, VAR_STUB_NO_CACHE) }
4075         YY_BREAK
4076 case 97:
4077 YY_RULE_SETUP
4078 #line 306 "util/configlexer.lex"
4079 { YDVAR(1, VAR_STUB_SSL_UPSTREAM) }
4080         YY_BREAK
4081 case 98:
4082 YY_RULE_SETUP
4083 #line 307 "util/configlexer.lex"
4084 { YDVAR(1, VAR_STUB_SSL_UPSTREAM) }
4085         YY_BREAK
4086 case 99:
4087 YY_RULE_SETUP
4088 #line 308 "util/configlexer.lex"
4089 { YDVAR(0, VAR_FORWARD_ZONE) }
4090         YY_BREAK
4091 case 100:
4092 YY_RULE_SETUP
4093 #line 309 "util/configlexer.lex"
4094 { YDVAR(1, VAR_FORWARD_ADDR) }
4095         YY_BREAK
4096 case 101:
4097 YY_RULE_SETUP
4098 #line 310 "util/configlexer.lex"
4099 { YDVAR(1, VAR_FORWARD_HOST) }
4100         YY_BREAK
4101 case 102:
4102 YY_RULE_SETUP
4103 #line 311 "util/configlexer.lex"
4104 { YDVAR(1, VAR_FORWARD_FIRST) }
4105         YY_BREAK
4106 case 103:
4107 YY_RULE_SETUP
4108 #line 312 "util/configlexer.lex"
4109 { YDVAR(1, VAR_FORWARD_NO_CACHE) }
4110         YY_BREAK
4111 case 104:
4112 YY_RULE_SETUP
4113 #line 313 "util/configlexer.lex"
4114 { YDVAR(1, VAR_FORWARD_SSL_UPSTREAM) }
4115         YY_BREAK
4116 case 105:
4117 YY_RULE_SETUP
4118 #line 314 "util/configlexer.lex"
4119 { YDVAR(1, VAR_FORWARD_SSL_UPSTREAM) }
4120         YY_BREAK
4121 case 106:
4122 YY_RULE_SETUP
4123 #line 315 "util/configlexer.lex"
4124 { YDVAR(0, VAR_AUTH_ZONE) }
4125         YY_BREAK
4126 case 107:
4127 YY_RULE_SETUP
4128 #line 316 "util/configlexer.lex"
4129 { YDVAR(1, VAR_ZONEFILE) }
4130         YY_BREAK
4131 case 108:
4132 YY_RULE_SETUP
4133 #line 317 "util/configlexer.lex"
4134 { YDVAR(1, VAR_MASTER) }
4135         YY_BREAK
4136 case 109:
4137 YY_RULE_SETUP
4138 #line 318 "util/configlexer.lex"
4139 { YDVAR(1, VAR_URL) }
4140         YY_BREAK
4141 case 110:
4142 YY_RULE_SETUP
4143 #line 319 "util/configlexer.lex"
4144 { YDVAR(1, VAR_ALLOW_NOTIFY) }
4145         YY_BREAK
4146 case 111:
4147 YY_RULE_SETUP
4148 #line 320 "util/configlexer.lex"
4149 { YDVAR(1, VAR_FOR_DOWNSTREAM) }
4150         YY_BREAK
4151 case 112:
4152 YY_RULE_SETUP
4153 #line 321 "util/configlexer.lex"
4154 { YDVAR(1, VAR_FOR_UPSTREAM) }
4155         YY_BREAK
4156 case 113:
4157 YY_RULE_SETUP
4158 #line 322 "util/configlexer.lex"
4159 { YDVAR(1, VAR_FALLBACK_ENABLED) }
4160         YY_BREAK
4161 case 114:
4162 YY_RULE_SETUP
4163 #line 323 "util/configlexer.lex"
4164 { YDVAR(0, VAR_VIEW) }
4165         YY_BREAK
4166 case 115:
4167 YY_RULE_SETUP
4168 #line 324 "util/configlexer.lex"
4169 { YDVAR(1, VAR_VIEW_FIRST) }
4170         YY_BREAK
4171 case 116:
4172 YY_RULE_SETUP
4173 #line 325 "util/configlexer.lex"
4174 { YDVAR(1, VAR_DO_NOT_QUERY_ADDRESS) }
4175         YY_BREAK
4176 case 117:
4177 YY_RULE_SETUP
4178 #line 326 "util/configlexer.lex"
4179 { YDVAR(1, VAR_DO_NOT_QUERY_LOCALHOST) }
4180         YY_BREAK
4181 case 118:
4182 YY_RULE_SETUP
4183 #line 327 "util/configlexer.lex"
4184 { YDVAR(2, VAR_ACCESS_CONTROL) }
4185         YY_BREAK
4186 case 119:
4187 YY_RULE_SETUP
4188 #line 328 "util/configlexer.lex"
4189 { YDVAR(1, VAR_SEND_CLIENT_SUBNET) }
4190         YY_BREAK
4191 case 120:
4192 YY_RULE_SETUP
4193 #line 329 "util/configlexer.lex"
4194 { YDVAR(1, VAR_CLIENT_SUBNET_ZONE) }
4195         YY_BREAK
4196 case 121:
4197 YY_RULE_SETUP
4198 #line 330 "util/configlexer.lex"
4199 { YDVAR(1, VAR_CLIENT_SUBNET_ALWAYS_FORWARD) }
4200         YY_BREAK
4201 case 122:
4202 YY_RULE_SETUP
4203 #line 331 "util/configlexer.lex"
4204 { YDVAR(1, VAR_CLIENT_SUBNET_OPCODE) }
4205         YY_BREAK
4206 case 123:
4207 YY_RULE_SETUP
4208 #line 332 "util/configlexer.lex"
4209 { YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV4) }
4210         YY_BREAK
4211 case 124:
4212 YY_RULE_SETUP
4213 #line 333 "util/configlexer.lex"
4214 { YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV6) }
4215         YY_BREAK
4216 case 125:
4217 YY_RULE_SETUP
4218 #line 334 "util/configlexer.lex"
4219 { YDVAR(1, VAR_HIDE_IDENTITY) }
4220         YY_BREAK
4221 case 126:
4222 YY_RULE_SETUP
4223 #line 335 "util/configlexer.lex"
4224 { YDVAR(1, VAR_HIDE_VERSION) }
4225         YY_BREAK
4226 case 127:
4227 YY_RULE_SETUP
4228 #line 336 "util/configlexer.lex"
4229 { YDVAR(1, VAR_HIDE_TRUSTANCHOR) }
4230         YY_BREAK
4231 case 128:
4232 YY_RULE_SETUP
4233 #line 337 "util/configlexer.lex"
4234 { YDVAR(1, VAR_IDENTITY) }
4235         YY_BREAK
4236 case 129:
4237 YY_RULE_SETUP
4238 #line 338 "util/configlexer.lex"
4239 { YDVAR(1, VAR_VERSION) }
4240         YY_BREAK
4241 case 130:
4242 YY_RULE_SETUP
4243 #line 339 "util/configlexer.lex"
4244 { YDVAR(1, VAR_MODULE_CONF) }
4245         YY_BREAK
4246 case 131:
4247 YY_RULE_SETUP
4248 #line 340 "util/configlexer.lex"
4249 { YDVAR(1, VAR_DLV_ANCHOR) }
4250         YY_BREAK
4251 case 132:
4252 YY_RULE_SETUP
4253 #line 341 "util/configlexer.lex"
4254 { YDVAR(1, VAR_DLV_ANCHOR_FILE) }
4255         YY_BREAK
4256 case 133:
4257 YY_RULE_SETUP
4258 #line 342 "util/configlexer.lex"
4259 { YDVAR(1, VAR_TRUST_ANCHOR_FILE) }
4260         YY_BREAK
4261 case 134:
4262 YY_RULE_SETUP
4263 #line 343 "util/configlexer.lex"
4264 { YDVAR(1, VAR_AUTO_TRUST_ANCHOR_FILE) }
4265         YY_BREAK
4266 case 135:
4267 YY_RULE_SETUP
4268 #line 344 "util/configlexer.lex"
4269 { YDVAR(1, VAR_TRUSTED_KEYS_FILE) }
4270         YY_BREAK
4271 case 136:
4272 YY_RULE_SETUP
4273 #line 345 "util/configlexer.lex"
4274 { YDVAR(1, VAR_TRUST_ANCHOR) }
4275         YY_BREAK
4276 case 137:
4277 YY_RULE_SETUP
4278 #line 346 "util/configlexer.lex"
4279 { YDVAR(1, VAR_TRUST_ANCHOR_SIGNALING) }
4280         YY_BREAK
4281 case 138:
4282 YY_RULE_SETUP
4283 #line 347 "util/configlexer.lex"
4284 { YDVAR(1, VAR_ROOT_KEY_SENTINEL) }
4285         YY_BREAK
4286 case 139:
4287 YY_RULE_SETUP
4288 #line 348 "util/configlexer.lex"
4289 { YDVAR(1, VAR_VAL_OVERRIDE_DATE) }
4290         YY_BREAK
4291 case 140:
4292 YY_RULE_SETUP
4293 #line 349 "util/configlexer.lex"
4294 { YDVAR(1, VAR_VAL_SIG_SKEW_MIN) }
4295         YY_BREAK
4296 case 141:
4297 YY_RULE_SETUP
4298 #line 350 "util/configlexer.lex"
4299 { YDVAR(1, VAR_VAL_SIG_SKEW_MAX) }
4300         YY_BREAK
4301 case 142:
4302 YY_RULE_SETUP
4303 #line 351 "util/configlexer.lex"
4304 { YDVAR(1, VAR_BOGUS_TTL) }
4305         YY_BREAK
4306 case 143:
4307 YY_RULE_SETUP
4308 #line 352 "util/configlexer.lex"
4309 { YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) }
4310         YY_BREAK
4311 case 144:
4312 YY_RULE_SETUP
4313 #line 353 "util/configlexer.lex"
4314 { YDVAR(1, VAR_VAL_PERMISSIVE_MODE) }
4315         YY_BREAK
4316 case 145:
4317 YY_RULE_SETUP
4318 #line 354 "util/configlexer.lex"
4319 { YDVAR(1, VAR_AGGRESSIVE_NSEC) }
4320         YY_BREAK
4321 case 146:
4322 YY_RULE_SETUP
4323 #line 355 "util/configlexer.lex"
4324 { YDVAR(1, VAR_IGNORE_CD_FLAG) }
4325         YY_BREAK
4326 case 147:
4327 YY_RULE_SETUP
4328 #line 356 "util/configlexer.lex"
4329 { YDVAR(1, VAR_SERVE_EXPIRED) }
4330         YY_BREAK
4331 case 148:
4332 YY_RULE_SETUP
4333 #line 357 "util/configlexer.lex"
4334 { YDVAR(1, VAR_SERVE_EXPIRED_TTL) }
4335         YY_BREAK
4336 case 149:
4337 YY_RULE_SETUP
4338 #line 358 "util/configlexer.lex"
4339 { YDVAR(1, VAR_SERVE_EXPIRED_TTL_RESET) }
4340         YY_BREAK
4341 case 150:
4342 YY_RULE_SETUP
4343 #line 359 "util/configlexer.lex"
4344 { YDVAR(1, VAR_FAKE_DSA) }
4345         YY_BREAK
4346 case 151:
4347 YY_RULE_SETUP
4348 #line 360 "util/configlexer.lex"
4349 { YDVAR(1, VAR_FAKE_SHA1) }
4350         YY_BREAK
4351 case 152:
4352 YY_RULE_SETUP
4353 #line 361 "util/configlexer.lex"
4354 { YDVAR(1, VAR_VAL_LOG_LEVEL) }
4355         YY_BREAK
4356 case 153:
4357 YY_RULE_SETUP
4358 #line 362 "util/configlexer.lex"
4359 { YDVAR(1, VAR_KEY_CACHE_SIZE) }
4360         YY_BREAK
4361 case 154:
4362 YY_RULE_SETUP
4363 #line 363 "util/configlexer.lex"
4364 { YDVAR(1, VAR_KEY_CACHE_SLABS) }
4365         YY_BREAK
4366 case 155:
4367 YY_RULE_SETUP
4368 #line 364 "util/configlexer.lex"
4369 { YDVAR(1, VAR_NEG_CACHE_SIZE) }
4370         YY_BREAK
4371 case 156:
4372 YY_RULE_SETUP
4373 #line 365 "util/configlexer.lex"
4374
4375                                   YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) }
4376         YY_BREAK
4377 case 157:
4378 YY_RULE_SETUP
4379 #line 367 "util/configlexer.lex"
4380 { YDVAR(1, VAR_ADD_HOLDDOWN) }
4381         YY_BREAK
4382 case 158:
4383 YY_RULE_SETUP
4384 #line 368 "util/configlexer.lex"
4385 { YDVAR(1, VAR_DEL_HOLDDOWN) }
4386         YY_BREAK
4387 case 159:
4388 YY_RULE_SETUP
4389 #line 369 "util/configlexer.lex"
4390 { YDVAR(1, VAR_KEEP_MISSING) }
4391         YY_BREAK
4392 case 160:
4393 YY_RULE_SETUP
4394 #line 370 "util/configlexer.lex"
4395 { YDVAR(1, VAR_PERMIT_SMALL_HOLDDOWN) }
4396         YY_BREAK
4397 case 161:
4398 YY_RULE_SETUP
4399 #line 371 "util/configlexer.lex"
4400 { YDVAR(1, VAR_USE_SYSLOG) }
4401         YY_BREAK
4402 case 162:
4403 YY_RULE_SETUP
4404 #line 372 "util/configlexer.lex"
4405 { YDVAR(1, VAR_LOG_IDENTITY) }
4406         YY_BREAK
4407 case 163:
4408 YY_RULE_SETUP
4409 #line 373 "util/configlexer.lex"
4410 { YDVAR(1, VAR_LOG_TIME_ASCII) }
4411         YY_BREAK
4412 case 164:
4413 YY_RULE_SETUP
4414 #line 374 "util/configlexer.lex"
4415 { YDVAR(1, VAR_LOG_QUERIES) }
4416         YY_BREAK
4417 case 165:
4418 YY_RULE_SETUP
4419 #line 375 "util/configlexer.lex"
4420 { YDVAR(1, VAR_LOG_REPLIES) }
4421         YY_BREAK
4422 case 166:
4423 YY_RULE_SETUP
4424 #line 376 "util/configlexer.lex"
4425 { YDVAR(1, VAR_LOG_LOCAL_ACTIONS) }
4426         YY_BREAK
4427 case 167:
4428 YY_RULE_SETUP
4429 #line 377 "util/configlexer.lex"
4430 { YDVAR(1, VAR_LOG_SERVFAIL) }
4431         YY_BREAK
4432 case 168:
4433 YY_RULE_SETUP
4434 #line 378 "util/configlexer.lex"
4435 { YDVAR(2, VAR_LOCAL_ZONE) }
4436         YY_BREAK
4437 case 169:
4438 YY_RULE_SETUP
4439 #line 379 "util/configlexer.lex"
4440 { YDVAR(1, VAR_LOCAL_DATA) }
4441         YY_BREAK
4442 case 170:
4443 YY_RULE_SETUP
4444 #line 380 "util/configlexer.lex"
4445 { YDVAR(1, VAR_LOCAL_DATA_PTR) }
4446         YY_BREAK
4447 case 171:
4448 YY_RULE_SETUP
4449 #line 381 "util/configlexer.lex"
4450 { YDVAR(1, VAR_UNBLOCK_LAN_ZONES) }
4451         YY_BREAK
4452 case 172:
4453 YY_RULE_SETUP
4454 #line 382 "util/configlexer.lex"
4455 { YDVAR(1, VAR_INSECURE_LAN_ZONES) }
4456         YY_BREAK
4457 case 173:
4458 YY_RULE_SETUP
4459 #line 383 "util/configlexer.lex"
4460 { YDVAR(1, VAR_STATISTICS_INTERVAL) }
4461         YY_BREAK
4462 case 174:
4463 YY_RULE_SETUP
4464 #line 384 "util/configlexer.lex"
4465 { YDVAR(1, VAR_STATISTICS_CUMULATIVE) }
4466         YY_BREAK
4467 case 175:
4468 YY_RULE_SETUP
4469 #line 385 "util/configlexer.lex"
4470 { YDVAR(1, VAR_EXTENDED_STATISTICS) }
4471         YY_BREAK
4472 case 176:
4473 YY_RULE_SETUP
4474 #line 386 "util/configlexer.lex"
4475 { YDVAR(1, VAR_SHM_ENABLE) }
4476         YY_BREAK
4477 case 177:
4478 YY_RULE_SETUP
4479 #line 387 "util/configlexer.lex"
4480 { YDVAR(1, VAR_SHM_KEY) }
4481         YY_BREAK
4482 case 178:
4483 YY_RULE_SETUP
4484 #line 388 "util/configlexer.lex"
4485 { YDVAR(0, VAR_REMOTE_CONTROL) }
4486         YY_BREAK
4487 case 179:
4488 YY_RULE_SETUP
4489 #line 389 "util/configlexer.lex"
4490 { YDVAR(1, VAR_CONTROL_ENABLE) }
4491         YY_BREAK
4492 case 180:
4493 YY_RULE_SETUP
4494 #line 390 "util/configlexer.lex"
4495 { YDVAR(1, VAR_CONTROL_INTERFACE) }
4496         YY_BREAK
4497 case 181:
4498 YY_RULE_SETUP
4499 #line 391 "util/configlexer.lex"
4500 { YDVAR(1, VAR_CONTROL_PORT) }
4501         YY_BREAK
4502 case 182:
4503 YY_RULE_SETUP
4504 #line 392 "util/configlexer.lex"
4505 { YDVAR(1, VAR_CONTROL_USE_CERT) }
4506         YY_BREAK
4507 case 183:
4508 YY_RULE_SETUP
4509 #line 393 "util/configlexer.lex"
4510 { YDVAR(1, VAR_SERVER_KEY_FILE) }
4511         YY_BREAK
4512 case 184:
4513 YY_RULE_SETUP
4514 #line 394 "util/configlexer.lex"
4515 { YDVAR(1, VAR_SERVER_CERT_FILE) }
4516         YY_BREAK
4517 case 185:
4518 YY_RULE_SETUP
4519 #line 395 "util/configlexer.lex"
4520 { YDVAR(1, VAR_CONTROL_KEY_FILE) }
4521         YY_BREAK
4522 case 186:
4523 YY_RULE_SETUP
4524 #line 396 "util/configlexer.lex"
4525 { YDVAR(1, VAR_CONTROL_CERT_FILE) }
4526         YY_BREAK
4527 case 187:
4528 YY_RULE_SETUP
4529 #line 397 "util/configlexer.lex"
4530 { YDVAR(1, VAR_PYTHON_SCRIPT) }
4531         YY_BREAK
4532 case 188:
4533 YY_RULE_SETUP
4534 #line 398 "util/configlexer.lex"
4535 { YDVAR(0, VAR_PYTHON) }
4536         YY_BREAK
4537 case 189:
4538 YY_RULE_SETUP
4539 #line 399 "util/configlexer.lex"
4540 { YDVAR(1, VAR_DOMAIN_INSECURE) }
4541         YY_BREAK
4542 case 190:
4543 YY_RULE_SETUP
4544 #line 400 "util/configlexer.lex"
4545 { YDVAR(1, VAR_MINIMAL_RESPONSES) }
4546         YY_BREAK
4547 case 191:
4548 YY_RULE_SETUP
4549 #line 401 "util/configlexer.lex"
4550 { YDVAR(1, VAR_RRSET_ROUNDROBIN) }
4551         YY_BREAK
4552 case 192:
4553 YY_RULE_SETUP
4554 #line 402 "util/configlexer.lex"
4555 { YDVAR(1, VAR_MAX_UDP_SIZE) }
4556         YY_BREAK
4557 case 193:
4558 YY_RULE_SETUP
4559 #line 403 "util/configlexer.lex"
4560 { YDVAR(1, VAR_DNS64_PREFIX) }
4561         YY_BREAK
4562 case 194:
4563 YY_RULE_SETUP
4564 #line 404 "util/configlexer.lex"
4565 { YDVAR(1, VAR_DNS64_SYNTHALL) }
4566         YY_BREAK
4567 case 195:
4568 YY_RULE_SETUP
4569 #line 405 "util/configlexer.lex"
4570 { YDVAR(1, VAR_DNS64_IGNORE_AAAA) }
4571         YY_BREAK
4572 case 196:
4573 YY_RULE_SETUP
4574 #line 406 "util/configlexer.lex"
4575 { YDVAR(1, VAR_DEFINE_TAG) }
4576         YY_BREAK
4577 case 197:
4578 YY_RULE_SETUP
4579 #line 407 "util/configlexer.lex"
4580 { YDVAR(2, VAR_LOCAL_ZONE_TAG) }
4581         YY_BREAK
4582 case 198:
4583 YY_RULE_SETUP
4584 #line 408 "util/configlexer.lex"
4585 { YDVAR(2, VAR_ACCESS_CONTROL_TAG) }
4586         YY_BREAK
4587 case 199:
4588 YY_RULE_SETUP
4589 #line 409 "util/configlexer.lex"
4590 { YDVAR(3, VAR_ACCESS_CONTROL_TAG_ACTION) }
4591         YY_BREAK
4592 case 200:
4593 YY_RULE_SETUP
4594 #line 410 "util/configlexer.lex"
4595 { YDVAR(3, VAR_ACCESS_CONTROL_TAG_DATA) }
4596         YY_BREAK
4597 case 201:
4598 YY_RULE_SETUP
4599 #line 411 "util/configlexer.lex"
4600 { YDVAR(2, VAR_ACCESS_CONTROL_VIEW) }
4601         YY_BREAK
4602 case 202:
4603 YY_RULE_SETUP
4604 #line 412 "util/configlexer.lex"
4605 { YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) }
4606         YY_BREAK
4607 case 203:
4608 YY_RULE_SETUP
4609 #line 413 "util/configlexer.lex"
4610 { YDVAR(0, VAR_DNSTAP) }
4611         YY_BREAK
4612 case 204:
4613 YY_RULE_SETUP
4614 #line 414 "util/configlexer.lex"
4615 { YDVAR(1, VAR_DNSTAP_ENABLE) }
4616         YY_BREAK
4617 case 205:
4618 YY_RULE_SETUP
4619 #line 415 "util/configlexer.lex"
4620 { YDVAR(1, VAR_DNSTAP_SOCKET_PATH) }
4621         YY_BREAK
4622 case 206:
4623 YY_RULE_SETUP
4624 #line 416 "util/configlexer.lex"
4625 { YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) }
4626         YY_BREAK
4627 case 207:
4628 YY_RULE_SETUP
4629 #line 417 "util/configlexer.lex"
4630 { YDVAR(1, VAR_DNSTAP_SEND_VERSION) }
4631         YY_BREAK
4632 case 208:
4633 YY_RULE_SETUP
4634 #line 418 "util/configlexer.lex"
4635 { YDVAR(1, VAR_DNSTAP_IDENTITY) }
4636         YY_BREAK
4637 case 209:
4638 YY_RULE_SETUP
4639 #line 419 "util/configlexer.lex"
4640 { YDVAR(1, VAR_DNSTAP_VERSION) }
4641         YY_BREAK
4642 case 210:
4643 YY_RULE_SETUP
4644 #line 420 "util/configlexer.lex"
4645 {
4646                 YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) }
4647         YY_BREAK
4648 case 211:
4649 YY_RULE_SETUP
4650 #line 422 "util/configlexer.lex"
4651 {
4652                 YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) }
4653         YY_BREAK
4654 case 212:
4655 YY_RULE_SETUP
4656 #line 424 "util/configlexer.lex"
4657 {
4658                 YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) }
4659         YY_BREAK
4660 case 213:
4661 YY_RULE_SETUP
4662 #line 426 "util/configlexer.lex"
4663 {
4664                 YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) }
4665         YY_BREAK
4666 case 214:
4667 YY_RULE_SETUP
4668 #line 428 "util/configlexer.lex"
4669 {
4670                 YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) }
4671         YY_BREAK
4672 case 215:
4673 YY_RULE_SETUP
4674 #line 430 "util/configlexer.lex"
4675 {
4676                 YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) }
4677         YY_BREAK
4678 case 216:
4679 YY_RULE_SETUP
4680 #line 432 "util/configlexer.lex"
4681 { YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) }
4682         YY_BREAK
4683 case 217:
4684 YY_RULE_SETUP
4685 #line 433 "util/configlexer.lex"
4686 { YDVAR(1, VAR_IP_RATELIMIT) }
4687         YY_BREAK
4688 case 218:
4689 YY_RULE_SETUP
4690 #line 434 "util/configlexer.lex"
4691 { YDVAR(1, VAR_RATELIMIT) }
4692         YY_BREAK
4693 case 219:
4694 YY_RULE_SETUP
4695 #line 435 "util/configlexer.lex"
4696 { YDVAR(1, VAR_IP_RATELIMIT_SLABS) }
4697         YY_BREAK
4698 case 220:
4699 YY_RULE_SETUP
4700 #line 436 "util/configlexer.lex"
4701 { YDVAR(1, VAR_RATELIMIT_SLABS) }
4702         YY_BREAK
4703 case 221:
4704 YY_RULE_SETUP
4705 #line 437 "util/configlexer.lex"
4706 { YDVAR(1, VAR_IP_RATELIMIT_SIZE) }
4707         YY_BREAK
4708 case 222:
4709 YY_RULE_SETUP
4710 #line 438 "util/configlexer.lex"
4711 { YDVAR(1, VAR_RATELIMIT_SIZE) }
4712         YY_BREAK
4713 case 223:
4714 YY_RULE_SETUP
4715 #line 439 "util/configlexer.lex"
4716 { YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) }
4717         YY_BREAK
4718 case 224:
4719 YY_RULE_SETUP
4720 #line 440 "util/configlexer.lex"
4721 { YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) }
4722         YY_BREAK
4723 case 225:
4724 YY_RULE_SETUP
4725 #line 441 "util/configlexer.lex"
4726 { YDVAR(1, VAR_IP_RATELIMIT_FACTOR) }
4727         YY_BREAK
4728 case 226:
4729 YY_RULE_SETUP
4730 #line 442 "util/configlexer.lex"
4731 { YDVAR(1, VAR_RATELIMIT_FACTOR) }
4732         YY_BREAK
4733 case 227:
4734 YY_RULE_SETUP
4735 #line 443 "util/configlexer.lex"
4736 { YDVAR(1, VAR_LOW_RTT) }
4737         YY_BREAK
4738 case 228:
4739 YY_RULE_SETUP
4740 #line 444 "util/configlexer.lex"
4741 { YDVAR(1, VAR_LOW_RTT_PERMIL) }
4742         YY_BREAK
4743 case 229:
4744 YY_RULE_SETUP
4745 #line 445 "util/configlexer.lex"
4746 { YDVAR(1, VAR_LOW_RTT_PERMIL) }
4747         YY_BREAK
4748 case 230:
4749 YY_RULE_SETUP
4750 #line 446 "util/configlexer.lex"
4751 { YDVAR(2, VAR_RESPONSE_IP_TAG) }
4752         YY_BREAK
4753 case 231:
4754 YY_RULE_SETUP
4755 #line 447 "util/configlexer.lex"
4756 { YDVAR(2, VAR_RESPONSE_IP) }
4757         YY_BREAK
4758 case 232:
4759 YY_RULE_SETUP
4760 #line 448 "util/configlexer.lex"
4761 { YDVAR(2, VAR_RESPONSE_IP_DATA) }
4762         YY_BREAK
4763 case 233:
4764 YY_RULE_SETUP
4765 #line 449 "util/configlexer.lex"
4766 { YDVAR(0, VAR_DNSCRYPT) }
4767         YY_BREAK
4768 case 234:
4769 YY_RULE_SETUP
4770 #line 450 "util/configlexer.lex"
4771 { YDVAR(1, VAR_DNSCRYPT_ENABLE) }
4772         YY_BREAK
4773 case 235:
4774 YY_RULE_SETUP
4775 #line 451 "util/configlexer.lex"
4776 { YDVAR(1, VAR_DNSCRYPT_PORT) }
4777         YY_BREAK
4778 case 236:
4779 YY_RULE_SETUP
4780 #line 452 "util/configlexer.lex"
4781 { YDVAR(1, VAR_DNSCRYPT_PROVIDER) }
4782         YY_BREAK
4783 case 237:
4784 YY_RULE_SETUP
4785 #line 453 "util/configlexer.lex"
4786 { YDVAR(1, VAR_DNSCRYPT_SECRET_KEY) }
4787         YY_BREAK
4788 case 238:
4789 YY_RULE_SETUP
4790 #line 454 "util/configlexer.lex"
4791 { YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT) }
4792         YY_BREAK
4793 case 239:
4794 YY_RULE_SETUP
4795 #line 455 "util/configlexer.lex"
4796 { YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT_ROTATED) }
4797         YY_BREAK
4798 case 240:
4799 YY_RULE_SETUP
4800 #line 456 "util/configlexer.lex"
4801 {
4802                 YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE) }
4803         YY_BREAK
4804 case 241:
4805 YY_RULE_SETUP
4806 #line 458 "util/configlexer.lex"
4807 {
4808                 YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS) }
4809         YY_BREAK
4810 case 242:
4811 YY_RULE_SETUP
4812 #line 460 "util/configlexer.lex"
4813 { YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SIZE) }
4814         YY_BREAK
4815 case 243:
4816 YY_RULE_SETUP
4817 #line 461 "util/configlexer.lex"
4818 { YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SLABS) }
4819         YY_BREAK
4820 case 244:
4821 YY_RULE_SETUP
4822 #line 462 "util/configlexer.lex"
4823 { YDVAR(1, VAR_IPSECMOD_ENABLED) }
4824         YY_BREAK
4825 case 245:
4826 YY_RULE_SETUP
4827 #line 463 "util/configlexer.lex"
4828 { YDVAR(1, VAR_IPSECMOD_IGNORE_BOGUS) }
4829         YY_BREAK
4830 case 246:
4831 YY_RULE_SETUP
4832 #line 464 "util/configlexer.lex"
4833 { YDVAR(1, VAR_IPSECMOD_HOOK) }
4834         YY_BREAK
4835 case 247:
4836 YY_RULE_SETUP
4837 #line 465 "util/configlexer.lex"
4838 { YDVAR(1, VAR_IPSECMOD_MAX_TTL) }
4839         YY_BREAK
4840 case 248:
4841 YY_RULE_SETUP
4842 #line 466 "util/configlexer.lex"
4843 { YDVAR(1, VAR_IPSECMOD_WHITELIST) }
4844         YY_BREAK
4845 case 249:
4846 YY_RULE_SETUP
4847 #line 467 "util/configlexer.lex"
4848 { YDVAR(1, VAR_IPSECMOD_STRICT) }
4849         YY_BREAK
4850 case 250:
4851 YY_RULE_SETUP
4852 #line 468 "util/configlexer.lex"
4853 { YDVAR(0, VAR_CACHEDB) }
4854         YY_BREAK
4855 case 251:
4856 YY_RULE_SETUP
4857 #line 469 "util/configlexer.lex"
4858 { YDVAR(1, VAR_CACHEDB_BACKEND) }
4859         YY_BREAK
4860 case 252:
4861 YY_RULE_SETUP
4862 #line 470 "util/configlexer.lex"
4863 { YDVAR(1, VAR_CACHEDB_SECRETSEED) }
4864         YY_BREAK
4865 case 253:
4866 YY_RULE_SETUP
4867 #line 471 "util/configlexer.lex"
4868 { YDVAR(1, VAR_CACHEDB_REDISHOST) }
4869         YY_BREAK
4870 case 254:
4871 YY_RULE_SETUP
4872 #line 472 "util/configlexer.lex"
4873 { YDVAR(1, VAR_CACHEDB_REDISPORT) }
4874         YY_BREAK
4875 case 255:
4876 YY_RULE_SETUP
4877 #line 473 "util/configlexer.lex"
4878 { YDVAR(1, VAR_CACHEDB_REDISTIMEOUT) }
4879         YY_BREAK
4880 case 256:
4881 YY_RULE_SETUP
4882 #line 474 "util/configlexer.lex"
4883 { YDVAR(1, VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM) }
4884         YY_BREAK
4885 case 257:
4886 YY_RULE_SETUP
4887 #line 475 "util/configlexer.lex"
4888 { YDVAR(2, VAR_TCP_CONNECTION_LIMIT) }
4889         YY_BREAK
4890 case 258:
4891 /* rule 258 can match eol */
4892 YY_RULE_SETUP
4893 #line 476 "util/configlexer.lex"
4894 { LEXOUT(("NL\n")); cfg_parser->line++; }
4895         YY_BREAK
4896 /* Quoted strings. Strip leading and ending quotes */
4897 case 259:
4898 YY_RULE_SETUP
4899 #line 479 "util/configlexer.lex"
4900 { BEGIN(quotedstring); LEXOUT(("QS ")); }
4901         YY_BREAK
4902 case YY_STATE_EOF(quotedstring):
4903 #line 480 "util/configlexer.lex"
4904 {
4905         yyerror("EOF inside quoted string");
4906         if(--num_args == 0) { BEGIN(INITIAL); }
4907         else                { BEGIN(val); }
4908 }
4909         YY_BREAK
4910 case 260:
4911 YY_RULE_SETUP
4912 #line 485 "util/configlexer.lex"
4913 { LEXOUT(("STR(%s) ", yytext)); yymore(); }
4914         YY_BREAK
4915 case 261:
4916 /* rule 261 can match eol */
4917 YY_RULE_SETUP
4918 #line 486 "util/configlexer.lex"
4919 { yyerror("newline inside quoted string, no end \""); 
4920                           cfg_parser->line++; BEGIN(INITIAL); }
4921         YY_BREAK
4922 case 262:
4923 YY_RULE_SETUP
4924 #line 488 "util/configlexer.lex"
4925 {
4926         LEXOUT(("QE "));
4927         if(--num_args == 0) { BEGIN(INITIAL); }
4928         else                { BEGIN(val); }
4929         yytext[yyleng - 1] = '\0';
4930         yylval.str = strdup(yytext);
4931         if(!yylval.str)
4932                 yyerror("out of memory");
4933         return STRING_ARG;
4934 }
4935         YY_BREAK
4936 /* Single Quoted strings. Strip leading and ending quotes */
4937 case 263:
4938 YY_RULE_SETUP
4939 #line 500 "util/configlexer.lex"
4940 { BEGIN(singlequotedstr); LEXOUT(("SQS ")); }
4941         YY_BREAK
4942 case YY_STATE_EOF(singlequotedstr):
4943 #line 501 "util/configlexer.lex"
4944 {
4945         yyerror("EOF inside quoted string");
4946         if(--num_args == 0) { BEGIN(INITIAL); }
4947         else                { BEGIN(val); }
4948 }
4949         YY_BREAK
4950 case 264:
4951 YY_RULE_SETUP
4952 #line 506 "util/configlexer.lex"
4953 { LEXOUT(("STR(%s) ", yytext)); yymore(); }
4954         YY_BREAK
4955 case 265:
4956 /* rule 265 can match eol */
4957 YY_RULE_SETUP
4958 #line 507 "util/configlexer.lex"
4959 { yyerror("newline inside quoted string, no end '"); 
4960                              cfg_parser->line++; BEGIN(INITIAL); }
4961         YY_BREAK
4962 case 266:
4963 YY_RULE_SETUP
4964 #line 509 "util/configlexer.lex"
4965 {
4966         LEXOUT(("SQE "));
4967         if(--num_args == 0) { BEGIN(INITIAL); }
4968         else                { BEGIN(val); }
4969         yytext[yyleng - 1] = '\0';
4970         yylval.str = strdup(yytext);
4971         if(!yylval.str)
4972                 yyerror("out of memory");
4973         return STRING_ARG;
4974 }
4975         YY_BREAK
4976 /* include: directive */
4977 case 267:
4978 YY_RULE_SETUP
4979 #line 521 "util/configlexer.lex"
4980
4981         LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include); }
4982         YY_BREAK
4983 case YY_STATE_EOF(include):
4984 #line 523 "util/configlexer.lex"
4985 {
4986         yyerror("EOF inside include directive");
4987         BEGIN(inc_prev);
4988 }
4989         YY_BREAK
4990 case 268:
4991 YY_RULE_SETUP
4992 #line 527 "util/configlexer.lex"
4993 { LEXOUT(("ISP ")); /* ignore */ }
4994         YY_BREAK
4995 case 269:
4996 /* rule 269 can match eol */
4997 YY_RULE_SETUP
4998 #line 528 "util/configlexer.lex"
4999 { LEXOUT(("NL\n")); cfg_parser->line++;}
5000         YY_BREAK
5001 case 270:
5002 YY_RULE_SETUP
5003 #line 529 "util/configlexer.lex"
5004 { LEXOUT(("IQS ")); BEGIN(include_quoted); }
5005         YY_BREAK
5006 case 271:
5007 YY_RULE_SETUP
5008 #line 530 "util/configlexer.lex"
5009 {
5010         LEXOUT(("Iunquotedstr(%s) ", yytext));
5011         config_start_include_glob(yytext);
5012         BEGIN(inc_prev);
5013 }
5014         YY_BREAK
5015 case YY_STATE_EOF(include_quoted):
5016 #line 535 "util/configlexer.lex"
5017 {
5018         yyerror("EOF inside quoted string");
5019         BEGIN(inc_prev);
5020 }
5021         YY_BREAK
5022 case 272:
5023 YY_RULE_SETUP
5024 #line 539 "util/configlexer.lex"
5025 { LEXOUT(("ISTR(%s) ", yytext)); yymore(); }
5026         YY_BREAK
5027 case 273:
5028 /* rule 273 can match eol */
5029 YY_RULE_SETUP
5030 #line 540 "util/configlexer.lex"
5031 { yyerror("newline before \" in include name"); 
5032                                   cfg_parser->line++; BEGIN(inc_prev); }
5033         YY_BREAK
5034 case 274:
5035 YY_RULE_SETUP
5036 #line 542 "util/configlexer.lex"
5037 {
5038         LEXOUT(("IQE "));
5039         yytext[yyleng - 1] = '\0';
5040         config_start_include_glob(yytext);
5041         BEGIN(inc_prev);
5042 }
5043         YY_BREAK
5044 case YY_STATE_EOF(INITIAL):
5045 case YY_STATE_EOF(val):
5046 #line 548 "util/configlexer.lex"
5047 {
5048         LEXOUT(("LEXEOF "));
5049         yy_set_bol(1); /* Set beginning of line, so "^" rules match.  */
5050         if (!config_include_stack) {
5051                 yyterminate();
5052         } else {
5053                 fclose(yyin);
5054                 config_end_include();
5055         }
5056 }
5057         YY_BREAK
5058 case 275:
5059 YY_RULE_SETUP
5060 #line 559 "util/configlexer.lex"
5061 { LEXOUT(("unquotedstr(%s) ", yytext)); 
5062                         if(--num_args == 0) { BEGIN(INITIAL); }
5063                         yylval.str = strdup(yytext); return STRING_ARG; }
5064         YY_BREAK
5065 case 276:
5066 YY_RULE_SETUP
5067 #line 563 "util/configlexer.lex"
5068 {
5069         ub_c_error_msg("unknown keyword '%s'", yytext);
5070         }
5071         YY_BREAK
5072 case 277:
5073 YY_RULE_SETUP
5074 #line 567 "util/configlexer.lex"
5075 {
5076         ub_c_error_msg("stray '%s'", yytext);
5077         }
5078         YY_BREAK
5079 case 278:
5080 YY_RULE_SETUP
5081 #line 571 "util/configlexer.lex"
5082 ECHO;
5083         YY_BREAK
5084 #line 5083 "<stdout>"
5085
5086         case YY_END_OF_BUFFER:
5087                 {
5088                 /* Amount of text matched not including the EOB char. */
5089                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
5090
5091                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
5092                 *yy_cp = (yy_hold_char);
5093                 YY_RESTORE_YY_MORE_OFFSET
5094
5095                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
5096                         {
5097                         /* We're scanning a new file or input source.  It's
5098                          * possible that this happened because the user
5099                          * just pointed yyin at a new source and called
5100                          * yylex().  If so, then we have to assure
5101                          * consistency between YY_CURRENT_BUFFER and our
5102                          * globals.  Here is the right place to do so, because
5103                          * this is the first action (other than possibly a
5104                          * back-up) that will match for the new input source.
5105                          */
5106                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
5107                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
5108                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
5109                         }
5110
5111                 /* Note that here we test for yy_c_buf_p "<=" to the position
5112                  * of the first EOB in the buffer, since yy_c_buf_p will
5113                  * already have been incremented past the NUL character
5114                  * (since all states make transitions on EOB to the
5115                  * end-of-buffer state).  Contrast this with the test
5116                  * in input().
5117                  */
5118                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
5119                         { /* This was really a NUL. */
5120                         yy_state_type yy_next_state;
5121
5122                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
5123
5124                         yy_current_state = yy_get_previous_state(  );
5125
5126                         /* Okay, we're now positioned to make the NUL
5127                          * transition.  We couldn't have
5128                          * yy_get_previous_state() go ahead and do it
5129                          * for us because it doesn't know how to deal
5130                          * with the possibility of jamming (and we don't
5131                          * want to build jamming into it because then it
5132                          * will run more slowly).
5133                          */
5134
5135                         yy_next_state = yy_try_NUL_trans( yy_current_state );
5136
5137                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
5138
5139                         if ( yy_next_state )
5140                                 {
5141                                 /* Consume the NUL. */
5142                                 yy_cp = ++(yy_c_buf_p);
5143                                 yy_current_state = yy_next_state;
5144                                 goto yy_match;
5145                                 }
5146
5147                         else
5148                                 {
5149                                 yy_cp = (yy_c_buf_p);
5150                                 goto yy_find_action;
5151                                 }
5152                         }
5153
5154                 else switch ( yy_get_next_buffer(  ) )
5155                         {
5156                         case EOB_ACT_END_OF_FILE:
5157                                 {
5158                                 (yy_did_buffer_switch_on_eof) = 0;
5159
5160                                 if ( yywrap( ) )
5161                                         {
5162                                         /* Note: because we've taken care in
5163                                          * yy_get_next_buffer() to have set up
5164                                          * yytext, we can now set up
5165                                          * yy_c_buf_p so that if some total
5166                                          * hoser (like flex itself) wants to
5167                                          * call the scanner after we return the
5168                                          * YY_NULL, it'll still work - another
5169                                          * YY_NULL will get returned.
5170                                          */
5171                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
5172
5173                                         yy_act = YY_STATE_EOF(YY_START);
5174                                         goto do_action;
5175                                         }
5176
5177                                 else
5178                                         {
5179                                         if ( ! (yy_did_buffer_switch_on_eof) )
5180                                                 YY_NEW_FILE;
5181                                         }
5182                                 break;
5183                                 }
5184
5185                         case EOB_ACT_CONTINUE_SCAN:
5186                                 (yy_c_buf_p) =
5187                                         (yytext_ptr) + yy_amount_of_matched_text;
5188
5189                                 yy_current_state = yy_get_previous_state(  );
5190
5191                                 yy_cp = (yy_c_buf_p);
5192                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
5193                                 goto yy_match;
5194
5195                         case EOB_ACT_LAST_MATCH:
5196                                 (yy_c_buf_p) =
5197                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
5198
5199                                 yy_current_state = yy_get_previous_state(  );
5200
5201                                 yy_cp = (yy_c_buf_p);
5202                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
5203                                 goto yy_find_action;
5204                         }
5205                 break;
5206                 }
5207
5208         default:
5209                 YY_FATAL_ERROR(
5210                         "fatal flex scanner internal error--no action found" );
5211         } /* end of action switch */
5212                 } /* end of scanning one token */
5213         } /* end of user's declarations */
5214 } /* end of yylex */
5215
5216 /* yy_get_next_buffer - try to read in a new buffer
5217  *
5218  * Returns a code representing an action:
5219  *      EOB_ACT_LAST_MATCH -
5220  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
5221  *      EOB_ACT_END_OF_FILE - end of file
5222  */
5223 static int yy_get_next_buffer (void)
5224 {
5225         char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
5226         char *source = (yytext_ptr);
5227         yy_size_t number_to_move, i;
5228         int ret_val;
5229
5230         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
5231                 YY_FATAL_ERROR(
5232                 "fatal flex scanner internal error--end of buffer missed" );
5233
5234         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
5235                 { /* Don't try to fill the buffer, so this is an EOF. */
5236                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
5237                         {
5238                         /* We matched a single character, the EOB, so
5239                          * treat this as a final EOF.
5240                          */
5241                         return EOB_ACT_END_OF_FILE;
5242                         }
5243
5244                 else
5245                         {
5246                         /* We matched some text prior to the EOB, first
5247                          * process it.
5248                          */
5249                         return EOB_ACT_LAST_MATCH;
5250                         }
5251                 }
5252
5253         /* Try to read more data. */
5254
5255         /* First move last chars to start of buffer. */
5256         number_to_move = (yy_size_t) ((yy_c_buf_p) - (yytext_ptr)) - 1;
5257
5258         for ( i = 0; i < number_to_move; ++i )
5259                 *(dest++) = *(source++);
5260
5261         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
5262                 /* don't do the read, it's not guaranteed to return an EOF,
5263                  * just force an EOF
5264                  */
5265                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
5266
5267         else
5268                 {
5269                         int num_to_read =
5270                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
5271
5272                 while ( num_to_read <= 0 )
5273                         { /* Not enough room in the buffer - grow it. */
5274
5275                         /* just a shorter name for the current buffer */
5276                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
5277
5278                         int yy_c_buf_p_offset =
5279                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
5280
5281                         if ( b->yy_is_our_buffer )
5282                                 {
5283                                 int new_size = b->yy_buf_size * 2;
5284
5285                                 if ( new_size <= 0 )
5286                                         b->yy_buf_size += b->yy_buf_size / 8;
5287                                 else
5288                                         b->yy_buf_size *= 2;
5289
5290                                 b->yy_ch_buf = (char *)
5291                                         /* Include room in for 2 EOB chars. */
5292                                         yyrealloc((void *) b->yy_ch_buf,(yy_size_t) (b->yy_buf_size + 2)  );
5293                                 }
5294                         else
5295                                 /* Can't grow it, we don't own it. */
5296                                 b->yy_ch_buf = NULL;
5297
5298                         if ( ! b->yy_ch_buf )
5299                                 YY_FATAL_ERROR(
5300                                 "fatal error - scanner input buffer overflow" );
5301
5302                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
5303
5304                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
5305                                                 number_to_move - 1;
5306
5307                         }
5308
5309                 if ( num_to_read > YY_READ_BUF_SIZE )
5310                         num_to_read = YY_READ_BUF_SIZE;
5311
5312                 /* Read in more data. */
5313                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
5314                         (yy_n_chars), num_to_read );
5315
5316                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
5317                 }
5318
5319         if ( (yy_n_chars) == 0 )
5320                 {
5321                 if ( number_to_move == YY_MORE_ADJ )
5322                         {
5323                         ret_val = EOB_ACT_END_OF_FILE;
5324                         yyrestart(yyin  );
5325                         }
5326
5327                 else
5328                         {
5329                         ret_val = EOB_ACT_LAST_MATCH;
5330                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
5331                                 YY_BUFFER_EOF_PENDING;
5332                         }
5333                 }
5334
5335         else
5336                 ret_val = EOB_ACT_CONTINUE_SCAN;
5337
5338         if ((int) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
5339                 /* Extend the array by 50%, plus the number we really need. */
5340                 int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
5341                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,(yy_size_t) new_size  );
5342                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
5343                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
5344         }
5345
5346         (yy_n_chars) += number_to_move;
5347         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
5348         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
5349
5350         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
5351
5352         return ret_val;
5353 }
5354
5355 /* yy_get_previous_state - get the state just before the EOB char was reached */
5356
5357     static yy_state_type yy_get_previous_state (void)
5358 {
5359         yy_state_type yy_current_state;
5360         char *yy_cp;
5361     
5362         yy_current_state = (yy_start);
5363
5364         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
5365                 {
5366                 YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
5367                 if ( yy_accept[yy_current_state] )
5368                         {
5369                         (yy_last_accepting_state) = yy_current_state;
5370                         (yy_last_accepting_cpos) = yy_cp;
5371                         }
5372                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
5373                         {
5374                         yy_current_state = (int) yy_def[yy_current_state];
5375                         if ( yy_current_state >= 2750 )
5376                                 yy_c = yy_meta[(unsigned int) yy_c];
5377                         }
5378                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
5379                 }
5380
5381         return yy_current_state;
5382 }
5383
5384 /* yy_try_NUL_trans - try to make a transition on the NUL character
5385  *
5386  * synopsis
5387  *      next_state = yy_try_NUL_trans( current_state );
5388  */
5389     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
5390 {
5391         int yy_is_jam;
5392         char *yy_cp = (yy_c_buf_p);
5393
5394         YY_CHAR yy_c = 1;
5395         if ( yy_accept[yy_current_state] )
5396                 {
5397                 (yy_last_accepting_state) = yy_current_state;
5398                 (yy_last_accepting_cpos) = yy_cp;
5399                 }
5400         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
5401                 {
5402                 yy_current_state = (int) yy_def[yy_current_state];
5403                 if ( yy_current_state >= 2750 )
5404                         yy_c = yy_meta[(unsigned int) yy_c];
5405                 }
5406         yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
5407         yy_is_jam = (yy_current_state == 2749);
5408
5409                 return yy_is_jam ? 0 : yy_current_state;
5410 }
5411
5412 #ifndef YY_NO_UNPUT
5413
5414 #endif
5415
5416 #ifndef YY_NO_INPUT
5417 #ifdef __cplusplus
5418     static int yyinput (void)
5419 #else
5420     static int input  (void)
5421 #endif
5422
5423 {
5424         int c;
5425     
5426         *(yy_c_buf_p) = (yy_hold_char);
5427
5428         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
5429                 {
5430                 /* yy_c_buf_p now points to the character we want to return.
5431                  * If this occurs *before* the EOB characters, then it's a
5432                  * valid NUL; if not, then we've hit the end of the buffer.
5433                  */
5434                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
5435                         /* This was really a NUL. */
5436                         *(yy_c_buf_p) = '\0';
5437
5438                 else
5439                         { /* need more input */
5440                         int offset = (yy_c_buf_p) - (yytext_ptr);
5441                         ++(yy_c_buf_p);
5442
5443                         switch ( yy_get_next_buffer(  ) )
5444                                 {
5445                                 case EOB_ACT_LAST_MATCH:
5446                                         /* This happens because yy_g_n_b()
5447                                          * sees that we've accumulated a
5448                                          * token and flags that we need to
5449                                          * try matching the token before
5450                                          * proceeding.  But for input(),
5451                                          * there's no matching to consider.
5452                                          * So convert the EOB_ACT_LAST_MATCH
5453                                          * to EOB_ACT_END_OF_FILE.
5454                                          */
5455
5456                                         /* Reset buffer status. */
5457                                         yyrestart(yyin );
5458
5459                                         /*FALLTHROUGH*/
5460
5461                                 case EOB_ACT_END_OF_FILE:
5462                                         {
5463                                         if ( yywrap( ) )
5464                                                 return 0;
5465
5466                                         if ( ! (yy_did_buffer_switch_on_eof) )
5467                                                 YY_NEW_FILE;
5468 #ifdef __cplusplus
5469                                         return yyinput();
5470 #else
5471                                         return input();
5472 #endif
5473                                         }
5474
5475                                 case EOB_ACT_CONTINUE_SCAN:
5476                                         (yy_c_buf_p) = (yytext_ptr) + offset;
5477                                         break;
5478                                 }
5479                         }
5480                 }
5481
5482         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
5483         *(yy_c_buf_p) = '\0';   /* preserve yytext */
5484         (yy_hold_char) = *++(yy_c_buf_p);
5485
5486         return c;
5487 }
5488 #endif  /* ifndef YY_NO_INPUT */
5489
5490 /** Immediately switch to a different input stream.
5491  * @param input_file A readable stream.
5492  * 
5493  * @note This function does not reset the start condition to @c INITIAL .
5494  */
5495     void yyrestart  (FILE * input_file )
5496 {
5497     
5498         if ( ! YY_CURRENT_BUFFER ){
5499         yyensure_buffer_stack ();
5500                 YY_CURRENT_BUFFER_LVALUE =
5501             yy_create_buffer(yyin,YY_BUF_SIZE );
5502         }
5503
5504         yy_init_buffer(YY_CURRENT_BUFFER,input_file );
5505         yy_load_buffer_state( );
5506 }
5507
5508 /** Switch to a different input buffer.
5509  * @param new_buffer The new input buffer.
5510  * 
5511  */
5512     void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
5513 {
5514     
5515         /* TODO. We should be able to replace this entire function body
5516          * with
5517          *              yypop_buffer_state();
5518          *              yypush_buffer_state(new_buffer);
5519      */
5520         yyensure_buffer_stack ();
5521         if ( YY_CURRENT_BUFFER == new_buffer )
5522                 return;
5523
5524         if ( YY_CURRENT_BUFFER )
5525                 {
5526                 /* Flush out information for old buffer. */
5527                 *(yy_c_buf_p) = (yy_hold_char);
5528                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
5529                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
5530                 }
5531
5532         YY_CURRENT_BUFFER_LVALUE = new_buffer;
5533         yy_load_buffer_state( );
5534
5535         /* We don't actually know whether we did this switch during
5536          * EOF (yywrap()) processing, but the only time this flag
5537          * is looked at is after yywrap() is called, so it's safe
5538          * to go ahead and always set it.
5539          */
5540         (yy_did_buffer_switch_on_eof) = 1;
5541 }
5542
5543 static void yy_load_buffer_state  (void)
5544 {
5545         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
5546         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
5547         yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
5548         (yy_hold_char) = *(yy_c_buf_p);
5549 }
5550
5551 /** Allocate and initialize an input buffer state.
5552  * @param file A readable stream.
5553  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
5554  * 
5555  * @return the allocated buffer state.
5556  */
5557     YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
5558 {
5559         YY_BUFFER_STATE b;
5560     
5561         b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
5562         if ( ! b )
5563                 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
5564
5565         b->yy_buf_size = size;
5566
5567         /* yy_ch_buf has to be 2 characters longer than the size given because
5568          * we need to put in 2 end-of-buffer characters.
5569          */
5570         b->yy_ch_buf = (char *) yyalloc((yy_size_t) (b->yy_buf_size + 2)  );
5571         if ( ! b->yy_ch_buf )
5572                 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
5573
5574         b->yy_is_our_buffer = 1;
5575
5576         yy_init_buffer(b,file );
5577
5578         return b;
5579 }
5580
5581 /** Destroy the buffer.
5582  * @param b a buffer created with yy_create_buffer()
5583  * 
5584  */
5585     void yy_delete_buffer (YY_BUFFER_STATE  b )
5586 {
5587     
5588         if ( ! b )
5589                 return;
5590
5591         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
5592                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
5593
5594         if ( b->yy_is_our_buffer )
5595                 yyfree((void *) b->yy_ch_buf  );
5596
5597         yyfree((void *) b  );
5598 }
5599
5600 /* Initializes or reinitializes a buffer.
5601  * This function is sometimes called more than once on the same buffer,
5602  * such as during a yyrestart() or at EOF.
5603  */
5604     static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
5605
5606 {
5607         int oerrno = errno;
5608     
5609         yy_flush_buffer(b );
5610
5611         b->yy_input_file = file;
5612         b->yy_fill_buffer = 1;
5613
5614     /* If b is the current buffer, then yy_init_buffer was _probably_
5615      * called from yyrestart() or through yy_get_next_buffer.
5616      * In that case, we don't want to reset the lineno or column.
5617      */
5618     if (b != YY_CURRENT_BUFFER){
5619         b->yy_bs_lineno = 1;
5620         b->yy_bs_column = 0;
5621     }
5622
5623         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
5624     
5625         errno = oerrno;
5626 }
5627
5628 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
5629  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
5630  * 
5631  */
5632     void yy_flush_buffer (YY_BUFFER_STATE  b )
5633 {
5634         if ( ! b )
5635                 return;
5636
5637         b->yy_n_chars = 0;
5638
5639         /* We always need two end-of-buffer characters.  The first causes
5640          * a transition to the end-of-buffer state.  The second causes
5641          * a jam in that state.
5642          */
5643         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
5644         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
5645
5646         b->yy_buf_pos = &b->yy_ch_buf[0];
5647
5648         b->yy_at_bol = 1;
5649         b->yy_buffer_status = YY_BUFFER_NEW;
5650
5651         if ( b == YY_CURRENT_BUFFER )
5652                 yy_load_buffer_state( );
5653 }
5654
5655 /** Pushes the new state onto the stack. The new state becomes
5656  *  the current state. This function will allocate the stack
5657  *  if necessary.
5658  *  @param new_buffer The new state.
5659  *  
5660  */
5661 void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
5662 {
5663         if (new_buffer == NULL)
5664                 return;
5665
5666         yyensure_buffer_stack();
5667
5668         /* This block is copied from yy_switch_to_buffer. */
5669         if ( YY_CURRENT_BUFFER )
5670                 {
5671                 /* Flush out information for old buffer. */
5672                 *(yy_c_buf_p) = (yy_hold_char);
5673                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
5674                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
5675                 }
5676
5677         /* Only push if top exists. Otherwise, replace top. */
5678         if (YY_CURRENT_BUFFER)
5679                 (yy_buffer_stack_top)++;
5680         YY_CURRENT_BUFFER_LVALUE = new_buffer;
5681
5682         /* copied from yy_switch_to_buffer. */
5683         yy_load_buffer_state( );
5684         (yy_did_buffer_switch_on_eof) = 1;
5685 }
5686
5687 /** Removes and deletes the top of the stack, if present.
5688  *  The next element becomes the new top.
5689  *  
5690  */
5691 void yypop_buffer_state (void)
5692 {
5693         if (!YY_CURRENT_BUFFER)
5694                 return;
5695
5696         yy_delete_buffer(YY_CURRENT_BUFFER );
5697         YY_CURRENT_BUFFER_LVALUE = NULL;
5698         if ((yy_buffer_stack_top) > 0)
5699                 --(yy_buffer_stack_top);
5700
5701         if (YY_CURRENT_BUFFER) {
5702                 yy_load_buffer_state( );
5703                 (yy_did_buffer_switch_on_eof) = 1;
5704         }
5705 }
5706
5707 /* Allocates the stack if it does not exist.
5708  *  Guarantees space for at least one push.
5709  */
5710 static void yyensure_buffer_stack (void)
5711 {
5712         int num_to_alloc;
5713     
5714         if (!(yy_buffer_stack)) {
5715
5716                 /* First allocation is just for 2 elements, since we don't know if this
5717                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
5718                  * immediate realloc on the next call.
5719          */
5720       num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
5721                 (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
5722                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
5723                                                                 );
5724                 if ( ! (yy_buffer_stack) )
5725                         YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
5726                                                                   
5727                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
5728                                 
5729                 (yy_buffer_stack_max) = num_to_alloc;
5730                 (yy_buffer_stack_top) = 0;
5731                 return;
5732         }
5733
5734         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
5735
5736                 /* Increase the buffer to prepare for a possible push. */
5737                 yy_size_t grow_size = 8 /* arbitrary grow size */;
5738
5739                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
5740                 (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
5741                                                                 ((yy_buffer_stack),
5742                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
5743                                                                 );
5744                 if ( ! (yy_buffer_stack) )
5745                         YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
5746
5747                 /* zero only the new slots.*/
5748                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
5749                 (yy_buffer_stack_max) = num_to_alloc;
5750         }
5751 }
5752
5753 /** Setup the input buffer state to scan directly from a user-specified character buffer.
5754  * @param base the character buffer
5755  * @param size the size in bytes of the character buffer
5756  * 
5757  * @return the newly allocated buffer state object. 
5758  */
5759 YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
5760 {
5761         YY_BUFFER_STATE b;
5762     
5763         if ( size < 2 ||
5764              base[size-2] != YY_END_OF_BUFFER_CHAR ||
5765              base[size-1] != YY_END_OF_BUFFER_CHAR )
5766                 /* They forgot to leave room for the EOB's. */
5767                 return NULL;
5768
5769         b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
5770         if ( ! b )
5771                 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
5772
5773         b->yy_buf_size = (int) (size - 2);      /* "- 2" to take care of EOB's */
5774         b->yy_buf_pos = b->yy_ch_buf = base;
5775         b->yy_is_our_buffer = 0;
5776         b->yy_input_file = NULL;
5777         b->yy_n_chars = b->yy_buf_size;
5778         b->yy_is_interactive = 0;
5779         b->yy_at_bol = 1;
5780         b->yy_fill_buffer = 0;
5781         b->yy_buffer_status = YY_BUFFER_NEW;
5782
5783         yy_switch_to_buffer(b  );
5784
5785         return b;
5786 }
5787
5788 /** Setup the input buffer state to scan a string. The next call to yylex() will
5789  * scan from a @e copy of @a str.
5790  * @param yystr a NUL-terminated string to scan
5791  * 
5792  * @return the newly allocated buffer state object.
5793  * @note If you want to scan bytes that may contain NUL values, then use
5794  *       yy_scan_bytes() instead.
5795  */
5796 YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
5797 {
5798     
5799         return yy_scan_bytes(yystr,(int) strlen(yystr) );
5800 }
5801
5802 /** Setup the input buffer state to scan the given bytes. The next call to yylex() will
5803  * scan from a @e copy of @a bytes.
5804  * @param yybytes the byte buffer to scan
5805  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
5806  * 
5807  * @return the newly allocated buffer state object.
5808  */
5809 YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
5810 {
5811         YY_BUFFER_STATE b;
5812         char *buf;
5813         yy_size_t n;
5814         yy_size_t i;
5815     
5816         /* Get memory for full buffer, including space for trailing EOB's. */
5817         n = (yy_size_t) _yybytes_len + 2;
5818         buf = (char *) yyalloc(n  );
5819         if ( ! buf )
5820                 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
5821
5822         for ( i = 0; i < _yybytes_len; ++i )
5823                 buf[i] = yybytes[i];
5824
5825         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
5826
5827         b = yy_scan_buffer(buf,n );
5828         if ( ! b )
5829                 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
5830
5831         /* It's okay to grow etc. this buffer, and we should throw it
5832          * away when we're done.
5833          */
5834         b->yy_is_our_buffer = 1;
5835
5836         return b;
5837 }
5838
5839 #ifndef YY_EXIT_FAILURE
5840 #define YY_EXIT_FAILURE 2
5841 #endif
5842
5843 static void yynoreturn yy_fatal_error (yyconst char* msg )
5844 {
5845                         (void) fprintf( stderr, "%s\n", msg );
5846         exit( YY_EXIT_FAILURE );
5847 }
5848
5849 /* Redefine yyless() so it works in section 3 code. */
5850
5851 #undef yyless
5852 #define yyless(n) \
5853         do \
5854                 { \
5855                 /* Undo effects of setting up yytext. */ \
5856         yy_size_t yyless_macro_arg = (n); \
5857         YY_LESS_LINENO(yyless_macro_arg);\
5858                 yytext[yyleng] = (yy_hold_char); \
5859                 (yy_c_buf_p) = yytext + yyless_macro_arg; \
5860                 (yy_hold_char) = *(yy_c_buf_p); \
5861                 *(yy_c_buf_p) = '\0'; \
5862                 yyleng = yyless_macro_arg; \
5863                 } \
5864         while ( 0 )
5865
5866 /* Accessor  methods (get/set functions) to struct members. */
5867
5868 /** Get the current line number.
5869  * 
5870  */
5871 int yyget_lineno  (void)
5872 {
5873         
5874     return yylineno;
5875 }
5876
5877 /** Get the input stream.
5878  * 
5879  */
5880 FILE *yyget_in  (void)
5881 {
5882         return yyin;
5883 }
5884
5885 /** Get the output stream.
5886  * 
5887  */
5888 FILE *yyget_out  (void)
5889 {
5890         return yyout;
5891 }
5892
5893 /** Get the length of the current token.
5894  * 
5895  */
5896 int yyget_leng  (void)
5897 {
5898         return yyleng;
5899 }
5900
5901 /** Get the current token.
5902  * 
5903  */
5904
5905 char *yyget_text  (void)
5906 {
5907         return yytext;
5908 }
5909
5910 /** Set the current line number.
5911  * @param _line_number line number
5912  * 
5913  */
5914 void yyset_lineno (int  _line_number )
5915 {
5916     
5917     yylineno = _line_number;
5918 }
5919
5920 /** Set the input stream. This does not discard the current
5921  * input buffer.
5922  * @param _in_str A readable stream.
5923  * 
5924  * @see yy_switch_to_buffer
5925  */
5926 void yyset_in (FILE *  _in_str )
5927 {
5928         yyin = _in_str ;
5929 }
5930
5931 void yyset_out (FILE *  _out_str )
5932 {
5933         yyout = _out_str ;
5934 }
5935
5936 int yyget_debug  (void)
5937 {
5938         return yy_flex_debug;
5939 }
5940
5941 void yyset_debug (int  _bdebug )
5942 {
5943         yy_flex_debug = _bdebug ;
5944 }
5945
5946 static int yy_init_globals (void)
5947 {
5948         /* Initialization is the same as for the non-reentrant scanner.
5949      * This function is called from yylex_destroy(), so don't allocate here.
5950      */
5951
5952     (yy_buffer_stack) = NULL;
5953     (yy_buffer_stack_top) = 0;
5954     (yy_buffer_stack_max) = 0;
5955     (yy_c_buf_p) = NULL;
5956     (yy_init) = 0;
5957     (yy_start) = 0;
5958
5959 /* Defined in main.c */
5960 #ifdef YY_STDINIT
5961     yyin = stdin;
5962     yyout = stdout;
5963 #else
5964     yyin = NULL;
5965     yyout = NULL;
5966 #endif
5967
5968     /* For future reference: Set errno on error, since we are called by
5969      * yylex_init()
5970      */
5971     return 0;
5972 }
5973
5974 /* yylex_destroy is for both reentrant and non-reentrant scanners. */
5975 int yylex_destroy  (void)
5976 {
5977     
5978     /* Pop the buffer stack, destroying each element. */
5979         while(YY_CURRENT_BUFFER){
5980                 yy_delete_buffer(YY_CURRENT_BUFFER  );
5981                 YY_CURRENT_BUFFER_LVALUE = NULL;
5982                 yypop_buffer_state();
5983         }
5984
5985         /* Destroy the stack itself. */
5986         yyfree((yy_buffer_stack) );
5987         (yy_buffer_stack) = NULL;
5988
5989     /* Reset the globals. This is important in a non-reentrant scanner so the next time
5990      * yylex() is called, initialization will occur. */
5991     yy_init_globals( );
5992
5993     return 0;
5994 }
5995
5996 /*
5997  * Internal utility routines.
5998  */
5999
6000 #ifndef yytext_ptr
6001 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
6002 {
6003                 
6004         int i;
6005         for ( i = 0; i < n; ++i )
6006                 s1[i] = s2[i];
6007 }
6008 #endif
6009
6010 #ifdef YY_NEED_STRLEN
6011 static int yy_flex_strlen (yyconst char * s )
6012 {
6013         int n;
6014         for ( n = 0; s[n]; ++n )
6015                 ;
6016
6017         return n;
6018 }
6019 #endif
6020
6021 void *yyalloc (yy_size_t  size )
6022 {
6023                         return malloc(size);
6024 }
6025
6026 void *yyrealloc  (void * ptr, yy_size_t  size )
6027 {
6028                 
6029         /* The cast to (char *) in the following accommodates both
6030          * implementations that use char* generic pointers, and those
6031          * that use void* generic pointers.  It works with the latter
6032          * because both ANSI C and C++ allow castless assignment from
6033          * any pointer type to void*, and deal with argument conversions
6034          * as though doing an assignment.
6035          */
6036         return realloc(ptr, size);
6037 }
6038
6039 void yyfree (void * ptr )
6040 {
6041                         free( (char *) ptr );   /* see yyrealloc() for (char *) cast */
6042 }
6043
6044 #define YYTABLES_NAME "yytables"
6045
6046 #line 571 "util/configlexer.lex"
6047
6048
6049