1 #include "common.h"
2 #line 2 "config_scan.c"
3 
4 #line 4 "config_scan.c"
5 
6 #define  YY_INT_ALIGNED short int
7 
8 /*	$OpenBSD: flex.skl,v 1.16 2017/05/02 19:16:19 millert Exp $	*/
9 
10 /* A lexical scanner generated by flex */
11 
12 #define yy_create_buffer socks_yy_create_buffer
13 #define yy_delete_buffer socks_yy_delete_buffer
14 #define yy_flex_debug socks_yy_flex_debug
15 #define yy_init_buffer socks_yy_init_buffer
16 #define yy_flush_buffer socks_yy_flush_buffer
17 #define yy_load_buffer_state socks_yy_load_buffer_state
18 #define yy_switch_to_buffer socks_yy_switch_to_buffer
19 #define yyin socks_yyin
20 #define yyleng socks_yyleng
21 #define yylex socks_yylex
22 #define yylineno socks_yylineno
23 #define yyout socks_yyout
24 #define yyrestart socks_yyrestart
25 #define yytext socks_yytext
26 #define yywrap socks_yywrap
27 #define yyalloc socks_yyalloc
28 #define yyrealloc socks_yyrealloc
29 #define yyfree socks_yyfree
30 
31 #define FLEX_SCANNER
32 #define YY_FLEX_MAJOR_VERSION 2
33 #define YY_FLEX_MINOR_VERSION 5
34 #define YY_FLEX_SUBMINOR_VERSION 39
35 #if YY_FLEX_SUBMINOR_VERSION > 0
36 #define FLEX_BETA
37 #endif
38 
39 /* First, we deal with  platform-specific or compiler-specific issues. */
40 
41 /* begin standard C headers. */
42 #include <stdio.h>
43 #include <string.h>
44 #include <errno.h>
45 #include <stdlib.h>
46 
47 /* end standard C headers. */
48 
49 /* $OpenBSD: flexint.h,v 1.1 2015/11/19 19:43:40 tedu Exp $ */
50 
51 /* flex integer type definitions */
52 
53 #ifndef FLEXINT_H
54 #define FLEXINT_H
55 
56 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
57 
58 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
59 
60 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
61  * if you want the limit (max/min) macros for int types.
62  */
63 #ifndef __STDC_LIMIT_MACROS
64 #define __STDC_LIMIT_MACROS 1
65 #endif
66 
67 #include <inttypes.h>
68 typedef int8_t flex_int8_t;
69 typedef uint8_t flex_uint8_t;
70 typedef int16_t flex_int16_t;
71 typedef uint16_t flex_uint16_t;
72 typedef int32_t flex_int32_t;
73 typedef uint32_t flex_uint32_t;
74 #else
75 typedef signed char flex_int8_t;
76 typedef short int flex_int16_t;
77 typedef int flex_int32_t;
78 typedef unsigned char flex_uint8_t;
79 typedef unsigned short int flex_uint16_t;
80 typedef unsigned int flex_uint32_t;
81 
82 /* Limits of integral types. */
83 #ifndef INT8_MIN
84 #define INT8_MIN               (-128)
85 #endif
86 #ifndef INT16_MIN
87 #define INT16_MIN              (-32767-1)
88 #endif
89 #ifndef INT32_MIN
90 #define INT32_MIN              (-2147483647-1)
91 #endif
92 #ifndef INT8_MAX
93 #define INT8_MAX               (127)
94 #endif
95 #ifndef INT16_MAX
96 #define INT16_MAX              (32767)
97 #endif
98 #ifndef INT32_MAX
99 #define INT32_MAX              (2147483647)
100 #endif
101 #ifndef UINT8_MAX
102 #define UINT8_MAX              (255U)
103 #endif
104 #ifndef UINT16_MAX
105 #define UINT16_MAX             (65535U)
106 #endif
107 #ifndef UINT32_MAX
108 #define UINT32_MAX             (4294967295U)
109 #endif
110 
111 #endif /* ! C99 */
112 
113 #endif /* ! FLEXINT_H */
114 
115 #ifdef __cplusplus
116 
117 /* The "const" storage-class-modifier is valid. */
118 #define YY_USE_CONST
119 
120 #else	/* ! __cplusplus */
121 
122 /* C99 requires __STDC__ to be defined as 1. */
123 #if defined (__STDC__)
124 
125 #define YY_USE_CONST
126 
127 #endif	/* defined (__STDC__) */
128 #endif	/* ! __cplusplus */
129 
130 #ifdef YY_USE_CONST
131 #define yyconst const
132 #else
133 #define yyconst
134 #endif
135 
136 /* Returned upon end-of-file. */
137 #define YY_NULL 0
138 
139 /* Promotes a possibly negative, possibly signed char to an unsigned
140  * integer for use as an array index.  If the signed char is negative,
141  * we want to instead treat it as an 8-bit unsigned char, hence the
142  * double cast.
143  */
144 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
145 
146 /* Enter a start condition.  This macro really ought to take a parameter,
147  * but we do it the disgusting crufty way forced on us by the ()-less
148  * definition of BEGIN.
149  */
150 #define BEGIN (yy_start) = 1 + 2 *
151 
152 /* Translate the current start state into a value that can be later handed
153  * to BEGIN to return to the state.  The YYSTATE alias is for lex
154  * compatibility.
155  */
156 #define YY_START (((yy_start) - 1) / 2)
157 #define YYSTATE YY_START
158 
159 /* Action number for EOF rule of a given start state. */
160 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
161 
162 /* Special action meaning "start processing a new file". */
163 #define YY_NEW_FILE socks_yyrestart(socks_yyin  )
164 
165 #define YY_END_OF_BUFFER_CHAR 0
166 
167 /* Size of default input buffer. */
168 #ifndef YY_BUF_SIZE
169 #define YY_BUF_SIZE 16384
170 #endif
171 
172 /* The state buf must be large enough to hold one state per character in the main buffer.
173  */
174 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
175 
176 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
177 #define YY_TYPEDEF_YY_BUFFER_STATE
178 typedef struct yy_buffer_state *YY_BUFFER_STATE;
179 #endif
180 
181 #ifndef YY_TYPEDEF_YY_SIZE_T
182 #define YY_TYPEDEF_YY_SIZE_T
183 typedef size_t yy_size_t;
184 #endif
185 
186 extern yy_size_t socks_yyleng;
187 
188 extern FILE *socks_yyin, *socks_yyout;
189 
190 #define EOB_ACT_CONTINUE_SCAN 0
191 #define EOB_ACT_END_OF_FILE 1
192 #define EOB_ACT_LAST_MATCH 2
193 
194     /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
195      *       access to the local variable yy_act. Since yyless() is a macro, it would break
196      *       existing scanners that call yyless() from OUTSIDE socks_yylex.
197      *       One obvious solution it to make yy_act a global. I tried that, and saw
198      *       a 5% performance hit in a non-socks_yylineno scanner, because yy_act is
199      *       normally declared as a register variable-- so it is not worth it.
200      */
201     #define  YY_LESS_LINENO(n) \
202             do { \
203                 int yyl;\
204                 for ( yyl = n; yyl < socks_yyleng; ++yyl )\
205                     if ( socks_yytext[yyl] == '\n' )\
206                         --socks_yylineno;\
207             }while(0)
208     #define YY_LINENO_REWIND_TO(dst) \
209             do {\
210                 const char *p;\
211                 for ( p = yy_cp-1; p >= (dst); --p)\
212                     if ( *p == '\n' )\
213                         --socks_yylineno;\
214             }while(0)
215 
216 /* Return all but the first "n" matched characters back to the input stream. */
217 #define yyless(n) \
218 	do \
219 		{ \
220 		/* Undo effects of setting up socks_yytext. */ \
221         int yyless_macro_arg = (n); \
222         YY_LESS_LINENO(yyless_macro_arg);\
223 		*yy_cp = (yy_hold_char); \
224 		YY_RESTORE_YY_MORE_OFFSET \
225 		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
226 		YY_DO_BEFORE_ACTION; /* set up socks_yytext again */ \
227 		} \
228 	while ( 0 )
229 
230 #define unput(c) yyunput( c, (yytext_ptr)  )
231 
232 #ifndef YY_STRUCT_YY_BUFFER_STATE
233 #define YY_STRUCT_YY_BUFFER_STATE
234 struct yy_buffer_state
235 	{
236 	FILE *yy_input_file;
237 
238 	char *yy_ch_buf;		/* input buffer */
239 	char *yy_buf_pos;		/* current position in input buffer */
240 
241 	/* Size of input buffer in bytes, not including room for EOB
242 	 * characters.
243 	 */
244 	yy_size_t yy_buf_size;
245 
246 	/* Number of characters read into yy_ch_buf, not including EOB
247 	 * characters.
248 	 */
249 	yy_size_t yy_n_chars;
250 
251 	/* Whether we "own" the buffer - i.e., we know we created it,
252 	 * and can realloc() it to grow it, and should free() it to
253 	 * delete it.
254 	 */
255 	int yy_is_our_buffer;
256 
257 	/* Whether this is an "interactive" input source; if so, and
258 	 * if we're using stdio for input, then we want to use getc()
259 	 * instead of fread(), to make sure we stop fetching input after
260 	 * each newline.
261 	 */
262 	int yy_is_interactive;
263 
264 	/* Whether we're considered to be at the beginning of a line.
265 	 * If so, '^' rules will be active on the next match, otherwise
266 	 * not.
267 	 */
268 	int yy_at_bol;
269 
270     int yy_bs_lineno; /**< The line count. */
271     int yy_bs_column; /**< The column count. */
272 
273 	/* Whether to try to fill the input buffer when we reach the
274 	 * end of it.
275 	 */
276 	int yy_fill_buffer;
277 
278 	int yy_buffer_status;
279 
280 #define YY_BUFFER_NEW 0
281 #define YY_BUFFER_NORMAL 1
282 	/* When an EOF's been seen but there's still some text to process
283 	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
284 	 * shouldn't try reading from the input source any more.  We might
285 	 * still have a bunch of tokens to match, though, because of
286 	 * possible backing-up.
287 	 *
288 	 * When we actually see the EOF, we change the status to "new"
289 	 * (via socks_yyrestart()), so that the user can continue scanning by
290 	 * just pointing socks_yyin at a new input file.
291 	 */
292 #define YY_BUFFER_EOF_PENDING 2
293 
294 	};
295 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
296 
297 /* Stack of input buffers. */
298 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
299 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
300 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
301 
302 /* We provide macros for accessing buffer states in case in the
303  * future we want to put the buffer states in a more general
304  * "scanner state".
305  *
306  * Returns the top of the stack, or NULL.
307  */
308 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
309                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
310                           : NULL)
311 
312 /* Same as previous macro, but useful when we know that the buffer stack is not
313  * NULL or when we need an lvalue. For internal use only.
314  */
315 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
316 
317 /* yy_hold_char holds the character lost when socks_yytext is formed. */
318 static char yy_hold_char;
319 static yy_size_t yy_n_chars;		/* number of characters read into yy_ch_buf */
320 yy_size_t socks_yyleng;
321 
322 /* Points to current character in buffer. */
323 static char *yy_c_buf_p = (char *) 0;
324 static int yy_init = 0;		/* whether we need to initialize */
325 static int yy_start = 0;	/* start state number */
326 
327 /* Flag which is used to allow socks_yywrap()'s to do buffer switches
328  * instead of setting up a fresh socks_yyin.  A bit of a hack ...
329  */
330 static int yy_did_buffer_switch_on_eof;
331 
332 void socks_yyrestart (FILE *input_file  );
333 void socks_yy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
334 YY_BUFFER_STATE socks_yy_create_buffer (FILE *file,int size  );
335 void socks_yy_delete_buffer (YY_BUFFER_STATE b  );
336 void socks_yy_flush_buffer (YY_BUFFER_STATE b  );
337 void socks_yypush_buffer_state (YY_BUFFER_STATE new_buffer  );
338 void socks_yypop_buffer_state (void );
339 
340 static void socks_yyensure_buffer_stack (void );
341 static void socks_yy_load_buffer_state (void );
342 static void socks_yy_init_buffer (YY_BUFFER_STATE b,FILE *file  );
343 
344 #define YY_FLUSH_BUFFER socks_yy_flush_buffer(YY_CURRENT_BUFFER )
345 
346 YY_BUFFER_STATE socks_yy_scan_buffer (char *base,yy_size_t size  );
347 YY_BUFFER_STATE socks_yy_scan_string (yyconst char *yy_str  );
348 YY_BUFFER_STATE socks_yy_scan_bytes (yyconst char *bytes,yy_size_t len  );
349 
350 void *socks_yyalloc (yy_size_t  );
351 void *socks_yyrealloc (void *,yy_size_t  );
352 void socks_yyfree (void *  );
353 
354 #define yy_new_buffer socks_yy_create_buffer
355 
356 #define yy_set_interactive(is_interactive) \
357 	{ \
358 	if ( ! YY_CURRENT_BUFFER ){ \
359         socks_yyensure_buffer_stack (); \
360 		YY_CURRENT_BUFFER_LVALUE =    \
361             socks_yy_create_buffer(socks_yyin,YY_BUF_SIZE ); \
362 	} \
363 	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
364 	}
365 
366 #define yy_set_bol(at_bol) \
367 	{ \
368 	if ( ! YY_CURRENT_BUFFER ){\
369         socks_yyensure_buffer_stack (); \
370 		YY_CURRENT_BUFFER_LVALUE =    \
371             socks_yy_create_buffer(socks_yyin,YY_BUF_SIZE ); \
372 	} \
373 	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
374 	}
375 
376 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
377 
378 /* Begin user sect3 */
379 
380 #define socks_yywrap() 1
381 #define YY_SKIP_YYWRAP
382 
383 typedef unsigned char YY_CHAR;
384 
385 FILE *socks_yyin = (FILE *) 0, *socks_yyout = (FILE *) 0;
386 
387 typedef int yy_state_type;
388 
389 extern int socks_yylineno;
390 
391 int socks_yylineno = 1;
392 
393 extern char *socks_yytext;
394 #define yytext_ptr socks_yytext
395 
396 static yy_state_type yy_get_previous_state (void );
397 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
398 static int yy_get_next_buffer (void );
399 static void yy_fatal_error (yyconst char msg[]  );
400 
401 /* Done after the current pattern has been matched and before the
402  * corresponding action - sets up socks_yytext.
403  */
404 #define YY_DO_BEFORE_ACTION \
405 	(yytext_ptr) = yy_bp; \
406 	socks_yyleng = (size_t) (yy_cp - yy_bp); \
407 	(yy_hold_char) = *yy_cp; \
408 	*yy_cp = '\0'; \
409 	(yy_c_buf_p) = yy_cp;
410 
411 #define YY_NUM_RULES 247
412 #define YY_END_OF_BUFFER 248
413 /* This struct is not used in this scanner,
414    but its presence is necessary. */
415 struct yy_trans_info
416 	{
417 	flex_int32_t yy_verify;
418 	flex_int32_t yy_nxt;
419 	};
420 static yyconst flex_int16_t yy_acclist[2228] =
421     {   0,
422        72,   72,  248,  246,  247,  241,  246,  247,  243,  247,
423       246,  247,  242,  246,  247,  246,  247,  240,  246,  247,
424       240,  246,  247,   95,  246,  247,   95,  246,  247,   95,
425       246,  247,  246,  247,  246,  247,  246,  247,  246,  247,
426       246,  247,  246,  247,  246,  247,  246,  247,  246,  247,
427       246,  247,  246,  247,  246,  247,  246,  247,  246,  247,
428       246,  247,  246,  247,  246,  247,  246,  247,  246,  247,
429       246,  247,  245,  246,  247,  241,  246,  247,  246,  247,
430       246,  247,  246,  247,  246,  247,  246,  247,  246,  247,
431       246,  247,  246,  247,  242,  246,  247,   20,  246,  247,
432 
433       240,  246,  247,  240,  246,  247,  246,  247,   95,  246,
434       247,   95,  246,  247,   95,  246,  247,  246,  247,  246,
435       247,  246,  247,  246,  247,  246,  247,  246,  247,  246,
436       247,  246,  247,  246,  247,  246,  247,  246,  247,  246,
437       247,  246,  247,  246,  247,  246,  247,  246,  247,  246,
438       247,  246,  247,  246,  247,  246,  247,  245,  246,  247,
439       246,  247,  246,  247,  246,  247,  246,  247,  246,  247,
440       246,  247,  246,  247,  246,  247,  246,  247,  246,  247,
441        71,  246,  247,  246,  247,  246,  247,  246,  247,   72,
442       246,  247,   72,  241,  246,  247,   72,  242,  246,  247,
443 
444        72,  240,  246,  247,   72,  240,  246,  247,   72,  246,
445       247,   72,  245,  246,  247,  246,  247,  246,  247,  246,
446       247,  246,  247,  246,  247,  246,  247,   52,  246,  247,
447        52,  242,  246,  247,   52,  240,  246,  247,   52,  240,
448       246,  247,   52,  246,  247,   52,  245,  246,  247,  246,
449       247,  246,  247,  246,  247,  246,  247,  246,  247,  246,
450       247,  246,  247,  246,  247,  246,  247,  246,  247,  246,
451       247,  246,  247,  246,  247,   53,  246,  247,   53,  242,
452       246,  247,   53,  240,  246,  247,   53,  240,  246,  247,
453        53,  246,  247,   53,  245,  246,  247,   54,  246,  247,
454 
455        54,  242,  246,  247,   54,  240,  246,  247,   54,  240,
456       246,  247,   54,  246,  247,   54,  245,  246,  247,   55,
457       246,  247,   55,  242,  246,  247,   55,  240,  246,  247,
458        55,  240,  246,  247,   55,  246,  247,   55,  245,  246,
459       247,  246,  247,  246,  247,  246,  247,  246,  247,  246,
460       247,  246,  247,  246,  247,  246,  247,  246,  247,  246,
461       247,  242,  246,  247,  240,  246,  247,  240,  246,  247,
462       246,  247,  245,  246,  247,  246,  247,  242,  246,  247,
463       240,  246,  247,  240,  246,  247,  246,  247,  245,  246,
464       247,  246,  247,  246,  247,  242,  246,  247,  240,  246,
465 
466       247,  240,  246,  247,  246,  247,  245,  246,  247,  246,
467       247,  242,  246,  247,  240,  246,  247,  240,  246,  247,
468       246,  247,  245,  246,  247,  246,  247,  242,  246,  247,
469       240,  246,  247,  240,  246,  247,  246,  247,  245,  246,
470       247,  246,  247,  242,  246,  247,  240,  246,  247,  240,
471       246,  247,  246,  247,  245,  246,  247,   65,  246,  247,
472        65,  242,  246,  247,   65,  240,  246,  247,   65,  240,
473       246,  247,   65,  246,  247,   65,  246,  247,   65,  245,
474       246,  247,   63,  246,  247,   63,  242,  246,  247,   63,
475       240,  246,  247,   63,  240,  246,  247,   63,  246,  247,
476 
477        63,  245,  246,  247,   64,  246,  247,   64,  242,  246,
478       247,   64,  240,  246,  247,   64,  240,  246,  247,   64,
479       246,  247,   64,  245,  246,  247,  246,  247,  242,  246,
480       247,  240,  246,  247,  240,  246,  247,  246,  247,  245,
481       246,  247,  246,  247,  246,  247,  246,  247,  246,  247,
482       246,  247,  246,  247,  246,  247,    9,  246,  247,   51,
483       246,  247,   70,  246,  247,   70,  242,  246,  247,   70,
484       240,  246,  247,   70,  240,  246,  247,   70,  246,  247,
485        70,  245,  246,  247,   68,  246,  247,   68,  242,  246,
486       247,   68,  240,  246,  247,   68,  240,  246,  247,   68,
487 
488       246,  247,   68,  246,  247,   68,  245,  246,  247,  246,
489       247,  246,  247,  246,  247,  246,  247,   84,  246,  247,
490        84,  242,  246,  247,   84,  240,  246,  247,   84,  240,
491       246,  247,   84,  246,  247,   84,  245,  246,  247,  246,
492       247,  246,  247,  246,  247,  246,  247,  246,  247,  246,
493       247,  242,  246,  247,  246,  247,  245,  246,  247,  246,
494       247,  246,  247,  246,  247,  246,  247,   33,  246,  247,
495        33,  243,  247,   33,  242,  246,  247,   33,  246,  247,
496        33,  245,  246,  247,  246,  247,  241,   95,  242,  240,
497       240,  244,  128,   95,  133,  130,  241,   22,   22,   95,
498 
499        22,  242,   22,   22,   21,   22,  240,   22,  240,   22,
500        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
501        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
502        22,  128,   22,   22,   22,   22,   22,   22,   22,   22,
503        95,   22,  133,   22,   22,   22,   22,   22,   22,   22,
504        22,   22,   22,  130,   22,   22,   22,   22,   22,   22,
505        22,   22,   22,   22,   72,   72,  241,   72,  242,   72,
506       240,   72,  240,   72,   46,   52,   52,  242,   52,  240,
507        52,  240,   52,   50,   53,   53,  242,   53,  240,   53,
508       240,   53,   54,   54,  242,   54,  240,   54,  240,   54,
509 
510        55,   55,  242,   55,  240,   55,  240,   55,   56,   56,
511        56,  242,   56,  242,   56,  240,   56,  240,   56,   57,
512        57,   57,  242,   57,  242,   57,  240,   57,  240,   57,
513        58,   58,   58,  242,   58,  242,   58,  240,   58,  240,
514        58,   60,   60,   60,  242,   60,  242,   60,  240,   60,
515       240,   60,   62,   62,   62,  242,   62,  242,   62,  240,
516        62,  240,   62,   61,   61,   61,  242,   61,  242,   61,
517       240,   61,  240,   61,   65,   65,  242,   65,  240,   65,
518       240,   65,   65,   63,   63,  242,   63,  240,   63,  240,
519        63,   64,   64,  242,   64,  240,   64,  240,   64,   67,
520 
521        67,   67,  242,   67,  242,   67,  240,   67,  240,   67,
522         9,    9,   51,   51,   70,   70,  242,   70,  240,   70,
523       240,   70,   68,   68,  242,   68,  240,   68,  240,   68,
524        68,   84,   84,  242,   84,  240,   84,  240,   84,   34,
525        38,   39,   39,  242,   31,   33,   33,  242,   33,  244,
526        24,  131,  132,   22,   22,   22,   22,   22,   22,   22,
527        22,   22,   22,   22,   22,   22,   22,   24,   22,   22,
528        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
529        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
530        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
531 
532        22,   22,   22,   22,   22,  131,   22,  132,   22,   22,
533        22,   22,   22,   22,   92,  171,    3,   65,   76,   77,
534        68,   79,   36,   37,   32,  167,  129,  177,  145,  176,
535       150,   99,  176,   22,   22,   22,   22,   22,   22,  167,
536        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
537        22,   22,   22,  129,   22,   22,   22,   22,   22,   22,
538        22,   22,   22,   22,  177,   22,   22,   22,   22,   22,
539        22,  145,   22,   22,   22,   22,  176,   22,   22,   22,
540        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
541       150,   22,   22,   22,   22,   99,  176,   22,   22,   23,
542 
543        14,   41,   44,   85,   12,   13,   26,    8,    4,   65,
544        78,    1,    2,   68,  175,  105,  151,  235,  107,   99,
545        99,  175,  106,  107,16482,   22,   22,   22,   22,   22,
546        22,  175,   22,   22,   22,   22,   22,   22,   22,   22,
547       105,   22,   22,   22,   22,   22,  151,   22,   22,   22,
548        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
549        22,   22,   22,   22,   22,   22,  235,   22,   22,   22,
550       107,   22,   22,   22,   22,   22,   22,   22,   22,   22,
551        22,   22,   99,  175,   22,   22,   22,  106,  107,   22,
552     16482,   43,   47,   80,  103,  104,  102,  234,  168,  174,
553 
554       108,  106,16482,16480,  168,16481,   22,   22,  103,   22,
555        22,  104,   22,   22,  102,   22,   22,   22,  234,   22,
556        22,   22,   22,   22,   22,   22,   22,   22,   22,   19,
557        22,   22,  168,   22,   22,   22,   22,   22,   22,   22,
558        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
559        22,  174,   22,   22,   22,   22,   22,   22,   22,   22,
560        22,   22,   22,  108,   22,   22,   22,   22,   22,   22,
561        22,   22,   22,   22,   22,   22,   22,   22,16480,   22,
562       168,16481,   86,   88,    8,    6,   66,   69,   35,   27,
563       117,  178,  109,  169,  233,  232,  112,16480,16481,   22,
564 
565        22,   22,   22,   22,   22,   22,   22,  117,   22,   22,
566        22,   22,   22,   22,   19,   22,   22,   22,   22,   22,
567        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
568        22,   22,   22,  178,   22,   22,   22,  109,   22,  169,
569        22,   22,  233,   22,  232,   22,   22,   22,   22,   22,
570        22,   22,   22,   22,   22,   22,   22,  112,   22,   22,
571        22,   22,   22,   22,   22,   15,   40,   45,   93,   89,
572         8,   59,   28,   30,  114,  208,  197,  116,  120,  162,
573        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
574        22,   22,  114,   22,   22,   22,   22,   22,   22,   22,
575 
576        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
577        22,   22,   22,   22,  208,   22,  197,   22,   22,   22,
578        22,   22,   22,   22,   22,  116,   22,   22,  120,   22,
579        22,   22,  162,   22,   22,   22,   22,   22,   22,   22,
580        22,   22,   22,   22,   18,   94,   87,   10,   11,   25,
581        59,  110,  121,  166,  144,  170,  138,  238,  193,  115,
582       165,  146,   22,   22,   22,  110,   22,  121,   22,   22,
583        22,   22,   22,   22,   22,   22,  166,   22,   22,   22,
584       144,   22,   22,   22,   22,   22,   22,  138,   22,  238,
585        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
586 
587        22,   22,   22,  193,   22,   22,   22,   22,   22,   22,
588       115,   22,  165,   22,   22,   22,   22,   22,   22,  146,
589        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
590        22,   22,   22,   22,   22,   22,   22,   17,   12,    7,
591        81,   29,  100,  163,  205,  226,  157, 8290,   22,  100,
592        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
593       163,   22,   22,   22,   22,   22,   22,   22,   22,   22,
594        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
595        22,   22,   22,   22,   22,   22,   22,  205,   22,   22,
596        22,  226,   22,   22,   22,   22,   22,   22,   22,   22,
597 
598        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
599        22,   22,   22,   22,   22,  157,   22,   22,   22,   22,
600        22,   22,   22,   22,   42,    5,   83,  187,  203,  215,
601       229,  207,  224,  231,  122,  172, 8288, 8289,   22,   22,
602        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
603        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
604        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
605        22,   22,   22,   22,   22,   22,   22,  187,   22,   22,
606        22,   22,  203,   22,  215,   22,   22,   22,  229,   22,
607       207,   22,   22,  224,   22,   22,   22,   22,   22,  231,
608 
609        22,   22,   22,   22,   22,   22,  122,   22,   22,   22,
610        22,   22,  172,   22,   22,   22,   22,   22,   22,   22,
611        22,   22,   22,   44,   49,   90,  173,  139,  134,  180,
612       236,  154,   22,   22,   22,   22,   22,   22,   22,  173,
613        22,   22,   22,   22,  139,   22,   22,   22,   22,   22,
614        22,   22,   22,   22,  134,   22,   22,   22,   22,   22,
615        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
616        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
617        22,  180,   22,   22,   22,  236,   22,   22,   22,   22,
618        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
619 
620        22,   22,   22,  154,   22,   22,   22,   16,   48,   91,
621        74,  161,  143,  185,  136,  209,  198,  210,  199,  201,
622       195,  179,  236,  236,  113,  118,   22,   22,   22,   22,
623        22,   22,   22,  161,   22,   22,   22,  143,   22,   22,
624        22,   22,   22,  185,   22,   22,   22,  136,   22,   22,
625        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
626        22,  209,   22,  198,   22,  210,   22,   22,   22,  199,
627        22,  201,   22,   22,   22,   22,   22,  195,   22,  179,
628        22,   22,  236,   22,  236,   22,   22,   22,  113,   22,
629        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
630 
631        22,   22,  118,   22,   22,   22,   73,  147,  237,  186,
632       220,  194,  212,  217,  227,  214,  182,  158,  159,  119,
633        22,   22,   22,   22,  147,   22,   22,   22,   22,  237,
634        22,   22,   22,   22,   22,  186,   22,   22,   22,   22,
635        22,  220,   22,   22,   22,   22,   22,   22,   22,   22,
636       194,   22,   22,   22,  212,   22,  217,   22,   22,  227,
637        22,  214,   22,   22,   22,  182,   22,   22,   22,   22,
638        22,   22,   22,  158,   22,  159,   22,   22,   22,  119,
639        22,   22,   22,   75,  147,  147,  140,  135,  206,  188,
640       218,  111,  155,  152,   22,   22,   22,  147,   22,  147,
641 
642        22,   22,   22,   22,  140,   22,   22,   22,   22,  135,
643        22,   22,   22,   22,   22,   22,   22,   22,  206,   22,
644        22,   22,   22,   22,   22,  188,   22,   22,  218,   22,
645        22,   22,  111,   22,   22,   22,   22,   22,   22,   22,
646       155,   22,   22,   22,   22,  152,   22,   82,  101,  190,
647       204,  216,  230,  225,  124,   22,  101,   22,   22,   22,
648        22,   22,   22,   22,   22,   22,   22,   22,   22,  190,
649        22,   22,   22,   22,  204,   22,  216,   22,  230,   22,
650        22,  225,   22,   22,   22,   22,   22,   22,   22,   22,
651        22,  124,   22,   22,   22,   22,   22,   22,  183,  149,
652 
653       148,  141,  142,  137,  221,  125,  127,  160,  153,   22,
654       183,   22,  149,   22,  148,   22,   22,  141,   22,  142,
655        22,   22,  137,   22,  221,   22,   22,   22,   22,   22,
656        22,   22,   22,   22,   22,   22,   22,   22,  125,   22,
657       127,   22,   22,   22,   22,  160,   22,   22,   22,  153,
658       184,  222,  211,  200,  202,  196,  219,  228,  239,   22,
659        22,  184,   22,   22,  222,   22,  211,   22,   22,   22,
660       200,   22,  202,   22,  196,   22,   22,  219,   22,  228,
661        22,   22,   22,   22,  239,   22,  164,  213,  189,  123,
662        22,  164,   22,   22,   22,  213,   22,  189,   22,   22,
663 
664       123,   22,   22,  191,  181,  156,   22,   22,  191,   22,
665       181,   22,   22,  156,  223,   22,  223,   22,   22,  126,
666        22,   22,  126,   22,  192,   22,  192
667     } ;
668 
669 static yyconst flex_int16_t yy_accept[2804] =
670     {   0,
671         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
672         1,    1,    1,    2,    3,    3,    3,    3,    3,    3,
673         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
674         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
675         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
676         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
677         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
678         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
679         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
680         3,    3,    3,    3,    3,    3,    3,    3,    3,    4,
681 
682         6,    9,   11,   13,   16,   18,   21,   24,   27,   30,
683        33,   35,   37,   39,   41,   43,   45,   47,   49,   51,
684        53,   55,   57,   59,   61,   63,   65,   67,   69,   71,
685        73,   76,   79,   81,   83,   85,   87,   89,   91,   93,
686        95,   98,  101,  104,  107,  109,  112,  115,  118,  120,
687       122,  124,  126,  128,  130,  132,  134,  136,  138,  140,
688       142,  144,  146,  148,  150,  152,  154,  156,  158,  161,
689       163,  165,  167,  169,  171,  173,  175,  177,  179,  181,
690       184,  186,  188,  190,  193,  197,  201,  205,  209,  212,
691       216,  218,  220,  222,  224,  226,  228,  231,  235,  239,
692 
693       243,  246,  250,  252,  254,  256,  258,  260,  262,  264,
694       266,  268,  270,  272,  274,  276,  279,  283,  287,  291,
695       294,  298,  301,  305,  309,  313,  316,  320,  323,  327,
696       331,  335,  338,  342,  344,  346,  348,  350,  352,  354,
697       356,  358,  360,  362,  365,  368,  371,  373,  376,  378,
698       381,  384,  387,  389,  392,  394,  396,  399,  402,  405,
699       407,  410,  412,  415,  418,  421,  423,  426,  428,  431,
700       434,  437,  439,  442,  444,  447,  450,  453,  455,  458,
701       461,  465,  469,  473,  476,  479,  483,  486,  490,  494,
702       498,  501,  505,  508,  512,  516,  520,  523,  527,  529,
703 
704       532,  535,  538,  540,  543,  545,  547,  549,  551,  553,
705       555,  557,  560,  563,  566,  570,  574,  578,  581,  585,
706       588,  592,  596,  600,  603,  606,  610,  612,  614,  616,
707       618,  621,  625,  629,  633,  636,  640,  642,  644,  646,
708       648,  650,  652,  655,  657,  660,  662,  664,  666,  668,
709       671,  674,  678,  681,  685,  687,  688,  689,  690,  690,
710       690,  691,  692,  692,  693,  693,  693,  693,  693,  693,
711       693,  693,  693,  693,  693,  693,  693,  693,  693,  693,
712       693,  693,  693,  694,  694,  694,  694,  694,  694,  694,
713       694,  695,  696,  696,  696,  696,  696,  696,  696,  696,
714 
715       696,  696,  697,  697,  697,  697,  697,  698,  698,  698,
716       698,  698,  698,  698,  698,  698,  698,  698,  698,  698,
717       699,  701,  703,  704,  705,  706,  708,  710,  711,  712,
718       713,  714,  715,  716,  717,  718,  719,  720,  721,  722,
719       723,  724,  725,  726,  727,  728,  729,  730,  731,  733,
720       734,  735,  736,  737,  738,  739,  740,  742,  744,  745,
721       746,  747,  748,  749,  750,  751,  752,  753,  755,  756,
722       757,  758,  759,  760,  761,  762,  763,  764,  765,  765,
723       765,  765,  765,  765,  765,  766,  768,  770,  772,  774,
724       775,  775,  775,  775,  775,  775,  775,  776,  776,  777,
725 
726       779,  781,  783,  784,  784,  784,  785,  785,  785,  785,
727       785,  785,  785,  785,  785,  785,  785,  786,  788,  790,
728       792,  793,  794,  796,  798,  800,  801,  802,  804,  806,
729       808,  809,  809,  809,  809,  809,  809,  809,  809,  809,
730       809,  810,  811,  813,  815,  817,  819,  820,  821,  822,
731       824,  826,  828,  830,  831,  831,  832,  833,  835,  837,
732       839,  841,  842,  843,  844,  846,  848,  850,  852,  853,
733       854,  855,  857,  859,  861,  863,  864,  865,  866,  868,
734       870,  872,  874,  875,  876,  878,  880,  882,  883,  884,
735       885,  887,  889,  891,  892,  893,  895,  897,  899,  900,
736 
737       901,  902,  904,  906,  908,  910,  911,  911,  911,  911,
738       911,  911,  911,  911,  912,  913,  914,  915,  916,  918,
739       920,  922,  923,  924,  926,  928,  930,  931,  932,  932,
740       932,  932,  932,  932,  933,  935,  937,  939,  940,  941,
741       941,  941,  941,  942,  943,  945,  946,  946,  946,  946,
742       947,  949,  951,  951,  951,  951,  951,  951,  951,  951,
743       951,  951,  951,  951,  951,  951,  951,  952,  952,  952,
744       952,  952,  952,  952,  952,  952,  952,  952,  952,  952,
745       952,  952,  952,  952,  952,  952,  952,  952,  952,  952,
746       952,  952,  952,  952,  952,  952,  952,  952,  952,  952,
747 
748       952,  952,  953,  954,  954,  954,  954,  954,  954,  954,
749       954,  954,  954,  954,  954,  954,  955,  956,  957,  958,
750       959,  960,  961,  962,  963,  964,  965,  966,  967,  969,
751       970,  971,  972,  973,  974,  975,  976,  977,  978,  979,
752       980,  981,  982,  983,  984,  985,  986,  987,  988,  989,
753       990,  991,  992,  993,  994,  995,  996,  997,  998,  999,
754      1000, 1001, 1002, 1003, 1004, 1005, 1007, 1009, 1010, 1011,
755      1012, 1013, 1014, 1015, 1015, 1015, 1015, 1015, 1015, 1015,
756      1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015,
757      1015, 1015, 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016,
758 
759      1017, 1017, 1017, 1018, 1018, 1018, 1018, 1018, 1019, 1019,
760      1019, 1019, 1019, 1019, 1020, 1021, 1022, 1023, 1023, 1023,
761      1023, 1023, 1023, 1024, 1025, 1025, 1025, 1025, 1025, 1026,
762      1026, 1026, 1026, 1026, 1026, 1027, 1027, 1027, 1027, 1027,
763      1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1028, 1028,
764      1028, 1028, 1028, 1028, 1028, 1028, 1028, 1029, 1029, 1029,
765      1029, 1029, 1029, 1030, 1030, 1030, 1030, 1031, 1031, 1031,
766      1031, 1031, 1031, 1031, 1031, 1031, 1031, 1031, 1031, 1031,
767      1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032,
768      1034, 1034, 1034, 1035, 1036, 1037, 1038, 1039, 1041, 1042,
769 
770      1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052,
771      1053, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063,
772      1064, 1066, 1067, 1068, 1069, 1070, 1071, 1073, 1074, 1075,
773      1076, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086,
774      1087, 1088, 1089, 1090, 1092, 1093, 1094, 1095, 1098, 1099,
775      1100, 1100, 1101, 1101, 1102, 1102, 1102, 1102, 1102, 1103,
776      1103, 1103, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1105,
777      1105, 1105, 1105, 1106, 1106, 1107, 1108, 1108, 1109, 1109,
778      1110, 1110, 1110, 1110, 1111, 1111, 1111, 1111, 1112, 1113,
779      1114, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115,
780 
781      1115, 1115, 1115, 1115, 1115, 1115, 1116, 1116, 1116, 1116,
782      1116, 1116, 1116, 1116, 1117, 1117, 1117, 1117, 1117, 1118,
783      1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
784      1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1119, 1119,
785      1119, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120,
786      1120, 1120, 1120, 1120, 1120, 1121, 1121, 1121, 1123, 1123,
787      1123, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1133, 1134,
788      1135, 1136, 1137, 1138, 1139, 1140, 1142, 1143, 1144, 1145,
789      1146, 1146, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155,
790      1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165,
791 
792      1166, 1168, 1169, 1170, 1172, 1173, 1174, 1175, 1176, 1177,
793      1178, 1179, 1180, 1181, 1182, 1185, 1186, 1187, 1190, 1192,
794      1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1193, 1193,
795      1193, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194,
796      1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194,
797      1194, 1194, 1194, 1194, 1195, 1195, 1195, 1195, 1195, 1195,
798      1195, 1195, 1195, 1195, 1196, 1196, 1197, 1197, 1198, 1198,
799      1198, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199,
800      1199, 1199, 1199, 1200, 1200, 1200, 1200, 1200, 1200, 1200,
801      1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200,
802 
803      1200, 1200, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201,
804      1201, 1201, 1201, 1202, 1202, 1202, 1202, 1202, 1202, 1202,
805      1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1203,
806      1204, 1205, 1207, 1207, 1208, 1210, 1211, 1213, 1214, 1216,
807      1217, 1218, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227,
808      1228, 1229, 1230, 1231, 1232, 1234, 1235, 1236, 1237, 1238,
809      1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248,
810      1249, 1250, 1251, 1253, 1254, 1255, 1256, 1257, 1258, 1259,
811      1260, 1261, 1262, 1263, 1265, 1266, 1267, 1268, 1269, 1270,
812      1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1280, 1283,
813 
814      1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283,
815      1283, 1284, 1284, 1284, 1284, 1284, 1285, 1285, 1285, 1285,
816      1285, 1286, 1286, 1287, 1287, 1288, 1288, 1288, 1288, 1288,
817      1289, 1289, 1289, 1289, 1290, 1290, 1291, 1291, 1291, 1291,
818      1291, 1291, 1291, 1291, 1291, 1291, 1292, 1292, 1292, 1292,
819      1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292,
820      1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292,
821      1292, 1293, 1293, 1293, 1294, 1295, 1295, 1296, 1297, 1297,
822      1297, 1297, 1297, 1297, 1297, 1297, 1297, 1297, 1297, 1297,
823      1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1299, 1300,
824 
825      1300, 1300, 1300, 1300, 1301, 1302, 1303, 1304, 1305, 1306,
826      1307, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317,
827      1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327,
828      1328, 1329, 1330, 1331, 1332, 1333, 1335, 1336, 1337, 1339,
829      1341, 1342, 1344, 1346, 1347, 1348, 1349, 1350, 1351, 1352,
830      1353, 1354, 1355, 1356, 1357, 1359, 1360, 1361, 1362, 1363,
831      1364, 1365, 1366, 1366, 1367, 1367, 1367, 1368, 1368, 1368,
832      1369, 1369, 1369, 1370, 1370, 1370, 1371, 1371, 1371, 1371,
833      1371, 1371, 1372, 1372, 1373, 1373, 1373, 1373, 1373, 1373,
834      1373, 1373, 1374, 1374, 1375, 1375, 1375, 1375, 1375, 1375,
835 
836      1375, 1375, 1375, 1375, 1375, 1375, 1376, 1376, 1376, 1376,
837      1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376,
838      1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1377, 1378,
839      1378, 1378, 1378, 1378, 1378, 1378, 1378, 1379, 1379, 1380,
840      1380, 1380, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381,
841      1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381,
842      1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391,
843      1392, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402,
844      1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412,
845      1413, 1414, 1416, 1418, 1419, 1420, 1421, 1422, 1423, 1424,
846 
847      1425, 1427, 1428, 1430, 1431, 1432, 1434, 1435, 1436, 1437,
848      1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1445, 1445,
849      1446, 1446, 1446, 1446, 1446, 1447, 1447, 1447, 1448, 1448,
850      1449, 1450, 1451, 1451, 1452, 1452, 1452, 1452, 1452, 1452,
851      1452, 1452, 1452, 1452, 1452, 1453, 1454, 1454, 1454, 1454,
852      1454, 1454, 1454, 1454, 1455, 1455, 1455, 1456, 1456, 1456,
853      1456, 1457, 1457, 1457, 1458, 1459, 1459, 1459, 1459, 1459,
854      1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1460, 1460,
855      1460, 1460, 1460, 1460, 1461, 1462, 1462, 1462, 1462, 1462,
856      1462, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463,
857 
858      1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463,
859      1463, 1463, 1463, 1463, 1463, 1464, 1465, 1467, 1469, 1470,
860      1471, 1472, 1473, 1474, 1475, 1476, 1478, 1479, 1480, 1482,
861      1483, 1484, 1485, 1486, 1487, 1489, 1491, 1492, 1493, 1494,
862      1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1505,
863      1506, 1507, 1508, 1509, 1510, 1512, 1514, 1515, 1516, 1517,
864      1518, 1519, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528,
865      1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538,
866      1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1540, 1540,
867      1541, 1541, 1541, 1541, 1541, 1542, 1542, 1543, 1544, 1544,
868 
869      1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1545, 1545,
870      1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545,
871      1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545, 1545,
872      1545, 1545, 1545, 1545, 1546, 1546, 1546, 1547, 1547, 1547,
873      1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
874      1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
875      1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548,
876      1548, 1548, 1548, 1548, 1549, 1551, 1552, 1553, 1554, 1555,
877      1556, 1557, 1558, 1559, 1560, 1562, 1563, 1564, 1565, 1566,
878      1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576,
879 
880      1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586,
881      1587, 1589, 1590, 1591, 1593, 1594, 1595, 1596, 1597, 1598,
882      1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608,
883      1609, 1610, 1611, 1612, 1613, 1614, 1615, 1617, 1618, 1619,
884      1620, 1621, 1622, 1623, 1624, 1625, 1625, 1626, 1626, 1626,
885      1626, 1626, 1626, 1627, 1627, 1627, 1627, 1627, 1628, 1628,
886      1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628,
887      1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628,
888      1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628,
889      1628, 1628, 1628, 1628, 1628, 1628, 1628, 1629, 1629, 1629,
890 
891      1629, 1630, 1631, 1631, 1631, 1632, 1633, 1633, 1634, 1634,
892      1634, 1634, 1634, 1635, 1635, 1635, 1635, 1635, 1635, 1636,
893      1636, 1636, 1636, 1636, 1637, 1637, 1637, 1637, 1637, 1637,
894      1637, 1637, 1637, 1637, 1637, 1637, 1638, 1638, 1639, 1640,
895      1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650,
896      1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660,
897      1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670,
898      1671, 1672, 1673, 1674, 1675, 1676, 1677, 1679, 1680, 1681,
899      1682, 1684, 1686, 1687, 1688, 1690, 1692, 1693, 1695, 1696,
900      1697, 1698, 1699, 1701, 1702, 1703, 1704, 1705, 1706, 1708,
901 
902      1709, 1710, 1711, 1712, 1714, 1715, 1716, 1717, 1718, 1719,
903      1720, 1721, 1722, 1723, 1724, 1724, 1725, 1725, 1726, 1727,
904      1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727, 1727,
905      1727, 1728, 1728, 1728, 1728, 1729, 1729, 1729, 1729, 1729,
906      1729, 1729, 1729, 1729, 1730, 1730, 1730, 1730, 1730, 1730,
907      1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730,
908      1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730,
909      1731, 1731, 1731, 1732, 1732, 1732, 1732, 1732, 1732, 1732,
910      1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732,
911      1733, 1733, 1733, 1733, 1734, 1735, 1736, 1737, 1738, 1739,
912 
913      1741, 1742, 1743, 1744, 1746, 1747, 1748, 1749, 1750, 1751,
914      1752, 1753, 1754, 1756, 1757, 1758, 1759, 1760, 1761, 1762,
915      1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772,
916      1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1783,
917      1784, 1785, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794,
918      1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1805,
919      1806, 1807, 1808, 1809, 1810, 1811, 1811, 1811, 1812, 1812,
920      1812, 1812, 1812, 1812, 1812, 1812, 1813, 1813, 1813, 1814,
921      1814, 1814, 1814, 1814, 1815, 1815, 1815, 1816, 1816, 1816,
922      1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816,
923 
924      1817, 1818, 1819, 1819, 1819, 1820, 1821, 1821, 1821, 1821,
925      1821, 1822, 1823, 1823, 1824, 1825, 1825, 1825, 1826, 1826,
926      1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826,
927      1826, 1827, 1827, 1827, 1827, 1828, 1829, 1830, 1831, 1832,
928      1833, 1835, 1836, 1837, 1839, 1840, 1841, 1842, 1843, 1845,
929      1846, 1847, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856,
930      1857, 1858, 1859, 1860, 1861, 1863, 1865, 1867, 1868, 1869,
931      1871, 1873, 1874, 1875, 1876, 1877, 1879, 1881, 1882, 1884,
932      1886, 1887, 1888, 1890, 1891, 1892, 1893, 1894, 1895, 1896,
933      1897, 1898, 1899, 1900, 1901, 1902, 1904, 1905, 1906, 1907,
934 
935      1907, 1908, 1908, 1908, 1908, 1908, 1909, 1909, 1909, 1909,
936      1910, 1910, 1910, 1910, 1910, 1911, 1911, 1911, 1911, 1911,
937      1912, 1912, 1912, 1912, 1912, 1912, 1912, 1912, 1913, 1913,
938      1913, 1914, 1915, 1915, 1916, 1917, 1917, 1917, 1918, 1918,
939      1918, 1918, 1918, 1918, 1918, 1919, 1920, 1920, 1920, 1921,
940      1921, 1921, 1921, 1922, 1923, 1924, 1926, 1927, 1928, 1929,
941      1931, 1932, 1933, 1934, 1935, 1937, 1938, 1939, 1940, 1941,
942      1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1952, 1953,
943      1954, 1956, 1958, 1959, 1961, 1963, 1964, 1965, 1967, 1968,
944      1969, 1970, 1971, 1972, 1973, 1975, 1977, 1978, 1979, 1981,
945 
946      1982, 1983, 1984, 1985, 1985, 1985, 1985, 1986, 1987, 1987,
947      1987, 1987, 1988, 1988, 1988, 1988, 1989, 1989, 1989, 1989,
948      1989, 1989, 1989, 1989, 1990, 1990, 1990, 1990, 1990, 1990,
949      1991, 1991, 1992, 1992, 1992, 1993, 1993, 1993, 1993, 1993,
950      1993, 1993, 1994, 1994, 1994, 1994, 1995, 1995, 1996, 1997,
951      1999, 2001, 2002, 2003, 2004, 2006, 2007, 2008, 2009, 2011,
952      2012, 2013, 2014, 2015, 2016, 2017, 2018, 2020, 2021, 2022,
953      2023, 2024, 2025, 2027, 2028, 2030, 2031, 2032, 2034, 2035,
954      2036, 2037, 2038, 2039, 2040, 2042, 2043, 2044, 2045, 2047,
955      2048, 2049, 2050, 2050, 2050, 2050, 2050, 2050, 2050, 2050,
956 
957      2050, 2050, 2050, 2050, 2051, 2051, 2051, 2051, 2052, 2053,
958      2054, 2054, 2055, 2055, 2055, 2055, 2055, 2055, 2055, 2055,
959      2055, 2056, 2056, 2056, 2056, 2056, 2056, 2056, 2058, 2059,
960      2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069,
961      2071, 2072, 2073, 2074, 2076, 2078, 2080, 2081, 2083, 2084,
962      2085, 2086, 2087, 2088, 2089, 2090, 2091, 2093, 2094, 2095,
963      2096, 2097, 2098, 2099, 2100, 2101, 2102, 2102, 2103, 2104,
964      2104, 2105, 2106, 2106, 2106, 2106, 2106, 2106, 2106, 2106,
965      2106, 2106, 2106, 2106, 2106, 2107, 2108, 2108, 2108, 2108,
966      2109, 2109, 2109, 2110, 2112, 2114, 2116, 2117, 2119, 2121,
967 
968      2122, 2124, 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133,
969      2134, 2135, 2136, 2137, 2138, 2140, 2142, 2143, 2144, 2145,
970      2147, 2148, 2149, 2151, 2151, 2152, 2152, 2153, 2154, 2154,
971      2154, 2155, 2156, 2157, 2157, 2158, 2159, 2159, 2159, 2159,
972      2160, 2160, 2161, 2163, 2164, 2166, 2168, 2169, 2170, 2172,
973      2174, 2176, 2177, 2179, 2181, 2182, 2183, 2184, 2186, 2187,
974      2188, 2188, 2188, 2189, 2190, 2190, 2191, 2191, 2191, 2193,
975      2194, 2195, 2197, 2199, 2200, 2202, 2203, 2204, 2204, 2205,
976      2206, 2206, 2207, 2208, 2210, 2212, 2213, 2215, 2216, 2216,
977      2216, 2218, 2219, 2220, 2220, 2221, 2222, 2224, 2224, 2225,
978 
979      2226, 2228, 2228
980     } ;
981 
982 static yyconst flex_int32_t yy_ec[256] =
983     {   0,
984         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
985         4,    4,    4,    1,    1,    1,    1,    1,    1,    1,
986         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
987         1,    5,    6,    1,    7,    1,    1,    1,    1,    1,
988         1,    1,    1,    1,    8,    9,   10,   11,   12,   13,
989        14,   15,   16,   17,   13,   13,   18,   19,    1,   20,
990        21,   22,    1,    1,   23,   23,   23,   23,   24,   25,
991        26,   26,   27,   26,   26,   28,   26,   26,   26,   26,
992        26,   26,   26,   26,   26,   26,   26,   26,   26,   26,
993         1,   29,    1,    1,   30,    1,   31,   32,   33,   34,
994 
995        35,   36,   37,   38,   39,   26,   40,   41,   42,   43,
996        44,   45,   46,   47,   48,   49,   50,   51,   52,   53,
997        54,   26,    1,    1,   55,    1,    1,    1,    1,    1,
998         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
999         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1000         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1001         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1002         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1003         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1004         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1005 
1006         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1007         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1008         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1009         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1010         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1011         1,    1,    1,    1,    1
1012     } ;
1013 
1014 static yyconst flex_int32_t yy_meta[56] =
1015     {   0,
1016         1,    2,    3,    4,    5,    1,    1,    6,    7,    8,
1017         9,    9,    9,    9,    9,    9,    9,    9,   10,    1,
1018         1,    1,   11,   11,   11,    7,    7,    7,    1,    6,
1019        11,   11,   11,   11,   11,   11,    7,    7,    7,    7,
1020         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
1021         7,    7,   12,    7,    1
1022     } ;
1023 
1024 static yyconst flex_int16_t yy_base[2964] =
1025     {   0,
1026         0,   54,  102,  156,   19,  160,  203,    0,   39,   41,
1027      4592, 4591,  256,  310,   44,  141,  365,    0,  419,  473,
1028        46,   47,  528,    0,  243,  257, 4590, 4589,   50,  147,
1029       582,  636,  690,  744,  798,  852,   42,  154,   49,   66,
1030       145,  148,  180,  230,  906,  960, 1014, 1068,  150,  159,
1031      1122, 1176, 1230, 1284, 1338, 1392, 1446, 1500, 1554, 1608,
1032      1662, 1716, 1770, 1824, 1878, 1932,  140,  168,  187,  200,
1033       280,  295, 1987,    0, 4588, 4587, 2042,    0, 2096, 2150,
1034      2204, 2258,  264,  316, 2312, 2366,  314,  404, 2421,    0,
1035      2475, 2529,  299,  408, 2583, 2637,  195,  277, 4605, 7246,
1036 
1037        65, 7246, 4581,    0,   28,  160,  445, 4580, 7246, 4579,
1038      4596, 4557,  462,  313,  285,  290, 4550,  393, 4552,  173,
1039       433,  435,  128,  180,  133,  464,  216,  243, 4556, 4559,
1040      7246,  586,  473,  475, 4549,  200,  135,  573,    0, 4571,
1041       495,  258, 2683,  645,    0, 4570,    0, 4569, 4586, 4547,
1042       582,  565,  305,  418,  217,  567,  243,  316,  632,  463,
1043       266,  398,  474,  633,  400,  435, 4548, 4551,    0,  679,
1044       584,  478,  638,  480,  639, 4541,  667, 4540,  668, 7246,
1045      4544, 4538, 4547,    0,  216,    0, 2726,  717, 4577,    0,
1046      4535,  317, 4531, 4533, 4543, 4566,    0,  670, 2769,  725,
1047 
1048      4571,    0, 4526, 4539,    0, 4523, 4522, 4526, 4515, 4527,
1049      4521, 4508, 4504, 4508, 4506,    0,  677, 2812,  753, 4547,
1050         0,    0,  770, 2855,  765, 4546,    0,    0,  783, 2898,
1051       779, 4545,    0, 4516, 4513, 4502, 4497, 4499, 4509, 4510,
1052      4501, 4491,  627,  802, 2947, 4485,  803,  668,  779,  818,
1053      2996, 4478,  821,  813, 4496,  814,  823, 3045, 4476,  826,
1054       825,  829,  833, 3094, 4475,  853,  831,  841,  871, 3143,
1055      4474,  872,  842,  869,  877, 3192, 4470,  875,  878,    0,
1056       882, 3235,  915, 4495, 4518,    0,    0,  884, 3278,  925,
1057      4517,    0,    0,  893, 3321,  933, 4516,    0,  880,  950,
1058 
1059      3370, 4465,  897,  887, 4468, 4478, 4471, 4483, 4468, 4477,
1060      4475, 3423, 3478,    0,  951, 3523,  969, 4505,    0,    0,
1061       986, 3566,  981, 4480, 4503,    0, 4462,  405, 4461, 4468,
1062         0,  999, 3609,  995, 4499,    0, 4456, 4456, 4466, 4464,
1063         0,    0,  521, 4494,    0, 4452, 4451, 4459, 4458,    0,
1064         0, 3661, 4489,    0, 4448,  640, 7246,    0, 4455, 4454,
1065       625, 1023,    0, 7246, 4457,  601, 4444, 4442, 4435, 4450,
1066      4444, 4443,  674, 4431, 4448, 4448, 4431, 4419, 4423, 4422,
1067      4417, 4416, 4412, 4411, 4428, 4426,  553, 4404, 4407, 4412,
1068      4421, 4410, 1009, 4408, 1013, 4401, 4408, 4401, 4415, 4414,
1069 
1070      4404, 7246, 4394, 4403, 4406, 4388, 1057, 4394, 4390, 4386,
1071      4398, 4384, 4383, 4382, 4386, 4376, 1012, 4373, 4389,    0,
1072         0, 1048, 4386, 4383, 7246, 3670, 1095, 3713, 4386,  679,
1073      4373, 4371, 4364, 4379, 4373, 4372,  682, 4360, 4377, 4377,
1074      4360, 4357, 4361, 4359, 4359, 4354, 4353, 4351, 4350, 4349,
1075      4366, 4364,  651, 4342, 4345, 4350, 4359, 4348, 1030, 4346,
1076      1018, 4339, 4346, 4339, 4353, 4343, 4333,    0, 4329, 4338,
1077      4341, 4321, 4324, 4328, 4318, 1084, 4315, 4331, 4315, 4315,
1078      4313, 4317, 4316, 4313,    0,  748,    0, 3739, 1131, 3782,
1079      4314, 4307, 4307, 4307, 4303, 4301, 7246, 4336,    0, 1072,
1080 
1081      3808, 1141, 3851, 4297, 4298,    0, 4305, 4290, 4306, 4293,
1082      4293, 4301, 4298, 4283, 4298, 4287,    0, 1096, 3877, 1149,
1083      3920,    0, 1166, 3946, 1185, 3989,    0, 1167, 4015, 1195,
1084      4058, 4281, 4288, 4271, 4280, 4275, 4279, 4288, 4278, 4286,
1085       949,    0, 1215, 4316, 4090, 4264, 4133,  995,    0, 1217,
1086      4314, 4182, 4262, 4225, 4283, 1095,    0, 1219, 4311, 4274,
1087      4259, 4317, 1111,    0, 1221, 4309, 4366, 4257, 4409, 1165,
1088         0, 1248, 4307, 4458, 4255, 4501, 1199,    0, 1249, 4305,
1089      4550, 4253, 4593,    0, 1250, 4636, 1259, 4679, 4277,    0,
1090      1259, 4705, 1293, 4748,    0, 1260, 4774, 1303, 4817, 1209,
1091 
1092         0, 1261, 4302, 4849, 4250, 4892, 4252, 4266, 4266, 4259,
1093      4247, 4252, 4251,    0, 4945,    0, 5000,    0, 1323, 5045,
1094      1318, 5088,    0, 1342, 5114, 1357, 5157, 4267, 4240, 4249,
1095      4240, 4233, 4234,    0, 1357, 5183, 1366, 5226, 7246, 4247,
1096      4232, 4231,    0,    0,  955, 7246,  651, 4238, 4228,    0,
1097      5261,    0, 4219, 4239, 4228, 4223, 4234, 4234, 4233, 4233,
1098      4222, 4233, 4222, 4227,  978, 4212, 7246, 4204, 4217, 4208,
1099      4216, 4205, 4196, 4214, 4195, 4208, 4203, 4196, 4188, 4208,
1100       237, 4202, 4199, 4195, 4196, 4197, 4222,  739, 4182,  790,
1101      4188, 4189, 4183, 4177, 4190, 4176, 4183, 4184, 4186, 4211,
1102 
1103      4172, 7246, 7246, 4174, 4178, 4168, 4167, 4164, 4180, 4179,
1104      4176, 4161, 4161, 4159, 4167, 4173, 4162, 4157, 4168, 4168,
1105      4158, 4158, 4147, 4158, 4147, 4150, 1022, 4141,    0, 4133,
1106      4146, 4137, 4145, 4137, 4159, 4127, 4145, 4126, 4129, 4138,
1107      4133, 4126, 4118, 4132,  915, 4126, 4123, 4121, 4122, 4120,
1108      4145,  955, 4105,  861, 4111, 4112, 4106, 4100, 4113, 4099,
1109      4106, 4107, 4107, 4132, 4093,    0,    0, 4106, 4103, 4088,
1110      4088, 4086, 4094, 4084, 4083, 4082, 4096, 4086, 1045, 4085,
1111      4096, 4093, 4081, 4079, 4084, 4078, 4112, 4089, 4088, 4073,
1112      4082,    0, 4098, 4068, 4069, 4073, 4067, 4071, 4075, 7246,
1113 
1114      4058, 4050, 7246, 4058, 4062, 4065, 4043, 4063, 4078, 4052,
1115      4041, 4045,  590, 7246, 7246, 4055, 7246, 4047, 4041, 4032,
1116      4024, 4025, 7246, 7246, 4025, 4025, 4018, 4011, 7246, 4009,
1117      4025, 4016, 4004, 4004, 7246, 4015, 4021, 4003, 4018, 4008,
1118      4019, 4018, 4013, 4010, 3997, 3998, 1056, 7246, 3999, 3998,
1119      4003, 3994, 3998, 4030, 3991, 3996, 7246, 3986, 4004, 3990,
1120      3970, 3970, 7246, 1074, 3969, 3981, 7246, 3971, 3957, 3968,
1121      3962, 3967, 3963, 1048, 3958,  592, 3952, 3951,  741, 3985,
1122      3960, 3957, 3942, 3942, 3940, 3948, 3947, 3943, 3946, 7246,
1123      3949,  814, 3932, 3948, 3939, 3927, 3927,    0, 3938, 3944,
1124 
1125      3926, 3941, 3931, 3942, 3941, 3936, 3933, 3920, 3921, 1133,
1126         0, 3957, 3921, 3920, 3911, 3902, 3906, 3938, 3899, 3901,
1127         0, 3891, 3909, 3895, 3880, 3880,    0, 1181, 3879, 3891,
1128         0, 3881, 3870, 3881, 3875, 3880,   27, 1086,   55, 1020,
1129       306,  381,  860,  464,  441,  453,  486,    0,  557, 1246,
1130       573, 7246,  651,  674,  691,  696,  717,  719, 7246,  797,
1131       804,  869,  872,  911, 1085,  916,  945,  971, 7246, 1015,
1132      1008,  981, 1018, 1040, 7246, 7246, 1062, 7246, 1082, 7246,
1133      1080, 1109, 1208, 1154, 1139, 1135, 1134, 7246, 7246, 7246,
1134      1196, 1169, 1191, 1202, 1222, 1223, 1211, 1247, 1234, 1249,
1135 
1136      1383, 1410, 1279, 1245, 1253, 7246, 1258, 1263, 1313, 1274,
1137      1281, 1277, 1294, 7246, 1329, 1297, 1298, 1305, 7246, 1319,
1138      1355, 1317, 1328, 5250, 1333, 1331, 1317, 1351, 1357, 1348,
1139      1348, 1364, 1362, 1381, 1370, 1385, 1374, 7246, 1385, 1371,
1140      1414, 1376, 1381, 1382, 1378, 1386, 1382, 1381, 1388, 1389,
1141      1393, 1395, 1394, 1400, 7246, 1405, 1393, 7246, 1393, 1411,
1142      1435, 1441, 1465, 1469, 1476, 1405, 1413,    0, 1420, 1407,
1143      1457, 1427, 1434, 1430, 1447,    0, 1474, 1446, 1441, 1447,
1144      1481,    0, 1453, 1459, 1451, 1460, 5270, 1465, 1463, 1449,
1145      1460, 1466, 1460, 1458, 1472, 1470, 1475, 1473, 1488, 1477,
1146 
1147         0, 1488, 1473, 1516, 1478, 1483, 1484, 1481, 1489, 1484,
1148      1483, 1490, 1491, 1495,    0, 1488, 1505, 1532, 1538, 1508,
1149      1510, 1511, 1514, 1500, 1504, 1517, 1508, 7246, 1505, 1517,
1150      7246, 1515, 1515, 1511, 1523, 1513, 1541, 1516, 1562, 1545,
1151      1526, 1548, 1531, 1548, 1536, 1551, 1577, 1569,    0, 1542,
1152      1543, 1550,    0, 7246, 1559, 1547, 1547, 1547, 1553, 1551,
1153      1560, 1553, 1626, 7246, 1636, 7246, 1568, 1569, 1565, 1571,
1154      7246, 1568, 1565, 1575, 1578, 1575, 1567, 1602, 1588, 1595,
1155      1604, 1627, 7246, 1608, 1612, 1600, 1597, 1617, 1614, 1615,
1156      1612, 1605, 1618, 1620, 1612, 1622, 1611, 1615, 1617, 1617,
1157 
1158      1625, 7246, 1621, 1640, 1636, 1648, 1636, 1633, 1641, 1639,
1159      1654, 1653, 7246, 1658, 1643, 1649,    0, 1658, 1645, 1646,
1160      1653, 1650, 1659, 1655, 1653, 1658, 1653, 1669, 7246, 1699,
1161      1704, 1700, 1706, 1737,    0, 1745,    0, 1672, 1673, 1669,
1162      1676,    0, 1674, 1671, 1682, 1680, 1677, 1671, 1706, 1681,
1163      1687, 1705,    0, 1734,    0, 1713, 1708, 1704, 1724, 1722,
1164      1723, 1720, 1713, 1726, 1728, 1719, 1730, 1719, 1723, 1725,
1165      1725, 1733,    0, 1729, 1748, 1744, 1756, 1744, 1741, 1749,
1166      1747, 1762, 1761,    0, 1766, 1751, 1757, 1799, 1767, 1754,
1167      1756, 1763, 1760, 1769, 1766, 1764, 1769, 1812, 1808, 1769,
1168 
1169      1766, 1772, 1777, 1770, 1777, 1790, 1778, 1775, 1793, 1790,
1170      7246, 1781, 1798, 1779, 1799, 7246, 1802, 1834, 1796, 1807,
1171         0, 1818, 7246, 1840,    0, 1804, 1817, 1816, 1813,    0,
1172      1822, 1819, 1811, 7246, 1813, 7246, 1830, 1813, 1832, 1817,
1173      1816, 1857, 1836, 1824, 1834, 7246, 1838, 1823,    0, 1836,
1174      1830, 1834, 1863, 1841, 1836, 1828, 1833, 1835, 1838, 1840,
1175      1856, 1857, 1859, 1857, 1867, 1869, 1858, 1859, 1867, 1868,
1176      1901, 1870, 1863, 7246, 7246, 1869, 7246, 1906, 1865, 1878,
1177      1877, 1875, 1871, 1877, 1881, 1875, 1916, 1879, 1879, 7246,
1178      1920, 1887, 1882, 1900, 1887, 1899, 1895, 1936, 1937, 2095,
1179 
1180      2097, 1911, 1922, 1923, 1908, 1907, 1948, 1927, 1915, 1925,
1181         0, 1931, 1915, 1963, 1929, 1923, 1928,    0, 1935, 1930,
1182      1922, 1925, 1927, 1929, 1931, 1947, 1938, 1940, 1938, 2069,
1183      1949, 1938, 1939, 2064, 2065, 2107, 2075, 2068,    0,    0,
1184      2074,    0, 2111, 2070, 2083, 2083, 2082, 2079, 2085, 2089,
1185      2083, 2124, 2087, 2087,    0, 2128, 2095, 2090, 2109, 2094,
1186      2105, 2100, 2105, 7246, 2114, 2094, 7246, 2114, 2101, 7246,
1187      2123, 2124, 7246, 2120, 2112, 7246, 2113, 2135,    0, 2156,
1188      2138,    0, 2132,    0, 2131, 2131, 2129, 2138, 2137, 2132,
1189      2151, 7246, 2134, 7246, 2135, 2137, 2151, 2149, 2140, 2136,
1190 
1191      2148, 2142, 2153, 2154, 2183, 7246, 2152, 2194, 2157, 2166,
1192      2167, 2151, 2222, 2159, 2163, 2190, 2177, 2165, 2180, 2201,
1193      2186, 2186, 2192, 2189, 2194, 2191, 2191, 7246, 7246, 2212,
1194      2213, 2196, 2208, 2216, 2210, 2218, 7246, 2203, 7246, 2206,
1195      2219, 7246, 2240, 2220, 2221, 2219, 2247, 2223, 2215, 2212,
1196      2221, 2216, 2221, 2237, 2250, 2243, 2254, 2247, 2244, 2244,
1197      2246, 2260, 2259, 2250, 2246, 2258, 2252, 2263, 2264, 2293,
1198         0, 2262, 2330, 2263, 2272, 2273, 2341, 2260, 2263, 2274,
1199      2276, 2267, 2270, 2290, 2273, 2286, 2292, 2289, 2295, 2293,
1200      2296,    0,    0, 2317, 2321, 2304, 2315, 2324, 2318, 2325,
1201 
1202         0, 2310,    0, 2314, 2327,    0, 2348, 2328, 2329, 2327,
1203      2355, 2331, 2323, 2320, 2329, 2324, 2329, 2332, 2350, 7246,
1204      2358, 2353, 2361, 2358, 7246, 2365, 2358, 7246, 2391, 7246,
1205      7246, 7246, 2358,    0, 2358, 2365, 2365, 2365, 2360, 2356,
1206      2374, 2377, 2382, 2381, 7246, 7246, 2366, 2456, 2371, 2379,
1207      2377, 2377, 2404, 7246, 2496, 2471, 7246, 2446, 2427, 2436,
1208      7246, 2503, 2518, 7246, 7246, 2445, 2476, 2487, 2475, 2478,
1209      2476, 2478, 2489, 2480, 2479, 2496, 2479, 2520, 2498, 2494,
1210      2502, 2494, 2500, 7246, 7246, 2533, 2518, 2517, 2509, 2510,
1211      7246, 2512, 2525, 2511, 2523, 2529, 2521, 2521, 2525, 2526,
1212 
1213      2536, 2539, 2540, 2543, 2528, 2529, 2538, 2539, 2535, 2532,
1214      2537, 2534, 2550, 2539, 2558, 2558,    0,    0, 2543, 2564,
1215      2559, 2568, 2566, 2566, 2593,    0, 2611, 2579,    0, 2584,
1216      2565, 2574, 2655, 2630,    0,    0, 2583, 2614, 2616, 2597,
1217      2600, 2595, 2595, 2600, 2592, 2594, 2612, 2597, 2653, 2628,
1218      2623, 2630, 2623, 2629,    0,    0, 2653, 2639, 2638, 2632,
1219      2633,    0, 2638, 2651, 2634, 2646, 2652, 2643, 2643, 2644,
1220      2645, 2655, 2658, 2669, 2672, 2657, 2658, 2667, 2668, 7246,
1221      2677, 2660, 2666, 2670, 2677, 2665, 2683, 7246, 2667, 7246,
1222      2662, 2686, 2674, 2680, 7246, 2685, 7246, 7246, 2677, 2668,
1223 
1224      2689, 2685, 2690, 2695, 2683, 2689, 2694, 7246, 2689, 2686,
1225      2688, 2686, 2690, 2691, 2712, 2712, 2698, 2699, 2698, 2709,
1226      2706, 2708, 2706, 2710, 2722, 2722, 2725, 5290, 2714, 2716,
1227      2722, 2722, 2731, 7246, 2720, 2717, 2756, 2731, 2735, 2730,
1228      2721, 2723, 2730, 2729, 2725, 2731, 2760, 2741, 2734, 2745,
1229      2739, 2751, 2737, 2760, 2745, 2742, 2760, 2761, 2753, 2788,
1230      2761, 2754, 2751, 2758, 2771, 2764, 2763, 2754, 2773, 2759,
1231      2775, 2761, 2770, 7246,    0, 2767, 2758, 2779, 2775, 2780,
1232      2785, 2773, 2779, 2784,    0, 2779, 2776, 2787, 2785, 2789,
1233      2790, 2802, 2802, 2788, 2789, 2788, 2799, 2796, 2798, 2796,
1234 
1235      2800, 2812, 2812, 2815, 5310, 2804, 2806, 2812, 2812, 2821,
1236         0, 2810, 2807, 2846, 2821, 2825, 2820, 2811, 2813, 2820,
1237      2819, 2815, 2821, 2859, 2840, 2833, 2844, 2829, 2841, 2827,
1238      2850, 2835, 2832, 2850, 2851, 2843, 2878, 2851, 2844, 2841,
1239      2848, 2861, 2854, 2853, 2844, 2847, 7246, 2854, 2863, 2865,
1240      2852, 2859, 7246, 2871, 2854, 2852, 2874, 7246, 2863, 2866,
1241      2876, 2882, 2873, 2871, 2887, 2873, 2879, 2893, 2916, 2889,
1242      2883, 2879, 2896, 2885, 2886, 2878, 2902, 2895, 2904, 2927,
1243      2900, 2894, 2906, 2895, 2896, 2892, 2893, 2913, 2910, 2911,
1244      2908, 2913, 2905, 2919, 2903, 2917, 2947, 2922, 2927, 2920,
1245 
1246      7246, 2961, 2933, 2941, 7246, 7246, 2925, 7246, 2930, 2921,
1247      2927, 2958, 7246, 2935, 2948, 2936, 2937, 2947, 7246, 2934,
1248      2940, 2953, 2954, 7246, 2944, 2939, 2946, 2961, 2958, 2956,
1249      2949, 2944, 2961, 2958, 2958, 7246, 2959, 7246, 2959, 2962,
1250      2963, 2969, 2960, 2967, 2983, 2969, 2975, 2989, 3012, 2985,
1251      2979, 2975, 2992, 2981, 2982, 2974, 2998, 2991, 3000, 3023,
1252      2996, 2990, 3002, 2991, 2992, 2988, 2989, 3009, 3006, 3007,
1253      3004, 3009, 3001, 3017, 2999, 3011, 3039, 3018, 3013, 3006,
1254         0, 3057, 3029, 3037,    0,    0, 3021,    0, 3026, 3017,
1255      3023, 3071,    0, 3031, 3044, 3033, 3034, 3044,    0, 3031,
1256 
1257      3038, 3051, 3052,    0, 3042, 3037, 3044, 3059, 3057, 3055,
1258      3048, 3043, 3060, 3057, 3062, 7246, 3066, 7246, 7246, 3066,
1259      3052, 3070, 3061, 3073, 3072, 3081, 3082, 3083, 3069, 3081,
1260      7246, 3067, 3072, 3076, 7246, 3115, 3076, 3095, 3087, 3083,
1261      3097, 3097, 3084, 7246, 3123, 3084, 3094, 3086, 3087, 3089,
1262      3091, 3107, 3098, 3100, 3088, 3096, 3097, 3104, 3105, 3113,
1263      3112, 3118, 3117, 3115, 3132, 3129, 3124, 3125, 3115, 7246,
1264      3120, 3150, 3152, 3141, 3131, 3133, 3142, 3129, 3142, 3129,
1265      3129, 3130, 3146, 3149, 3149, 3135, 3149, 3138, 3152, 7246,
1266      3149, 3152, 3149, 3148, 3157, 3158, 3159, 3145, 3159,    0,
1267 
1268      3145, 3150, 3154,    0, 3193, 3163, 3182, 3174, 3170, 3184,
1269      3184, 3171,    0, 3210, 3171, 3181, 3173, 3174, 3176, 3178,
1270      3194, 3185, 3187, 3175, 3183, 3184, 3191, 3192, 3198, 3197,
1271      3203, 3202, 3200, 3223, 3204, 3199, 3200, 3190,    0, 3195,
1272      3253, 3254, 3213, 3215, 3219, 3229, 3218, 3231, 3218, 3218,
1273      3219, 3235, 3238, 3240, 3226, 3240, 3229, 3243,    0, 3240,
1274      3243, 3240, 7246, 7246, 7246, 3233, 3245, 7246, 3245, 3250,
1275      3243, 3268, 3248, 3263, 3267, 7246, 3251, 3259, 7246, 3258,
1276      3254, 3269, 3270, 7246, 3271, 3265, 7246, 3264, 3274, 3275,
1277      3267, 3277, 3264, 3264, 3284, 3267, 3268, 3269, 3268, 7246,
1278 
1279      7246, 7246, 3285, 3281, 7246, 7246, 3288, 3288, 3271, 3283,
1280      7246, 7246, 3296, 3308, 3309, 3287, 3295, 7246, 3296, 3302,
1281         0, 3293, 3307, 3308, 3312, 3301, 3302, 3309, 3310, 3301,
1282      7246, 3310, 3317, 3318, 3319, 3312, 3354, 3308, 3323, 3328,
1283         0, 3312, 3320,    0, 3319, 3316, 3331, 3332,    0, 3333,
1284      3327,    0, 3326, 3336, 3337, 3332, 3342, 3329, 3329, 3349,
1285      3341, 3342, 3343, 3342,    0,    0,    0, 3359, 3355,    0,
1286         0, 3362, 3362, 3345, 3357,    0,    0, 3370, 3399, 3400,
1287      3361, 3371,    0, 3363, 3369, 3410, 3362, 3377, 3378, 3383,
1288      3372, 3376, 3383, 3386, 3377,    0, 3387, 3398, 3407, 3408,
1289 
1290      7246, 3398, 3415, 3418, 3431, 3432, 3415, 3407, 3417, 7246,
1291      3448, 3425, 3420, 3411, 7246, 3418, 3453, 3430, 3415, 3456,
1292      3457, 3433, 3435, 3432, 3431, 3437, 3442, 3465, 3440, 3423,
1293      7246, 3468, 3428, 3474, 7246, 3457, 3462, 7246, 3460, 3453,
1294      3463, 3463,    0, 3457, 7246, 7246, 3478, 3467, 7246, 3476,
1295      3479, 3477, 3482, 3485, 3540, 3541, 3478, 3470, 3480,    0,
1296      3511, 3488, 3483, 3474,    0, 3481, 3516, 3493, 3478, 3519,
1297      3520, 3496, 3511, 3494, 3493, 3513, 3518, 3543, 3518, 3501,
1298         0, 3546, 3504, 3549,    0, 3530, 3527,    0, 3522, 3515,
1299      3525, 3525, 3583, 3519,    0,    0, 3538, 3527,    0, 3536,
1300 
1301      3538, 3536, 7246, 3521, 3537, 3545, 3570, 3571, 3549, 3543,
1302      3553, 7246, 3551, 3552, 3566, 7246, 3554, 3568, 3556, 3558,
1303      3564, 3564, 3573, 7246, 3562, 3560, 3576, 3561, 3563, 3602,
1304      3574, 7246, 3582, 3581, 7246, 3584, 3581, 3586, 3580, 3593,
1305      3580, 7246, 3582, 3602, 3596, 7246, 3599, 3586, 3594, 3635,
1306      3636, 3597, 3593, 3602,    0, 3600, 3603, 3617,    0, 3605,
1307      3619, 3607, 3609, 3615, 3617, 3627,    0, 3616, 3613, 3629,
1308      3617, 3620, 3659, 3631,    0, 3639, 3656,    0, 3659, 3656,
1309      3661, 3655, 3659, 3646,    0, 3648, 3668, 3662,    0, 3665,
1310      7246, 7246, 3666, 3667, 3655, 3665, 3664, 3663, 3665, 3667,
1311 
1312      3675, 3675, 3675, 3703, 3678, 3673, 3666, 7246, 7246, 7246,
1313      3668, 7246, 3686, 3683, 3678, 3687, 3689, 3668, 3679, 3686,
1314      7246, 3701, 3701, 3704, 3688, 3706, 3708,    0, 3708, 3723,
1315      3711, 3721, 3720, 3719, 3721, 3723, 3731, 3731, 3731, 3759,
1316      3734, 3729, 3722,    0,    0,    0, 3724,    0, 3742, 3739,
1317      3734, 3743, 3745, 3724, 3726, 3733,    0, 3748, 3748, 3748,
1318      3732, 3750, 3752, 7246, 7246, 7246, 3738, 7246, 7246, 3753,
1319      7246, 3780, 3737, 3755, 3763, 3769, 3768, 3766, 3767, 3768,
1320      3757, 3770, 3777, 3786, 7246, 7246, 3784, 3784, 3785, 7246,
1321      3800, 3798, 7246,    0,    0,    0, 3784,    0,    0, 3799,
1322 
1323         0, 3826, 3783, 3801, 3800, 3806, 3805, 3803, 3801, 3802,
1324      3791, 3804, 3811, 3806,    0,    0, 3804, 3804, 3805,    0,
1325      3820, 3818,    0, 3799, 7246, 3816, 7246, 7246, 3820, 3816,
1326      7246, 7246, 7246, 3816, 7246, 7246, 3810, 3824, 3811, 7246,
1327      3831, 3817,    0, 3834,    0,    0, 3838, 3837,    0,    0,
1328         0, 3837,    0,    0, 3831, 3845, 3832,    0, 3857, 7246,
1329      3862, 3845, 7246, 7246, 3851, 7246, 3851, 3852,    0, 3867,
1330      3850,    0,    0, 3856,    0, 3856, 3857, 3854, 3899, 7246,
1331      3868, 7246, 3857, 3902,    0, 3871,    0, 7246, 3882, 3879,
1332         0, 3884, 3881, 3876, 7246, 3877,    0, 3878, 3879, 7246,
1333 
1334         0, 7246, 5360, 5372, 5384, 5396, 5408, 5420, 5432, 5444,
1335      5456, 5468, 5480, 5492, 5504, 5516, 5528, 5540, 5552, 5564,
1336      5576, 5588, 5600, 5604, 5616, 5628, 5640, 5652, 5658, 5670,
1337      5682, 5694, 5706, 5718, 5730, 5742, 5754, 5766, 5778, 5790,
1338      5802, 5814, 5826, 5838, 5850, 5862, 5874, 5886, 5898, 5910,
1339      5922, 5934, 5946, 5958, 5970, 5982, 5994, 6006, 6018, 6030,
1340      6042, 6054, 6066, 6078, 6090, 6102, 6109, 6121, 6133, 6145,
1341      6157, 6169, 6173, 6177, 6188, 6200, 6212, 6224, 6230, 6242,
1342      6254, 6266, 6278, 6290, 6302, 6314, 6326, 6338, 6350, 6362,
1343      6374, 6386, 6398, 6410, 6422, 6434, 6446, 6458, 6470, 6482,
1344 
1345      6494, 6506, 6518, 6530, 6542, 6554, 6566, 6578, 6590, 6602,
1346      6614, 6626, 6638, 6650, 6662, 6674, 6686, 6698, 6710, 6722,
1347      6734, 6746, 6758, 6770, 6782, 6794, 6806, 6818, 6830, 6842,
1348      6854, 6866, 6873, 6885, 6897, 6909, 6921, 6933, 6945, 6957,
1349      6969, 6981, 6993, 7005, 7017, 7029, 7041, 7053, 7065, 7077,
1350      7089, 7101, 7113, 7125, 7137, 7149, 7161, 7173, 7185, 7197,
1351      7209, 7221, 7233
1352     } ;
1353 
1354 static yyconst flex_int16_t yy_def[2964] =
1355     {   0,
1356      2802,    1, 2802,    3,    1,    1,    1,    7,    7,    7,
1357         7,    7, 2803, 2803,    7,    7, 2802,   17, 2804, 2804,
1358         7,    7, 2802,   23,    7,    7,    7,    7,    7,    7,
1359      2805, 2805, 2806, 2806, 2807, 2807,    7,    7,    7,    7,
1360         7,    7,    7,    7, 2808, 2808, 2809, 2809,    7,    7,
1361      2810, 2810, 2811, 2811, 2812, 2812, 2813, 2813, 2814, 2814,
1362      2815, 2815, 2816, 2816, 2817, 2817,    7,    7,    7,    7,
1363         7,    7, 2802,   73,    7,    7, 2802,   77, 2818, 2818,
1364      2819, 2819,    7,    7, 2820, 2820,    7,    7, 2802,   89,
1365      2821, 2821,    7,    7, 2822, 2822,    7,    7, 2802, 2802,
1366 
1367      2802, 2802, 2802, 2823, 2802, 2824, 2802, 2802, 2802, 2802,
1368      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1369      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1370      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2825, 2825,
1371      2826, 2825, 2825, 2825, 2825, 2825, 2825, 2825, 2825, 2825,
1372      2825, 2825, 2825, 2825, 2825, 2825, 2825, 2825, 2825, 2825,
1373      2825, 2825, 2825, 2825, 2825, 2825, 2825, 2825, 2825, 2825,
1374      2825, 2825, 2825, 2825, 2825, 2802, 2802, 2802, 2802, 2802,
1375      2802, 2802, 2802, 2827, 2827, 2828, 2827, 2827, 2827, 2827,
1376      2802, 2802, 2802, 2802, 2802, 2829, 2830, 2831, 2830, 2830,
1377 
1378      2830, 2830, 2802, 2802, 2832, 2802, 2802, 2802, 2802, 2802,
1379      2802, 2802, 2802, 2802, 2802, 2833, 2834, 2833, 2833, 2833,
1380      2833, 2835, 2836, 2835, 2835, 2835, 2835, 2837, 2838, 2837,
1381      2837, 2837, 2837, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1382      2802, 2802, 2839, 2840, 2839,  245, 2839, 2839, 2841, 2842,
1383      2841,  251, 2841, 2841, 2802, 2843, 2844, 2843,  258, 2843,
1384      2843, 2845, 2846, 2845,  264, 2845, 2845, 2847, 2848, 2847,
1385       270, 2847, 2847, 2849, 2850, 2849,  276, 2849, 2849, 2851,
1386      2852, 2851, 2851, 2851, 2851, 2851, 2853, 2854, 2853, 2853,
1387      2853, 2853, 2855, 2856, 2855, 2855, 2855, 2855, 2857, 2858,
1388 
1389      2857,  301, 2857, 2857, 2802, 2802, 2802, 2802, 2802, 2802,
1390      2802, 2859, 2860, 2861, 2862, 2861, 2861, 2861, 2861, 2863,
1391      2864, 2863, 2863, 2863, 2863, 2863, 2802, 2802, 2802, 2802,
1392      2865, 2866, 2865, 2865, 2865, 2865, 2802, 2802, 2802, 2802,
1393      2867, 2868, 2869, 2868, 2868, 2802, 2802, 2802, 2802, 2870,
1394      2870, 2871, 2870, 2870, 2802, 2802, 2802, 2872, 2802, 2802,
1395      2873, 2802, 2874, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1396      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1397      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1398      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1399 
1400      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1401      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2875,
1402      2875, 2876, 2875, 2875, 2802, 2875, 2875, 2875, 2875, 2875,
1403      2875, 2875, 2875, 2875, 2875, 2875, 2875, 2875, 2875, 2875,
1404      2875, 2875, 2875, 2875, 2875, 2875, 2875, 2875, 2875, 2875,
1405      2875, 2875, 2875, 2875, 2875, 2875, 2875, 2875, 2875, 2875,
1406      2875, 2875, 2875, 2875, 2875, 2875, 2875, 2875, 2875, 2875,
1407      2875, 2875, 2875, 2875, 2875, 2875, 2875, 2875, 2802, 2802,
1408      2802, 2802, 2802, 2802, 2877, 2877, 2878, 2877, 2877, 2877,
1409      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2879, 2880, 2881,
1410 
1411      2880, 2880, 2880, 2802, 2802, 2882, 2802, 2802, 2802, 2802,
1412      2802, 2802, 2802, 2802, 2802, 2802, 2883, 2884, 2883, 2883,
1413      2883, 2885, 2886, 2885, 2885, 2885, 2887, 2888, 2887, 2887,
1414      2887, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1415      2889, 2890, 2891, 2892, 2889,  545,  545, 2893, 2894, 2895,
1416      2896, 2893,  552,  552, 2802, 2897, 2898, 2899, 2900, 2897,
1417       560,  560, 2901, 2902, 2903, 2904, 2901,  567,  567, 2905,
1418      2906, 2907, 2908, 2905,  574,  574, 2909, 2910, 2911, 2912,
1419      2909,  581,  581, 2913, 2914, 2913, 2913, 2913, 2913, 2915,
1420      2916, 2915, 2915, 2915, 2917, 2918, 2917, 2917, 2917, 2919,
1421 
1422      2920, 2921, 2922, 2919,  604,  604, 2802, 2802, 2802, 2802,
1423      2802, 2802, 2802, 2923, 2924, 2925, 2926, 2927, 2928, 2927,
1424      2927, 2927, 2929, 2930, 2929, 2929, 2929, 2929, 2802, 2802,
1425      2802, 2802, 2802, 2931, 2932, 2931, 2931, 2931, 2802, 2802,
1426      2802, 2802, 2933, 2934, 2935, 2802, 2802, 2802, 2802, 2936,
1427      2937, 2936, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1428      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1429      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1430      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1431      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1432 
1433      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1434      2802, 2802, 2802, 2802, 2802, 2938, 2938, 2938, 2938, 2938,
1435      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1436      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1437      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1438      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1439      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1440      2938, 2938, 2938, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1441      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1442      2802, 2939, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1443 
1444      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2913, 2802, 2802,
1445      2802, 2802, 2802, 2802, 2802, 2929, 2802, 2802, 2802, 2802,
1446      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1447      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1448      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1449      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1450      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1451      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1452      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1453      2802, 2802, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1454 
1455      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1456      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1457      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1458      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1459      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1460      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1461      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1462      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1463      2802, 2802, 2802, 2913, 2802, 2802, 2802, 2802, 2802, 2802,
1464      2929, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1465 
1466      2802, 2802, 2940, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1467      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1468      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1469      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1470      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1471      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1472      2802, 2802, 2938, 2938, 2941, 2938, 2938, 2938, 2938, 2938,
1473      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1474      2802, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1475      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1476 
1477      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1478      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2802,
1479      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1480      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1481      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2942, 2802,
1482      2802, 2802, 2943, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1483      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1484      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1485      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1486      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1487 
1488      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1489      2802, 2802, 2802, 2802, 2802, 2802, 2944, 2802, 2802, 2802,
1490      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1491      2802, 2802, 2802, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1492      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1493      2938, 2938, 2945, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1494      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1495      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1496      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2946, 2938, 2938,
1497      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2802,
1498 
1499      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1500      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1501      2947, 2802, 2802, 2802, 2942, 2802, 2802, 2802, 2802, 2943,
1502      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1503      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2948, 2802,
1504      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1505      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1506      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1507      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1508      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1509 
1510      2802, 2802, 2802, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1511      2938, 2938, 2938, 2949, 2938, 2938, 2938, 2945, 2938, 2938,
1512      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1513      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1514      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1515      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1516      2938, 2938, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1517      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2950, 2802,
1518      2802, 2947, 2802, 2951, 2802, 2802, 2802, 2802, 2802, 2802,
1519      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1520 
1521      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1522      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1523      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1524      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1525      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1526      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2938,
1527      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1528      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1529      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1530      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1531 
1532      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1533      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2802, 2802, 2802,
1534      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1535      2802, 2802, 2802, 2951, 2802, 2802, 2802, 2802, 2802, 2802,
1536      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1537      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1538      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1539      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1540      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1541      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1542 
1543      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1544      2802, 2802, 2802, 2802, 2938, 2938, 2938, 2938, 2938, 2938,
1545      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1546      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1547      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1548      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1549      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1550      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2802,
1551      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1552      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1553 
1554      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1555      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1556      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1557      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1558      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1559      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1560      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1561      2802, 2802, 2802, 2802, 2938, 2938, 2938, 2938, 2938, 2938,
1562      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1563      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1564 
1565      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1566      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1567      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1568      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1569      2938, 2938, 2938, 2938, 2938, 2802, 2802, 2802, 2802, 2802,
1570      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1571      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1572      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1573      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1574      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1575 
1576      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1577      2802, 2952, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1578      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1579      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2938, 2938,
1580      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1581      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1582      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1583      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1584      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1585      2938, 2953, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1586 
1587      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1588      2938, 2938, 2938, 2938, 2802, 2802, 2802, 2802, 2802, 2802,
1589      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1590      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1591      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1592      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1593      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1594      2802, 2952, 2954, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1595      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1596      2802, 2802, 2802, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1597 
1598      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1599      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1600      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1601      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1602      2953, 2955, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1603      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1604      2938, 2938, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1605      2802, 2956, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1606      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1607      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1608 
1609      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1610      2802, 2802, 2802, 2954, 2954, 2802, 2802, 2802, 2802, 2802,
1611      2957, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1612      2802, 2802, 2802, 2802, 2938, 2938, 2958, 2938, 2938, 2938,
1613      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1614      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1615      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1616      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2955, 2955,
1617      2938, 2938, 2938, 2938, 2938, 2959, 2938, 2938, 2938, 2938,
1618      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2802,
1619 
1620      2802, 2802, 2802, 2802, 2956, 2960, 2802, 2802, 2802, 2802,
1621      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1622      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1623      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1624      2802, 2802, 2961, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1625      2802, 2802, 2938, 2938, 2958, 2962, 2938, 2938, 2938, 2938,
1626      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1627      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1628      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1629      2938, 2938, 2963, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1630 
1631      2938, 2938, 2802, 2802, 2802, 2802, 2960, 2960, 2802, 2802,
1632      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1633      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1634      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1635      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2938, 2938, 2962,
1636      2962, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1637      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1638      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1639      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1640      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1641 
1642      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1643      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1644      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2938, 2938, 2938,
1645      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1646      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1647      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1648      2938, 2938, 2938, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1649      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1650      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1651      2802, 2802, 2802, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1652 
1653      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1654      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1655      2938, 2938, 2938, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1656      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1657      2802, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
1658      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2802,
1659      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2938, 2938,
1660      2938, 2938, 2938, 2938, 2938, 2938, 2938, 2802, 2802, 2802,
1661      2802, 2802, 2938, 2938, 2938, 2938, 2938, 2802, 2802, 2802,
1662      2938, 2938, 2938, 2802, 2802, 2938, 2938, 2802, 2938, 2802,
1663 
1664      2938,    0, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1665      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1666      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1667      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1668      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1669      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1670      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1671      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1672      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1673      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1674 
1675      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1676      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1677      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1678      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1679      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1680      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
1681      2802, 2802, 2802
1682     } ;
1683 
1684 static yyconst flex_int16_t yy_nxt[7302] =
1685     {   0,
1686       100,  101,  102,  100,  101,  103,  104,  100,  105,  100,
1687       106,  107,  107,  107,  107,  107,  107,  107,  100,  108,
1688       109,  110,  100,  100,  100,  100,  100,  100,  111,  100,
1689       112,  113,  114,  115,  116,  117,  118,  119,  120,  100,
1690       121,  122,  123,  100,  124,  100,  125,  126,  127,  128,
1691       129,  100,  100,  130,  131,  132,  176,  100,  132,  100,
1692       100, 1104,  100,  177,  100,  100,  356,  100,  100,  356,
1693       181,  182,  181,  182,  359,  360,  191,  192,  193,  236,
1694       203,  203,  194,  234,  100,  133,  134,  213,  183,  235,
1695       183,  135,  195, 1107,  204,  204,  236,  214,  136,  215,
1696 
1697       137,  138,  139,  101,  102,  139,  101,  140,  141,  139,
1698       142,  139,  143,  144,  144,  144,  144,  144,  144,  144,
1699       145,  146,  147,  148,  139,  139,  139,  139,  139,  139,
1700       149,  139,  150,  151,  152,  153,  154,  155,  156,  157,
1701       158,  139,  159,  160,  161,  139,  162,  139,  163,  164,
1702       165,  166,  167,  139,  139,  168,  169,  132,  100,  100,
1703       132,  132,  391,  100,  132,  100,  100,  395,  100,  395,
1704       361,  392,  100,  191,  192,  193,  396,  100,  418,  194,
1705       237,  305,  238,  237,  213,  238,  100,  170,  171,  195,
1706       255,  133,  134,  172,  214,  234,  215,  178,  100,  255,
1707 
1708       173,  235,  174,  175,  179,  100,  137,  138,  100,  305,
1709       393,  100,  363,  100,  239,  383,  384,  486,  100,  306,
1710       486,  180,  100,  100,  100,  355,  394,  240,  241,  307,
1711       417,  242,  306,  100,  100,  100,  100,  100,  100,  100,
1712       100,  100,  307,  100,  100,  100,  394,  100,  100,  100,
1713       100,  100,  100,  100,  401,  857,  100,  185,  102,  402,
1714       185,  100,  186,  443,  239,  444,  187,  188,  188,  188,
1715       188,  188,  188,  188,  206,  100,  403,  240,  241,  207,
1716       858,  242,  100,  208,  189,  209,  447,  210,  206,  211,
1717       404,  448,  212,  207,  327,  100,  328,  208,  100,  209,
1718 
1719       457,  210,  329,  211,  423,  424,  212,  355,  330,  458,
1720       190,  185,  102,  100,  185,  308,  186,  100,  309,  375,
1721       187,  188,  188,  188,  188,  188,  188,  188,  310,  311,
1722       308,  376,  100,  309,  100,  357,  377,  346,  189,  439,
1723       347,  348,  378,  310,  311,  349,  327,  492,  328, 1110,
1724       371,  440,  337,  372,  329,  493,  373,  374,  449,  450,
1725       330,  338,  339,  340,  190,  100,  101,  102,  100,  101,
1726       100,  104,  100,  100,  100,  106,  107,  107,  107,  107,
1727       107,  107,  107,  100,  100,  100,  100,  196,  196,  196,
1728       196,  196,  196,  111,  100,  196,  196,  196,  196,  196,
1729 
1730       196,  196,  196,  196,  196,  196,  196,  196,  196,  196,
1731       196,  196,  196,  196,  196,  196,  196,  196,  196,  131,
1732       101,  102,  100,  101, 1111,  198,  100,  357,  459,  199,
1733       200,  200,  200,  200,  200,  200,  200,  100,  467,  380,
1734       381,  357,  337,  468,  460,  630,  346,  201,  631,  347,
1735       348,  338,  339,  340,  349,  361,  362,  362,  362,  362,
1736       362,  362,  362,  421,  441,  388,  385,  357,  469,  389,
1737       442,  386, 1114,  202,  101,  102,  387,  101,  390,  198,
1738      1115,  357,  470,  199,  200,  200,  200,  200,  200,  200,
1739       200,  100,  366,  454,  397, 1116,  358,  455,  398,  358,
1740 
1741       367,  201,  368,  366,  358,  369,  456,  399,  461,  370,
1742       400,  367,  371,  414,  461,  415,  369,  462,  373,  374,
1743       370,  475,  358,  477, 1117,  358,  448,  202,  100,  101,
1744       102,  100,  101,  100,  104,  100,  100,  100,  106,  107,
1745       107,  107,  107,  107,  107,  107,  100,  100,  100,  100,
1746       205,  205,  205,  205,  205,  205,  111,  100,  205,  205,
1747       205,  205,  205,  205,  205,  205,  205,  205,  205,  205,
1748       205,  205,  205,  205,  205,  205,  205,  205,  205,  205,
1749       205,  205,  131,  101,  102,  680,  101,  407,  217,  681,
1750       407, 1118,  218,  219,  219,  219,  219,  219,  219,  219,
1751 
1752       100,  421,  435,  397,  989,  436,  990,  398,  437,  438,
1753       220, 1120,  430,  445,  446,  421,  419,  408,  409,  400,
1754       431,  435,  432,  410,  474,  433, 1045,  437,  438,  434,
1755       411,  542,  412,  413,  657,  361,  221,  101,  102, 1046,
1756       101,  356,  217,  658,  356,  542,  218,  219,  219,  219,
1757       219,  219,  219,  219,  100,  426,  427,  427,  427,  427,
1758       427,  427,  427,  463,  220,  451,  421,  464,  476,  463,
1759       452,  358,  542,  464,  358,  453,  465,  363,  358,  466,
1760       421,  358,  478,  744,  460,  466,  542,  745,  358, 1121,
1761       221,  101,  102,  825,  101,  358,  223,  393,  417,  826,
1762 
1763       224,  225,  225,  225,  225,  225,  225,  225,  100,  430,
1764       480,  480,  719,  394,  394,  665,  666,  431,  226,  473,
1765      1122,  720,  433,  727,  728, 1123,  434,  488,  489,  489,
1766       489,  489,  489,  489,  489,  501,  502,  502,  502,  502,
1767       502,  502,  502, 1124,  227,  101,  102,  865,  101,  486,
1768       223, 1125,  486, 1126,  224,  225,  225,  225,  225,  225,
1769       225,  225,  100,  519,  520,  520,  520,  520,  520,  520,
1770       520,  358,  226, 1049,  358,  524,  525,  525,  525,  525,
1771       525,  525,  525,  549,  358, 1050,  866,  358,  358,  529,
1772       530,  530,  530,  530,  530,  530,  530,  549,  227,  101,
1773 
1774       102,  358,  101,  358,  229,  364,  544,  542,  230,  231,
1775       231,  231,  231,  231,  231,  231,  100,  549,  557,  358,
1776       544,  542,  551,  364,  358,  549,  232,  559,  364,  557,
1777       557,  549,  557,  564,  358,  564,  551,  566,  868,  549,
1778      1127,  559,  869,  557,  557,  571,  571,  564, 1045,  564,
1779      1128,  566,  233,  101,  102,  364,  101,  564,  229,  571,
1780       571, 1062,  230,  231,  231,  231,  231,  231,  231,  231,
1781       100,  564,  358,  578,  364,  573,  571,  364,  358,  578,
1782       232,  580,  578,  358,  601,  358,  358,  578,  358,  573,
1783       571,  601, 1112,  578,  358,  580,  578,  358,  601,  364,
1784 
1785       358,  601,  358, 1129, 1113,  601,  233,  101,  102,  932,
1786       101,  358,  244,  933, 1130,  601,  245,  246,  246,  246,
1787       246,  246,  246,  246,  100,  586,  587,  587,  587,  587,
1788       587,  587,  587,  921,  247,  592,  593,  593,  593,  593,
1789       593,  593,  593,  597,  598,  598,  598,  598,  598,  598,
1790       598,  358,  358,  542,  603,  358,  358, 1131,  922,  358,
1791       248,  101,  102,  929,  101, 1134,  244,  542,  603,  358,
1792       245,  246,  246,  246,  246,  246,  246,  246,  100,  620,
1793       621,  621,  621,  621,  621,  621,  621,  358,  247, 1135,
1794       358,  625,  626,  626,  626,  626,  626,  626,  626,  549,
1795 
1796       358, 1136,  930,  358,  358,  636,  637,  637,  637,  637,
1797       637,  637,  637,  549,  248,  101,  102,  358,  101,  841,
1798       250, 1139,  842, 1140,  251,  252,  252,  252,  252,  252,
1799       252,  252,  100,  361,  362,  362,  362,  362,  362,  362,
1800       362,  687,  253,  691,  687, 1137,  692, 1141,  755,  358,
1801       688,  756,  358,  688, 1108, 1042,  689,  358,  407,  713,
1802       693,  407,  751,  904, 1138,  757,  905, 1109,  254,  101,
1803       102,  752,  101,  358,  250,  956,  358,  753,  251,  252,
1804       252,  252,  252,  252,  252,  252,  100, 1142,  408,  409,
1805       358,  957, 1043, 1105,  410, 1143,  253,  358, 1017,  557,
1806 
1807       358,  411, 1018,  412,  413,  426,  427,  427,  427,  427,
1808       427,  427,  427,  557,  358,  564,  751, 1032, 1132, 1133,
1809      1144, 1033,  254,  101,  102,  752,  101, 1145,  257,  564,
1810      1106,  771,  258,  259,  259,  259,  259,  259,  259,  259,
1811       100,  488,  489,  489,  489,  489,  489,  489,  489, 1146,
1812       260,  501,  502,  502,  502,  502,  502,  502,  502,  519,
1813       520,  520,  520,  520,  520,  520,  520,  358,  358,  571,
1814       358,  358, 1149, 1150, 1151, 1079,  261,  101,  102, 1080,
1815       101, 1152,  257,  571,  358,  358,  258,  259,  259,  259,
1816       259,  259,  259,  259,  100,  524,  525,  525,  525,  525,
1817 
1818       525,  525,  525,  578,  260,  529,  530,  530,  530,  530,
1819       530,  530,  530,  601, 1153, 1154,  358,  578,  358,  544,
1820       358,  551,  358,  559, 1095,  566, 1147,  601, 1096, 1155,
1821       261,  101,  102,  544,  101,  551,  263,  559, 1156,  566,
1822       264,  265,  265,  265,  265,  265,  265,  265,  100,  358,
1823       358,  358,  573,  580,  358, 1148, 1157, 1158,  266, 1159,
1824       358,  358,  358,  358,  358,  603,  573,  580,  358,  586,
1825       587,  587,  587,  587,  587,  587,  587,  358,  358,  603,
1826      1108, 1160, 1161, 1162,  267,  101,  102, 1168,  101, 1169,
1827       263, 1170, 1171, 1119,  264,  265,  265,  265,  265,  265,
1828 
1829       265,  265,  100,  592,  593,  593,  593,  593,  593,  593,
1830       593, 1172,  266,  597,  598,  598,  598,  598,  598,  598,
1831       598, 1173, 1174, 1175,  358, 1176, 1177,  358,  620,  621,
1832       621,  621,  621,  621,  621,  621, 1178, 1179,  267,  101,
1833       102,  358,  101,  358,  269, 1180,  358, 1181,  270,  271,
1834       271,  271,  271,  271,  271,  271,  100, 1182,  358, 1185,
1835       358,  358, 1186, 1198, 1199, 1200,  272,  625,  626,  626,
1836       626,  626,  626,  626,  626,  358,  636,  637,  637,  637,
1837       637,  637,  637,  637, 1163, 1163, 1163, 1163, 1183, 1201,
1838      1202, 1203,  273,  101,  102, 1204,  101, 1184,  269, 1205,
1839 
1840      1206, 1164,  270,  271,  271,  271,  271,  271,  271,  271,
1841       100, 1165, 1165, 1165, 1165, 1207, 1208, 1209, 1210, 1211,
1842       272, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1166, 1219,
1843      1220, 1221, 1222, 1223, 1055, 1224, 1227, 1225, 1228, 1229,
1844      1230, 1231, 1226, 1213, 1232, 1233,  273,  101,  102, 1240,
1845       101, 1241,  275, 1184, 1242, 1243,  276,  277,  277,  277,
1846       277,  277,  277,  277,  100, 1244, 1163, 1163, 1234, 1163,
1847      1165, 1165, 1236, 1165,  278, 1245, 1246, 1167, 1247, 1248,
1848      1167, 1249, 1218, 1235, 1239, 1167, 1250, 1237, 1251, 1252,
1849      1253, 1254, 1255, 1256, 1257, 1269, 1270, 1271, 1272, 1273,
1850 
1851       279,  101,  102, 1274,  101, 1275,  275, 1276, 1277, 1278,
1852       276,  277,  277,  277,  277,  277,  277,  277,  100, 1279,
1853      1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287,  278, 1288,
1854      1289, 1290, 1291, 1292, 1293, 1294, 1298, 1295, 1299, 1296,
1855      1284, 1183, 1233, 1232, 1297, 1300, 1301, 1302, 1303, 1304,
1856      1305, 1306, 1307, 1308,  279,  101,  102, 1309,  101, 1310,
1857       281, 1311, 1312, 1315,  282,  283,  283,  283,  283,  283,
1858       283,  283,  100, 1316, 1313, 1317, 1318, 1319,  284, 1289,
1859      1320, 1321,  285, 1314, 1322, 1323, 1324, 1147, 1326, 1327,
1860      1184, 1328, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1329,
1861 
1862      1338, 1339, 1339, 1340, 1341, 1342, 1343, 1344,  286,  101,
1863       102, 1346,  101, 1347,  281, 1348, 1345, 1349,  282,  283,
1864       283,  283,  283,  283,  283,  283,  100, 1163, 1163, 1163,
1865      1163, 1350,  284, 1351, 1352, 1353,  285, 1165, 1165, 1165,
1866      1165, 1354, 1355, 1356, 1164, 1357, 1358, 1359, 1360, 1361,
1867      1363, 1364, 1365, 1366, 1166, 1367, 1368, 1370, 1362, 1371,
1868      1372, 1373,  286,  101,  102, 1374,  101, 1375,  288, 1369,
1869      1376, 1377,  289,  290,  290,  290,  290,  290,  290,  290,
1870       100, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386,
1871       291, 1387, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396,
1872 
1873      1397, 1398, 1399, 1233, 1401, 1404, 1404, 1405, 1400, 1406,
1874      1233, 1407, 1408, 1411, 1409, 1412,  292,  101,  102, 1413,
1875       101, 1414,  288, 1410, 1415, 1416,  289,  290,  290,  290,
1876       290,  290,  290,  290,  100, 1417, 1344, 1402, 1163, 1163,
1877      1234, 1163, 1419, 1420,  291, 1345, 1165, 1165, 1236, 1165,
1878      1403, 1421, 1422, 1423, 1424, 1235, 1425, 1426, 1428, 1429,
1879      1430, 1431, 1432, 1237, 1433, 1435, 1427, 1436, 1437, 1438,
1880       292,  101,  102, 1439,  101, 1440,  294, 1434, 1441, 1442,
1881       295,  296,  296,  296,  296,  296,  296,  296,  100, 1443,
1882      1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451,  297, 1452,
1883 
1884      1388, 1454, 1455, 1388, 1456, 1457, 1458, 1459, 1388, 1460,
1885      1461, 1462, 1401, 1463, 1464, 1465, 1400, 1466, 1467, 1468,
1886      1469, 1470, 1471, 1472,  298,  101,  102, 1473,  101, 1474,
1887       294, 1475, 1476, 1477,  295,  296,  296,  296,  296,  296,
1888       296,  296,  100, 1478, 1409, 1479, 1480, 1481, 1483, 1484,
1889      1485, 1486,  297, 1410, 1487, 1488, 1489, 1490, 1491, 1492,
1890      1493, 1494, 1495, 1497, 1498, 1499, 1500, 1501, 1502, 1503,
1891      1496, 1504, 1506, 1507, 1508, 1512, 1513, 1514,  298,  101,
1892       102, 1515,  101, 1516,  300, 1517, 1518, 1519,  301,  302,
1893       302,  302,  302,  302,  302,  302,  100, 1509, 1520, 1521,
1894 
1895      1522, 1523, 1510, 1525, 1526, 1527,  303, 1528, 1529, 1530,
1896      1511, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539,
1897      1524, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548,
1898      1549, 1550,  304,  101,  102, 1551,  101, 1552,  300, 1553,
1899      1400, 1401,  301,  302,  302,  302,  302,  302,  302,  302,
1900       100, 1558, 1559, 1560, 1562, 1563, 1564, 1565, 1566, 1567,
1901       303, 1561, 1568, 1569, 1505, 1571, 1572, 1505, 1573, 1574,
1902      1577, 1578, 1505, 1579, 1575, 1580, 1581, 1582, 1583, 1584,
1903      1585, 1586, 1576, 1589, 1590, 1591,  304,  100,  101,  102,
1904       100,  101,  100,  104,  100,  100,  100,  106,  107,  107,
1905 
1906       107,  107,  107,  107,  107,  100,  100,  100,  100,  312,
1907       312,  312,  312,  312,  312,  111,  100,  312,  312,  312,
1908       312,  312,  312,  312,  312,  312,  312,  312,  312,  312,
1909       312,  312,  312,  312,  312,  312,  312,  312,  312,  312,
1910       312,  131,  100,  101,  102,  100,  101,  100,  104,  100,
1911       100,  100,  106,  107,  107,  107,  107,  107,  107,  107,
1912       100,  100,  100,  100,  313,  313,  313,  313,  313,  313,
1913       111,  100,  313,  313,  313,  313,  313,  313,  313,  313,
1914       313,  313,  313,  313,  313,  313,  313,  313,  313,  313,
1915       313,  313,  313,  313,  313,  313,  131,  101,  102, 1400,
1916 
1917       101, 1401,  315, 1587, 1592, 1593,  316,  317,  317,  317,
1918       317,  317,  317,  317,  100, 1594, 1595, 1596, 1597, 1598,
1919      1599, 1600, 1588, 1601,  318, 1602, 1554, 1603, 1556, 1604,
1920      1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1555,
1921      1614, 1557, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622,
1922       319,  101,  102, 1623,  101, 1624,  315, 1625, 1626, 1627,
1923       316,  317,  317,  317,  317,  317,  317,  317,  100, 1628,
1924      1630, 1631, 1632, 1633, 1635, 1636, 1637, 1638,  318, 1639,
1925      1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649,
1926      1650, 1651, 1652, 1653, 1654, 1655, 1655, 1655, 1655, 1658,
1927 
1928      1659, 1660, 1656, 1661,  319,  101,  102, 1665,  101, 1666,
1929       321, 1669, 1657, 1670,  322,  323,  323,  323,  323,  323,
1930       323,  323,  100, 1662, 1662, 1662, 1662, 1667,  324, 1671,
1931      1663, 1672,  325, 1668, 1673, 1674, 1675, 1676, 1677, 1678,
1932      1664, 1679, 1680, 1683, 1684, 1681, 1685, 1686, 1687, 1682,
1933      1688, 1689, 1690, 1691, 1696, 1697, 1698, 1703,  326,  101,
1934       102, 1704,  101, 1705,  321, 1706, 1707, 1708,  322,  323,
1935       323,  323,  323,  323,  323,  323,  100, 1709, 1692, 1699,
1936      1710, 1693,  324, 1711, 1712, 1700,  325, 1694, 1695, 1701,
1937      1713, 1714, 1715, 1716, 1717, 1702, 1718, 1719, 1720, 1721,
1938 
1939      1722, 1723, 1724, 1725, 1726, 1730, 1731, 1732, 1736, 1737,
1940      1740, 1738,  326,  101,  102, 1741,  101, 1739,  332, 1742,
1941      1743, 1744,  333,  334,  334,  334,  334,  334,  334,  334,
1942       100, 1655, 1655, 1727, 1655, 1745, 1746, 1747, 1728, 1748,
1943       335, 1749, 1662, 1662, 1733, 1662, 1750, 1751, 1729, 1734,
1944      1752, 1754, 1755, 1756, 1753, 1757, 1758, 1759, 1760, 1735,
1945      1761, 1762, 1767, 1768, 1769, 1774,  336,  101,  102, 1775,
1946       101, 1776,  332, 1777, 1778, 1779,  333,  334,  334,  334,
1947       334,  334,  334,  334,  100, 1780, 1763, 1770, 1781, 1764,
1948      1782, 1783, 1784, 1771,  335, 1765, 1766, 1772, 1785, 1786,
1949 
1950      1787, 1788, 1789, 1773, 1790, 1791, 1792, 1793, 1794, 1795,
1951      1796, 1797, 1798, 1799, 1800, 1804, 1805, 1806, 1807, 1808,
1952       336,  100,  101,  102,  100,  101,  100,  104,  341,  100,
1953       100,  106,  107,  107,  107,  107,  107,  107,  107,  100,
1954       100,  100,  100,  341,  341,  341,  341,  341,  341,  111,
1955       341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
1956       341,  341,  341,  341,  341,  341,  341,  341,  341,  341,
1957       341,  341,  341,  341,  341,  131,  101,  102, 1817,  101,
1958      1818,  343, 1819, 1827, 1828,  106,  107,  107,  107,  107,
1959       107,  107,  107,  100, 1801, 1829, 1802, 1655, 1655, 1655,
1960 
1961      1655, 1809, 1803,  344, 1662, 1662, 1662, 1662, 1830, 1810,
1962      1831, 1811, 1834, 1832, 1657, 1812, 1835, 1813, 1814, 1815,
1963      1816, 1664, 1833, 1836, 1837, 1838, 1839, 1840, 1841,  345,
1964       101,  102, 1842,  101, 1843,  343, 1844, 1845, 1846,  106,
1965       107,  107,  107,  107,  107,  107,  107,  100, 1820, 1847,
1966      1848, 1849, 1850, 1851, 1852, 1853, 1821,  344, 1822, 1854,
1967      1855, 1856, 1823, 1857, 1858, 1824, 1825, 1826, 1859, 1860,
1968      1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870,
1969      1871, 1872, 1873,  345,  101,  351, 1874,  101, 1875,  352,
1970      1876, 1877,  100,  106,  107,  107,  107,  107,  107,  107,
1971 
1972       107,  100, 1878, 1881, 1879, 1882, 1883, 1884, 1885, 1886,
1973      1880,  353, 1655, 1655, 1727, 1655, 1894, 1887, 1895, 1888,
1974      1896, 1904, 1905, 1889, 1906, 1890, 1891, 1892, 1893, 1729,
1975      1907, 1911, 1908, 1912, 1913, 1909, 1914,  354,  101,  351,
1976      1915,  101, 1916,  352, 1910, 1917,  100,  106,  107,  107,
1977       107,  107,  107,  107,  107,  100, 1662, 1662, 1733, 1662,
1978      1897, 1918, 1919, 1920, 1921,  353, 1922, 1923, 1898, 1924,
1979      1899, 1925, 1926, 1735, 1900, 1927, 1928, 1901, 1902, 1903,
1980      1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938,
1981      1939,  354,  425,  426,  427,  427,  427,  427,  427,  427,
1982 
1983       427, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948,
1984      1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958,
1985      1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968,
1986      1969, 1970, 1971, 1972, 1973,  428,  488,  489,  489,  489,
1987       489,  489,  489,  489, 1974, 1975, 1976, 1977, 1978, 1979,
1988      1980, 1981, 1982, 1983, 1984, 1985, 1986, 1996, 1997, 1998,
1989      1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
1990      2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016,  490,  501,
1991       502,  502,  502,  502,  502,  502,  502, 2017, 2018, 2019,
1992      2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029,
1993 
1994      2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 1874,
1995      2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048,
1996      2049,  503,  519,  520,  520,  520,  520,  520,  520,  520,
1997      2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059,
1998      2060, 2061, 2062, 2063, 2064, 2065, 2066, 2076, 2077, 2078,
1999      2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088,
2000      2089, 2090, 2091, 2092,  521,  524,  525,  525,  525,  525,
2001       525,  525,  525, 2093, 2094, 2095, 2096, 2097, 2098, 2099,
2002      2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109,
2003      2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119,
2004 
2005      2120, 2121, 2122, 2123, 2124, 2125, 2126,  526,  529,  530,
2006       530,  530,  530,  530,  530,  530, 2127, 2128, 2129, 2130,
2007      2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, 1969,
2008      1969, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 1980,
2009      1980, 2148, 2149, 2150, 2151, 2152, 2154, 2155, 2156, 2159,
2010       531,  542, 2160, 2157, 2153, 2161, 2162,  545,  546,  546,
2011       546,  546,  546,  546,  546,  542, 2158, 2163, 2164, 2165,
2012      2166, 2167, 2168, 2169, 2170, 2171, 2173, 2174, 2175, 2176,
2013      2177, 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186,
2014      2187, 2188, 2189, 2190, 2191, 2192, 2193, 2036, 2038,  547,
2015 
2016       549, 2194, 2195, 2196, 2197, 2198,  552,  553,  553,  553,
2017       553,  553,  553,  553,  549, 2199, 2200, 2201, 2202, 2203,
2018      2204, 2205, 2206, 2207, 2208, 2049, 2049, 2209, 2210, 2211,
2019      2212, 2213, 2214, 2215, 2216, 2060, 2060, 2217, 2218, 2219,
2020      2220, 2221, 2223, 2224, 2225, 2228, 2229, 2230,  554,  557,
2021      2222, 2226, 2231, 2232, 2233,  560,  561,  561,  561,  561,
2022       561,  561,  561,  557, 2227, 2234, 2235, 2236, 2237, 2238,
2023      2239, 2240, 2172, 2243, 2244, 2172, 2245, 2246, 2247, 2248,
2024      2172, 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2242,
2025      2257, 2258, 2259, 2260, 2261, 2262, 2263,  562,  564, 2264,
2026 
2027      2265, 2266, 2267, 2268,  567,  568,  568,  568,  568,  568,
2028       568,  568,  564, 2269, 2270, 2271, 2272, 2273, 2274, 2275,
2029      2276, 2277, 2278, 2279, 2280, 2281, 2282, 2283, 2284, 2285,
2030      2286, 2287, 2288, 2289, 2290, 2291, 2292, 2293, 2294, 2295,
2031      2296, 2297, 2298, 2299, 2300, 2301,  569,  571, 2302, 2303,
2032      2304, 2305, 2306,  574,  575,  575,  575,  575,  575,  575,
2033       575,  571, 2307, 2309, 2310, 2311, 2312, 2313, 2173, 2308,
2034      2315, 2316, 2317, 2318, 2319, 2320, 2321, 2322, 2323, 2324,
2035      2325, 2326, 2327, 2328, 2329, 2330, 2331, 2332, 2333, 2334,
2036      2335, 2336, 2337, 2338, 2339,  576,  578, 2340, 2341, 2342,
2037 
2038      2343, 2344,  581,  582,  582,  582,  582,  582,  582,  582,
2039       578, 2345, 2346, 2347, 2348, 2349, 2350, 2351, 2352, 2353,
2040      2354, 2355, 2356, 2357, 2358, 2359, 2360, 2361, 2362, 2363,
2041      2364, 2365, 2366, 2367, 2368, 2369, 2370, 2371, 2374, 2375,
2042      2376, 2377, 2378, 2381,  583,  586,  587,  587,  587,  587,
2043       587,  587,  587, 2372, 2172, 2314, 2382, 2172, 2314, 2383,
2044      2373, 2384, 2172, 2314, 2385, 2386, 2387, 2388, 2389, 2390,
2045      2391, 2242, 2380, 2392, 2393, 2394, 2395, 2396, 2397, 2398,
2046      2399, 2400, 2401, 2402, 2403, 2404, 2406,  588,  592,  593,
2047       593,  593,  593,  593,  593,  593, 2407, 2408, 2409, 2410,
2048 
2049      2411, 2412, 2413, 2414, 2415, 2416, 2417, 2418, 2419, 2420,
2050      2421, 2422, 2423, 2424, 2425, 2426, 2427, 2428, 2429, 2430,
2051      2431, 2432, 2433, 2434, 2435, 2436, 2315, 2315, 2437, 2438,
2052       594,  597,  598,  598,  598,  598,  598,  598,  598, 2439,
2053      2440, 2442, 2443, 2443, 2444, 2445, 2446, 2447, 2448, 2449,
2054      2450, 2451, 2452, 2453, 2454, 2405, 2457, 2458, 2405, 2459,
2055      2460, 2461, 2462, 2405, 2463, 2464, 2465, 2466, 2467, 2468,
2056      2469, 2470, 2456,  599,  601, 2471, 2472, 2473, 2474, 2475,
2057       604,  605,  605,  605,  605,  605,  605,  605,  601, 2476,
2058      2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 2485, 2486,
2059 
2060      2314, 2314, 2487, 2314, 2314, 2488, 2489, 2490, 2314, 2314,
2061      2492, 2441, 2493, 2493, 2441, 2494, 2495, 2380, 2380, 2441,
2062      2496, 2497,  606,  614, 2498, 2499,  614, 2500,  614,  614,
2063       614,  614, 2501,  614,  614,  614,  614,  614,  614,  614,
2064       614, 2502,  614,  614,  614, 2503, 2504, 2505, 2506, 2406,
2065      2508,  614,  614, 2509, 2510, 2511, 2512, 2513, 2514, 1969,
2066      2515, 2516, 2517, 1980, 2518, 2519, 2520, 2521, 2524, 2525,
2067      2522, 2526, 2527, 2528, 2529, 2530, 2531,  614,  616, 2523,
2068      2532,  616, 2533,  616,  616,  616,  616, 2534,  616,  616,
2069       616,  616,  616,  616,  616,  616, 2438,  616,  616,  616,
2070 
2071      2535, 2536, 2537, 2540, 2538, 2542,  616,  616, 2543, 2544,
2072      2545, 2539, 2546, 2547, 2548, 2549, 2552, 2553, 2554, 2555,
2073      2556, 2557, 2049, 2558, 2559, 2560, 2060, 2561, 2562, 2563,
2074      2567, 2568,  616,  620,  621,  621,  621,  621,  621,  621,
2075       621, 2405, 2507, 2564, 2405, 2507, 2565, 2569, 2570, 2405,
2076      2507, 2571, 2572, 2573, 2574, 2566, 2575, 2576, 2456, 2551,
2077      2577, 2488, 2578, 2579, 2580, 2583, 2581, 2585, 2586, 2587,
2078      2588, 2589, 2590, 2582, 2591,  622,  625,  626,  626,  626,
2079       626,  626,  626,  626, 2541, 2592, 2593, 2541, 2508, 2508,
2080      2594, 2595, 2541, 2596, 2597, 2598, 2599, 2600, 2601, 2603,
2081 
2082      2604, 2605, 2606, 2607, 2608, 2602, 2609, 2610, 2611, 2612,
2083      2613, 2614, 2615, 2616, 2617, 2618, 2619, 2620,  627,  636,
2084       637,  637,  637,  637,  637,  637,  637, 2621, 2622, 2623,
2085      2624, 2625, 2626, 2627, 2628, 2629, 2507, 2507, 2630, 2507,
2086      2507, 2631, 2632, 2633, 2507, 2507, 2634, 2635, 2636, 2637,
2087      2639, 2640, 2641, 2551, 2551, 2642, 2638, 2643, 2644, 2645,
2088      2646,  638,  358,  650, 2647,  358, 2648, 2649, 2650, 2651,
2089       358,  358,  358,  358,  358,  358,  358,  358,  358,  358,
2090       426,  427,  427,  427,  427,  427,  427,  427, 2652, 2653,
2091      2654, 2655, 2656, 2657, 2658, 2659, 2660, 2661, 2662, 2663,
2092 
2093      2664, 2665, 2666, 2667, 2668, 2669, 2670, 2671, 2672, 2673,
2094      2674, 2675, 2676, 2677, 2678, 2679, 2680, 2681, 2682, 2683,
2095      2684, 2685,  428,  427,  427,  427,  427,  427,  427,  427,
2096       427, 2686, 2687, 2688, 2689,  427,  427,  427, 2690, 2691,
2097      2692, 2693, 2694,  427,  427,  427,  427,  427,  427,  488,
2098       489,  489,  489,  489,  489,  489,  489, 2695, 2696, 2697,
2099      2698, 2699, 2700, 2701, 2702, 2703, 2704, 2705, 2706, 2707,
2100      2708, 2709, 2710, 2711, 2712, 2713, 2714, 2715, 2716, 2717,
2101      2718, 2719, 2720, 2721, 2722, 2723, 2724, 2725, 2726, 2727,
2102      2728,  490,  489,  489,  489,  489,  489,  489,  489,  489,
2103 
2104      2729, 2730, 2731, 2732,  489,  489,  489, 2733, 2734, 2735,
2105      2736, 2737,  489,  489,  489,  489,  489,  489,  501,  502,
2106       502,  502,  502,  502,  502,  502, 2738, 2739, 2740, 2740,
2107      2741, 2693, 2742, 2743, 2744, 2745, 2746, 2747, 2748, 2749,
2108      2750, 2751, 2752, 2753, 2754, 2755, 2756, 2757, 2758, 2758,
2109      2759, 2723, 2760, 2761, 2762, 2763, 2764, 2765, 2766, 2767,
2110       503,  502,  502,  502,  502,  502,  502,  502,  502, 2768,
2111      2769, 2770, 2771,  502,  502,  502, 2772, 2773, 2774, 2775,
2112      2776,  502,  502,  502,  502,  502,  502,  519,  520,  520,
2113       520,  520,  520,  520,  520, 2777, 2778, 2779, 2780, 2781,
2114 
2115      2782, 2783, 2784, 2785, 2786, 2787, 2788, 2789, 2790, 2791,
2116      2792, 2793, 2794, 2795, 2796, 2797, 2798, 2799, 2800, 2801,
2117      1103, 1102, 1101, 1100, 1099, 1098, 1097, 1094, 1093,  521,
2118       520,  520,  520,  520,  520,  520,  520,  520, 1092, 1091,
2119      1090, 1089,  520,  520,  520, 1088, 1087, 1086, 1085, 1084,
2120       520,  520,  520,  520,  520,  520,  524,  525,  525,  525,
2121       525,  525,  525,  525, 1083, 1082, 1081, 1078, 1077, 1076,
2122      1075, 1074, 1073, 1072, 1071, 1070, 1069, 1068, 1067, 1066,
2123      1065, 1064, 1063, 1061, 1060, 1059, 1058, 1057, 1056, 1055,
2124      1054, 1053, 1052, 1051, 1048, 1047, 1044, 1041,  526,  525,
2125 
2126       525,  525,  525,  525,  525,  525,  525, 1040, 1039, 1038,
2127      1037,  525,  525,  525, 1036, 1035, 1034, 1031, 1030,  525,
2128       525,  525,  525,  525,  525,  529,  530,  530,  530,  530,
2129       530,  530,  530, 1029, 1028, 1027, 1026, 1025, 1024, 1023,
2130      1022, 1021, 1020, 1019, 1016, 1015, 1014, 1013, 1012, 1011,
2131      1010, 1009, 1008, 1007, 1006, 1005, 1004, 1003, 1002, 1001,
2132      1000,  999,  998,  997,  996,  995,  994,  531,  530,  530,
2133       530,  530,  530,  530,  530,  530,  993,  992,  991,  988,
2134       530,  530,  530,  987,  986,  985,  984,  983,  530,  530,
2135       530,  530,  530,  530,  542,  982,  981,  980,  979,  978,
2136 
2137       545,  546,  546,  546,  546,  546,  546,  546,  542,  977,
2138       976,  975,  974,  973,  972,  971,  969,  968,  967,  966,
2139       965,  964,  963,  962,  961,  960,  959,  958,  955,  954,
2140       953,  952,  951,  950,  949,  948,  947,  946,  945,  944,
2141       943,  942,  547,  546,  941,  940,  939,  938,  937,  936,
2142       935,  934,  931,  928,  927,  546,  546,  546,  926,  925,
2143       924,  923,  920,  546,  546,  546,  546,  546,  546,  919,
2144       918,  917,  916,  735,  915,  914,  913,  912,  911,  910,
2145       909,  908,  907,  906,  903,  541,  549,  902,  901,  900,
2146       899,  898,  552,  553,  553,  553,  553,  553,  553,  553,
2147 
2148       549,  897,  896,  895,  894,  893,  892,  891,  890,  889,
2149       888,  887,  886,  885,  884,  883,  882,  881,  880,  879,
2150       878,  877,  876,  875,  874,  873,  872,  871,  870,  867,
2151       864,  863,  862,  861,  554,  553,  860,  859,  856,  855,
2152       854,  853,  852,  851,  850,  849,  848,  553,  553,  553,
2153       847,  846,  845,  844,  843,  553,  553,  553,  553,  553,
2154       553,  840,  839,  838,  837,  836,  835,  834,  833,  832,
2155       831,  830,  829,  828,  827,  824,  823,  548,  557,  822,
2156       821,  820,  819,  818,  560,  561,  561,  561,  561,  561,
2157       561,  561,  557,  817,  816,  815,  814,  813,  812,  811,
2158 
2159       810,  809,  600,  358,  808,  577,  358,  570,  358,  563,
2160       358,  556,  358,  807,  548,  358,  541,  358,  806,  805,
2161       804,  803,  802,  801,  800,  799,  562,  561,  798,  797,
2162       796,  795,  794,  793,  792,  791,  790,  789,  788,  561,
2163       561,  561,  787,  786,  497,  785,  784,  561,  561,  561,
2164       561,  561,  561,  783,  782,  781,  780,  779,  778,  777,
2165       776,  775,  774,  773,  772,  770,  769,  768,  767,  556,
2166       564,  766,  765,  764,  763,  762,  567,  568,  568,  568,
2167       568,  568,  568,  568,  564,  761,  760,  759,  758,  754,
2168       750,  749,  748,  747,  746,  743,  742,  741,  740,  739,
2169 
2170       738,  737,  736,  735,  734,  733,  732,  731,  730,  729,
2171       726,  725,  724,  723,  722,  721,  718,  717,  569,  568,
2172       716,  715,  714,  712,  711,  710,  709,  708,  707,  706,
2173       705,  568,  568,  568,  704,  703,  702,  701,  700,  568,
2174       568,  568,  568,  568,  568,  699,  698,  697,  696,  695,
2175       694,  690,  686,  685,  684,  683,  682,  679,  678,  677,
2176       676,  563,  571,  675,  674,  673,  672,  671,  574,  575,
2177       575,  575,  575,  575,  575,  575,  571,  670,  669,  668,
2178       667,  664,  663,  662,  661,  660,  659,  656,  655,  654,
2179       653,  652,  649,  648,  647,  646,  364,  642,  641,  640,
2180 
2181       639,  364,  633,  632,  629,  364,  628,  364,  613,  612,
2182       576,  575,  611,  610,  609,  608,  607,  600,  364,  364,
2183       364,  589,  577,  575,  575,  575,  570,  563,  556,  555,
2184       548,  575,  575,  575,  575,  575,  575,  541,  540,  539,
2185       538,  537,  536,  535,  534,  533,  532,  364,  364,  364,
2186       516,  515,  514,  570,  578,  513,  512,  511,  510,  509,
2187       581,  582,  582,  582,  582,  582,  582,  582,  578,  508,
2188       507,  505,  504,  364,  497,  496,  495,  494,  491,  364,
2189       484,  483,  482,  481,  479,  472,  471,  429,  364,  421,
2190       421,  421,  416,  406,  405,  382,  379,  365,  364,  357,
2191 
2192       357,  357,  583,  582, 2802,  100,  100,  100,  100,  100,
2193       100, 2802, 2802, 2802, 2802,  582,  582,  582, 2802, 2802,
2194      2802, 2802, 2802,  582,  582,  582,  582,  582,  582, 2802,
2195      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
2196      2802, 2802, 2802, 2802, 2802,  577,  586,  587,  587,  587,
2197       587,  587,  587,  587, 2802, 2802, 2802, 2802, 2802, 2802,
2198      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
2199      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
2200      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,  588,  587,
2201       587,  587,  587,  587,  587,  587,  587, 2802, 2802, 2802,
2202 
2203      2802,  587,  587,  587, 2802, 2802, 2802, 2802, 2802,  587,
2204       587,  587,  587,  587,  587,  592,  593,  593,  593,  593,
2205       593,  593,  593, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
2206      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
2207      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
2208      2802, 2802, 2802, 2802, 2802, 2802, 2802,  594,  593,  593,
2209       593,  593,  593,  593,  593,  593, 2802, 2802, 2802, 2802,
2210       593,  593,  593, 2802, 2802, 2802, 2802, 2802,  593,  593,
2211       593,  593,  593,  593,  597,  598,  598,  598,  598,  598,
2212       598,  598, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
2213 
2214      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
2215      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
2216      2802, 2802, 2802, 2802, 2802, 2802,  599,  598,  598,  598,
2217       598,  598,  598,  598,  598, 2802, 2802, 2802, 2802,  598,
2218       598,  598, 2802, 2802, 2802, 2802, 2802,  598,  598,  598,
2219       598,  598,  598,  601, 2802, 2802, 2802, 2802, 2802,  604,
2220       605,  605,  605,  605,  605,  605,  605,  601, 2802, 2802,
2221      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
2222      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
2223      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
2224 
2225      2802,  606,  605, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
2226      2802, 2802, 2802, 2802,  605,  605,  605, 2802, 2802, 2802,
2227      2802, 2802,  605,  605,  605,  605,  605,  605, 2802, 2802,
2228      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
2229      2802, 2802, 2802, 2802,  600,  614, 2802, 2802,  614, 2802,
2230       614,  614,  614,  614, 2802,  614,  614,  614,  614,  614,
2231       614,  614,  614, 2802,  614,  614,  614, 2802, 2802, 2802,
2232      2802, 2802, 2802,  614,  614, 2802, 2802, 2802, 2802, 2802,
2233      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
2234      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,  614,
2235 
2236       616, 2802, 2802,  616, 2802,  616,  616,  616,  616, 2802,
2237       616,  616,  616,  616,  616,  616,  616,  616, 2802,  616,
2238       616,  616, 2802, 2802, 2802, 2802, 2802, 2802,  616,  616,
2239      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
2240      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
2241      2802, 2802, 2802, 2802,  616,  620,  621,  621,  621,  621,
2242       621,  621,  621, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
2243      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
2244      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
2245      2802, 2802, 2802, 2802, 2802, 2802, 2802,  622,  621,  621,
2246 
2247       621,  621,  621,  621,  621,  621, 2802, 2802, 2802, 2802,
2248       621,  621,  621, 2802, 2802, 2802, 2802, 2802,  621,  621,
2249       621,  621,  621,  621,  625,  626,  626,  626,  626,  626,
2250       626,  626, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
2251      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
2252      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
2253      2802, 2802, 2802, 2802, 2802, 2802,  627,  626,  626,  626,
2254       626,  626,  626,  626,  626, 2802, 2802, 2802, 2802,  626,
2255       626,  626, 2802, 2802, 2802, 2802, 2802,  626,  626,  626,
2256       626,  626,  626,  636,  637,  637,  637,  637,  637,  637,
2257 
2258       637, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
2259      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
2260      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
2261      2802, 2802, 2802, 2802, 2802,  638,  637,  637,  637,  637,
2262       637,  637,  637,  637, 2802, 2802, 2802, 2802,  637,  637,
2263       637, 2802, 2802, 2802, 2802, 2802,  637,  637,  637,  637,
2264       637,  637,  358,  650, 2802,  358, 2802, 2802, 2802, 2802,
2265       358,  358,  358,  358,  358,  358,  358,  358,  358,  358,
2266      1187, 1188, 1189, 1190, 2802, 1191, 1192, 2802, 2802, 1193,
2267      2802, 1194, 2802, 2802, 1195, 2802, 2802, 1196, 2802, 1197,
2268 
2269      1258, 1259, 1260, 1261, 2802, 1262, 1263, 2802, 2802, 1264,
2270      2802, 1265, 2802, 2802, 1266, 2802, 2802, 1267, 2802, 1268,
2271      1987, 1988, 1989, 1990, 2802, 1991, 2802, 2802, 2802, 1992,
2272      2802, 2802, 2802, 2802, 1993, 2802, 2802, 1994, 2802, 1995,
2273      2067, 2068, 2069, 2070, 2802, 2071, 2802, 2802, 2802, 2072,
2274      2802, 2802, 2802, 2802, 2073, 2802, 2802, 2074, 2802, 2075,
2275       184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
2276       184,  184,  197,  197,  197,  197,  197,  197,  197,  197,
2277       197,  197,  197,  197,  216,  216,  216,  216,  216,  216,
2278       216,  216,  216,  216,  216,  216,  222,  222,  222,  222,
2279 
2280       222,  222,  222,  222,  222,  222,  222,  222,  228,  228,
2281       228,  228,  228,  228,  228,  228,  228,  228,  228,  228,
2282       243,  243,  243,  243,  243,  243,  243,  243,  243,  243,
2283       243,  243,  249,  249,  249,  249,  249,  249,  249,  249,
2284       249,  249,  249,  249,  256,  256,  256,  256,  256,  256,
2285       256,  256,  256,  256,  256,  256,  262,  262,  262,  262,
2286       262,  262,  262,  262,  262,  262,  262,  262,  268,  268,
2287       268,  268,  268,  268,  268,  268,  268,  268,  268,  268,
2288       274,  274,  274,  274,  274,  274,  274,  274,  274,  274,
2289       274,  274,  280,  280,  280,  280,  280,  280,  280,  280,
2290 
2291       280,  280,  280,  280,  287,  287,  287,  287,  287,  287,
2292       287,  287,  287,  287,  287,  287,  293,  293,  293,  293,
2293       293,  293,  293,  293,  293,  293,  293,  293,  299,  299,
2294       299,  299,  299,  299,  299,  299,  299,  299,  299,  299,
2295       314,  314,  314,  314,  314,  314,  314,  314,  314,  314,
2296       314,  314,  320,  320,  320,  320,  320,  320,  320,  320,
2297       320,  320,  320,  320,  331,  331,  331,  331,  331,  331,
2298       331,  331,  331,  331,  331,  331,  342,  342,  342,  342,
2299       342,  342,  342,  342,  342,  342,  342,  342,  350,  350,
2300       350,  350,  350,  350,  350,  350,  350,  350,  350,  350,
2301 
2302       358,  358, 2802,  358,  358,  358,  358,  358,  358,  358,
2303       358,  358,  362, 2802, 2802,  362,  420, 2802, 2802,  420,
2304      2802,  420,  420, 2802,  420,  420,  420,  420,  422,  422,
2305      2802,  422,  422,  422,  422,  422,  422,  422,  422,  422,
2306       485,  485, 2802,  485,  485,  485,  485,  485,  485,  485,
2307       485,  485,  487,  487, 2802,  487,  487,  487,  487,  487,
2308       487,  487,  487,  487,  498, 2802, 2802, 2802,  498,  498,
2309       499, 2802, 2802,  499, 2802,  499,  499,  499,  499, 2802,
2310       499,  499,  500,  500, 2802,  500,  500,  500,  500,  500,
2311       500,  500,  500,  500,  506, 2802, 2802, 2802, 2802,  506,
2312 
2313       506,  506,  506, 2802,  506,  506,  517, 2802, 2802,  517,
2314      2802,  517,  517,  517,  517, 2802,  517,  517,  518,  518,
2315      2802,  518,  518,  518,  518,  518,  518,  518,  518,  518,
2316       522, 2802, 2802,  522, 2802,  522,  522,  522,  522, 2802,
2317       522,  522,  523,  523, 2802,  523,  523,  523,  523,  523,
2318       523,  523,  523,  523,  527, 2802, 2802,  527, 2802,  527,
2319       527,  527,  527, 2802,  527,  527,  528,  528, 2802,  528,
2320       528,  528,  528,  528,  528,  528,  528,  528,  541, 2802,
2321      2802,  541,  541,  541,  541,  541,  541,  541,  541,  541,
2322       543,  543, 2802,  543,  543,  543,  543,  543,  543,  543,
2323 
2324       543,  543,  548, 2802, 2802,  548,  548,  548,  548,  548,
2325       548,  548,  548,  548,  550,  550, 2802,  550,  550,  550,
2326       550,  550,  550,  550,  550,  550,  556, 2802, 2802,  556,
2327       556,  556,  556,  556,  556,  556,  556,  556,  558,  558,
2328      2802,  558,  558,  558,  558,  558,  558,  558,  558,  558,
2329       563, 2802, 2802,  563,  563,  563,  563,  563,  563,  563,
2330       563,  563,  565,  565, 2802,  565,  565,  565,  565,  565,
2331       565,  565,  565,  565,  570, 2802, 2802,  570,  570,  570,
2332       570,  570,  570,  570,  570,  570,  572,  572, 2802,  572,
2333       572,  572,  572,  572,  572,  572,  572,  572,  577, 2802,
2334 
2335      2802,  577,  577,  577,  577,  577,  577,  577,  577,  577,
2336       579,  579, 2802,  579,  579,  579,  579,  579,  579,  579,
2337       579,  579,  584, 2802, 2802,  584, 2802,  584,  584,  584,
2338       584, 2802,  584,  584,  585,  585, 2802,  585,  585,  585,
2339       585,  585,  585,  585,  585,  585,  590, 2802, 2802,  590,
2340      2802,  590,  590,  590,  590, 2802,  590,  590,  591,  591,
2341      2802,  591,  591,  591,  591,  591,  591,  591,  591,  591,
2342       595, 2802, 2802,  595, 2802,  595,  595,  595,  595, 2802,
2343       595,  595,  596,  596, 2802,  596,  596,  596,  596,  596,
2344       596,  596,  596,  596,  600, 2802, 2802,  600,  600,  600,
2345 
2346       600,  600,  600,  600,  600,  600,  602,  602, 2802,  602,
2347       602,  602,  602,  602,  602,  602,  602,  602,  615, 2802,
2348      2802,  615, 2802,  615,  615, 2802,  615, 2802,  615,  615,
2349       617, 2802, 2802,  617, 2802,  617,  617, 2802,  617, 2802,
2350       617,  617,  618, 2802, 2802,  618, 2802,  618,  618,  618,
2351       618, 2802,  618,  618,  619,  619, 2802,  619,  619,  619,
2352       619,  619,  619,  619,  619,  619,  623, 2802, 2802,  623,
2353      2802,  623,  623,  623,  623, 2802,  623,  623,  624,  624,
2354      2802,  624,  624,  624,  624,  624,  624,  624,  624,  624,
2355       634, 2802, 2802,  634, 2802,  634,  634,  634,  634, 2802,
2356 
2357       634,  634,  635,  635, 2802,  635,  635,  635,  635,  635,
2358       635,  635,  635,  635,  643,  643, 2802,  643, 2802,  643,
2359       643,  644, 2802, 2802,  644, 2802,  644,  644,  644,  644,
2360       644,  644,  644,  645,  645, 2802,  645,  645,  645,  645,
2361       645,  645,  645,  645,  645,  650, 2802,  650,  650, 2802,
2362       650,  650, 2802, 2802, 2802,  650,  650,  651,  651,  651,
2363       651,  651,  651,  651,  651,  651,  651,  651,  651,  358,
2364       358, 2802,  358,  358,  358,  358,  358,  358,  358,  358,
2365       358,  362, 2802, 2802,  362,  362, 2802,  362,  420, 2802,
2366      2802,  420, 2802,  420,  420, 2802,  420,  420,  420,  420,
2367 
2368       422,  422, 2802,  422,  422,  422,  422,  422,  422,  422,
2369       422,  422,  485,  485, 2802,  485,  485,  485,  485,  485,
2370       485,  485,  485,  485,  487,  487, 2802,  487,  487,  487,
2371       487,  487,  487,  487,  487,  487,  498, 2802, 2802, 2802,
2372       498,  498,  499, 2802, 2802,  499, 2802,  499,  499,  499,
2373       499, 2802,  499,  499,  500,  500, 2802,  500,  500,  500,
2374       500,  500,  500,  500,  500,  500,  506, 2802, 2802, 2802,
2375      2802,  506,  506,  506,  506, 2802,  506,  506,  517, 2802,
2376      2802,  517, 2802,  517,  517,  517,  517, 2802,  517,  517,
2377       518,  518, 2802,  518,  518,  518,  518,  518,  518,  518,
2378 
2379       518,  518,  522, 2802, 2802,  522, 2802,  522,  522,  522,
2380       522, 2802,  522,  522,  523,  523, 2802,  523,  523,  523,
2381       523,  523,  523,  523,  523,  523,  527, 2802, 2802,  527,
2382      2802,  527,  527,  527,  527, 2802,  527,  527,  528,  528,
2383      2802,  528,  528,  528,  528,  528,  528,  528,  528,  528,
2384       541, 2802, 2802,  541,  541,  541,  541,  541,  541,  541,
2385       541,  541,  542, 2802, 2802,  542,  542,  542,  542,  542,
2386       542,  542,  542,  542,  543,  543, 2802,  543,  543,  543,
2387       543,  543,  543,  543,  543,  543,  544,  544, 2802,  544,
2388       544,  544,  544,  544,  544,  544,  544,  544,  548, 2802,
2389 
2390      2802,  548,  548,  548,  548,  548,  548,  548,  548,  548,
2391       549, 2802, 2802,  549,  549,  549,  549,  549,  549,  549,
2392       549,  549,  550,  550, 2802,  550,  550,  550,  550,  550,
2393       550,  550,  550,  550,  551,  551, 2802,  551,  551,  551,
2394       551,  551,  551,  551,  551,  551,  556, 2802, 2802,  556,
2395       556,  556,  556,  556,  556,  556,  556,  556,  557, 2802,
2396      2802,  557,  557,  557,  557,  557,  557,  557,  557,  557,
2397       558,  558, 2802,  558,  558,  558,  558,  558,  558,  558,
2398       558,  558,  559,  559, 2802,  559,  559,  559,  559,  559,
2399       559,  559,  559,  559,  563, 2802, 2802,  563,  563,  563,
2400 
2401       563,  563,  563,  563,  563,  563,  564, 2802, 2802,  564,
2402       564,  564,  564,  564,  564,  564,  564,  564,  565,  565,
2403      2802,  565,  565,  565,  565,  565,  565,  565,  565,  565,
2404       566,  566, 2802,  566,  566,  566,  566,  566,  566,  566,
2405       566,  566,  570, 2802, 2802,  570,  570,  570,  570,  570,
2406       570,  570,  570,  570,  571, 2802, 2802,  571,  571,  571,
2407       571,  571,  571,  571,  571,  571,  572,  572, 2802,  572,
2408       572,  572,  572,  572,  572,  572,  572,  572,  573,  573,
2409      2802,  573,  573,  573,  573,  573,  573,  573,  573,  573,
2410       577, 2802, 2802,  577,  577,  577,  577,  577,  577,  577,
2411 
2412       577,  577,  578, 2802, 2802,  578,  578,  578,  578,  578,
2413       578,  578,  578,  578,  579,  579, 2802,  579,  579,  579,
2414       579,  579,  579,  579,  579,  579,  580,  580, 2802,  580,
2415       580,  580,  580,  580,  580,  580,  580,  580,  584, 2802,
2416      2802,  584, 2802,  584,  584,  584,  584, 2802,  584,  584,
2417       585,  585, 2802,  585,  585,  585,  585,  585,  585,  585,
2418       585,  585,  590, 2802, 2802,  590, 2802,  590,  590,  590,
2419       590, 2802,  590,  590,  591,  591, 2802,  591,  591,  591,
2420       591,  591,  591,  591,  591,  591,  595, 2802, 2802,  595,
2421      2802,  595,  595,  595,  595, 2802,  595,  595,  596,  596,
2422 
2423      2802,  596,  596,  596,  596,  596,  596,  596,  596,  596,
2424       600, 2802, 2802,  600,  600,  600,  600,  600,  600,  600,
2425       600,  600,  601, 2802, 2802,  601,  601,  601,  601,  601,
2426       601,  601,  601,  601,  602,  602, 2802,  602,  602,  602,
2427       602,  602,  602,  602,  602,  602,  603,  603, 2802,  603,
2428       603,  603,  603,  603,  603,  603,  603,  603,  614, 2802,
2429      2802,  614, 2802,  614,  614, 2802,  614, 2802,  614,  614,
2430       615, 2802, 2802,  615, 2802,  615,  615, 2802,  615, 2802,
2431       615,  615,  616, 2802, 2802,  616, 2802,  616,  616, 2802,
2432       616, 2802,  616,  616,  617, 2802, 2802,  617, 2802,  617,
2433 
2434       617, 2802,  617, 2802,  617,  617,  618, 2802, 2802,  618,
2435      2802,  618,  618,  618,  618, 2802,  618,  618,  619,  619,
2436      2802,  619,  619,  619,  619,  619,  619,  619,  619,  619,
2437       623, 2802, 2802,  623, 2802,  623,  623,  623,  623, 2802,
2438       623,  623,  624,  624, 2802,  624,  624,  624,  624,  624,
2439       624,  624,  624,  624,  634, 2802, 2802,  634, 2802,  634,
2440       634,  634,  634, 2802,  634,  634,  635,  635, 2802,  635,
2441       635,  635,  635,  635,  635,  635,  635,  635,  643,  643,
2442      2802,  643, 2802,  643,  643,  644, 2802, 2802,  644, 2802,
2443       644,  644,  644,  644,  644,  644,  644,  645,  645, 2802,
2444 
2445       645,  645,  645,  645,  645,  645,  645,  645,  645,  650,
2446      2802,  650,  650, 2802,  650,  650, 2802, 2802, 2802,  650,
2447       650,  651,  651,  651,  651,  651,  651,  651,  651,  651,
2448       651,  651,  651,  420, 2802, 2802,  420, 2802,  420,  420,
2449      2802,  420,  420,  420,  420,  970,  970, 2802,  970,  970,
2450       970,  970,  970,  970,  970,  970,  970, 1167, 1167, 2802,
2451      1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1238,
2452      1238, 2802, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238,
2453      1238, 1325, 2802, 2802, 1325, 2802, 1325, 1325, 1325, 1325,
2454      1325, 1325, 1325, 1330, 2802, 2802, 1330, 2802, 1330, 1330,
2455 
2456      1330, 1330, 1330, 1330, 1330, 1388, 1388, 2802, 1388, 1388,
2457      1388, 1388, 1388, 1388, 1388, 1388, 1388, 1418, 1418, 2802,
2458      1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1453,
2459      1453, 2802, 1453, 1453, 1453, 1453, 1453, 1453, 1453, 1453,
2460      1453, 1482, 2802, 2802, 1482, 2802, 1482, 1482, 2802, 1482,
2461      2802, 1482, 1482, 1505, 1505, 2802, 1505, 1505, 1505, 1505,
2462      1505, 1505, 1505, 1505, 1505, 1570, 1570, 2802, 1570, 1570,
2463      1570, 1570, 1570, 1570, 1570, 1570, 1570, 1629, 1629, 2802,
2464      1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1634,
2465      1634, 2802, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634,
2466 
2467      1634, 2172, 2172, 2802, 2172, 2172, 2172, 2172, 2172, 2172,
2468      2172, 2172, 2172, 2241, 2241, 2802, 2241, 2241, 2241, 2241,
2469      2241, 2241, 2241, 2241, 2241, 2314, 2314, 2802, 2314, 2314,
2470      2314, 2314, 2314, 2314, 2314, 2314, 2314, 2379, 2379, 2802,
2471      2379, 2379, 2379, 2379, 2379, 2379, 2379, 2379, 2379, 2405,
2472      2405, 2802, 2405, 2405, 2405, 2405, 2405, 2405, 2405, 2405,
2473      2405, 2441, 2441, 2802, 2441, 2441, 2441, 2441, 2441, 2441,
2474      2441, 2441, 2441, 2455, 2455, 2802, 2455, 2455, 2455, 2455,
2475      2455, 2455, 2455, 2455, 2455, 2491, 2491, 2802, 2491, 2491,
2476      2491, 2491, 2491, 2491, 2491, 2491, 2491, 2507, 2507, 2802,
2477 
2478      2507, 2507, 2507, 2507, 2507, 2507, 2507, 2507, 2507, 2541,
2479      2541, 2802, 2541, 2541, 2541, 2541, 2541, 2541, 2541, 2541,
2480      2541, 2550, 2550, 2802, 2550, 2550, 2550, 2550, 2550, 2550,
2481      2550, 2550, 2550, 2584, 2584, 2802, 2584, 2584, 2584, 2584,
2482      2584, 2584, 2584, 2584, 2584,   99, 2802, 2802, 2802, 2802,
2483      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
2484      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
2485      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
2486      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
2487      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
2488 
2489      2802
2490     } ;
2491 
2492 static yyconst flex_int16_t yy_chk[7302] =
2493     {   0,
2494         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2495         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2496         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2497         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2498         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2499         1,    1,    1,    1,    1,    2,    5,    9,    2,   10,
2500        37,  937,   15,    5,   21,   22,  101,   39,   29,  101,
2501         9,    9,   10,   10,  105,  105,   15,   15,   15,   39,
2502        21,   22,   15,   37,   40,    2,    2,   29,    9,   37,
2503        10,    2,   15,  939,   21,   22,   40,   29,    2,   29,
2504 
2505         2,    2,    3,    3,    3,    3,    3,    3,    3,    3,
2506         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
2507         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
2508         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
2509         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
2510         3,    3,    3,    3,    3,    3,    3,    4,   67,   16,
2511         4,    6,  123,   41,    6,   30,   42,  125,   49,  137,
2512       106,  123,   38,   16,   16,   16,  125,   50,  137,   16,
2513        41,   67,   41,   42,   30,   42,   68,    4,    4,   16,
2514        49,    6,    6,    4,   30,   38,   30,    6,   43,   50,
2515 
2516         4,   38,    4,    4,    6,   69,    6,    6,    7,   68,
2517       124,    7,  106,   97,   43,  120,  120,  185,   70,   69,
2518       185,    7,    7,    7,    7,   97,  124,   43,   43,   69,
2519       136,   43,   70,    7,    7,    7,    7,    7,    7,    7,
2520         7,    7,   70,    7,    7,    7,  136,    7,   44,    7,
2521         7,    7,    7,    7,  127,  681,    7,   13,   13,  127,
2522        13,   25,   13,  155,   44,  155,   13,   13,   13,   13,
2523        13,   13,   13,   13,   25,   26,  128,   44,   44,   25,
2524       681,   44,   83,   25,   13,   25,  157,   25,   26,   25,
2525       128,  157,   25,   26,   83,   98,   83,   26,   71,   26,
2526 
2527       161,   26,   83,   26,  142,  142,   26,   98,   83,  161,
2528        13,   14,   14,   72,   14,   71,   14,   93,   71,  115,
2529        14,   14,   14,   14,   14,   14,   14,   14,   71,   71,
2530        72,  115,   87,   72,   84,  116,  116,   93,   14,  153,
2531        93,   93,  116,   72,   72,   93,   84,  192,   84,  941,
2532       114,  153,   87,  114,   84,  192,  114,  114,  158,  158,
2533        84,   87,   87,   87,   14,   17,   17,   17,   17,   17,
2534        17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
2535        17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
2536        17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
2537 
2538        17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
2539        17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
2540        19,   19,   88,   19,  942,   19,   94,  118,  162,   19,
2541        19,   19,   19,   19,   19,   19,   19,   19,  165,  118,
2542       118,  118,   88,  165,  162,  328,   94,   19,  328,   94,
2543        94,   88,   88,   88,   94,  107,  107,  107,  107,  107,
2544       107,  107,  107,  154,  154,  122,  121,  121,  166,  122,
2545       154,  121,  944,   19,   20,   20,  121,   20,  122,   20,
2546       945,  121,  166,   20,   20,   20,   20,   20,   20,   20,
2547        20,   20,  113,  160,  126,  946,  141,  160,  126,  141,
2548 
2549       113,   20,  113,  133,  141,  113,  160,  126,  163,  113,
2550       126,  133,  134,  133,  174,  134,  133,  163,  134,  134,
2551       133,  172,  343,  174,  947,  343,  172,   20,   23,   23,
2552        23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
2553        23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
2554        23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
2555        23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
2556        23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
2557        23,   23,   23,   31,   31,  387,   31,  132,   31,  387,
2558       132,  949,   31,   31,   31,   31,   31,   31,   31,   31,
2559 
2560        31,  156,  152,  138,  813,  152,  813,  138,  152,  152,
2561        31,  951,  151,  156,  156,  156,  138,  132,  132,  138,
2562       151,  171,  151,  132,  171,  151,  876,  171,  171,  151,
2563       132,  243,  132,  132,  366,  361,   31,   32,   32,  876,
2564        32,  356,   32,  366,  356,  243,   32,   32,   32,   32,
2565        32,   32,   32,   32,   32,  144,  144,  144,  144,  144,
2566       144,  144,  144,  164,   32,  159,  159,  164,  173,  175,
2567       159,  198,  248,  175,  198,  159,  164,  361,  217,  164,
2568       159,  217,  175,  453,  173,  175,  248,  453,  198,  953,
2569        32,   33,   33,  647,   33,  217,   33,  177,  179,  647,
2570 
2571        33,   33,   33,   33,   33,   33,   33,   33,   33,  170,
2572       177,  179,  430,  177,  179,  373,  373,  170,   33,  170,
2573       954,  430,  170,  437,  437,  955,  170,  188,  188,  188,
2574       188,  188,  188,  188,  188,  200,  200,  200,  200,  200,
2575       200,  200,  200,  956,   33,   34,   34,  688,   34,  486,
2576        34,  957,  486,  958,   34,   34,   34,   34,   34,   34,
2577        34,   34,   34,  219,  219,  219,  219,  219,  219,  219,
2578       219,  223,   34,  879,  223,  225,  225,  225,  225,  225,
2579       225,  225,  225,  249,  229,  879,  688,  229,  223,  231,
2580       231,  231,  231,  231,  231,  231,  231,  249,   34,   35,
2581 
2582        35,  229,   35,  244,   35,  247,  244,  247,   35,   35,
2583        35,   35,   35,   35,   35,   35,   35,  254,  256,  250,
2584       244,  247,  250,  253,  257,  253,   35,  257,  260,  261,
2585       260,  254,  256,  262,  263,  267,  250,  263,  690,  253,
2586       960,  257,  690,  261,  260,  268,  273,  262,  892,  267,
2587       961,  263,   35,   36,   36,  266,   36,  266,   36,  268,
2588       273,  892,   36,   36,   36,   36,   36,   36,   36,   36,
2589        36,  266,  269,  274,  272,  269,  272,  278,  275,  278,
2590        36,  275,  279,  281,  299,  288,  281,  274,  288,  269,
2591       272,  304,  943,  278,  294,  275,  279,  294,  299,  303,
2592 
2593       281,  303,  288,  962,  943,  304,   36,   45,   45,  754,
2594        45,  294,   45,  754,  963,  303,   45,   45,   45,   45,
2595        45,   45,   45,   45,   45,  283,  283,  283,  283,  283,
2596       283,  283,  283,  745,   45,  290,  290,  290,  290,  290,
2597       290,  290,  290,  296,  296,  296,  296,  296,  296,  296,
2598       296,  300,  315,  541,  300,  315,  645,  964,  745,  645,
2599        45,   46,   46,  752,   46,  966,   46,  541,  300,  315,
2600        46,   46,   46,   46,   46,   46,   46,   46,   46,  317,
2601       317,  317,  317,  317,  317,  317,  317,  321,   46,  967,
2602       321,  323,  323,  323,  323,  323,  323,  323,  323,  548,
2603 
2604       332,  968,  752,  332,  321,  334,  334,  334,  334,  334,
2605       334,  334,  334,  548,   46,   47,   47,  332,   47,  665,
2606        47,  971,  665,  972,   47,   47,   47,   47,   47,   47,
2607        47,   47,   47,  362,  362,  362,  362,  362,  362,  362,
2608       362,  393,   47,  395,  417,  970,  395,  973,  461,  422,
2609       393,  461,  422,  417,  940,  874,  393,  422,  407,  417,
2610       395,  407,  459,  727,  970,  461,  727,  940,   47,   48,
2611        48,  459,   48,  500,   48,  779,  500,  459,   48,   48,
2612        48,   48,   48,   48,   48,   48,   48,  974,  407,  407,
2613       500,  779,  874,  938,  407,  977,   48,  518,  847,  556,
2614 
2615       518,  407,  847,  407,  407,  427,  427,  427,  427,  427,
2616       427,  427,  427,  556,  518,  563,  476,  864,  965,  965,
2617       979,  864,   48,   51,   51,  476,   51,  981,   51,  563,
2618       938,  476,   51,   51,   51,   51,   51,   51,   51,   51,
2619        51,  489,  489,  489,  489,  489,  489,  489,  489,  982,
2620        51,  502,  502,  502,  502,  502,  502,  502,  502,  520,
2621       520,  520,  520,  520,  520,  520,  520,  523,  528,  570,
2622       523,  528,  984,  985,  986,  910,   51,   52,   52,  910,
2623        52,  987,   52,  570,  523,  528,   52,   52,   52,   52,
2624        52,   52,   52,   52,   52,  525,  525,  525,  525,  525,
2625 
2626       525,  525,  525,  577,   52,  530,  530,  530,  530,  530,
2627       530,  530,  530,  600,  991,  992,  543,  577,  550,  543,
2628       558,  550,  565,  558,  928,  565,  983,  600,  928,  993,
2629        52,   53,   53,  543,   53,  550,   53,  558,  994,  565,
2630        53,   53,   53,   53,   53,   53,   53,   53,   53,  572,
2631       579,  585,  572,  579,  585,  983,  995,  996,   53,  997,
2632       591,  596,  602,  591,  596,  602,  572,  579,  585,  587,
2633       587,  587,  587,  587,  587,  587,  587,  591,  596,  602,
2634       950,  998,  999, 1000,   53,   54,   54, 1003,   54, 1004,
2635        54, 1005, 1007,  950,   54,   54,   54,   54,   54,   54,
2636 
2637        54,   54,   54,  593,  593,  593,  593,  593,  593,  593,
2638       593, 1008,   54,  598,  598,  598,  598,  598,  598,  598,
2639       598, 1009, 1010, 1011,  619, 1012, 1013,  619,  621,  621,
2640       621,  621,  621,  621,  621,  621, 1015, 1016,   54,   55,
2641        55,  619,   55,  624,   55, 1017,  624, 1018,   55,   55,
2642        55,   55,   55,   55,   55,   55,   55, 1020,  635, 1022,
2643       624,  635, 1023, 1025, 1026, 1027,   55,  626,  626,  626,
2644       626,  626,  626,  626,  626,  635,  637,  637,  637,  637,
2645       637,  637,  637,  637, 1001, 1001, 1001, 1001, 1021, 1028,
2646      1029, 1030,   55,   56,   56, 1031,   56, 1021,   56, 1032,
2647 
2648      1033, 1001,   56,   56,   56,   56,   56,   56,   56,   56,
2649        56, 1002, 1002, 1002, 1002, 1034, 1035, 1036, 1037, 1039,
2650        56, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1002, 1047,
2651      1048, 1049, 1050, 1051, 1052, 1051, 1053, 1051, 1054, 1056,
2652      1057, 1059, 1051, 1061, 1060, 1062,   56,   57,   57, 1066,
2653        57, 1067,   57, 1060, 1069, 1070,   57,   57,   57,   57,
2654        57,   57,   57,   57,   57, 1071, 1063, 1063, 1063, 1063,
2655      1064, 1064, 1064, 1064,   57, 1072, 1073, 1065, 1074, 1075,
2656      1065, 1077, 1062, 1063, 1065, 1065, 1078, 1064, 1079, 1080,
2657      1081, 1083, 1084, 1085, 1086, 1088, 1089, 1090, 1091, 1092,
2658 
2659        57,   58,   58, 1093,   58, 1094,   58, 1095, 1096, 1097,
2660        58,   58,   58,   58,   58,   58,   58,   58,   58, 1098,
2661      1099, 1100, 1102, 1103, 1104, 1105, 1106, 1107,   58, 1108,
2662      1109, 1110, 1111, 1112, 1113, 1114, 1116, 1114, 1117, 1114,
2663      1118, 1120, 1119, 1121, 1114, 1122, 1123, 1124, 1125, 1126,
2664      1127, 1129, 1130, 1132,   58,   59,   59, 1133,   59, 1134,
2665        59, 1135, 1136, 1138,   59,   59,   59,   59,   59,   59,
2666        59,   59,   59, 1139, 1137, 1140, 1141, 1142,   59, 1119,
2667      1143, 1144,   59, 1137, 1145, 1146, 1147, 1148, 1150, 1151,
2668      1144, 1152, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1152,
2669 
2670      1162, 1167, 1168, 1169, 1170, 1172, 1173, 1174,   59,   60,
2671        60, 1175,   60, 1176,   60, 1177, 1174, 1178,   60,   60,
2672        60,   60,   60,   60,   60,   60,   60, 1163, 1163, 1163,
2673      1163, 1179,   60, 1180, 1181, 1182,   60, 1165, 1165, 1165,
2674      1165, 1184, 1185, 1186, 1163, 1187, 1187, 1188, 1189, 1190,
2675      1191, 1192, 1193, 1194, 1165, 1195, 1196, 1197, 1190, 1198,
2676      1199, 1200,   60,   61,   61, 1201,   61, 1203,   61, 1196,
2677      1204, 1205,   61,   61,   61,   61,   61,   61,   61,   61,
2678        61, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1214, 1215,
2679        61, 1216, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225,
2680 
2681      1226, 1227, 1228, 1230, 1232, 1238, 1239, 1240, 1231, 1241,
2682      1233, 1243, 1244, 1246, 1245, 1247,   61,   62,   62, 1248,
2683        62, 1249,   62, 1245, 1250, 1251,   62,   62,   62,   62,
2684        62,   62,   62,   62,   62, 1252, 1231, 1233, 1234, 1234,
2685      1234, 1234, 1254, 1256,   62, 1231, 1236, 1236, 1236, 1236,
2686      1233, 1257, 1258, 1258, 1259, 1234, 1260, 1261, 1262, 1263,
2687      1264, 1265, 1266, 1236, 1267, 1268, 1261, 1269, 1270, 1271,
2688        62,   63,   63, 1272,   63, 1274,   63, 1267, 1275, 1276,
2689        63,   63,   63,   63,   63,   63,   63,   63,   63, 1277,
2690      1278, 1279, 1280, 1281, 1282, 1283, 1285, 1286,   63, 1287,
2691 
2692      1288, 1289, 1290, 1288, 1291, 1292, 1293, 1294, 1288, 1295,
2693      1296, 1297, 1299, 1300, 1301, 1302, 1298, 1303, 1304, 1305,
2694      1306, 1307, 1308, 1309,   63,   64,   64, 1310,   64, 1312,
2695        64, 1313, 1314, 1315,   64,   64,   64,   64,   64,   64,
2696        64,   64,   64, 1317, 1298, 1318, 1319, 1320, 1322, 1324,
2697      1326, 1327,   64, 1298, 1328, 1329, 1331, 1332, 1333, 1335,
2698      1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1347,
2699      1339, 1348, 1350, 1351, 1352, 1354, 1355, 1356,   64,   65,
2700        65, 1357,   65, 1358,   65, 1359, 1360, 1361,   65,   65,
2701        65,   65,   65,   65,   65,   65,   65, 1353, 1362, 1363,
2702 
2703      1364, 1365, 1353, 1366, 1367, 1368,   65, 1369, 1370, 1371,
2704      1353, 1372, 1373, 1376, 1378, 1379, 1380, 1381, 1382, 1383,
2705      1365, 1384, 1385, 1386, 1387, 1388, 1388, 1389, 1391, 1392,
2706      1393, 1394,   65,   66,   66, 1395,   66, 1396,   66, 1397,
2707      1398, 1399,   66,   66,   66,   66,   66,   66,   66,   66,
2708        66, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410,
2709        66, 1404, 1412, 1413, 1414, 1415, 1416, 1414, 1417, 1419,
2710      1420, 1421, 1414, 1422, 1419, 1423, 1424, 1425, 1426, 1427,
2711      1428, 1429, 1419, 1431, 1432, 1433,   66,   73,   73,   73,
2712        73,   73,   73,   73,   73,   73,   73,   73,   73,   73,
2713 
2714        73,   73,   73,   73,   73,   73,   73,   73,   73,   73,
2715        73,   73,   73,   73,   73,   73,   73,   73,   73,   73,
2716        73,   73,   73,   73,   73,   73,   73,   73,   73,   73,
2717        73,   73,   73,   73,   73,   73,   73,   73,   73,   73,
2718        73,   73,   77,   77,   77,   77,   77,   77,   77,   77,
2719        77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
2720        77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
2721        77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
2722        77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
2723        77,   77,   77,   77,   77,   77,   77,   79,   79, 1400,
2724 
2725        79, 1401,   79, 1430, 1434, 1435,   79,   79,   79,   79,
2726        79,   79,   79,   79,   79, 1436, 1437, 1438, 1441, 1443,
2727      1444, 1445, 1430, 1446,   79, 1447, 1400, 1448, 1401, 1449,
2728      1450, 1451, 1452, 1453, 1453, 1454, 1456, 1457, 1458, 1400,
2729      1459, 1401, 1460, 1461, 1462, 1463, 1465, 1466, 1468, 1469,
2730        79,   80,   80, 1471,   80, 1472,   80, 1474, 1475, 1477,
2731        80,   80,   80,   80,   80,   80,   80,   80,   80, 1478,
2732      1480, 1480, 1481, 1483, 1485, 1486, 1487, 1488,   80, 1489,
2733      1490, 1491, 1493, 1495, 1496, 1497, 1498, 1499, 1500, 1501,
2734      1502, 1503, 1504, 1505, 1507, 1508, 1508, 1508, 1508, 1509,
2735 
2736      1510, 1511, 1508, 1512,   80,   81,   81, 1514,   81, 1515,
2737        81, 1517, 1508, 1518,   81,   81,   81,   81,   81,   81,
2738        81,   81,   81, 1513, 1513, 1513, 1513, 1516,   81, 1519,
2739      1513, 1520,   81, 1516, 1521, 1522, 1523, 1524, 1525, 1526,
2740      1513, 1527, 1530, 1531, 1532, 1530, 1533, 1534, 1535, 1530,
2741      1536, 1538, 1540, 1541, 1544, 1545, 1546, 1548,   81,   82,
2742        82, 1549,   82, 1550,   82, 1551, 1552, 1553,   82,   82,
2743        82,   82,   82,   82,   82,   82,   82, 1554, 1543, 1547,
2744      1555, 1543,   82, 1556, 1557, 1547,   82, 1543, 1543, 1547,
2745      1558, 1559, 1560, 1561, 1562, 1547, 1563, 1564, 1565, 1566,
2746 
2747      1567, 1568, 1569, 1570, 1572, 1574, 1575, 1576, 1578, 1579,
2748      1581, 1580,   82,   85,   85, 1582,   85, 1580,   85, 1583,
2749      1584, 1585,   85,   85,   85,   85,   85,   85,   85,   85,
2750        85, 1573, 1573, 1573, 1573, 1586, 1587, 1588, 1573, 1589,
2751        85, 1590, 1577, 1577, 1577, 1577, 1591, 1594, 1573, 1577,
2752      1594, 1595, 1596, 1597, 1594, 1598, 1599, 1600, 1602, 1577,
2753      1604, 1605, 1608, 1609, 1610, 1612,   85,   86,   86, 1613,
2754        86, 1614,   86, 1615, 1616, 1617,   86,   86,   86,   86,
2755        86,   86,   86,   86,   86, 1618, 1607, 1611, 1619, 1607,
2756      1621, 1622, 1623, 1611,   86, 1607, 1607, 1611, 1624, 1626,
2757 
2758      1627, 1629, 1633, 1611, 1635, 1636, 1637, 1638, 1639, 1640,
2759      1641, 1642, 1643, 1644, 1647, 1649, 1650, 1651, 1652, 1653,
2760        86,   89,   89,   89,   89,   89,   89,   89,   89,   89,
2761        89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
2762        89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
2763        89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
2764        89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
2765        89,   89,   89,   89,   89,   89,   91,   91, 1658,   91,
2766      1659,   91, 1660, 1666, 1667,   91,   91,   91,   91,   91,
2767        91,   91,   91,   91, 1648, 1668, 1648, 1655, 1655, 1655,
2768 
2769      1655, 1656, 1648,   91, 1662, 1662, 1662, 1662, 1669, 1656,
2770      1670, 1656, 1671, 1670, 1655, 1656, 1672, 1656, 1656, 1656,
2771      1656, 1662, 1670, 1673, 1674, 1675, 1676, 1677, 1678,   91,
2772        92,   92, 1679,   92, 1680,   92, 1681, 1682, 1683,   92,
2773        92,   92,   92,   92,   92,   92,   92,   92, 1663, 1686,
2774      1687, 1688, 1689, 1690, 1692, 1693, 1663,   92, 1663, 1694,
2775      1695, 1696, 1663, 1697, 1698, 1663, 1663, 1663, 1699, 1700,
2776      1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710,
2777      1711, 1712, 1713,   92,   95,   95, 1714,   95, 1715,   95,
2778      1716, 1719,   95,   95,   95,   95,   95,   95,   95,   95,
2779 
2780        95,   95, 1720, 1721, 1720, 1722, 1723, 1724, 1725, 1728,
2781      1720,   95, 1727, 1727, 1727, 1727, 1730, 1728, 1731, 1728,
2782      1732, 1737, 1738, 1728, 1739, 1728, 1728, 1728, 1728, 1727,
2783      1740, 1742, 1741, 1743, 1744, 1741, 1745,   95,   96,   96,
2784      1746,   96, 1747,   96, 1741, 1748,   96,   96,   96,   96,
2785        96,   96,   96,   96,   96,   96, 1733, 1733, 1733, 1733,
2786      1734, 1749, 1750, 1751, 1752,   96, 1753, 1754, 1734, 1757,
2787      1734, 1758, 1759, 1733, 1734, 1760, 1761, 1734, 1734, 1734,
2788      1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772,
2789      1773,   96,  143,  143,  143,  143,  143,  143,  143,  143,
2790 
2791       143, 1774, 1775, 1776, 1777, 1778, 1779, 1781, 1782, 1783,
2792      1784, 1785, 1786, 1787, 1789, 1791, 1792, 1793, 1794, 1796,
2793      1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1809,
2794      1810, 1811, 1812, 1813, 1814,  143,  187,  187,  187,  187,
2795       187,  187,  187,  187, 1815, 1816, 1817, 1818, 1819, 1820,
2796      1821, 1822, 1823, 1824, 1825, 1826, 1827, 1829, 1830, 1831,
2797      1832, 1833, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842,
2798      1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850,  187,  199,
2799       199,  199,  199,  199,  199,  199,  199, 1851, 1852, 1853,
2800      1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863,
2801 
2802      1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873,
2803      1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1886,
2804      1887,  199,  218,  218,  218,  218,  218,  218,  218,  218,
2805      1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897,
2806      1898, 1899, 1900, 1901, 1902, 1903, 1904, 1906, 1907, 1908,
2807      1909, 1910, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919,
2808      1920, 1921, 1922, 1923,  218,  224,  224,  224,  224,  224,
2809       224,  224,  224, 1924, 1925, 1926, 1927, 1928, 1929, 1930,
2810      1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940,
2811      1941, 1942, 1943, 1944, 1945, 1946, 1948, 1949, 1950, 1951,
2812 
2813      1952, 1954, 1955, 1956, 1957, 1959, 1960,  224,  230,  230,
2814       230,  230,  230,  230,  230,  230, 1961, 1962, 1963, 1964,
2815      1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974,
2816      1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984,
2817      1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1995,
2818       230,  245, 1996, 1994, 1990, 1997, 1998,  245,  245,  245,
2819       245,  245,  245,  245,  245,  245, 1994, 1999, 2000, 2002,
2820      2003, 2004, 2007, 2009, 2010, 2011, 2012, 2014, 2015, 2016,
2821      2017, 2018, 2020, 2021, 2022, 2023, 2025, 2026, 2026, 2027,
2822      2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2037,  245,
2823 
2824       251, 2039, 2040, 2041, 2042, 2043,  251,  251,  251,  251,
2825       251,  251,  251,  251,  251, 2044, 2045, 2046, 2047, 2048,
2826      2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058,
2827      2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068,
2828      2069, 2070, 2071, 2072, 2073, 2075, 2076, 2077,  251,  258,
2829      2070, 2074, 2078, 2079, 2080,  258,  258,  258,  258,  258,
2830       258,  258,  258,  258, 2074, 2082, 2083, 2084, 2087, 2089,
2831      2090, 2091, 2092, 2094, 2095, 2092, 2096, 2097, 2098, 2100,
2832      2092, 2101, 2102, 2103, 2105, 2106, 2106, 2107, 2108, 2092,
2833      2109, 2110, 2111, 2112, 2113, 2114, 2115,  258,  264, 2117,
2834 
2835      2120, 2121, 2122, 2123,  264,  264,  264,  264,  264,  264,
2836       264,  264,  264, 2124, 2125, 2126, 2127, 2128, 2129, 2130,
2837      2132, 2133, 2134, 2136, 2137, 2138, 2139, 2140, 2141, 2142,
2838      2143, 2145, 2146, 2147, 2148, 2149, 2150, 2151, 2152, 2153,
2839      2154, 2155, 2156, 2157, 2158, 2159,  264,  270, 2160, 2161,
2840      2162, 2163, 2164,  270,  270,  270,  270,  270,  270,  270,
2841       270,  270, 2165, 2166, 2167, 2168, 2169, 2171, 2172, 2165,
2842      2173, 2174, 2175, 2176, 2177, 2178, 2179, 2180, 2181, 2182,
2843      2183, 2184, 2185, 2186, 2187, 2188, 2189, 2191, 2192, 2193,
2844      2194, 2195, 2196, 2197, 2198,  270,  276, 2199, 2201, 2202,
2845 
2846      2203, 2205,  276,  276,  276,  276,  276,  276,  276,  276,
2847       276, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2214, 2215,
2848      2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225,
2849      2226, 2227, 2228, 2229, 2230, 2231, 2232, 2233, 2235, 2236,
2850      2237, 2238, 2240, 2243,  276,  282,  282,  282,  282,  282,
2851       282,  282,  282, 2234, 2241, 2242, 2244, 2241, 2242, 2245,
2852      2234, 2246, 2241, 2242, 2247, 2248, 2249, 2250, 2251, 2252,
2853      2253, 2241, 2242, 2254, 2255, 2256, 2257, 2258, 2260, 2261,
2854      2262, 2266, 2267, 2269, 2270, 2271, 2272,  282,  289,  289,
2855       289,  289,  289,  289,  289,  289, 2273, 2274, 2275, 2277,
2856 
2857      2278, 2280, 2281, 2282, 2283, 2285, 2286, 2288, 2289, 2290,
2858      2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2303,
2859      2304, 2307, 2308, 2309, 2310, 2313, 2314, 2315, 2316, 2317,
2860       289,  295,  295,  295,  295,  295,  295,  295,  295, 2319,
2861      2320, 2322, 2323, 2324, 2325, 2326, 2327, 2328, 2329, 2330,
2862      2332, 2333, 2334, 2335, 2336, 2337, 2338, 2339, 2337, 2340,
2863      2342, 2343, 2345, 2337, 2346, 2347, 2348, 2350, 2351, 2353,
2864      2354, 2355, 2337,  295,  301, 2356, 2357, 2358, 2359, 2360,
2865       301,  301,  301,  301,  301,  301,  301,  301,  301, 2361,
2866      2362, 2363, 2364, 2368, 2369, 2372, 2373, 2374, 2375, 2378,
2867 
2868      2379, 2380, 2381, 2379, 2380, 2382, 2384, 2385, 2379, 2380,
2869      2387, 2386, 2388, 2389, 2386, 2390, 2391, 2379, 2380, 2386,
2870      2392, 2393,  301,  312, 2394, 2395,  312, 2397,  312,  312,
2871       312,  312, 2398,  312,  312,  312,  312,  312,  312,  312,
2872       312, 2399,  312,  312,  312, 2400, 2402, 2403, 2404, 2405,
2873      2406,  312,  312, 2407, 2408, 2409, 2411, 2412, 2413, 2414,
2874      2416, 2417, 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425,
2875      2423, 2426, 2427, 2428, 2429, 2430, 2432,  312,  313, 2423,
2876      2433,  313, 2434,  313,  313,  313,  313, 2436,  313,  313,
2877       313,  313,  313,  313,  313,  313, 2437,  313,  313,  313,
2878 
2879      2439, 2440, 2441, 2442, 2441, 2444,  313,  313, 2447, 2448,
2880      2450, 2441, 2451, 2452, 2453, 2454, 2457, 2458, 2459, 2461,
2881      2462, 2463, 2464, 2466, 2467, 2468, 2469, 2470, 2471, 2472,
2882      2474, 2475,  313,  316,  316,  316,  316,  316,  316,  316,
2883       316, 2455, 2456, 2473, 2455, 2456, 2473, 2476, 2477, 2455,
2884      2456, 2478, 2479, 2480, 2482, 2473, 2483, 2484, 2455, 2456,
2885      2486, 2487, 2489, 2490, 2491, 2492, 2491, 2494, 2497, 2498,
2886      2500, 2501, 2502, 2491, 2504,  316,  322,  322,  322,  322,
2887       322,  322,  322,  322, 2493, 2505, 2506, 2493, 2507, 2508,
2888      2509, 2510, 2493, 2511, 2513, 2514, 2515, 2517, 2518, 2519,
2889 
2890      2520, 2521, 2522, 2523, 2525, 2518, 2526, 2527, 2528, 2529,
2891      2530, 2531, 2533, 2534, 2536, 2537, 2538, 2539,  322,  333,
2892       333,  333,  333,  333,  333,  333,  333, 2540, 2541, 2541,
2893      2543, 2544, 2545, 2547, 2548, 2549, 2550, 2551, 2552, 2550,
2894      2551, 2553, 2554, 2556, 2550, 2551, 2557, 2558, 2560, 2561,
2895      2562, 2563, 2564, 2550, 2551, 2565, 2561, 2566, 2568, 2569,
2896      2570,  333,  352,  352, 2571,  352, 2572, 2573, 2574, 2576,
2897       352,  352,  352,  352,  352,  352,  352,  352,  352,  352,
2898       426,  426,  426,  426,  426,  426,  426,  426, 2577, 2579,
2899      2580, 2581, 2582, 2583, 2584, 2584, 2586, 2587, 2588, 2590,
2900 
2901      2593, 2594, 2595, 2596, 2597, 2598, 2599, 2600, 2601, 2602,
2902      2603, 2604, 2605, 2606, 2607, 2611, 2613, 2614, 2615, 2616,
2903      2617, 2618,  426,  428,  428,  428,  428,  428,  428,  428,
2904       428, 2619, 2620, 2622, 2623,  428,  428,  428, 2624, 2625,
2905      2626, 2627, 2629,  428,  428,  428,  428,  428,  428,  488,
2906       488,  488,  488,  488,  488,  488,  488, 2630, 2631, 2632,
2907      2633, 2634, 2635, 2636, 2637, 2638, 2639, 2640, 2641, 2642,
2908      2643, 2647, 2649, 2650, 2651, 2652, 2653, 2654, 2655, 2656,
2909      2658, 2659, 2660, 2661, 2662, 2663, 2667, 2670, 2672, 2673,
2910      2674,  488,  490,  490,  490,  490,  490,  490,  490,  490,
2911 
2912      2675, 2676, 2677, 2678,  490,  490,  490, 2679, 2680, 2681,
2913      2682, 2683,  490,  490,  490,  490,  490,  490,  501,  501,
2914       501,  501,  501,  501,  501,  501, 2684, 2687, 2688, 2689,
2915      2691, 2692, 2697, 2700, 2702, 2703, 2704, 2705, 2706, 2707,
2916      2708, 2709, 2710, 2711, 2712, 2713, 2714, 2717, 2718, 2719,
2917      2721, 2722, 2724, 2726, 2729, 2730, 2734, 2737, 2738, 2739,
2918       501,  503,  503,  503,  503,  503,  503,  503,  503, 2741,
2919      2742, 2744, 2747,  503,  503,  503, 2748, 2752, 2755, 2756,
2920      2757,  503,  503,  503,  503,  503,  503,  519,  519,  519,
2921       519,  519,  519,  519,  519, 2759, 2761, 2762, 2765, 2767,
2922 
2923      2768, 2770, 2771, 2774, 2776, 2777, 2778, 2779, 2781, 2783,
2924      2784, 2786, 2789, 2790, 2792, 2793, 2794, 2796, 2798, 2799,
2925       936,  935,  934,  933,  932,  930,  929,  926,  925,  519,
2926       521,  521,  521,  521,  521,  521,  521,  521,  924,  923,
2927       922,  920,  521,  521,  521,  919,  918,  917,  916,  915,
2928       521,  521,  521,  521,  521,  521,  524,  524,  524,  524,
2929       524,  524,  524,  524,  914,  913,  912,  909,  908,  907,
2930       906,  905,  904,  903,  902,  901,  900,  899,  897,  896,
2931       895,  894,  893,  891,  889,  888,  887,  886,  885,  884,
2932       883,  882,  881,  880,  878,  877,  875,  873,  524,  526,
2933 
2934       526,  526,  526,  526,  526,  526,  526,  872,  871,  870,
2935       869,  526,  526,  526,  868,  866,  865,  862,  861,  526,
2936       526,  526,  526,  526,  526,  529,  529,  529,  529,  529,
2937       529,  529,  529,  860,  859,  858,  856,  855,  854,  853,
2938       852,  851,  850,  849,  846,  845,  844,  843,  842,  841,
2939       840,  839,  838,  837,  836,  834,  833,  832,  831,  830,
2940       828,  827,  826,  825,  822,  821,  820,  529,  531,  531,
2941       531,  531,  531,  531,  531,  531,  819,  818,  816,  812,
2942       531,  531,  531,  811,  810,  809,  808,  807,  531,  531,
2943       531,  531,  531,  531,  545,  806,  805,  804,  802,  801,
2944 
2945       545,  545,  545,  545,  545,  545,  545,  545,  545,  799,
2946       798,  797,  796,  795,  794,  793,  791,  790,  789,  788,
2947       787,  786,  785,  784,  783,  782,  781,  780,  778,  777,
2948       776,  775,  774,  773,  772,  771,  770,  769,  768,  765,
2949       764,  763,  545,  547,  762,  761,  760,  759,  758,  757,
2950       756,  755,  753,  751,  750,  547,  547,  547,  749,  748,
2951       747,  746,  744,  547,  547,  547,  547,  547,  547,  743,
2952       742,  741,  740,  739,  738,  737,  736,  735,  734,  733,
2953       732,  731,  730,  728,  726,  547,  552,  725,  724,  723,
2954       722,  721,  552,  552,  552,  552,  552,  552,  552,  552,
2955 
2956       552,  720,  719,  718,  717,  716,  715,  714,  713,  712,
2957       711,  710,  709,  708,  707,  706,  705,  704,  701,  700,
2958       699,  698,  697,  696,  695,  694,  693,  692,  691,  689,
2959       687,  686,  685,  684,  552,  554,  683,  682,  680,  679,
2960       678,  677,  676,  675,  674,  673,  672,  554,  554,  554,
2961       671,  670,  669,  668,  666,  554,  554,  554,  554,  554,
2962       554,  664,  663,  662,  661,  660,  659,  658,  657,  656,
2963       655,  654,  653,  649,  648,  642,  641,  554,  560,  640,
2964       633,  632,  631,  630,  560,  560,  560,  560,  560,  560,
2965       560,  560,  560,  629,  628,  613,  612,  611,  610,  609,
2966 
2967       608,  607,  605,  603,  589,  582,  580,  575,  573,  568,
2968       566,  561,  559,  555,  553,  551,  546,  544,  540,  539,
2969       538,  537,  536,  535,  534,  533,  560,  562,  532,  516,
2970       515,  514,  513,  512,  511,  510,  509,  508,  507,  562,
2971       562,  562,  505,  504,  498,  496,  495,  562,  562,  562,
2972       562,  562,  562,  494,  493,  492,  491,  484,  483,  482,
2973       481,  480,  479,  478,  477,  475,  474,  473,  472,  562,
2974       567,  471,  470,  469,  467,  466,  567,  567,  567,  567,
2975       567,  567,  567,  567,  567,  465,  464,  463,  462,  460,
2976       458,  457,  456,  455,  454,  452,  451,  450,  449,  448,
2977 
2978       447,  446,  445,  444,  443,  442,  441,  440,  439,  438,
2979       436,  435,  434,  433,  432,  431,  429,  424,  567,  569,
2980       423,  419,  418,  416,  415,  414,  413,  412,  411,  410,
2981       409,  569,  569,  569,  408,  406,  405,  404,  403,  569,
2982       569,  569,  569,  569,  569,  401,  400,  399,  398,  397,
2983       396,  394,  392,  391,  390,  389,  388,  386,  385,  384,
2984       383,  569,  574,  382,  381,  380,  379,  378,  574,  574,
2985       574,  574,  574,  574,  574,  574,  574,  377,  376,  375,
2986       374,  372,  371,  370,  369,  368,  367,  365,  360,  359,
2987       355,  353,  349,  348,  347,  346,  344,  340,  339,  338,
2988 
2989       337,  335,  330,  329,  327,  325,  324,  318,  311,  310,
2990       574,  576,  309,  308,  307,  306,  305,  302,  297,  291,
2991       285,  284,  277,  576,  576,  576,  271,  265,  259,  255,
2992       252,  576,  576,  576,  576,  576,  576,  246,  242,  241,
2993       240,  239,  238,  237,  236,  235,  234,  232,  226,  220,
2994       215,  214,  213,  576,  581,  212,  211,  210,  209,  208,
2995       581,  581,  581,  581,  581,  581,  581,  581,  581,  207,
2996       206,  204,  203,  201,  196,  195,  194,  193,  191,  189,
2997       183,  182,  181,  178,  176,  168,  167,  150,  149,  148,
2998       146,  140,  135,  130,  129,  119,  117,  112,  111,  110,
2999 
3000       108,  103,  581,  583,   99,   76,   75,   28,   27,   12,
3001        11,    0,    0,    0,    0,  583,  583,  583,    0,    0,
3002         0,    0,    0,  583,  583,  583,  583,  583,  583,    0,
3003         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
3004         0,    0,    0,    0,    0,  583,  586,  586,  586,  586,
3005       586,  586,  586,  586,    0,    0,    0,    0,    0,    0,
3006         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
3007         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
3008         0,    0,    0,    0,    0,    0,    0,    0,  586,  588,
3009       588,  588,  588,  588,  588,  588,  588,    0,    0,    0,
3010 
3011         0,  588,  588,  588,    0,    0,    0,    0,    0,  588,
3012       588,  588,  588,  588,  588,  592,  592,  592,  592,  592,
3013       592,  592,  592,    0,    0,    0,    0,    0,    0,    0,
3014         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
3015         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
3016         0,    0,    0,    0,    0,    0,    0,  592,  594,  594,
3017       594,  594,  594,  594,  594,  594,    0,    0,    0,    0,
3018       594,  594,  594,    0,    0,    0,    0,    0,  594,  594,
3019       594,  594,  594,  594,  597,  597,  597,  597,  597,  597,
3020       597,  597,    0,    0,    0,    0,    0,    0,    0,    0,
3021 
3022         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
3023         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
3024         0,    0,    0,    0,    0,    0,  597,  599,  599,  599,
3025       599,  599,  599,  599,  599,    0,    0,    0,    0,  599,
3026       599,  599,    0,    0,    0,    0,    0,  599,  599,  599,
3027       599,  599,  599,  604,    0,    0,    0,    0,    0,  604,
3028       604,  604,  604,  604,  604,  604,  604,  604,    0,    0,
3029         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
3030         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
3031         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
3032 
3033         0,  604,  606,    0,    0,    0,    0,    0,    0,    0,
3034         0,    0,    0,    0,  606,  606,  606,    0,    0,    0,
3035         0,    0,  606,  606,  606,  606,  606,  606,    0,    0,
3036         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
3037         0,    0,    0,    0,  606,  615,    0,    0,  615,    0,
3038       615,  615,  615,  615,    0,  615,  615,  615,  615,  615,
3039       615,  615,  615,    0,  615,  615,  615,    0,    0,    0,
3040         0,    0,    0,  615,  615,    0,    0,    0,    0,    0,
3041         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
3042         0,    0,    0,    0,    0,    0,    0,    0,    0,  615,
3043 
3044       617,    0,    0,  617,    0,  617,  617,  617,  617,    0,
3045       617,  617,  617,  617,  617,  617,  617,  617,    0,  617,
3046       617,  617,    0,    0,    0,    0,    0,    0,  617,  617,
3047         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
3048         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
3049         0,    0,    0,    0,  617,  620,  620,  620,  620,  620,
3050       620,  620,  620,    0,    0,    0,    0,    0,    0,    0,
3051         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
3052         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
3053         0,    0,    0,    0,    0,    0,    0,  620,  622,  622,
3054 
3055       622,  622,  622,  622,  622,  622,    0,    0,    0,    0,
3056       622,  622,  622,    0,    0,    0,    0,    0,  622,  622,
3057       622,  622,  622,  622,  625,  625,  625,  625,  625,  625,
3058       625,  625,    0,    0,    0,    0,    0,    0,    0,    0,
3059         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
3060         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
3061         0,    0,    0,    0,    0,    0,  625,  627,  627,  627,
3062       627,  627,  627,  627,  627,    0,    0,    0,    0,  627,
3063       627,  627,    0,    0,    0,    0,    0,  627,  627,  627,
3064       627,  627,  627,  636,  636,  636,  636,  636,  636,  636,
3065 
3066       636,    0,    0,    0,    0,    0,    0,    0,    0,    0,
3067         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
3068         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
3069         0,    0,    0,    0,    0,  636,  638,  638,  638,  638,
3070       638,  638,  638,  638,    0,    0,    0,    0,  638,  638,
3071       638,    0,    0,    0,    0,    0,  638,  638,  638,  638,
3072       638,  638,  651,  651,    0,  651,    0,    0,    0,    0,
3073       651,  651,  651,  651,  651,  651,  651,  651,  651,  651,
3074      1024, 1024, 1024, 1024,    0, 1024, 1024,    0,    0, 1024,
3075         0, 1024,    0,    0, 1024,    0,    0, 1024,    0, 1024,
3076 
3077      1087, 1087, 1087, 1087,    0, 1087, 1087,    0,    0, 1087,
3078         0, 1087,    0,    0, 1087,    0,    0, 1087,    0, 1087,
3079      1828, 1828, 1828, 1828,    0, 1828,    0,    0,    0, 1828,
3080         0,    0,    0,    0, 1828,    0,    0, 1828,    0, 1828,
3081      1905, 1905, 1905, 1905,    0, 1905,    0,    0,    0, 1905,
3082         0,    0,    0,    0, 1905,    0,    0, 1905,    0, 1905,
3083      2803, 2803, 2803, 2803, 2803, 2803, 2803, 2803, 2803, 2803,
3084      2803, 2803, 2804, 2804, 2804, 2804, 2804, 2804, 2804, 2804,
3085      2804, 2804, 2804, 2804, 2805, 2805, 2805, 2805, 2805, 2805,
3086      2805, 2805, 2805, 2805, 2805, 2805, 2806, 2806, 2806, 2806,
3087 
3088      2806, 2806, 2806, 2806, 2806, 2806, 2806, 2806, 2807, 2807,
3089      2807, 2807, 2807, 2807, 2807, 2807, 2807, 2807, 2807, 2807,
3090      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
3091      2808, 2808, 2809, 2809, 2809, 2809, 2809, 2809, 2809, 2809,
3092      2809, 2809, 2809, 2809, 2810, 2810, 2810, 2810, 2810, 2810,
3093      2810, 2810, 2810, 2810, 2810, 2810, 2811, 2811, 2811, 2811,
3094      2811, 2811, 2811, 2811, 2811, 2811, 2811, 2811, 2812, 2812,
3095      2812, 2812, 2812, 2812, 2812, 2812, 2812, 2812, 2812, 2812,
3096      2813, 2813, 2813, 2813, 2813, 2813, 2813, 2813, 2813, 2813,
3097      2813, 2813, 2814, 2814, 2814, 2814, 2814, 2814, 2814, 2814,
3098 
3099      2814, 2814, 2814, 2814, 2815, 2815, 2815, 2815, 2815, 2815,
3100      2815, 2815, 2815, 2815, 2815, 2815, 2816, 2816, 2816, 2816,
3101      2816, 2816, 2816, 2816, 2816, 2816, 2816, 2816, 2817, 2817,
3102      2817, 2817, 2817, 2817, 2817, 2817, 2817, 2817, 2817, 2817,
3103      2818, 2818, 2818, 2818, 2818, 2818, 2818, 2818, 2818, 2818,
3104      2818, 2818, 2819, 2819, 2819, 2819, 2819, 2819, 2819, 2819,
3105      2819, 2819, 2819, 2819, 2820, 2820, 2820, 2820, 2820, 2820,
3106      2820, 2820, 2820, 2820, 2820, 2820, 2821, 2821, 2821, 2821,
3107      2821, 2821, 2821, 2821, 2821, 2821, 2821, 2821, 2822, 2822,
3108      2822, 2822, 2822, 2822, 2822, 2822, 2822, 2822, 2822, 2822,
3109 
3110      2823, 2823,    0, 2823, 2823, 2823, 2823, 2823, 2823, 2823,
3111      2823, 2823, 2824,    0,    0, 2824, 2825,    0,    0, 2825,
3112         0, 2825, 2825,    0, 2825, 2825, 2825, 2825, 2826, 2826,
3113         0, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826,
3114      2827, 2827,    0, 2827, 2827, 2827, 2827, 2827, 2827, 2827,
3115      2827, 2827, 2828, 2828,    0, 2828, 2828, 2828, 2828, 2828,
3116      2828, 2828, 2828, 2828, 2829,    0,    0,    0, 2829, 2829,
3117      2830,    0,    0, 2830,    0, 2830, 2830, 2830, 2830,    0,
3118      2830, 2830, 2831, 2831,    0, 2831, 2831, 2831, 2831, 2831,
3119      2831, 2831, 2831, 2831, 2832,    0,    0,    0,    0, 2832,
3120 
3121      2832, 2832, 2832,    0, 2832, 2832, 2833,    0,    0, 2833,
3122         0, 2833, 2833, 2833, 2833,    0, 2833, 2833, 2834, 2834,
3123         0, 2834, 2834, 2834, 2834, 2834, 2834, 2834, 2834, 2834,
3124      2835,    0,    0, 2835,    0, 2835, 2835, 2835, 2835,    0,
3125      2835, 2835, 2836, 2836,    0, 2836, 2836, 2836, 2836, 2836,
3126      2836, 2836, 2836, 2836, 2837,    0,    0, 2837,    0, 2837,
3127      2837, 2837, 2837,    0, 2837, 2837, 2838, 2838,    0, 2838,
3128      2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2839,    0,
3129         0, 2839, 2839, 2839, 2839, 2839, 2839, 2839, 2839, 2839,
3130      2840, 2840,    0, 2840, 2840, 2840, 2840, 2840, 2840, 2840,
3131 
3132      2840, 2840, 2841,    0,    0, 2841, 2841, 2841, 2841, 2841,
3133      2841, 2841, 2841, 2841, 2842, 2842,    0, 2842, 2842, 2842,
3134      2842, 2842, 2842, 2842, 2842, 2842, 2843,    0,    0, 2843,
3135      2843, 2843, 2843, 2843, 2843, 2843, 2843, 2843, 2844, 2844,
3136         0, 2844, 2844, 2844, 2844, 2844, 2844, 2844, 2844, 2844,
3137      2845,    0,    0, 2845, 2845, 2845, 2845, 2845, 2845, 2845,
3138      2845, 2845, 2846, 2846,    0, 2846, 2846, 2846, 2846, 2846,
3139      2846, 2846, 2846, 2846, 2847,    0,    0, 2847, 2847, 2847,
3140      2847, 2847, 2847, 2847, 2847, 2847, 2848, 2848,    0, 2848,
3141      2848, 2848, 2848, 2848, 2848, 2848, 2848, 2848, 2849,    0,
3142 
3143         0, 2849, 2849, 2849, 2849, 2849, 2849, 2849, 2849, 2849,
3144      2850, 2850,    0, 2850, 2850, 2850, 2850, 2850, 2850, 2850,
3145      2850, 2850, 2851,    0,    0, 2851,    0, 2851, 2851, 2851,
3146      2851,    0, 2851, 2851, 2852, 2852,    0, 2852, 2852, 2852,
3147      2852, 2852, 2852, 2852, 2852, 2852, 2853,    0,    0, 2853,
3148         0, 2853, 2853, 2853, 2853,    0, 2853, 2853, 2854, 2854,
3149         0, 2854, 2854, 2854, 2854, 2854, 2854, 2854, 2854, 2854,
3150      2855,    0,    0, 2855,    0, 2855, 2855, 2855, 2855,    0,
3151      2855, 2855, 2856, 2856,    0, 2856, 2856, 2856, 2856, 2856,
3152      2856, 2856, 2856, 2856, 2857,    0,    0, 2857, 2857, 2857,
3153 
3154      2857, 2857, 2857, 2857, 2857, 2857, 2858, 2858,    0, 2858,
3155      2858, 2858, 2858, 2858, 2858, 2858, 2858, 2858, 2859,    0,
3156         0, 2859,    0, 2859, 2859,    0, 2859,    0, 2859, 2859,
3157      2860,    0,    0, 2860,    0, 2860, 2860,    0, 2860,    0,
3158      2860, 2860, 2861,    0,    0, 2861,    0, 2861, 2861, 2861,
3159      2861,    0, 2861, 2861, 2862, 2862,    0, 2862, 2862, 2862,
3160      2862, 2862, 2862, 2862, 2862, 2862, 2863,    0,    0, 2863,
3161         0, 2863, 2863, 2863, 2863,    0, 2863, 2863, 2864, 2864,
3162         0, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864,
3163      2865,    0,    0, 2865,    0, 2865, 2865, 2865, 2865,    0,
3164 
3165      2865, 2865, 2866, 2866,    0, 2866, 2866, 2866, 2866, 2866,
3166      2866, 2866, 2866, 2866, 2867, 2867,    0, 2867,    0, 2867,
3167      2867, 2868,    0,    0, 2868,    0, 2868, 2868, 2868, 2868,
3168      2868, 2868, 2868, 2869, 2869,    0, 2869, 2869, 2869, 2869,
3169      2869, 2869, 2869, 2869, 2869, 2870,    0, 2870, 2870,    0,
3170      2870, 2870,    0,    0,    0, 2870, 2870, 2871, 2871, 2871,
3171      2871, 2871, 2871, 2871, 2871, 2871, 2871, 2871, 2871, 2872,
3172      2872,    0, 2872, 2872, 2872, 2872, 2872, 2872, 2872, 2872,
3173      2872, 2873,    0,    0, 2873, 2874,    0, 2874, 2875,    0,
3174         0, 2875,    0, 2875, 2875,    0, 2875, 2875, 2875, 2875,
3175 
3176      2876, 2876,    0, 2876, 2876, 2876, 2876, 2876, 2876, 2876,
3177      2876, 2876, 2877, 2877,    0, 2877, 2877, 2877, 2877, 2877,
3178      2877, 2877, 2877, 2877, 2878, 2878,    0, 2878, 2878, 2878,
3179      2878, 2878, 2878, 2878, 2878, 2878, 2879,    0,    0,    0,
3180      2879, 2879, 2880,    0,    0, 2880,    0, 2880, 2880, 2880,
3181      2880,    0, 2880, 2880, 2881, 2881,    0, 2881, 2881, 2881,
3182      2881, 2881, 2881, 2881, 2881, 2881, 2882,    0,    0,    0,
3183         0, 2882, 2882, 2882, 2882,    0, 2882, 2882, 2883,    0,
3184         0, 2883,    0, 2883, 2883, 2883, 2883,    0, 2883, 2883,
3185      2884, 2884,    0, 2884, 2884, 2884, 2884, 2884, 2884, 2884,
3186 
3187      2884, 2884, 2885,    0,    0, 2885,    0, 2885, 2885, 2885,
3188      2885,    0, 2885, 2885, 2886, 2886,    0, 2886, 2886, 2886,
3189      2886, 2886, 2886, 2886, 2886, 2886, 2887,    0,    0, 2887,
3190         0, 2887, 2887, 2887, 2887,    0, 2887, 2887, 2888, 2888,
3191         0, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888,
3192      2889,    0,    0, 2889, 2889, 2889, 2889, 2889, 2889, 2889,
3193      2889, 2889, 2890,    0,    0, 2890, 2890, 2890, 2890, 2890,
3194      2890, 2890, 2890, 2890, 2891, 2891,    0, 2891, 2891, 2891,
3195      2891, 2891, 2891, 2891, 2891, 2891, 2892, 2892,    0, 2892,
3196      2892, 2892, 2892, 2892, 2892, 2892, 2892, 2892, 2893,    0,
3197 
3198         0, 2893, 2893, 2893, 2893, 2893, 2893, 2893, 2893, 2893,
3199      2894,    0,    0, 2894, 2894, 2894, 2894, 2894, 2894, 2894,
3200      2894, 2894, 2895, 2895,    0, 2895, 2895, 2895, 2895, 2895,
3201      2895, 2895, 2895, 2895, 2896, 2896,    0, 2896, 2896, 2896,
3202      2896, 2896, 2896, 2896, 2896, 2896, 2897,    0,    0, 2897,
3203      2897, 2897, 2897, 2897, 2897, 2897, 2897, 2897, 2898,    0,
3204         0, 2898, 2898, 2898, 2898, 2898, 2898, 2898, 2898, 2898,
3205      2899, 2899,    0, 2899, 2899, 2899, 2899, 2899, 2899, 2899,
3206      2899, 2899, 2900, 2900,    0, 2900, 2900, 2900, 2900, 2900,
3207      2900, 2900, 2900, 2900, 2901,    0,    0, 2901, 2901, 2901,
3208 
3209      2901, 2901, 2901, 2901, 2901, 2901, 2902,    0,    0, 2902,
3210      2902, 2902, 2902, 2902, 2902, 2902, 2902, 2902, 2903, 2903,
3211         0, 2903, 2903, 2903, 2903, 2903, 2903, 2903, 2903, 2903,
3212      2904, 2904,    0, 2904, 2904, 2904, 2904, 2904, 2904, 2904,
3213      2904, 2904, 2905,    0,    0, 2905, 2905, 2905, 2905, 2905,
3214      2905, 2905, 2905, 2905, 2906,    0,    0, 2906, 2906, 2906,
3215      2906, 2906, 2906, 2906, 2906, 2906, 2907, 2907,    0, 2907,
3216      2907, 2907, 2907, 2907, 2907, 2907, 2907, 2907, 2908, 2908,
3217         0, 2908, 2908, 2908, 2908, 2908, 2908, 2908, 2908, 2908,
3218      2909,    0,    0, 2909, 2909, 2909, 2909, 2909, 2909, 2909,
3219 
3220      2909, 2909, 2910,    0,    0, 2910, 2910, 2910, 2910, 2910,
3221      2910, 2910, 2910, 2910, 2911, 2911,    0, 2911, 2911, 2911,
3222      2911, 2911, 2911, 2911, 2911, 2911, 2912, 2912,    0, 2912,
3223      2912, 2912, 2912, 2912, 2912, 2912, 2912, 2912, 2913,    0,
3224         0, 2913,    0, 2913, 2913, 2913, 2913,    0, 2913, 2913,
3225      2914, 2914,    0, 2914, 2914, 2914, 2914, 2914, 2914, 2914,
3226      2914, 2914, 2915,    0,    0, 2915,    0, 2915, 2915, 2915,
3227      2915,    0, 2915, 2915, 2916, 2916,    0, 2916, 2916, 2916,
3228      2916, 2916, 2916, 2916, 2916, 2916, 2917,    0,    0, 2917,
3229         0, 2917, 2917, 2917, 2917,    0, 2917, 2917, 2918, 2918,
3230 
3231         0, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918,
3232      2919,    0,    0, 2919, 2919, 2919, 2919, 2919, 2919, 2919,
3233      2919, 2919, 2920,    0,    0, 2920, 2920, 2920, 2920, 2920,
3234      2920, 2920, 2920, 2920, 2921, 2921,    0, 2921, 2921, 2921,
3235      2921, 2921, 2921, 2921, 2921, 2921, 2922, 2922,    0, 2922,
3236      2922, 2922, 2922, 2922, 2922, 2922, 2922, 2922, 2923,    0,
3237         0, 2923,    0, 2923, 2923,    0, 2923,    0, 2923, 2923,
3238      2924,    0,    0, 2924,    0, 2924, 2924,    0, 2924,    0,
3239      2924, 2924, 2925,    0,    0, 2925,    0, 2925, 2925,    0,
3240      2925,    0, 2925, 2925, 2926,    0,    0, 2926,    0, 2926,
3241 
3242      2926,    0, 2926,    0, 2926, 2926, 2927,    0,    0, 2927,
3243         0, 2927, 2927, 2927, 2927,    0, 2927, 2927, 2928, 2928,
3244         0, 2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928, 2928,
3245      2929,    0,    0, 2929,    0, 2929, 2929, 2929, 2929,    0,
3246      2929, 2929, 2930, 2930,    0, 2930, 2930, 2930, 2930, 2930,
3247      2930, 2930, 2930, 2930, 2931,    0,    0, 2931,    0, 2931,
3248      2931, 2931, 2931,    0, 2931, 2931, 2932, 2932,    0, 2932,
3249      2932, 2932, 2932, 2932, 2932, 2932, 2932, 2932, 2933, 2933,
3250         0, 2933,    0, 2933, 2933, 2934,    0,    0, 2934,    0,
3251      2934, 2934, 2934, 2934, 2934, 2934, 2934, 2935, 2935,    0,
3252 
3253      2935, 2935, 2935, 2935, 2935, 2935, 2935, 2935, 2935, 2936,
3254         0, 2936, 2936,    0, 2936, 2936,    0,    0,    0, 2936,
3255      2936, 2937, 2937, 2937, 2937, 2937, 2937, 2937, 2937, 2937,
3256      2937, 2937, 2937, 2938,    0,    0, 2938,    0, 2938, 2938,
3257         0, 2938, 2938, 2938, 2938, 2939, 2939,    0, 2939, 2939,
3258      2939, 2939, 2939, 2939, 2939, 2939, 2939, 2940, 2940,    0,
3259      2940, 2940, 2940, 2940, 2940, 2940, 2940, 2940, 2940, 2941,
3260      2941,    0, 2941, 2941, 2941, 2941, 2941, 2941, 2941, 2941,
3261      2941, 2942,    0,    0, 2942,    0, 2942, 2942, 2942, 2942,
3262      2942, 2942, 2942, 2943,    0,    0, 2943,    0, 2943, 2943,
3263 
3264      2943, 2943, 2943, 2943, 2943, 2944, 2944,    0, 2944, 2944,
3265      2944, 2944, 2944, 2944, 2944, 2944, 2944, 2945, 2945,    0,
3266      2945, 2945, 2945, 2945, 2945, 2945, 2945, 2945, 2945, 2946,
3267      2946,    0, 2946, 2946, 2946, 2946, 2946, 2946, 2946, 2946,
3268      2946, 2947,    0,    0, 2947,    0, 2947, 2947,    0, 2947,
3269         0, 2947, 2947, 2948, 2948,    0, 2948, 2948, 2948, 2948,
3270      2948, 2948, 2948, 2948, 2948, 2949, 2949,    0, 2949, 2949,
3271      2949, 2949, 2949, 2949, 2949, 2949, 2949, 2950, 2950,    0,
3272      2950, 2950, 2950, 2950, 2950, 2950, 2950, 2950, 2950, 2951,
3273      2951,    0, 2951, 2951, 2951, 2951, 2951, 2951, 2951, 2951,
3274 
3275      2951, 2952, 2952,    0, 2952, 2952, 2952, 2952, 2952, 2952,
3276      2952, 2952, 2952, 2953, 2953,    0, 2953, 2953, 2953, 2953,
3277      2953, 2953, 2953, 2953, 2953, 2954, 2954,    0, 2954, 2954,
3278      2954, 2954, 2954, 2954, 2954, 2954, 2954, 2955, 2955,    0,
3279      2955, 2955, 2955, 2955, 2955, 2955, 2955, 2955, 2955, 2956,
3280      2956,    0, 2956, 2956, 2956, 2956, 2956, 2956, 2956, 2956,
3281      2956, 2957, 2957,    0, 2957, 2957, 2957, 2957, 2957, 2957,
3282      2957, 2957, 2957, 2958, 2958,    0, 2958, 2958, 2958, 2958,
3283      2958, 2958, 2958, 2958, 2958, 2959, 2959,    0, 2959, 2959,
3284      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2960, 2960,    0,
3285 
3286      2960, 2960, 2960, 2960, 2960, 2960, 2960, 2960, 2960, 2961,
3287      2961,    0, 2961, 2961, 2961, 2961, 2961, 2961, 2961, 2961,
3288      2961, 2962, 2962,    0, 2962, 2962, 2962, 2962, 2962, 2962,
3289      2962, 2962, 2962, 2963, 2963,    0, 2963, 2963, 2963, 2963,
3290      2963, 2963, 2963, 2963, 2963, 2802, 2802, 2802, 2802, 2802,
3291      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
3292      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
3293      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
3294      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
3295      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
3296 
3297      2802
3298     } ;
3299 
3300 /* Table of booleans, true if rule could match eol. */
3301 static yyconst flex_int32_t yy_rule_can_match_eol[248] =
3302     {   0,
3303 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3304     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
3305     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3306     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3307     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3308     0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3309     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
3310     0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3311     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3312     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3313     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3314     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3315     0, 0, 0, 1, 1, 0, 0, 0,     };
3316 
3317 extern int socks_yy_flex_debug;
3318 int socks_yy_flex_debug = 0;
3319 
3320 static yy_state_type *yy_state_buf=0, *yy_state_ptr=0;
3321 static char *yy_full_match;
3322 static int yy_lp;
3323 static int yy_looking_for_trail_begin = 0;
3324 static int yy_full_lp;
3325 static int *yy_full_state;
3326 #define YY_TRAILING_MASK 0x2000
3327 #define YY_TRAILING_HEAD_MASK 0x4000
3328 #define REJECT \
3329 { \
3330 *yy_cp = (yy_hold_char); /* undo effects of setting up socks_yytext */ \
3331 yy_cp = (yy_full_match); /* restore poss. backed-over text */ \
3332 (yy_lp) = (yy_full_lp); /* restore orig. accepting pos. */ \
3333 (yy_state_ptr) = (yy_full_state); /* restore orig. state */ \
3334 yy_current_state = *(yy_state_ptr); /* restore curr. state */ \
3335 ++(yy_lp); \
3336 goto find_rule; \
3337 }
3338 
3339 #define yymore() yymore_used_but_not_detected
3340 #define YY_MORE_ADJ 0
3341 #define YY_RESTORE_YY_MORE_OFFSET
3342 char *socks_yytext;
3343 #line 1 "config_scan.l"
3344 /*
3345  * Copyright (c) 1997, 1998, 1999, 2000, 2001, 2002, 2004, 2005, 2006, 2008,
3346  *               2009, 2010, 2011, 2012, 2013, 2014, 2019, 2020, 2021
3347  *      Inferno Nettverk A/S, Norway.  All rights reserved.
3348  *
3349  * Redistribution and use in source and binary forms, with or without
3350  * modification, are permitted provided that the following conditions
3351  * are met:
3352  * 1. The above copyright notice, this list of conditions and the following
3353  *    disclaimer must appear in all copies of the software, derivative works
3354  *    or modified versions, and any portions thereof, aswell as in all
3355  *    supporting documentation.
3356  * 2. All advertising materials mentioning features or use of this software
3357  *    must display the following acknowledgement:
3358  *      This product includes software developed by
3359  *      Inferno Nettverk A/S, Norway.
3360  * 3. The name of the author may not be used to endorse or promote products
3361  *    derived from this software without specific prior written permission.
3362  *
3363  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
3364  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
3365  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
3366  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
3367  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
3368  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
3369  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
3370  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
3371  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
3372  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3373  *
3374  * Inferno Nettverk A/S requests users of this software to return to
3375  *
3376  *  Software Distribution Coordinator  or  sdc@inet.no
3377  *  Inferno Nettverk A/S
3378  *  Oslo Research Park
3379  *  Gaustadall�en 21
3380  *  NO-0349 Oslo
3381  *  Norway
3382  *
3383  * any improvements or extensions that they make and grant Inferno Nettverk A/S
3384  * the rights to redistribute these changes.
3385  *
3386  */
3387 #line 46 "config_scan.l"
3388 
3389 #if 0 /* XXX automatically added at head of generated .c file */
3390 #include "common.h"
3391 #endif
3392 
3393 static const char rcsid[] =
3394 "$Id: config_scan.l,v 1.238.4.3.6.9 2021/02/02 19:34:12 karls Exp $";
3395 
3396 #include "yacconfig.h"
3397 #include "config_parse.h"
3398 
3399 #define YY_STACK_USED 0
3400 #define YY_ALWAYS_INTERACTIVE 0
3401 #define YY_NEVER_INTERACTIVE 1
3402 #define YY_MAIN 0
3403 
3404 #if SOCKS_CLIENT
3405 /*
3406  * stuff that is only defined in the server case, but which I don't know
3407  * how #ifdef out in the lex pattern matching code instead.  Is it possible?
3408  */
3409 #define PROC_MOTHER    0
3410 #define PROC_NEGOTIATE 0
3411 #define PROC_REQUEST   0
3412 #define PROC_IO        0
3413 #define PROC_MONITOR   0
3414 
3415 #endif /* SOCKS_CLIENT */
3416 
3417 static int shouldresetstate(const int current_state, const int next_token);
3418 /*
3419  * If in state "current_state", and the next token is "next_token",
3420  * should we reset the current state?
3421  * Returns true if yes, false if not.
3422  */
3423 
3424 
3425 extern const int      socks_configtype;
3426 extern int            lex_dorestart;
3427 
3428 char   currentlexline[100];   /* just to have some context. */
3429 char   previouslexline[100];  /* just to have some context. */
3430 static unsigned char ismask;
3431 static int inroute, inclientrule;
3432 
3433 /*
3434  * socks_yylineno nonoptimal under flex, reason for 'find_rule' 'yy_flex_realloc'
3435  * warnings.
3436  */
3437 /*%option debug                                             */
3438 /* non-exclusive start conditions. */
3439 
3440 
3441 /* exclusive start conditions */
3442 
3443 
3444 
3445 
3446 
3447 
3448 
3449 
3450 
3451 
3452 
3453 
3454 
3455 
3456 
3457 
3458 
3459 
3460 
3461 /* ldap-stuff. */
3462 
3463 
3464 
3465 
3466 
3467 
3468 
3469 
3470 
3471 
3472 
3473 
3474 
3475 
3476 
3477 
3478 
3479 
3480 
3481 
3482 
3483 
3484 
3485 
3486 
3487 
3488 
3489 #line 3489 "config_scan.c"
3490 
3491 #define INITIAL 0
3492 #define start_address 1
3493 #define start_port 2
3494 #define lineprefix 3
3495 #define start_command 4
3496 #define start_compatibility 5
3497 #define start_line 6
3498 #define start_log 7
3499 #define start_loglevel 8
3500 #define start_logoutput 9
3501 #define start_logtype 10
3502 #define start_errorsymbol 11
3503 #define start_method 12
3504 #define start_option 13
3505 #define start_proxyprotocol 14
3506 #define start_username 15
3507 #define start_groupname 16
3508 #define start_libwrapfile 17
3509 #define start_cpuoption 18
3510 #define start_hostindex 19
3511 #define start_statekey 20
3512 #define start_tcpoption 21
3513 #define start_ldapdomain 22
3514 #define start_ldapbasedn 23
3515 #define start_ldapurl 24
3516 #define start_ldapfilter 25
3517 #define start_ldapattribute 26
3518 #define start_ldapservername 27
3519 #define start_ldapgroupname 28
3520 #define start_ldapkeytabname 29
3521 #define start_ldapcertfile 30
3522 #define start_ldapcertpath 31
3523 #define start_pacsidname 32
3524 #define start_alarmtest 33
3525 #define start_srchost 34
3526 #define start_protocol 35
3527 #define start_servicename 36
3528 #define start_portnumber 37
3529 #define start_bsdauthstylename 38
3530 #define start_gssapiservicename 39
3531 #define start_gssapikeytabname 40
3532 #define start_encryption 41
3533 #define start_realmname 42
3534 #define start_socketprotocol 43
3535 #define start_socketoption 44
3536 #define start_socketoptionvalue 45
3537 #define start_processtype 46
3538 #define start_schedulepolicy 47
3539 #define start_schedulemask 48
3540 
3541 #ifndef YY_NO_UNISTD_H
3542 /* Special case for "unistd.h", since it is non-ANSI. We include it way
3543  * down here because we want the user's section 1 to have been scanned first.
3544  * The user has a chance to override it with an option.
3545  */
3546 #include <unistd.h>
3547 #endif
3548 
3549 #ifndef YY_EXTRA_TYPE
3550 #define YY_EXTRA_TYPE void *
3551 #endif
3552 
3553 static int yy_init_globals (void );
3554 
3555 /* Accessor methods to globals.
3556    These are made visible to non-reentrant scanners for convenience. */
3557 
3558 int socks_yylex_destroy (void );
3559 
3560 int socks_yyget_debug (void );
3561 
3562 void socks_yyset_debug (int debug_flag  );
3563 
3564 YY_EXTRA_TYPE socks_yyget_extra (void );
3565 
3566 void socks_yyset_extra (YY_EXTRA_TYPE user_defined  );
3567 
3568 FILE *socks_yyget_in (void );
3569 
3570 void socks_yyset_in  (FILE * in_str  );
3571 
3572 FILE *socks_yyget_out (void );
3573 
3574 void socks_yyset_out  (FILE * out_str  );
3575 
3576 yy_size_t socks_yyget_leng (void );
3577 
3578 char *socks_yyget_text (void );
3579 
3580 int socks_yyget_lineno (void );
3581 
3582 void socks_yyset_lineno (int line_number  );
3583 
3584 /* Macros after this point can all be overridden by user definitions in
3585  * section 1.
3586  */
3587 
3588 #ifndef YY_SKIP_YYWRAP
3589 #ifdef __cplusplus
3590 extern "C" int socks_yywrap (void );
3591 #else
3592 extern int socks_yywrap (void );
3593 #endif
3594 #endif
3595 
3596 #ifndef yytext_ptr
3597 static void yy_flex_strncpy (char *,yyconst char *,int );
3598 #endif
3599 
3600 #ifdef YY_NEED_STRLEN
3601 static int yy_flex_strlen (yyconst char * );
3602 #endif
3603 
3604 #ifndef YY_NO_INPUT
3605 
3606 #ifdef __cplusplus
3607 static int yyinput (void );
3608 #else
3609 static int input (void );
3610 #endif
3611 
3612 #endif
3613 
3614 /* Amount of stuff to slurp up with each read. */
3615 #ifndef YY_READ_BUF_SIZE
3616 #define YY_READ_BUF_SIZE 8192
3617 #endif
3618 
3619 /* Copy whatever the last rule matched to the standard output. */
3620 #ifndef ECHO
3621 /* This used to be an fputs(), but since the string might contain NUL's,
3622  * we now use fwrite().
3623  */
3624 #define ECHO do { if (fwrite( socks_yytext, socks_yyleng, 1, socks_yyout )) {} } while (0)
3625 #endif
3626 
3627 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
3628  * is returned in "result".
3629  */
3630 #ifndef YY_INPUT
3631 #define YY_INPUT(buf,result,max_size) \
3632 	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
3633 		{ \
3634 		int c = '*'; \
3635 		size_t n; \
3636 		for ( n = 0; n < max_size && \
3637 			     (c = getc( socks_yyin )) != EOF && c != '\n'; ++n ) \
3638 			buf[n] = (char) c; \
3639 		if ( c == '\n' ) \
3640 			buf[n++] = (char) c; \
3641 		if ( c == EOF && ferror( socks_yyin ) ) \
3642 			YY_FATAL_ERROR( "input in flex scanner failed" ); \
3643 		result = n; \
3644 		} \
3645 	else \
3646 		{ \
3647 		errno=0; \
3648 		while ( (result = fread(buf, 1, max_size, socks_yyin))==0 && ferror(socks_yyin)) \
3649 			{ \
3650 			if( errno != EINTR) \
3651 				{ \
3652 				YY_FATAL_ERROR( "input in flex scanner failed" ); \
3653 				break; \
3654 				} \
3655 			errno=0; \
3656 			clearerr(socks_yyin); \
3657 			} \
3658 		}\
3659 \
3660 
3661 #endif
3662 
3663 /* No semi-colon after return; correct usage is to write "yyterminate();" -
3664  * we don't want an extra ';' after the "return" because that will cause
3665  * some compilers to complain about unreachable statements.
3666  */
3667 #ifndef yyterminate
3668 #define yyterminate() return YY_NULL
3669 #endif
3670 
3671 /* Number of entries by which start-condition stack grows. */
3672 #ifndef YY_START_STACK_INCR
3673 #define YY_START_STACK_INCR 25
3674 #endif
3675 
3676 /* Report a fatal error. */
3677 #ifndef YY_FATAL_ERROR
3678 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
3679 #endif
3680 
3681 /* end tables serialization structures and prototypes */
3682 
3683 /* Default declaration of generated scanner - a define so the user can
3684  * easily add parameters.
3685  */
3686 #ifndef YY_DECL
3687 #define YY_DECL_IS_OURS 1
3688 
3689 extern int socks_yylex (void);
3690 
3691 #define YY_DECL int socks_yylex (void)
3692 #endif /* !YY_DECL */
3693 
3694 /* Code executed at the beginning of each rule, after socks_yytext and socks_yyleng
3695  * have been set up.
3696  */
3697 #ifndef YY_USER_ACTION
3698 #define YY_USER_ACTION
3699 #endif
3700 
3701 /* Code executed at the end of each rule. */
3702 #ifndef YY_BREAK
3703 #define YY_BREAK break;
3704 #endif
3705 
3706 #define YY_RULE_SETUP \
3707 	if ( socks_yyleng > 0 ) \
3708 		YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
3709 				(socks_yytext[socks_yyleng - 1] == '\n'); \
3710 	YY_USER_ACTION
3711 
3712 /** The main scanner function which does all the work.
3713  */
3714 YY_DECL
3715 {
3716 	yy_state_type yy_current_state;
3717 	char *yy_cp, *yy_bp;
3718 	int yy_act;
3719 
3720 	if ( !(yy_init) )
3721 		{
3722 		(yy_init) = 1;
3723 
3724 #ifdef YY_USER_INIT
3725 		YY_USER_INIT;
3726 #endif
3727 
3728         /* Create the reject buffer large enough to save one state per allowed character. */
3729         if ( ! (yy_state_buf) )
3730             (yy_state_buf) = (yy_state_type *)socks_yyalloc(YY_STATE_BUF_SIZE  );
3731             if ( ! (yy_state_buf) )
3732                 YY_FATAL_ERROR( "out of dynamic memory in socks_yylex()" );
3733 
3734 		if ( ! (yy_start) )
3735 			(yy_start) = 1;	/* first start state */
3736 
3737 		if ( ! socks_yyin )
3738 			socks_yyin = stdin;
3739 
3740 		if ( ! socks_yyout )
3741 			socks_yyout = stdout;
3742 
3743 		if ( ! YY_CURRENT_BUFFER ) {
3744 			socks_yyensure_buffer_stack ();
3745 			YY_CURRENT_BUFFER_LVALUE =
3746 				socks_yy_create_buffer(socks_yyin,YY_BUF_SIZE );
3747 		}
3748 
3749 		socks_yy_load_buffer_state( );
3750 		}
3751 
3752 	{
3753 #line 167 "config_scan.l"
3754 
3755 
3756 
3757 
3758    if (lex_dorestart) {
3759       lex_dorestart = 0;
3760       inclientrule = inroute = 0;
3761 
3762       switch (socks_configtype) {
3763          case CONFIGTYPE_SERVER:
3764             return SERVERCONFIG;
3765 
3766          case CONFIGTYPE_CLIENT:
3767             return CLIENTCONFIG;
3768 
3769          default:
3770             SERRX(socks_configtype);
3771       }
3772    }
3773 
3774 
3775 #if 0 /* does not work for some reason. */
3776 \n.* {
3777    const char *strip = " \n\t";
3778    const char *p = currentlexline;
3779 
3780    SKIPLEADING(p, strip);
3781    if (strlen(p) > 0)
3782       strcpy(previouslexline, currentlexline);
3783    /* else; blank line. */
3784 
3785    strncpy(currentlexline, socks_yytext, sizeof(currentlexline) - 1);
3786    currentlexline[sizeof(currentlexline) - 1] = NUL;
3787 
3788    ++socks_yylineno;
3789    yyless(1);
3790 }
3791 #endif
3792 
3793 
3794 
3795    /*
3796     * start-condition dependent stuff.
3797     */
3798 
3799 #line 3799 "config_scan.c"
3800 
3801 	while ( 1 )		/* loops until end-of-file is reached */
3802 		{
3803 		yy_cp = (yy_c_buf_p);
3804 
3805 		/* Support of socks_yytext. */
3806 		*yy_cp = (yy_hold_char);
3807 
3808 		/* yy_bp points to the position in yy_ch_buf of the start of
3809 		 * the current run.
3810 		 */
3811 		yy_bp = yy_cp;
3812 
3813 		yy_current_state = (yy_start);
3814 		yy_current_state += YY_AT_BOL();
3815 
3816 		(yy_state_ptr) = (yy_state_buf);
3817 		*(yy_state_ptr)++ = yy_current_state;
3818 
3819 yy_match:
3820 		do
3821 			{
3822 			YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
3823 			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3824 				{
3825 				yy_current_state = (int) yy_def[yy_current_state];
3826 				if ( yy_current_state >= 2803 )
3827 					yy_c = yy_meta[(unsigned int) yy_c];
3828 				}
3829 			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3830 			*(yy_state_ptr)++ = yy_current_state;
3831 			++yy_cp;
3832 			}
3833 		while ( yy_base[yy_current_state] != 7246 );
3834 
3835 yy_find_action:
3836 		yy_current_state = *--(yy_state_ptr);
3837 		(yy_lp) = yy_accept[yy_current_state];
3838 find_rule: /* we branch to this label when backing up */
3839 		for ( ; ; ) /* until we find what rule we matched */
3840 			{
3841 			if ( (yy_lp) && (yy_lp) < yy_accept[yy_current_state + 1] )
3842 				{
3843 				yy_act = yy_acclist[(yy_lp)];
3844 				if ( yy_act & YY_TRAILING_HEAD_MASK ||
3845 				     (yy_looking_for_trail_begin) )
3846 					{
3847 					if ( yy_act == (yy_looking_for_trail_begin) )
3848 						{
3849 						(yy_looking_for_trail_begin) = 0;
3850 						yy_act &= ~YY_TRAILING_HEAD_MASK;
3851 						break;
3852 						}
3853 					}
3854 				else if ( yy_act & YY_TRAILING_MASK )
3855 					{
3856 					(yy_looking_for_trail_begin) = yy_act & ~YY_TRAILING_MASK;
3857 					(yy_looking_for_trail_begin) |= YY_TRAILING_HEAD_MASK;
3858 					}
3859 				else
3860 					{
3861 					(yy_full_match) = yy_cp;
3862 					(yy_full_state) = (yy_state_ptr);
3863 					(yy_full_lp) = (yy_lp);
3864 					break;
3865 					}
3866 				++(yy_lp);
3867 				goto find_rule;
3868 				}
3869 			--yy_cp;
3870 			yy_current_state = *--(yy_state_ptr);
3871 			(yy_lp) = yy_accept[yy_current_state];
3872 			}
3873 
3874 		YY_DO_BEFORE_ACTION;
3875 
3876 		if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
3877 			{
3878 			yy_size_t yyl;
3879 			for ( yyl = 0; yyl < socks_yyleng; ++yyl )
3880 				if ( socks_yytext[yyl] == '\n' )
3881 
3882     socks_yylineno++;
3883 ;
3884 			}
3885 
3886 do_action:	/* This label is used only to access EOF actions. */
3887 
3888 		switch ( yy_act )
3889 	{ /* beginning of action switch */
3890 case 1:
3891 YY_RULE_SETUP
3892 #line 212 "config_scan.l"
3893 {
3894    yylval.string = socks_yytext;
3895    return IPV4;
3896 }
3897 	YY_BREAK
3898 case 2:
3899 YY_RULE_SETUP
3900 #line 217 "config_scan.l"
3901 {
3902    yylval.string = socks_yytext;
3903    return IPV6;
3904 }
3905 	YY_BREAK
3906 case 3:
3907 YY_RULE_SETUP
3908 #line 222 "config_scan.l"
3909 {
3910    yylval.string = socks_yytext;
3911    return ECN;
3912 }
3913 	YY_BREAK
3914 case 4:
3915 YY_RULE_SETUP
3916 #line 227 "config_scan.l"
3917 {
3918    yylval.string = socks_yytext;
3919    return SACK;
3920 }
3921 	YY_BREAK
3922 case 5:
3923 YY_RULE_SETUP
3924 #line 232 "config_scan.l"
3925 {
3926    yylval.string = socks_yytext;
3927    return TIMESTAMPS;
3928 }
3929 	YY_BREAK
3930 case 6:
3931 YY_RULE_SETUP
3932 #line 237 "config_scan.l"
3933 {
3934    yylval.string = socks_yytext;
3935    return WSCALE;
3936 }
3937 	YY_BREAK
3938 case 7:
3939 YY_RULE_SETUP
3940 #line 243 "config_scan.l"
3941 {
3942    yylval.string = socks_yytext;
3943    return MTU_ERROR;
3944 }
3945 	YY_BREAK
3946 case 8:
3947 YY_RULE_SETUP
3948 #line 248 "config_scan.l"
3949 {
3950    BEGIN(0);
3951 
3952    yylval.string = socks_yytext;
3953    return STATEKEY;
3954 }
3955 	YY_BREAK
3956 case 9:
3957 YY_RULE_SETUP
3958 #line 255 "config_scan.l"
3959 {
3960    BEGIN(0);
3961 
3962    yylval.string = socks_yytext;
3963    return SERVICENAME;
3964 }
3965 	YY_BREAK
3966 case 10:
3967 YY_RULE_SETUP
3968 #line 262 "config_scan.l"
3969 {
3970    yylval.string = socks_yytext;
3971    return PROXYPROTOCOL_SOCKS_V4;
3972 }
3973 	YY_BREAK
3974 case 11:
3975 YY_RULE_SETUP
3976 #line 267 "config_scan.l"
3977 {
3978    yylval.string = socks_yytext;
3979    return PROXYPROTOCOL_SOCKS_V5;
3980 }
3981 	YY_BREAK
3982 case 12:
3983 YY_RULE_SETUP
3984 #line 272 "config_scan.l"
3985 {
3986    yylval.string = socks_yytext;
3987    return PROXYPROTOCOL_HTTP;
3988 }
3989 	YY_BREAK
3990 case 13:
3991 YY_RULE_SETUP
3992 #line 277 "config_scan.l"
3993 {
3994    yylval.string = socks_yytext;
3995    return PROXYPROTOCOL_UPNP;
3996 }
3997 	YY_BREAK
3998 case 14:
3999 YY_RULE_SETUP
4000 #line 282 "config_scan.l"
4001 {
4002    yylval.string = socks_yytext;
4003    return COMMAND_BIND;
4004 }
4005 	YY_BREAK
4006 case 15:
4007 YY_RULE_SETUP
4008 #line 287 "config_scan.l"
4009 {
4010    yylval.string = socks_yytext;
4011    return COMMAND_CONNECT;
4012 }
4013 	YY_BREAK
4014 case 16:
4015 YY_RULE_SETUP
4016 #line 292 "config_scan.l"
4017 {
4018    yylval.string = socks_yytext;
4019    return COMMAND_UDPASSOCIATE;
4020 }
4021 	YY_BREAK
4022 case 17:
4023 YY_RULE_SETUP
4024 #line 297 "config_scan.l"
4025 {
4026    yylval.string = socks_yytext;
4027    return COMMAND_BINDREPLY;
4028 }
4029 	YY_BREAK
4030 case 18:
4031 YY_RULE_SETUP
4032 #line 302 "config_scan.l"
4033 {
4034    yylval.string = socks_yytext;
4035    return COMMAND_UDPREPLY;
4036 }
4037 	YY_BREAK
4038 case 19:
4039 YY_RULE_SETUP
4040 #line 308 "config_scan.l"
4041 {
4042    yylval.string = socks_yytext;
4043    return URL;
4044 }
4045 	YY_BREAK
4046 case 20:
4047 YY_RULE_SETUP
4048 #line 313 "config_scan.l"
4049 {
4050    BEGIN(start_port);
4051 
4052    yylval.string = socks_yytext;
4053    return DOMAINNAME;
4054 }
4055 	YY_BREAK
4056 case 21:
4057 *yy_cp = (yy_hold_char); /* undo effects of setting up socks_yytext */
4058 (yy_c_buf_p) = yy_cp = yy_bp + 1;
4059 YY_DO_BEFORE_ACTION; /* set up socks_yytext again */
4060 YY_RULE_SETUP
4061 #line 320 "config_scan.l"
4062 {
4063    /*
4064     * For some reason can't get the above "0/\/" included in the
4065     * address regexp below: "unrecognized rule" flex says.
4066     */
4067 
4068    BEGIN(start_port);
4069 
4070    yylval.string = socks_yytext;
4071    return IPVANY;
4072 }
4073 	YY_BREAK
4074 case 22:
4075 YY_RULE_SETUP
4076 #line 332 "config_scan.l"
4077 {
4078    struct sockaddr_storage addr, mask;
4079    struct in6_addr ipv6;
4080    struct in_addr ipv4;
4081    char visbuf[256];
4082 
4083    BEGIN(start_port);
4084 
4085    yylval.string = socks_yytext;
4086 
4087    /*
4088     * we don't have a reliable regex to differentiate between a
4089     * domainname and ifname on all systems.
4090     * With a very general regex like the above, it is not so easy
4091     * to exclude an ipaddress from matching it also.  So instead
4092     * of continuing to try and create a perfect regex, do a brute force
4093     * check to see what the text represents.
4094     */
4095 
4096    if (socks_inet_pton(AF_INET, socks_yytext, &ipv4, NULL) == 1)
4097       return IPV4;
4098 
4099    if (socks_inet_pton(AF_INET6, socks_yytext, &ipv6, NULL) == 1) {
4100       if (IN6_IS_ADDR_V4MAPPED(&ipv6))
4101          yyerrorx("we do not use IPv4-mapped IPv6 addresses.  Please specify "
4102                   "a regular IPv4 address instead if you want use IPv4");
4103       else
4104          return IPV6;
4105    }
4106 
4107    errno = 0;
4108    if (ifname2sockaddr(socks_yytext, 0, &addr, &mask) != NULL)
4109       return IFNAME;
4110    else {
4111       if (ERRNOISNOFILE(errno))
4112          yyerror("no free filedescriptors: can not access information on "
4113                  "whether \"%s\" is a local NIC or not",
4114                  str2vis(socks_yytext, strlen(socks_yytext), visbuf, sizeof(visbuf)));
4115    }
4116 
4117    slog(LOG_DEBUG,
4118         "\"%s\" appears to be neither ipaddress nor ifname; assuming hostname ",
4119         socks_yytext);
4120 
4121    return DOMAINNAME;
4122 }
4123 	YY_BREAK
4124 case 23:
4125 YY_RULE_SETUP
4126 #line 379 "config_scan.l"
4127 {
4128    yylval.string = socks_yytext;
4129    return PORT;
4130 }
4131 	YY_BREAK
4132 /*
4133     * cpu options.
4134     */
4135 case 24:
4136 YY_RULE_SETUP
4137 #line 388 "config_scan.l"
4138 {
4139    BEGIN(start_cpuoption);
4140 
4141    yylval.string = socks_yytext;
4142    return CPU;
4143 }
4144 	YY_BREAK
4145 case 25:
4146 YY_RULE_SETUP
4147 #line 395 "config_scan.l"
4148 {
4149    BEGIN(start_processtype);
4150 
4151    ismask = 0;
4152 
4153    yylval.string = socks_yytext;
4154    return SCHEDULE;
4155 }
4156 	YY_BREAK
4157 case 26:
4158 YY_RULE_SETUP
4159 #line 404 "config_scan.l"
4160 {
4161    BEGIN(start_processtype);
4162 
4163    ismask = 1;
4164 
4165    yylval.string = socks_yytext;
4166    return MASK;
4167 }
4168 	YY_BREAK
4169 case 27:
4170 YY_RULE_SETUP
4171 #line 413 "config_scan.l"
4172 {
4173    BEGIN(ismask ? start_schedulemask : start_schedulepolicy);
4174 
4175    yylval.number = PROC_MOTHER;
4176    return PROCESSTYPE;
4177 }
4178 	YY_BREAK
4179 case 28:
4180 YY_RULE_SETUP
4181 #line 420 "config_scan.l"
4182 {
4183    BEGIN(ismask ? start_schedulemask : start_schedulepolicy);
4184 
4185    yylval.number = PROC_MONITOR;
4186    return PROCESSTYPE;
4187 }
4188 	YY_BREAK
4189 case 29:
4190 YY_RULE_SETUP
4191 #line 427 "config_scan.l"
4192 {
4193    BEGIN(ismask ? start_schedulemask : start_schedulepolicy);
4194 
4195    yylval.number = PROC_NEGOTIATE;
4196    return PROCESSTYPE;
4197 }
4198 	YY_BREAK
4199 case 30:
4200 YY_RULE_SETUP
4201 #line 434 "config_scan.l"
4202 {
4203    BEGIN(ismask ? start_schedulemask : start_schedulepolicy);
4204 
4205    yylval.number = PROC_REQUEST;
4206    return PROCESSTYPE;
4207 }
4208 	YY_BREAK
4209 case 31:
4210 YY_RULE_SETUP
4211 #line 441 "config_scan.l"
4212 {
4213    BEGIN(ismask ? start_schedulemask : start_schedulepolicy);
4214 
4215    yylval.number = PROC_IO;
4216    return PROCESSTYPE;
4217 }
4218 	YY_BREAK
4219 case 32:
4220 YY_RULE_SETUP
4221 #line 448 "config_scan.l"
4222 {
4223    BEGIN(0);
4224 
4225    yylval.number = CPUMASK_ANYCPU;
4226    return NUMBER;
4227 }
4228 	YY_BREAK
4229 case 33:
4230 /* rule 33 can match eol */
4231 YY_RULE_SETUP
4232 #line 455 "config_scan.l"
4233 {
4234 #if SOCKS_CLIENT
4235    SERRX(0);
4236 
4237 #else /* !SOCKS_CLIENT */
4238 
4239 #if HAVE_SCHED_SETSCHEDULER
4240 
4241    BEGIN(0);
4242 
4243    if ((yylval.number = cpupolicy2numeric(socks_yytext)) == -1)
4244       yyerrorx("unknown scheduling policy \"%s\"", socks_yytext);
4245 
4246    return SCHEDULEPOLICY;
4247 
4248 #else /* !HAVE_SCHED_SETSCHEDULER */
4249 
4250    yyerrorx("setting cpu scheduling policy is not supported on this platform");
4251 
4252 #endif /* !HAVE_SCHED_SETSCHEDULER */
4253 
4254 #endif /* SOCKS_CLIENT */
4255 }
4256 	YY_BREAK
4257 /*
4258      * socket option stuff.
4259      */
4260 case 34:
4261 YY_RULE_SETUP
4262 #line 484 "config_scan.l"
4263 {
4264    BEGIN(start_socketoption);
4265 
4266    yylval.number = IPPROTO_IP;
4267    return SOCKETPROTOCOL;
4268 }
4269 	YY_BREAK
4270 case 35:
4271 YY_RULE_SETUP
4272 #line 491 "config_scan.l"
4273 {
4274    BEGIN(start_socketoption);
4275 
4276    yylval.number = SOL_SOCKET;
4277    return SOCKETPROTOCOL;
4278 }
4279 	YY_BREAK
4280 case 36:
4281 YY_RULE_SETUP
4282 #line 498 "config_scan.l"
4283 {
4284    BEGIN(start_socketoption);
4285 
4286    yylval.number = IPPROTO_TCP;
4287    return SOCKETPROTOCOL;
4288 }
4289 	YY_BREAK
4290 case 37:
4291 YY_RULE_SETUP
4292 #line 505 "config_scan.l"
4293 {
4294    BEGIN(start_socketoption);
4295 
4296    yylval.number = IPPROTO_UDP;
4297    return SOCKETPROTOCOL;
4298 }
4299 	YY_BREAK
4300 case 38:
4301 YY_RULE_SETUP
4302 #line 513 "config_scan.l"
4303 {
4304    const sockopt_t *sockopt;
4305 
4306    BEGIN(start_socketoptionvalue);
4307 
4308    if ((sockopt = optname2sockopt(socks_yytext)) == NULL)
4309       yyerrorx("unknown socket option \"%s\"", socks_yytext);
4310 
4311    yylval.number = (ssize_t)sockopt->optid;
4312    return SOCKETOPTION_OPTID;
4313 }
4314 	YY_BREAK
4315 case 39:
4316 YY_RULE_SETUP
4317 #line 525 "config_scan.l"
4318 {
4319    BEGIN(0);
4320 
4321    yylval.string = socks_yytext;
4322    return SOCKETOPTION_SYMBOLICVALUE;
4323 }
4324 	YY_BREAK
4325 case 40:
4326 YY_RULE_SETUP
4327 #line 532 "config_scan.l"
4328 {
4329    yylval.string = socks_yytext;
4330    return RULE_LOG_CONNECT;
4331 }
4332 	YY_BREAK
4333 case 41:
4334 YY_RULE_SETUP
4335 #line 537 "config_scan.l"
4336 {
4337    yylval.string = socks_yytext;
4338    return RULE_LOG_DATA;
4339 }
4340 	YY_BREAK
4341 case 42:
4342 YY_RULE_SETUP
4343 #line 542 "config_scan.l"
4344 {
4345    yylval.string = socks_yytext;
4346    return RULE_LOG_DISCONNECT;
4347 }
4348 	YY_BREAK
4349 case 43:
4350 YY_RULE_SETUP
4351 #line 547 "config_scan.l"
4352 {
4353    yylval.string = socks_yytext;
4354    return RULE_LOG_ERROR;
4355 }
4356 	YY_BREAK
4357 case 44:
4358 YY_RULE_SETUP
4359 #line 552 "config_scan.l"
4360 {
4361    yylval.string = socks_yytext;
4362    return RULE_LOG_IOOPERATION;
4363 }
4364 	YY_BREAK
4365 case 45:
4366 YY_RULE_SETUP
4367 #line 557 "config_scan.l"
4368 {
4369    yylval.string = socks_yytext;
4370    return RULE_LOG_TCPINFO;
4371 }
4372 	YY_BREAK
4373 case 46:
4374 *yy_cp = (yy_hold_char); /* undo effects of setting up socks_yytext */
4375 (yy_c_buf_p) = yy_cp -= 1;
4376 YY_DO_BEFORE_ACTION; /* set up socks_yytext again */
4377 YY_RULE_SETUP
4378 #line 562 "config_scan.l"
4379 {
4380    const loglevel_t *l;
4381    char visbuf[256];
4382 
4383    BEGIN(start_logtype);
4384 
4385    if ((l = loglevel(socks_yytext)) == NULL)
4386       yyerror("unknown loglevel: \"%s\"",
4387               str2vis(socks_yytext, strlen(socks_yytext), visbuf, sizeof(visbuf)));
4388 
4389    yylval.number = l->value;
4390    return LOGLEVEL;
4391 }
4392 	YY_BREAK
4393 case 47:
4394 YY_RULE_SETUP
4395 #line 576 "config_scan.l"
4396 {
4397    BEGIN(start_errorsymbol);
4398 
4399    yylval.string = socks_yytext;
4400    return LOGTYPE_ERROR;
4401 }
4402 	YY_BREAK
4403 case 48:
4404 YY_RULE_SETUP
4405 #line 583 "config_scan.l"
4406 {
4407    BEGIN(start_tcpoption);
4408 
4409    yylval.string = socks_yytext;
4410    return LOGTYPE_TCP_DISABLED;
4411 }
4412 	YY_BREAK
4413 case 49:
4414 YY_RULE_SETUP
4415 #line 590 "config_scan.l"
4416 {
4417    BEGIN(start_tcpoption);
4418 
4419    yylval.string = socks_yytext;
4420    return LOGTYPE_TCP_ENABLED;
4421 }
4422 	YY_BREAK
4423 case 50:
4424 YY_RULE_SETUP
4425 #line 598 "config_scan.l"
4426 {
4427 #if !SOCKS_CLIENT
4428 
4429    /*
4430     * Figure out what kind of error-symbol we are dealing with.
4431     * Since we do not force the user to specify what kind of symbol
4432     * he specifies, we have to try all variants.
4433     */
4434    if ((yylval.error.valuev = gaivalue(socks_yytext)) != NULL)
4435       yylval.error.valuetype = VALUETYPE_GAIERR;
4436    else if ((yylval.error.valuev = errnovalue(socks_yytext)) != NULL)
4437       yylval.error.valuetype = VALUETYPE_ERRNO;
4438 
4439 #else /* SOCKS_CLIENT */
4440 
4441    yylval.error.valuev = NULL;
4442 
4443 #endif /* SOCKS_CLIENT */
4444 
4445    return ERRORVALUE;
4446 }
4447 	YY_BREAK
4448 case 51:
4449 YY_RULE_SETUP
4450 #line 620 "config_scan.l"
4451 {
4452    yylval.string = socks_yytext;
4453    return BSDAUTHSTYLENAME;
4454 }
4455 	YY_BREAK
4456 case 52:
4457 YY_RULE_SETUP
4458 #line 625 "config_scan.l"
4459 {
4460    yylval.string = socks_yytext;
4461    return LOGFILE;
4462 }
4463 	YY_BREAK
4464 case 53:
4465 YY_RULE_SETUP
4466 #line 630 "config_scan.l"
4467 {
4468    yylval.string = socks_yytext;
4469    return USERNAME;
4470 }
4471 	YY_BREAK
4472 case 54:
4473 YY_RULE_SETUP
4474 #line 635 "config_scan.l"
4475 {
4476    yylval.string = socks_yytext;
4477    return GROUPNAME;
4478 }
4479 	YY_BREAK
4480 case 55:
4481 YY_RULE_SETUP
4482 #line 640 "config_scan.l"
4483 {
4484    yylval.string = socks_yytext;
4485    return LIBWRAP_FILE;
4486 }
4487 	YY_BREAK
4488 case 56:
4489 YY_RULE_SETUP
4490 #line 645 "config_scan.l"
4491 {
4492    yylval.string = socks_yytext;
4493    return LDAP_DOMAIN;
4494 }
4495 	YY_BREAK
4496 case 57:
4497 YY_RULE_SETUP
4498 #line 650 "config_scan.l"
4499 {
4500    yylval.string = socks_yytext;
4501    return LDAP_BASEDN;
4502 }
4503 	YY_BREAK
4504 case 58:
4505 YY_RULE_SETUP
4506 #line 655 "config_scan.l"
4507 {
4508    yylval.string = socks_yytext;
4509    return LDAP_FILTER;
4510 }
4511 	YY_BREAK
4512 case 59:
4513 YY_RULE_SETUP
4514 #line 660 "config_scan.l"
4515 {
4516    yylval.string = socks_yytext;
4517    return LDAP_URL;
4518 }
4519 	YY_BREAK
4520 case 60:
4521 YY_RULE_SETUP
4522 #line 665 "config_scan.l"
4523 {
4524    yylval.string = socks_yytext;
4525    return LDAP_ATTRIBUTE;
4526 }
4527 	YY_BREAK
4528 case 61:
4529 YY_RULE_SETUP
4530 #line 670 "config_scan.l"
4531 {
4532    yylval.string = socks_yytext;
4533    return LDAPGROUP_NAME;
4534 }
4535 	YY_BREAK
4536 case 62:
4537 YY_RULE_SETUP
4538 #line 675 "config_scan.l"
4539 {
4540    yylval.string = socks_yytext;
4541    return LDAPSERVER_NAME;
4542 }
4543 	YY_BREAK
4544 case 63:
4545 YY_RULE_SETUP
4546 #line 680 "config_scan.l"
4547 {
4548    yylval.string = socks_yytext;
4549    return LDAP_CERTFILE;
4550 }
4551 	YY_BREAK
4552 case 64:
4553 YY_RULE_SETUP
4554 #line 685 "config_scan.l"
4555 {
4556    yylval.string = socks_yytext;
4557    return LDAP_CERTPATH;
4558 }
4559 	YY_BREAK
4560 case 65:
4561 YY_RULE_SETUP
4562 #line 690 "config_scan.l"
4563 {
4564    yylval.string = socks_yytext;
4565    return LDAPKEYTABNAME;
4566 }
4567 	YY_BREAK
4568 case 66:
4569 YY_RULE_SETUP
4570 #line 695 "config_scan.l"
4571 {
4572    yylval.string = socks_yytext;
4573    return LDAPKEYTABNAME;
4574 }
4575 	YY_BREAK
4576 case 67:
4577 YY_RULE_SETUP
4578 #line 700 "config_scan.l"
4579 {
4580    yylval.string = socks_yytext;
4581    return PACSID_NAME;
4582 }
4583 	YY_BREAK
4584 case 68:
4585 YY_RULE_SETUP
4586 #line 705 "config_scan.l"
4587 {
4588    yylval.string = socks_yytext;
4589    return GSSAPIKEYTABNAME;
4590 }
4591 	YY_BREAK
4592 case 69:
4593 YY_RULE_SETUP
4594 #line 710 "config_scan.l"
4595 {
4596    yylval.string = socks_yytext;
4597    return GSSAPIKEYTABNAME;
4598 }
4599 	YY_BREAK
4600 case 70:
4601 YY_RULE_SETUP
4602 #line 715 "config_scan.l"
4603 {
4604    yylval.string = socks_yytext;
4605    return GSSAPISERVICENAME;
4606 }
4607 	YY_BREAK
4608 case 71:
4609 YY_RULE_SETUP
4610 #line 720 "config_scan.l"
4611 {
4612    BEGIN(start_line);
4613 
4614    yylval.string = socks_yytext;
4615    return *socks_yytext;
4616 }
4617 	YY_BREAK
4618 case 72:
4619 YY_RULE_SETUP
4620 #line 727 "config_scan.l"
4621 {
4622    BEGIN(0);
4623 
4624    yylval.string = socks_yytext;
4625    return LINE;
4626 }
4627 	YY_BREAK
4628 case 73:
4629 YY_RULE_SETUP
4630 #line 734 "config_scan.l"
4631 {
4632    yylval.string = socks_yytext;
4633    return NODNSMISMATCH;
4634 }
4635 	YY_BREAK
4636 case 74:
4637 YY_RULE_SETUP
4638 #line 739 "config_scan.l"
4639 {
4640    yylval.string = socks_yytext;
4641    return NODNSUNKNOWN;
4642 }
4643 	YY_BREAK
4644 case 75:
4645 YY_RULE_SETUP
4646 #line 744 "config_scan.l"
4647 {
4648    yylval.string = socks_yytext;
4649    return CHECKREPLYAUTH;
4650 }
4651 	YY_BREAK
4652 case 76:
4653 YY_RULE_SETUP
4654 #line 749 "config_scan.l"
4655 {
4656    yylval.string = socks_yytext;
4657    return PROTOCOL_TCP;
4658 }
4659 	YY_BREAK
4660 case 77:
4661 YY_RULE_SETUP
4662 #line 754 "config_scan.l"
4663 {
4664    yylval.string = socks_yytext;
4665    return PROTOCOL_UDP;
4666 }
4667 	YY_BREAK
4668 case 78:
4669 YY_RULE_SETUP
4670 #line 759 "config_scan.l"
4671 {
4672    yylval.string = socks_yytext;
4673    return PROTOCOL_FAKE;
4674 }
4675 	YY_BREAK
4676 case 79:
4677 YY_RULE_SETUP
4678 #line 764 "config_scan.l"
4679 {
4680    yylval.string = socks_yytext;
4681    return GSSAPIENC_ANY;
4682 }
4683 	YY_BREAK
4684 case 80:
4685 YY_RULE_SETUP
4686 #line 769 "config_scan.l"
4687 {
4688    yylval.string = socks_yytext;
4689    return GSSAPIENC_CLEAR;
4690 }
4691 	YY_BREAK
4692 case 81:
4693 YY_RULE_SETUP
4694 #line 774 "config_scan.l"
4695 {
4696    yylval.string = socks_yytext;
4697    return GSSAPIENC_INTEGRITY;
4698 }
4699 	YY_BREAK
4700 case 82:
4701 YY_RULE_SETUP
4702 #line 779 "config_scan.l"
4703 {
4704    yylval.string = socks_yytext;
4705    return GSSAPIENC_CONFIDENTIALITY;
4706 }
4707 	YY_BREAK
4708 case 83:
4709 YY_RULE_SETUP
4710 #line 784 "config_scan.l"
4711 {
4712    yylval.string = socks_yytext;
4713    return GSSAPIENC_PERMESSAGE;
4714 }
4715 	YY_BREAK
4716 case 84:
4717 YY_RULE_SETUP
4718 #line 789 "config_scan.l"
4719 {
4720    yylval.string = socks_yytext;
4721    return REALNAME;
4722 }
4723 	YY_BREAK
4724 case 85:
4725 YY_RULE_SETUP
4726 #line 794 "config_scan.l"
4727 {
4728    yylval.method = AUTHMETHOD_NONE;
4729    return METHODNAME;
4730 }
4731 	YY_BREAK
4732 case 86:
4733 YY_RULE_SETUP
4734 #line 799 "config_scan.l"
4735 {
4736    yylval.method = AUTHMETHOD_GSSAPI;
4737    return METHODNAME;
4738 }
4739 	YY_BREAK
4740 case 87:
4741 YY_RULE_SETUP
4742 #line 804 "config_scan.l"
4743 {
4744    yylval.method = AUTHMETHOD_UNAME;
4745    return METHODNAME;
4746 }
4747 	YY_BREAK
4748 case 88:
4749 YY_RULE_SETUP
4750 #line 809 "config_scan.l"
4751 {
4752    yylval.method = AUTHMETHOD_RFC931;
4753    return METHODNAME;
4754 }
4755 	YY_BREAK
4756 case 89:
4757 YY_RULE_SETUP
4758 #line 814 "config_scan.l"
4759 {
4760    yylval.number = AUTHMETHOD_PAM_ANY;
4761    return METHODNAME;
4762 }
4763 	YY_BREAK
4764 case 90:
4765 YY_RULE_SETUP
4766 #line 819 "config_scan.l"
4767 {
4768    yylval.method = AUTHMETHOD_PAM_ADDRESS;
4769    return METHODNAME;
4770 }
4771 	YY_BREAK
4772 case 91:
4773 YY_RULE_SETUP
4774 #line 824 "config_scan.l"
4775 {
4776    yylval.method = AUTHMETHOD_PAM_USERNAME;
4777    return METHODNAME;
4778 }
4779 	YY_BREAK
4780 case 92:
4781 YY_RULE_SETUP
4782 #line 829 "config_scan.l"
4783 {
4784    yywarnx_deprecated(socks_yytext, "pam.*");
4785 
4786    yylval.method = AUTHMETHOD_PAM_USERNAME;
4787    return METHODNAME;
4788 }
4789 	YY_BREAK
4790 case 93:
4791 YY_RULE_SETUP
4792 #line 837 "config_scan.l"
4793 {
4794    yylval.method = AUTHMETHOD_BSDAUTH;
4795    return METHODNAME;
4796 }
4797 	YY_BREAK
4798 case 94:
4799 YY_RULE_SETUP
4800 #line 842 "config_scan.l"
4801 {
4802    yylval.method = AUTHMETHOD_LDAPAUTH;
4803    return METHODNAME;
4804 }
4805 	YY_BREAK
4806 /* non-start condition dependents. */
4807 case 95:
4808 YY_RULE_SETUP
4809 #line 849 "config_scan.l"
4810 {
4811    BEGIN(start_servicename);
4812 
4813    yylval.string = socks_yytext;
4814    return OPERATOR;
4815 }
4816 	YY_BREAK
4817 case 96:
4818 YY_RULE_SETUP
4819 #line 856 "config_scan.l"
4820 {
4821    inclientrule = 1;
4822 
4823    yylval.string = socks_yytext;
4824    return CLIENTRULE;
4825 }
4826 	YY_BREAK
4827 case 97:
4828 YY_RULE_SETUP
4829 #line 863 "config_scan.l"
4830 {
4831    yylval.string = socks_yytext;
4832    return HOSTIDRULE;
4833 }
4834 	YY_BREAK
4835 case 98:
4836 YY_RULE_SETUP
4837 #line 868 "config_scan.l"
4838 {
4839    yylval.string = socks_yytext;
4840    return SOCKSRULE;
4841 }
4842 	YY_BREAK
4843 case 99:
4844 YY_RULE_SETUP
4845 #line 873 "config_scan.l"
4846 { /* deprecated socks rule  syntax, without "socks "-prefix. */
4847 #if SOCKS_CLIENT
4848 
4849    yyerrorx("pass/block rules are not used in the client");
4850 
4851 #else /* server */
4852    char old[256], new[256];
4853 
4854    snprintf(old, sizeof(old), "%s", socks_yytext);
4855    STRIPTRAILING(old, strlen(old), " \t");
4856 
4857    snprintf(new, sizeof(new), "socks %s", old);
4858 
4859    yywarnx_deprecated(old, new);
4860 
4861    yyless(0);
4862 
4863    return SOCKSRULE;
4864 
4865 #endif /* server */
4866 }
4867 	YY_BREAK
4868 case 100:
4869 YY_RULE_SETUP
4870 #line 896 "config_scan.l"
4871 {
4872    yylval.string = socks_yytext;
4873    return ALARMTYPE_DATA;
4874 }
4875 	YY_BREAK
4876 case 101:
4877 YY_RULE_SETUP
4878 #line 901 "config_scan.l"
4879 {
4880    yylval.string = socks_yytext;
4881    return ALARMTYPE_DISCONNECT;
4882 }
4883 	YY_BREAK
4884 case 102:
4885 *yy_cp = (yy_hold_char); /* undo effects of setting up socks_yytext */
4886 (yy_c_buf_p) = yy_cp = yy_bp + 5;
4887 YY_DO_BEFORE_ACTION; /* set up socks_yytext again */
4888 YY_RULE_SETUP
4889 #line 906 "config_scan.l"
4890 {
4891    BEGIN(start_alarmtest);
4892 
4893    yylval.string = socks_yytext;
4894    return ALARM;
4895 }
4896 	YY_BREAK
4897 case 103:
4898 /* rule 103 can match eol */
4899 *yy_cp = (yy_hold_char); /* undo effects of setting up socks_yytext */
4900 YY_LINENO_REWIND_TO(yy_bp + 5);
4901 (yy_c_buf_p) = yy_cp = yy_bp + 5;
4902 YY_DO_BEFORE_ACTION; /* set up socks_yytext again */
4903 YY_RULE_SETUP
4904 #line 914 "config_scan.l"
4905 {
4906    yylval.string = socks_yytext;
4907    return RECVSIDE;
4908 }
4909 	YY_BREAK
4910 case 104:
4911 /* rule 104 can match eol */
4912 *yy_cp = (yy_hold_char); /* undo effects of setting up socks_yytext */
4913 YY_LINENO_REWIND_TO(yy_bp + 5);
4914 (yy_c_buf_p) = yy_cp = yy_bp + 5;
4915 YY_DO_BEFORE_ACTION; /* set up socks_yytext again */
4916 YY_RULE_SETUP
4917 #line 919 "config_scan.l"
4918 {
4919    yylval.string = socks_yytext;
4920    return SENDSIDE;
4921 }
4922 	YY_BREAK
4923 case 105:
4924 YY_RULE_SETUP
4925 #line 924 "config_scan.l"
4926 {
4927    yylval.string = socks_yytext;
4928    return DEBUGGING;
4929 }
4930 	YY_BREAK
4931 case 106:
4932 YY_RULE_SETUP
4933 #line 929 "config_scan.l"
4934 {
4935    inroute = 1;
4936 
4937    yylval.string = socks_yytext;
4938    return ROUTE;
4939 }
4940 	YY_BREAK
4941 case 107:
4942 YY_RULE_SETUP
4943 #line 936 "config_scan.l"
4944 {
4945    yylval.string = socks_yytext;
4946    return ROUTE;
4947 }
4948 	YY_BREAK
4949 case 108:
4950 YY_RULE_SETUP
4951 #line 942 "config_scan.l"
4952 {
4953    yylval.string = socks_yytext;
4954    return GLOBALROUTEOPTION;
4955 }
4956 	YY_BREAK
4957 case 109:
4958 YY_RULE_SETUP
4959 #line 948 "config_scan.l"
4960 {
4961    yylval.string = socks_yytext;
4962    return MAXFAIL;
4963 }
4964 	YY_BREAK
4965 case 110:
4966 YY_RULE_SETUP
4967 #line 953 "config_scan.l"
4968 {
4969    yylval.string = socks_yytext;
4970    return BADROUTE_EXPIRE;
4971 }
4972 	YY_BREAK
4973 case 111:
4974 YY_RULE_SETUP
4975 #line 958 "config_scan.l"
4976 {
4977    BEGIN(start_protocol);
4978 
4979    yylval.string = socks_yytext;
4980    return RESOLVEPROTOCOL;
4981 }
4982 	YY_BREAK
4983 case 112:
4984 YY_RULE_SETUP
4985 #line 965 "config_scan.l"
4986 {
4987    BEGIN(start_srchost);
4988 
4989    yylval.string = socks_yytext;
4990    return SRCHOST;
4991 }
4992 	YY_BREAK
4993 case 113:
4994 YY_RULE_SETUP
4995 #line 972 "config_scan.l"
4996 {
4997    BEGIN(start_proxyprotocol);
4998 
4999    yylval.string = socks_yytext;
5000    return PROXYPROTOCOL;
5001 }
5002 	YY_BREAK
5003 case 114:
5004 YY_RULE_SETUP
5005 #line 979 "config_scan.l"
5006 {
5007    BEGIN(start_logoutput);
5008 
5009    yylval.string = socks_yytext;
5010    return ERRORLOG;
5011 }
5012 	YY_BREAK
5013 case 115:
5014 YY_RULE_SETUP
5015 #line 986 "config_scan.l"
5016 {
5017    BEGIN(start_logoutput);
5018 
5019    yylval.string = socks_yytext;
5020    return LOGOUTPUT;
5021 }
5022 	YY_BREAK
5023 case 116:
5024 YY_RULE_SETUP
5025 #line 994 "config_scan.l"
5026 {
5027    BEGIN(start_protocol);
5028 
5029    yylval.string = socks_yytext;
5030    return PROTOCOL;
5031 }
5032 	YY_BREAK
5033 case 117:
5034 YY_RULE_SETUP
5035 #line 1001 "config_scan.l"
5036 {
5037    BEGIN(start_command);
5038 
5039    yylval.string = socks_yytext;
5040    return COMMAND;
5041 }
5042 	YY_BREAK
5043 case 118:
5044 YY_RULE_SETUP
5045 #line 1008 "config_scan.l"
5046 {
5047    yylval.string = socks_yytext;
5048    return UDPPORTRANGE;
5049 }
5050 	YY_BREAK
5051 case 119:
5052 YY_RULE_SETUP
5053 #line 1013 "config_scan.l"
5054 {
5055    yylval.string = socks_yytext;
5056    return UDPCONNECTDST;
5057 }
5058 	YY_BREAK
5059 case 120:
5060 YY_RULE_SETUP
5061 #line 1018 "config_scan.l"
5062 {
5063    yylval.string = socks_yytext;
5064    return REDIRECT;
5065 }
5066 	YY_BREAK
5067 case 121:
5068 YY_RULE_SETUP
5069 #line 1023 "config_scan.l"
5070 {
5071    yylval.string = socks_yytext;
5072    return BANDWIDTH;
5073 }
5074 	YY_BREAK
5075 case 122:
5076 YY_RULE_SETUP
5077 #line 1028 "config_scan.l"
5078 {
5079    yylval.string = socks_yytext;
5080    return SESSIONMAX;
5081 }
5082 	YY_BREAK
5083 case 123:
5084 YY_RULE_SETUP
5085 #line 1033 "config_scan.l"
5086 {
5087    yylval.string = socks_yytext;
5088    return SESSION_INHERITABLE;
5089 }
5090 	YY_BREAK
5091 case 124:
5092 YY_RULE_SETUP
5093 #line 1038 "config_scan.l"
5094 {
5095    yylval.string = socks_yytext;
5096    return SESSIONTHROTTLE;
5097 }
5098 	YY_BREAK
5099 case 125:
5100 YY_RULE_SETUP
5101 #line 1043 "config_scan.l"
5102 {
5103    BEGIN(start_statekey);
5104 
5105    yylval.string = socks_yytext;
5106    return SESSIONSTATE_KEY;
5107 }
5108 	YY_BREAK
5109 case 126:
5110 YY_RULE_SETUP
5111 #line 1050 "config_scan.l"
5112 {
5113    yylval.string = socks_yytext;
5114    return SESSIONSTATE_THROTTLE;
5115 }
5116 	YY_BREAK
5117 case 127:
5118 YY_RULE_SETUP
5119 #line 1055 "config_scan.l"
5120 {
5121    yylval.string = socks_yytext;
5122    return SESSIONSTATE_MAX;
5123 }
5124 	YY_BREAK
5125 case 128:
5126 YY_RULE_SETUP
5127 #line 1061 "config_scan.l"
5128 {
5129    yylval.string = socks_yytext;
5130    return WORD__IN;
5131 }
5132 	YY_BREAK
5133 case 129:
5134 YY_RULE_SETUP
5135 #line 1066 "config_scan.l"
5136 {
5137    BEGIN(start_address);
5138 
5139    yylval.string = socks_yytext;
5140    return FROM;
5141 }
5142 	YY_BREAK
5143 case 130:
5144 YY_RULE_SETUP
5145 #line 1073 "config_scan.l"
5146 {
5147    BEGIN(start_address);
5148 
5149    yylval.string = socks_yytext;
5150    return TO;
5151 }
5152 	YY_BREAK
5153 case 131:
5154 YY_RULE_SETUP
5155 #line 1080 "config_scan.l"
5156 {
5157    BEGIN(start_address);
5158 
5159    yylval.string = socks_yytext;
5160    return VIA;
5161 }
5162 	YY_BREAK
5163 case 132:
5164 YY_RULE_SETUP
5165 #line 1087 "config_scan.l"
5166 {
5167    yylval.string = socks_yytext;
5168    return YES;
5169 }
5170 	YY_BREAK
5171 case 133:
5172 YY_RULE_SETUP
5173 #line 1092 "config_scan.l"
5174 {
5175    yylval.string = socks_yytext;
5176    return NO;
5177 }
5178 	YY_BREAK
5179 case 134:
5180 *yy_cp = (yy_hold_char); /* undo effects of setting up socks_yytext */
5181 (yy_c_buf_p) = yy_cp = yy_bp + 9;
5182 YY_DO_BEFORE_ACTION; /* set up socks_yytext again */
5183 YY_RULE_SETUP
5184 #line 1097 "config_scan.l"
5185 {
5186    BEGIN(start_socketprotocol);
5187 
5188    yylval.string = socks_yytext;
5189    return INTERNALSOCKET;
5190 }
5191 	YY_BREAK
5192 case 135:
5193 *yy_cp = (yy_hold_char); /* undo effects of setting up socks_yytext */
5194 (yy_c_buf_p) = yy_cp = yy_bp + 9;
5195 YY_DO_BEFORE_ACTION; /* set up socks_yytext again */
5196 YY_RULE_SETUP
5197 #line 1104 "config_scan.l"
5198 {
5199    yylval.string = socks_yytext;
5200    return ALARMIF_INTERNAL;
5201 }
5202 	YY_BREAK
5203 case 136:
5204 *yy_cp = (yy_hold_char); /* undo effects of setting up socks_yytext */
5205 (yy_c_buf_p) = yy_cp = yy_bp + 12;
5206 YY_DO_BEFORE_ACTION; /* set up socks_yytext again */
5207 YY_RULE_SETUP
5208 #line 1109 "config_scan.l"
5209 {
5210    BEGIN(start_loglevel);
5211 
5212    yylval.string = socks_yytext;
5213    return LOGIF_INTERNAL;
5214 }
5215 	YY_BREAK
5216 case 137:
5217 YY_RULE_SETUP
5218 #line 1116 "config_scan.l"
5219 {
5220    BEGIN(start_protocol);
5221 
5222    yylval.string = socks_yytext;
5223    return INTERNAL_PROTOCOL;
5224 }
5225 	YY_BREAK
5226 case 138:
5227 /* rule 138 can match eol */
5228 *yy_cp = (yy_hold_char); /* undo effects of setting up socks_yytext */
5229 YY_LINENO_REWIND_TO(yy_bp + 8);
5230 (yy_c_buf_p) = yy_cp = yy_bp + 8;
5231 YY_DO_BEFORE_ACTION; /* set up socks_yytext again */
5232 YY_RULE_SETUP
5233 #line 1124 "config_scan.l"
5234 {
5235    BEGIN(start_address);
5236 
5237    yylval.string = socks_yytext;
5238    return INTERNAL;
5239 }
5240 	YY_BREAK
5241 case 139:
5242 *yy_cp = (yy_hold_char); /* undo effects of setting up socks_yytext */
5243 (yy_c_buf_p) = yy_cp = yy_bp + 9;
5244 YY_DO_BEFORE_ACTION; /* set up socks_yytext again */
5245 YY_RULE_SETUP
5246 #line 1132 "config_scan.l"
5247 {
5248    BEGIN(start_socketprotocol);
5249 
5250    yylval.string = socks_yytext;
5251    return EXTERNALSOCKET;
5252 }
5253 	YY_BREAK
5254 case 140:
5255 *yy_cp = (yy_hold_char); /* undo effects of setting up socks_yytext */
5256 (yy_c_buf_p) = yy_cp = yy_bp + 9;
5257 YY_DO_BEFORE_ACTION; /* set up socks_yytext again */
5258 YY_RULE_SETUP
5259 #line 1139 "config_scan.l"
5260 {
5261    yylval.string = socks_yytext;
5262    return ALARMIF_EXTERNAL;
5263 }
5264 	YY_BREAK
5265 case 141:
5266 YY_RULE_SETUP
5267 #line 1144 "config_scan.l"
5268 {
5269    BEGIN(start_protocol);
5270 
5271    yylval.string = socks_yytext;
5272    return EXTERNAL_PROTOCOL;
5273 }
5274 	YY_BREAK
5275 case 142:
5276 YY_RULE_SETUP
5277 #line 1151 "config_scan.l"
5278 {
5279    yylval.string = socks_yytext;
5280    return EXTERNAL_ROTATION;
5281 }
5282 	YY_BREAK
5283 case 143:
5284 *yy_cp = (yy_hold_char); /* undo effects of setting up socks_yytext */
5285 (yy_c_buf_p) = yy_cp = yy_bp + 12;
5286 YY_DO_BEFORE_ACTION; /* set up socks_yytext again */
5287 YY_RULE_SETUP
5288 #line 1156 "config_scan.l"
5289 {
5290    BEGIN(start_loglevel);
5291 
5292    yylval.string = socks_yytext;
5293    return LOGIF_EXTERNAL;
5294 }
5295 	YY_BREAK
5296 case 144:
5297 /* rule 144 can match eol */
5298 *yy_cp = (yy_hold_char); /* undo effects of setting up socks_yytext */
5299 YY_LINENO_REWIND_TO(yy_bp + 8);
5300 (yy_c_buf_p) = yy_cp = yy_bp + 8;
5301 YY_DO_BEFORE_ACTION; /* set up socks_yytext again */
5302 YY_RULE_SETUP
5303 #line 1163 "config_scan.l"
5304 {
5305    BEGIN(start_address);
5306 
5307    yylval.string = socks_yytext;
5308    return EXTERNAL;
5309 }
5310 	YY_BREAK
5311 case 145:
5312 YY_RULE_SETUP
5313 #line 1170 "config_scan.l"
5314 {
5315    yylval.string = socks_yytext;
5316    return NONE;
5317 }
5318 	YY_BREAK
5319 case 146:
5320 YY_RULE_SETUP
5321 #line 1175 "config_scan.l"
5322 {
5323    yylval.string = socks_yytext;
5324    return SAMESAME;
5325 }
5326 	YY_BREAK
5327 case 147:
5328 YY_RULE_SETUP
5329 #line 1181 "config_scan.l"
5330 {
5331    yywarnx_deprecated(socks_yytext, NULL);
5332 }
5333 	YY_BREAK
5334 case 148:
5335 YY_RULE_SETUP
5336 #line 1185 "config_scan.l"
5337 {
5338    yylval.string = socks_yytext;
5339    return PROC_MAXREQUESTS;
5340 }
5341 	YY_BREAK
5342 case 149:
5343 YY_RULE_SETUP
5344 #line 1190 "config_scan.l"
5345 {
5346    yylval.string = socks_yytext;
5347    return PROC_MAXLIFETIME;
5348 }
5349 	YY_BREAK
5350 case 150:
5351 YY_RULE_SETUP
5352 #line 1195 "config_scan.l"
5353 {
5354    BEGIN(start_username);
5355 
5356    yylval.string = socks_yytext;
5357    return USER;
5358 }
5359 	YY_BREAK
5360 case 151:
5361 YY_RULE_SETUP
5362 #line 1202 "config_scan.l"
5363 {
5364    BEGIN(start_groupname);
5365 
5366    yylval.string = socks_yytext;
5367    return GROUP;
5368 }
5369 	YY_BREAK
5370 case 152:
5371 YY_RULE_SETUP
5372 #line 1209 "config_scan.l"
5373 {
5374    BEGIN(start_username);
5375 
5376    yylval.string = socks_yytext;
5377    return USER_PRIVILEGED;
5378 }
5379 	YY_BREAK
5380 case 153:
5381 YY_RULE_SETUP
5382 #line 1216 "config_scan.l"
5383 {
5384    BEGIN(start_username);
5385 
5386    yylval.string = socks_yytext;
5387    return USER_UNPRIVILEGED;
5388 }
5389 	YY_BREAK
5390 case 154:
5391 YY_RULE_SETUP
5392 #line 1223 "config_scan.l"
5393 {
5394    BEGIN(start_username);
5395 
5396    yylval.string = socks_yytext;
5397    return USER_LIBWRAP;
5398 }
5399 	YY_BREAK
5400 case 155:
5401 YY_RULE_SETUP
5402 #line 1230 "config_scan.l"
5403 {
5404    yylval.string = socks_yytext;
5405    return CONNECTTIMEOUT;
5406 }
5407 	YY_BREAK
5408 case 156:
5409 YY_RULE_SETUP
5410 #line 1235 "config_scan.l"
5411 {
5412    yylval.string = socks_yytext;
5413    return TCP_FIN_WAIT;
5414 }
5415 	YY_BREAK
5416 case 157:
5417 YY_RULE_SETUP
5418 #line 1241 "config_scan.l"
5419 {
5420    yylval.string = socks_yytext;
5421    return IOTIMEOUT;
5422 }
5423 	YY_BREAK
5424 case 158:
5425 YY_RULE_SETUP
5426 #line 1246 "config_scan.l"
5427 {
5428    yylval.string = socks_yytext;
5429    return IOTIMEOUT_TCP;
5430 }
5431 	YY_BREAK
5432 case 159:
5433 YY_RULE_SETUP
5434 #line 1251 "config_scan.l"
5435 {
5436    yylval.string = socks_yytext;
5437    return IOTIMEOUT_UDP;
5438 }
5439 	YY_BREAK
5440 case 160:
5441 YY_RULE_SETUP
5442 #line 1256 "config_scan.l"
5443 {
5444    yylval.string = socks_yytext;
5445    return NEGOTIATETIMEOUT;
5446 }
5447 	YY_BREAK
5448 case 161:
5449 YY_RULE_SETUP
5450 #line 1262 "config_scan.l"
5451 {
5452    yylval.string = socks_yytext;
5453    return COMPATIBILITY;
5454 }
5455 	YY_BREAK
5456 case 162:
5457 YY_RULE_SETUP
5458 #line 1267 "config_scan.l"
5459 {
5460    yylval.string = socks_yytext;
5461    return SAMEPORT;
5462 }
5463 	YY_BREAK
5464 case 163:
5465 YY_RULE_SETUP
5466 #line 1272 "config_scan.l"
5467 {
5468    yylval.string = socks_yytext;
5469    return DRAFT_5_05;
5470 }
5471 	YY_BREAK
5472 case 164:
5473 YY_RULE_SETUP
5474 #line 1277 "config_scan.l"
5475 {
5476    yylval.string = socks_yytext;
5477    return CLIENTCOMPATIBILITY;
5478 }
5479 	YY_BREAK
5480 case 165:
5481 YY_RULE_SETUP
5482 #line 1282 "config_scan.l"
5483 {
5484    yylval.string = socks_yytext;
5485    return NECGSSAPI;
5486 }
5487 	YY_BREAK
5488 case 166:
5489 YY_RULE_SETUP
5490 #line 1287 "config_scan.l"
5491 {
5492    yylval.string = socks_yytext;
5493    return EXTENSION;
5494 }
5495 	YY_BREAK
5496 case 167:
5497 YY_RULE_SETUP
5498 #line 1292 "config_scan.l"
5499 {
5500    yylval.string = socks_yytext;
5501    return BIND;
5502 }
5503 	YY_BREAK
5504 case 168:
5505 YY_RULE_SETUP
5506 #line 1297 "config_scan.l"
5507 {
5508    BEGIN(start_address);
5509 
5510    yylval.string = socks_yytext;
5511    return HOSTID;
5512 }
5513 	YY_BREAK
5514 case 169:
5515 YY_RULE_SETUP
5516 #line 1304 "config_scan.l"
5517 {
5518    yylval.string = socks_yytext;
5519    return MONITOR;
5520 }
5521 	YY_BREAK
5522 case 170:
5523 YY_RULE_SETUP
5524 #line 1309 "config_scan.l"
5525 {
5526    BEGIN(start_hostindex);
5527 
5528    yylval.string = socks_yytext;
5529    return HOSTINDEX;
5530 }
5531 	YY_BREAK
5532 case 171:
5533 YY_RULE_SETUP
5534 #line 1316 "config_scan.l"
5535 {
5536    BEGIN(0);
5537 
5538    yylval.number = 0;
5539    return NUMBER;
5540 }
5541 	YY_BREAK
5542 case 172:
5543 YY_RULE_SETUP
5544 #line 1324 "config_scan.l"
5545 {
5546    BEGIN(start_method);
5547 
5548    yylval.string = socks_yytext;
5549    return SOCKSMETHOD;
5550 }
5551 	YY_BREAK
5552 case 173:
5553 YY_RULE_SETUP
5554 #line 1331 "config_scan.l"
5555 {
5556    BEGIN(start_method);
5557 
5558    yylval.string = socks_yytext;
5559    return CLIENTMETHOD;
5560 }
5561 	YY_BREAK
5562 case 174:
5563 YY_RULE_SETUP
5564 #line 1338 "config_scan.l"
5565 {
5566    BEGIN(start_method);
5567 
5568    yylval.string = socks_yytext;
5569 
5570    if (inroute)
5571       return METHOD;
5572    else if (inclientrule) {
5573       yywarnx_deprecated(socks_yytext, "clientmethod");
5574       return CLIENTMETHOD;
5575    }
5576    else /* anywhere else; must be socksmethod. */
5577       yywarnx_deprecated(socks_yytext, "socksmethod");
5578 
5579    return SOCKSMETHOD;
5580 }
5581 	YY_BREAK
5582 /* filterrules */
5583 /*
5584     * verdicts
5585     */
5586 case 175:
5587 YY_RULE_SETUP
5588 #line 1362 "config_scan.l"
5589 {
5590    yylval.string = socks_yytext;
5591    return VERDICT_BLOCK;
5592 }
5593 	YY_BREAK
5594 case 176:
5595 YY_RULE_SETUP
5596 #line 1367 "config_scan.l"
5597 {
5598    yylval.string = socks_yytext;
5599    return VERDICT_PASS;
5600 }
5601 	YY_BREAK
5602 case 177:
5603 *yy_cp = (yy_hold_char); /* undo effects of setting up socks_yytext */
5604 (yy_c_buf_p) = yy_cp = yy_bp + 3;
5605 YY_DO_BEFORE_ACTION; /* set up socks_yytext again */
5606 YY_RULE_SETUP
5607 #line 1372 "config_scan.l"
5608 {
5609    BEGIN(start_log);
5610 
5611    yylval.string = socks_yytext;
5612    return RULE_LOG;
5613 }
5614 	YY_BREAK
5615 case 178:
5616 YY_RULE_SETUP
5617 #line 1380 "config_scan.l"
5618 {
5619    BEGIN(lineprefix);
5620 
5621    yylval.string = socks_yytext;
5622    return LIBWRAPSTART;
5623 }
5624 	YY_BREAK
5625 case 179:
5626 YY_RULE_SETUP
5627 #line 1387 "config_scan.l"
5628 {
5629    BEGIN(start_libwrapfile);
5630 
5631    yylval.string = socks_yytext;
5632    return LIBWRAP_ALLOW;
5633 }
5634 	YY_BREAK
5635 case 180:
5636 YY_RULE_SETUP
5637 #line 1394 "config_scan.l"
5638 {
5639    BEGIN(start_libwrapfile);
5640 
5641    yylval.string = socks_yytext;
5642    return LIBWRAP_DENY;
5643 }
5644 	YY_BREAK
5645 case 181:
5646 YY_RULE_SETUP
5647 #line 1401 "config_scan.l"
5648 {
5649    yylval.string = socks_yytext;
5650    return LIBWRAP_HOSTS_ACCESS;
5651 }
5652 	YY_BREAK
5653 case 182:
5654 YY_RULE_SETUP
5655 #line 1406 "config_scan.l"
5656 {
5657    BEGIN(start_servicename);
5658 
5659    yylval.string = socks_yytext;
5660    return PAMSERVICENAME;
5661 }
5662 	YY_BREAK
5663 case 183:
5664 YY_RULE_SETUP
5665 #line 1413 "config_scan.l"
5666 {
5667    BEGIN(start_bsdauthstylename);
5668 
5669    yylval.string = socks_yytext;
5670    return BSDAUTHSTYLE;
5671 }
5672 	YY_BREAK
5673 case 184:
5674 YY_RULE_SETUP
5675 #line 1420 "config_scan.l"
5676 {
5677    BEGIN(start_gssapiservicename);
5678 
5679    yylval.string = socks_yytext;
5680    return GSSAPISERVICE;
5681 }
5682 	YY_BREAK
5683 case 185:
5684 YY_RULE_SETUP
5685 #line 1427 "config_scan.l"
5686 {
5687        BEGIN(start_gssapikeytabname);
5688 
5689    yylval.string = socks_yytext;
5690    return GSSAPIKEYTAB;
5691 }
5692 	YY_BREAK
5693 case 186:
5694 YY_RULE_SETUP
5695 #line 1434 "config_scan.l"
5696 {
5697        BEGIN(start_encryption);
5698 
5699    yylval.string = socks_yytext;
5700    return GSSAPIENCTYPE;
5701 }
5702 	YY_BREAK
5703 case 187:
5704 YY_RULE_SETUP
5705 #line 1441 "config_scan.l"
5706 {
5707        BEGIN(start_ldapbasedn);
5708 
5709    yylval.string = socks_yytext;
5710    return LDAPBASEDN;
5711 }
5712 	YY_BREAK
5713 case 188:
5714 YY_RULE_SETUP
5715 #line 1448 "config_scan.l"
5716 {
5717        BEGIN(start_ldapbasedn);
5718 
5719    yylval.string = socks_yytext;
5720    return LDAPBASEDN_HEX;
5721 }
5722 	YY_BREAK
5723 case 189:
5724 YY_RULE_SETUP
5725 #line 1455 "config_scan.l"
5726 {
5727        BEGIN(start_ldapbasedn);
5728 
5729    yylval.string = socks_yytext;
5730    return LDAPBASEDN_HEX_ALL;
5731 }
5732 	YY_BREAK
5733 case 190:
5734 YY_RULE_SETUP
5735 #line 1462 "config_scan.l"
5736 {
5737        BEGIN(start_ldapbasedn);
5738 
5739    yylval.string = socks_yytext;
5740    return LDAPAUTHBASEDN;
5741 }
5742 	YY_BREAK
5743 case 191:
5744 YY_RULE_SETUP
5745 #line 1469 "config_scan.l"
5746 {
5747        BEGIN(start_ldapbasedn);
5748 
5749    yylval.string = socks_yytext;
5750    return LDAPAUTHBASEDN_HEX;
5751 }
5752 	YY_BREAK
5753 case 192:
5754 YY_RULE_SETUP
5755 #line 1476 "config_scan.l"
5756 {
5757        BEGIN(start_ldapbasedn);
5758 
5759    yylval.string = socks_yytext;
5760    return LDAPAUTHBASEDN_HEX_ALL;
5761 }
5762 	YY_BREAK
5763 case 193:
5764 YY_RULE_SETUP
5765 #line 1483 "config_scan.l"
5766 {
5767    yylval.string = socks_yytext;
5768    return LDAPPORT;
5769 }
5770 	YY_BREAK
5771 case 194:
5772 YY_RULE_SETUP
5773 #line 1488 "config_scan.l"
5774 {
5775    yylval.string = socks_yytext;
5776    return LDAPAUTHPORT;
5777 }
5778 	YY_BREAK
5779 case 195:
5780 YY_RULE_SETUP
5781 #line 1493 "config_scan.l"
5782 {
5783    yylval.string = socks_yytext;
5784    return LDAPPORTSSL;
5785 }
5786 	YY_BREAK
5787 case 196:
5788 YY_RULE_SETUP
5789 #line 1498 "config_scan.l"
5790 {
5791    yylval.string = socks_yytext;
5792    return LDAPAUTHPORTSSL;
5793 }
5794 	YY_BREAK
5795 case 197:
5796 YY_RULE_SETUP
5797 #line 1503 "config_scan.l"
5798 {
5799        BEGIN(start_ldapurl);
5800 
5801    yylval.string = socks_yytext;
5802    return LDAPURL;
5803 }
5804 	YY_BREAK
5805 case 198:
5806 YY_RULE_SETUP
5807 #line 1510 "config_scan.l"
5808 {
5809        BEGIN(start_ldapurl);
5810 
5811    yylval.string = socks_yytext;
5812    return LDAPAUTHURL;
5813 }
5814 	YY_BREAK
5815 case 199:
5816 YY_RULE_SETUP
5817 #line 1517 "config_scan.l"
5818 {
5819    BEGIN(start_ldapcertfile);
5820 
5821    yylval.string = socks_yytext;
5822    return LDAPCERTFILE;
5823 }
5824 	YY_BREAK
5825 case 200:
5826 YY_RULE_SETUP
5827 #line 1524 "config_scan.l"
5828 {
5829    BEGIN(start_ldapcertfile);
5830 
5831    yylval.string = socks_yytext;
5832    return LDAPAUTHCERTFILE;
5833 }
5834 	YY_BREAK
5835 case 201:
5836 YY_RULE_SETUP
5837 #line 1531 "config_scan.l"
5838 {
5839    BEGIN(start_ldapcertpath);
5840 
5841    yylval.string = socks_yytext;
5842    return LDAPCERTPATH;
5843 }
5844 	YY_BREAK
5845 case 202:
5846 YY_RULE_SETUP
5847 #line 1538 "config_scan.l"
5848 {
5849    BEGIN(start_ldapcertpath);
5850 
5851    yylval.string = socks_yytext;
5852    return LDAPAUTHCERTPATH;
5853 }
5854 	YY_BREAK
5855 case 203:
5856 YY_RULE_SETUP
5857 #line 1545 "config_scan.l"
5858 {
5859        BEGIN(start_ldapdomain);
5860 
5861    yylval.string = socks_yytext;
5862    return LDAPDOMAIN;
5863 }
5864 	YY_BREAK
5865 case 204:
5866 YY_RULE_SETUP
5867 #line 1552 "config_scan.l"
5868 {
5869        BEGIN(start_ldapdomain);
5870 
5871    yylval.string = socks_yytext;
5872    return LDAPAUTHDOMAIN;
5873 }
5874 	YY_BREAK
5875 case 205:
5876 YY_RULE_SETUP
5877 #line 1559 "config_scan.l"
5878 {
5879    yylval.string = socks_yytext;
5880    return LDAPDEBUG;
5881 }
5882 	YY_BREAK
5883 case 206:
5884 YY_RULE_SETUP
5885 #line 1564 "config_scan.l"
5886 {
5887    yylval.string = socks_yytext;
5888    return LDAPAUTHDEBUG;
5889 }
5890 	YY_BREAK
5891 case 207:
5892 YY_RULE_SETUP
5893 #line 1569 "config_scan.l"
5894 {
5895    yylval.string = socks_yytext;
5896    return LDAPDEPTH;
5897 }
5898 	YY_BREAK
5899 case 208:
5900 YY_RULE_SETUP
5901 #line 1574 "config_scan.l"
5902 {
5903    yylval.string = socks_yytext;
5904    return LDAPSSL;
5905 }
5906 	YY_BREAK
5907 case 209:
5908 YY_RULE_SETUP
5909 #line 1579 "config_scan.l"
5910 {
5911    yylval.string = socks_yytext;
5912    return LDAPAUTHSSL;
5913 }
5914 	YY_BREAK
5915 case 210:
5916 YY_RULE_SETUP
5917 #line 1584 "config_scan.l"
5918 {
5919    yylval.string = socks_yytext;
5920    return LDAPAUTO;
5921 }
5922 	YY_BREAK
5923 case 211:
5924 YY_RULE_SETUP
5925 #line 1589 "config_scan.l"
5926 {
5927    yylval.string = socks_yytext;
5928    return LDAPAUTHAUTO;
5929 }
5930 	YY_BREAK
5931 case 212:
5932 YY_RULE_SETUP
5933 #line 1594 "config_scan.l"
5934 {
5935    yylval.string = socks_yytext;
5936    return LDAPCERTCHECK;
5937 }
5938 	YY_BREAK
5939 case 213:
5940 YY_RULE_SETUP
5941 #line 1599 "config_scan.l"
5942 {
5943    yylval.string = socks_yytext;
5944    return LDAPAUTHCERTCHECK;
5945 }
5946 	YY_BREAK
5947 case 214:
5948 YY_RULE_SETUP
5949 #line 1604 "config_scan.l"
5950 {
5951    yylval.string = socks_yytext;
5952    return LDAPKEEPREALM;
5953 }
5954 	YY_BREAK
5955 case 215:
5956 YY_RULE_SETUP
5957 #line 1609 "config_scan.l"
5958 {
5959        BEGIN(start_ldapfilter);
5960 
5961    yylval.string = socks_yytext;
5962    return LDAPFILTER;
5963 }
5964 	YY_BREAK
5965 case 216:
5966 YY_RULE_SETUP
5967 #line 1616 "config_scan.l"
5968 {
5969        BEGIN(start_ldapfilter);
5970 
5971    yylval.string = socks_yytext;
5972    return LDAPAUTHFILTER;
5973 }
5974 	YY_BREAK
5975 case 217:
5976 YY_RULE_SETUP
5977 #line 1623 "config_scan.l"
5978 {
5979        BEGIN(start_ldapfilter);
5980 
5981    yylval.string = socks_yytext;
5982    return LDAPFILTER_AD;
5983 }
5984 	YY_BREAK
5985 case 218:
5986 YY_RULE_SETUP
5987 #line 1630 "config_scan.l"
5988 {
5989        BEGIN(start_ldapfilter);
5990 
5991    yylval.string = socks_yytext;
5992    return LDAPFILTER_HEX;
5993 }
5994 	YY_BREAK
5995 case 219:
5996 YY_RULE_SETUP
5997 #line 1637 "config_scan.l"
5998 {
5999        BEGIN(start_ldapfilter);
6000 
6001    yylval.string = socks_yytext;
6002    return LDAPFILTER_AD_HEX;
6003 }
6004 	YY_BREAK
6005 case 220:
6006 YY_RULE_SETUP
6007 #line 1644 "config_scan.l"
6008 {
6009        BEGIN(start_ldapattribute);
6010 
6011    yylval.string = socks_yytext;
6012    return LDAPATTRIBUTE;
6013 }
6014 	YY_BREAK
6015 case 221:
6016 YY_RULE_SETUP
6017 #line 1651 "config_scan.l"
6018 {
6019        BEGIN(start_ldapattribute);
6020 
6021    yylval.string = socks_yytext;
6022    return LDAPATTRIBUTE_AD;
6023 }
6024 	YY_BREAK
6025 case 222:
6026 YY_RULE_SETUP
6027 #line 1658 "config_scan.l"
6028 {
6029        BEGIN(start_ldapattribute);
6030 
6031    yylval.string = socks_yytext;
6032    return LDAPATTRIBUTE_HEX;
6033 }
6034 	YY_BREAK
6035 case 223:
6036 YY_RULE_SETUP
6037 #line 1665 "config_scan.l"
6038 {
6039        BEGIN(start_ldapattribute);
6040 
6041    yylval.string = socks_yytext;
6042    return LDAPATTRIBUTE_AD_HEX;
6043 }
6044 	YY_BREAK
6045 case 224:
6046 YY_RULE_SETUP
6047 #line 1672 "config_scan.l"
6048 {
6049    BEGIN(start_ldapservername);
6050 
6051    yylval.string = socks_yytext;
6052    return LDAPSERVER;
6053 }
6054 	YY_BREAK
6055 case 225:
6056 YY_RULE_SETUP
6057 #line 1679 "config_scan.l"
6058 {
6059    BEGIN(start_ldapservername);
6060 
6061    yylval.string = socks_yytext;
6062    return LDAPAUTHSERVER;
6063 }
6064 	YY_BREAK
6065 case 226:
6066 YY_RULE_SETUP
6067 #line 1686 "config_scan.l"
6068 {
6069    BEGIN(start_ldapgroupname);
6070 
6071    yylval.string = socks_yytext;
6072    return LDAPGROUP;
6073 }
6074 	YY_BREAK
6075 case 227:
6076 YY_RULE_SETUP
6077 #line 1693 "config_scan.l"
6078 {
6079    BEGIN(start_ldapgroupname);
6080 
6081    yylval.string = socks_yytext;
6082    return LDAPGROUP_HEX;
6083 }
6084 	YY_BREAK
6085 case 228:
6086 YY_RULE_SETUP
6087 #line 1700 "config_scan.l"
6088 {
6089    BEGIN(start_ldapgroupname);
6090 
6091    yylval.string = socks_yytext;
6092    return LDAPGROUP_HEX_ALL;
6093 }
6094 	YY_BREAK
6095 case 229:
6096 YY_RULE_SETUP
6097 #line 1707 "config_scan.l"
6098 {
6099    BEGIN(start_ldapkeytabname);
6100 
6101    yylval.string = socks_yytext;
6102    return LDAPKEYTAB;
6103 }
6104 	YY_BREAK
6105 case 230:
6106 YY_RULE_SETUP
6107 #line 1714 "config_scan.l"
6108 {
6109    BEGIN(start_ldapkeytabname);
6110 
6111    yylval.string = socks_yytext;
6112    return LDAPAUTHKEYTAB;
6113 }
6114 	YY_BREAK
6115 case 231:
6116 YY_RULE_SETUP
6117 #line 1721 "config_scan.l"
6118 {
6119    BEGIN(start_pacsidname);
6120 
6121    yylval.string = socks_yytext;
6122    return PACSID_B64;
6123 }
6124 	YY_BREAK
6125 case 232:
6126 YY_RULE_SETUP
6127 #line 1728 "config_scan.l"
6128 {
6129    BEGIN(start_pacsidname);
6130 
6131    yylval.string = socks_yytext;
6132    return PACSID;
6133 }
6134 	YY_BREAK
6135 case 233:
6136 YY_RULE_SETUP
6137 #line 1735 "config_scan.l"
6138 {
6139    yylval.string = socks_yytext;
6140    return PACSID_FLAG;
6141 }
6142 	YY_BREAK
6143 case 234:
6144 YY_RULE_SETUP
6145 #line 1740 "config_scan.l"
6146 {
6147    yylval.string = socks_yytext;
6148    return BOUNCE;
6149 }
6150 	YY_BREAK
6151 case 235:
6152 YY_RULE_SETUP
6153 #line 1745 "config_scan.l"
6154 {
6155   BEGIN(start_realmname);
6156 
6157    yylval.string = socks_yytext;
6158    return REALM;
6159 }
6160 	YY_BREAK
6161 /*
6162   * global keywords that are no longer used.
6163   */
6164 case 236:
6165 YY_RULE_SETUP
6166 #line 1756 "config_scan.l"
6167 {
6168    yywarnx_deprecated(socks_yytext, NULL);
6169 }
6170 	YY_BREAK
6171 case 237:
6172 YY_RULE_SETUP
6173 #line 1760 "config_scan.l"
6174 {
6175    yywarnx_deprecated(socks_yytext, "timeout.connect");
6176 
6177    yylval.string = socks_yytext;
6178    return CONNECTTIMEOUT;
6179 }
6180 	YY_BREAK
6181 case 238:
6182 YY_RULE_SETUP
6183 #line 1767 "config_scan.l"
6184 {
6185    yywarnx_deprecated(socks_yytext, "timeout.io");
6186 
6187    yylval.string = socks_yytext;
6188    return IOTIMEOUT;
6189 }
6190 	YY_BREAK
6191 case 239:
6192 YY_RULE_SETUP
6193 #line 1774 "config_scan.l"
6194 {
6195    yylval.deprecated.oldname = socks_yytext;
6196 
6197    yylval.deprecated.newname =
6198    "a general socket api.  E.g. \"internal.tcp.so_rcvbuf\" for setting "
6199    "the socket receive buffer size on the internal interface side, or "
6200    "\"external.tcp.so_sndbuf\" for setting the socket send buffer size on "
6201    "the external interface side.  Please see manual for more information";
6202 
6203    return DEPRECATED;
6204 }
6205 	YY_BREAK
6206 /* misc. generic stuff. */
6207 /*
6208     * note that to support negative numbers we need to handle number ranges
6209     * like port 1-65535 correctly also.
6210     */
6211 case 240:
6212 YY_RULE_SETUP
6213 #line 1793 "config_scan.l"
6214 {
6215    char *ep;
6216    long long llval;
6217 
6218    errno  = 0;
6219    llval  = strtoll(socks_yytext, &ep, 0);
6220    if (*socks_yytext == NUL || *ep != NUL)
6221       yyerror("confusing.  Thought we would have a number here");
6222 
6223    if (errno == ERANGE)
6224       yyerror("number given is out of range");
6225 
6226    yylval.number = llval;
6227 
6228    if (shouldresetstate(YYSTATE, NUMBER))
6229       BEGIN(0);
6230 
6231    return NUMBER;
6232 }
6233 	YY_BREAK
6234 /* ignored */
6235 case 241:
6236 YY_RULE_SETUP
6237 #line 1814 "config_scan.l"
6238 {
6239    ;
6240 }
6241 	YY_BREAK
6242 /* shell style comment */
6243 case 242:
6244 YY_RULE_SETUP
6245 #line 1819 "config_scan.l"
6246 {
6247    BEGIN(0);
6248    ;
6249 }
6250 	YY_BREAK
6251 /* state always ends at eol ... */
6252 case 243:
6253 /* rule 243 can match eol */
6254 YY_RULE_SETUP
6255 #line 1825 "config_scan.l"
6256 {
6257    BEGIN(0);
6258 }
6259 	YY_BREAK
6260 /* ... unless it's escaped. */
6261 case 244:
6262 /* rule 244 can match eol */
6263 YY_RULE_SETUP
6264 #line 1830 "config_scan.l"
6265 {
6266    ;
6267 }
6268 	YY_BREAK
6269 case 245:
6270 YY_RULE_SETUP
6271 #line 1834 "config_scan.l"
6272 {
6273    inclientrule = inroute = 0;
6274 
6275    yylval.string = socks_yytext;
6276    return *socks_yytext;
6277 }
6278 	YY_BREAK
6279 case 246:
6280 YY_RULE_SETUP
6281 #line 1841 "config_scan.l"
6282 {
6283    yylval.string = socks_yytext;
6284    return *socks_yytext;
6285 }
6286 	YY_BREAK
6287 case 247:
6288 YY_RULE_SETUP
6289 #line 1846 "config_scan.l"
6290 ECHO;
6291 	YY_BREAK
6292 #line 6292 "config_scan.c"
6293 			case YY_STATE_EOF(INITIAL):
6294 			case YY_STATE_EOF(start_address):
6295 			case YY_STATE_EOF(start_port):
6296 			case YY_STATE_EOF(lineprefix):
6297 			case YY_STATE_EOF(start_command):
6298 			case YY_STATE_EOF(start_compatibility):
6299 			case YY_STATE_EOF(start_line):
6300 			case YY_STATE_EOF(start_log):
6301 			case YY_STATE_EOF(start_loglevel):
6302 			case YY_STATE_EOF(start_logoutput):
6303 			case YY_STATE_EOF(start_logtype):
6304 			case YY_STATE_EOF(start_errorsymbol):
6305 			case YY_STATE_EOF(start_method):
6306 			case YY_STATE_EOF(start_option):
6307 			case YY_STATE_EOF(start_proxyprotocol):
6308 			case YY_STATE_EOF(start_username):
6309 			case YY_STATE_EOF(start_groupname):
6310 			case YY_STATE_EOF(start_libwrapfile):
6311 			case YY_STATE_EOF(start_cpuoption):
6312 			case YY_STATE_EOF(start_hostindex):
6313 			case YY_STATE_EOF(start_statekey):
6314 			case YY_STATE_EOF(start_tcpoption):
6315 			case YY_STATE_EOF(start_ldapdomain):
6316 			case YY_STATE_EOF(start_ldapbasedn):
6317 			case YY_STATE_EOF(start_ldapurl):
6318 			case YY_STATE_EOF(start_ldapfilter):
6319 			case YY_STATE_EOF(start_ldapattribute):
6320 			case YY_STATE_EOF(start_ldapservername):
6321 			case YY_STATE_EOF(start_ldapgroupname):
6322 			case YY_STATE_EOF(start_ldapkeytabname):
6323 			case YY_STATE_EOF(start_ldapcertfile):
6324 			case YY_STATE_EOF(start_ldapcertpath):
6325 			case YY_STATE_EOF(start_pacsidname):
6326 			case YY_STATE_EOF(start_alarmtest):
6327 			case YY_STATE_EOF(start_srchost):
6328 			case YY_STATE_EOF(start_protocol):
6329 			case YY_STATE_EOF(start_servicename):
6330 			case YY_STATE_EOF(start_portnumber):
6331 			case YY_STATE_EOF(start_bsdauthstylename):
6332 			case YY_STATE_EOF(start_gssapiservicename):
6333 			case YY_STATE_EOF(start_gssapikeytabname):
6334 			case YY_STATE_EOF(start_encryption):
6335 			case YY_STATE_EOF(start_realmname):
6336 			case YY_STATE_EOF(start_socketprotocol):
6337 			case YY_STATE_EOF(start_socketoption):
6338 			case YY_STATE_EOF(start_socketoptionvalue):
6339 			case YY_STATE_EOF(start_processtype):
6340 			case YY_STATE_EOF(start_schedulepolicy):
6341 			case YY_STATE_EOF(start_schedulemask):
6342 				yyterminate();
6343 
6344 	case YY_END_OF_BUFFER:
6345 		{
6346 		/* Amount of text matched not including the EOB char. */
6347 		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
6348 
6349 		/* Undo the effects of YY_DO_BEFORE_ACTION. */
6350 		*yy_cp = (yy_hold_char);
6351 		YY_RESTORE_YY_MORE_OFFSET
6352 
6353 		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
6354 			{
6355 			/* We're scanning a new file or input source.  It's
6356 			 * possible that this happened because the user
6357 			 * just pointed socks_yyin at a new source and called
6358 			 * socks_yylex().  If so, then we have to assure
6359 			 * consistency between YY_CURRENT_BUFFER and our
6360 			 * globals.  Here is the right place to do so, because
6361 			 * this is the first action (other than possibly a
6362 			 * back-up) that will match for the new input source.
6363 			 */
6364 			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
6365 			YY_CURRENT_BUFFER_LVALUE->yy_input_file = socks_yyin;
6366 			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
6367 			}
6368 
6369 		/* Note that here we test for yy_c_buf_p "<=" to the position
6370 		 * of the first EOB in the buffer, since yy_c_buf_p will
6371 		 * already have been incremented past the NUL character
6372 		 * (since all states make transitions on EOB to the
6373 		 * end-of-buffer state).  Contrast this with the test
6374 		 * in input().
6375 		 */
6376 		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
6377 			{ /* This was really a NUL. */
6378 			yy_state_type yy_next_state;
6379 
6380 			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
6381 
6382 			yy_current_state = yy_get_previous_state(  );
6383 
6384 			/* Okay, we're now positioned to make the NUL
6385 			 * transition.  We couldn't have
6386 			 * yy_get_previous_state() go ahead and do it
6387 			 * for us because it doesn't know how to deal
6388 			 * with the possibility of jamming (and we don't
6389 			 * want to build jamming into it because then it
6390 			 * will run more slowly).
6391 			 */
6392 
6393 			yy_next_state = yy_try_NUL_trans( yy_current_state );
6394 
6395 			yy_bp = (yytext_ptr) + YY_MORE_ADJ;
6396 
6397 			if ( yy_next_state )
6398 				{
6399 				/* Consume the NUL. */
6400 				yy_cp = ++(yy_c_buf_p);
6401 				yy_current_state = yy_next_state;
6402 				goto yy_match;
6403 				}
6404 
6405 			else
6406 				{
6407 				yy_cp = (yy_c_buf_p);
6408 				goto yy_find_action;
6409 				}
6410 			}
6411 
6412 		else switch ( yy_get_next_buffer(  ) )
6413 			{
6414 			case EOB_ACT_END_OF_FILE:
6415 				{
6416 				(yy_did_buffer_switch_on_eof) = 0;
6417 
6418 				if ( socks_yywrap( ) )
6419 					{
6420 					/* Note: because we've taken care in
6421 					 * yy_get_next_buffer() to have set up
6422 					 * socks_yytext, we can now set up
6423 					 * yy_c_buf_p so that if some total
6424 					 * hoser (like flex itself) wants to
6425 					 * call the scanner after we return the
6426 					 * YY_NULL, it'll still work - another
6427 					 * YY_NULL will get returned.
6428 					 */
6429 					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
6430 
6431 					yy_act = YY_STATE_EOF(YY_START);
6432 					goto do_action;
6433 					}
6434 
6435 				else
6436 					{
6437 					if ( ! (yy_did_buffer_switch_on_eof) )
6438 						YY_NEW_FILE;
6439 					}
6440 				break;
6441 				}
6442 
6443 			case EOB_ACT_CONTINUE_SCAN:
6444 				(yy_c_buf_p) =
6445 					(yytext_ptr) + yy_amount_of_matched_text;
6446 
6447 				yy_current_state = yy_get_previous_state(  );
6448 
6449 				yy_cp = (yy_c_buf_p);
6450 				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
6451 				goto yy_match;
6452 
6453 			case EOB_ACT_LAST_MATCH:
6454 				(yy_c_buf_p) =
6455 				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
6456 
6457 				yy_current_state = yy_get_previous_state(  );
6458 
6459 				yy_cp = (yy_c_buf_p);
6460 				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
6461 				goto yy_find_action;
6462 			}
6463 		break;
6464 		}
6465 
6466 	default:
6467 		YY_FATAL_ERROR(
6468 			"fatal flex scanner internal error--no action found" );
6469 	} /* end of action switch */
6470 		} /* end of scanning one token */
6471 	} /* end of user's declarations */
6472 } /* end of socks_yylex */
6473 
6474 /* yy_get_next_buffer - try to read in a new buffer
6475  *
6476  * Returns a code representing an action:
6477  *	EOB_ACT_LAST_MATCH -
6478  *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
6479  *	EOB_ACT_END_OF_FILE - end of file
6480  */
yy_get_next_buffer(void)6481 static int yy_get_next_buffer (void)
6482 {
6483     	char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
6484 	char *source = (yytext_ptr);
6485 	int number_to_move, i;
6486 	int ret_val;
6487 
6488 	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
6489 		YY_FATAL_ERROR(
6490 		"fatal flex scanner internal error--end of buffer missed" );
6491 
6492 	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
6493 		{ /* Don't try to fill the buffer, so this is an EOF. */
6494 		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
6495 			{
6496 			/* We matched a single character, the EOB, so
6497 			 * treat this as a final EOF.
6498 			 */
6499 			return EOB_ACT_END_OF_FILE;
6500 			}
6501 
6502 		else
6503 			{
6504 			/* We matched some text prior to the EOB, first
6505 			 * process it.
6506 			 */
6507 			return EOB_ACT_LAST_MATCH;
6508 			}
6509 		}
6510 
6511 	/* Try to read more data. */
6512 
6513 	/* First move last chars to start of buffer. */
6514 	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
6515 
6516 	for ( i = 0; i < number_to_move; ++i )
6517 		*(dest++) = *(source++);
6518 
6519 	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
6520 		/* don't do the read, it's not guaranteed to return an EOF,
6521 		 * just force an EOF
6522 		 */
6523 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
6524 
6525 	else
6526 		{
6527 			yy_size_t num_to_read =
6528 			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
6529 
6530 		while ( num_to_read <= 0 )
6531 			{ /* Not enough room in the buffer - grow it. */
6532 
6533 			YY_FATAL_ERROR(
6534 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
6535 
6536 			}
6537 
6538 		if ( num_to_read > YY_READ_BUF_SIZE )
6539 			num_to_read = YY_READ_BUF_SIZE;
6540 
6541 		/* Read in more data. */
6542 		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
6543 			(yy_n_chars), num_to_read );
6544 
6545 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
6546 		}
6547 
6548 	if ( (yy_n_chars) == 0 )
6549 		{
6550 		if ( number_to_move == YY_MORE_ADJ )
6551 			{
6552 			ret_val = EOB_ACT_END_OF_FILE;
6553 			socks_yyrestart(socks_yyin  );
6554 			}
6555 
6556 		else
6557 			{
6558 			ret_val = EOB_ACT_LAST_MATCH;
6559 			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
6560 				YY_BUFFER_EOF_PENDING;
6561 			}
6562 		}
6563 
6564 	else
6565 		ret_val = EOB_ACT_CONTINUE_SCAN;
6566 
6567 	if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
6568 		/* Extend the array by 50%, plus the number we really need. */
6569 		yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
6570 		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) socks_yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
6571 		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
6572 			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
6573 		/* "- 2" to take care of EOB's */
6574 		YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
6575 	}
6576 
6577 	(yy_n_chars) += number_to_move;
6578 	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
6579 	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
6580 
6581 	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
6582 
6583 	return ret_val;
6584 }
6585 
6586 /* yy_get_previous_state - get the state just before the EOB char was reached */
6587 
yy_get_previous_state(void)6588     static yy_state_type yy_get_previous_state (void)
6589 {
6590 	yy_state_type yy_current_state;
6591 	char *yy_cp;
6592 
6593 	yy_current_state = (yy_start);
6594 	yy_current_state += YY_AT_BOL();
6595 
6596 	(yy_state_ptr) = (yy_state_buf);
6597 	*(yy_state_ptr)++ = yy_current_state;
6598 
6599 	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
6600 		{
6601 		YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
6602 		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
6603 			{
6604 			yy_current_state = (int) yy_def[yy_current_state];
6605 			if ( yy_current_state >= 2803 )
6606 				yy_c = yy_meta[(unsigned int) yy_c];
6607 			}
6608 		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
6609 		*(yy_state_ptr)++ = yy_current_state;
6610 		}
6611 
6612 	return yy_current_state;
6613 }
6614 
6615 /* yy_try_NUL_trans - try to make a transition on the NUL character
6616  *
6617  * synopsis
6618  *	next_state = yy_try_NUL_trans( current_state );
6619  */
yy_try_NUL_trans(yy_state_type yy_current_state)6620     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
6621 {
6622 	int yy_is_jam;
6623 
6624 	YY_CHAR yy_c = 1;
6625 	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
6626 		{
6627 		yy_current_state = (int) yy_def[yy_current_state];
6628 		if ( yy_current_state >= 2803 )
6629 			yy_c = yy_meta[(unsigned int) yy_c];
6630 		}
6631 	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
6632 	yy_is_jam = (yy_current_state == 2802);
6633 	if ( ! yy_is_jam )
6634 		*(yy_state_ptr)++ = yy_current_state;
6635 
6636 		return yy_is_jam ? 0 : yy_current_state;
6637 }
6638 
6639 #ifndef YY_NO_INPUT
6640 #ifdef __cplusplus
yyinput(void)6641     static int yyinput (void)
6642 #else
6643     static int input  (void)
6644 #endif
6645 
6646 {
6647 	int c;
6648 
6649 	*(yy_c_buf_p) = (yy_hold_char);
6650 
6651 	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
6652 		{
6653 		/* yy_c_buf_p now points to the character we want to return.
6654 		 * If this occurs *before* the EOB characters, then it's a
6655 		 * valid NUL; if not, then we've hit the end of the buffer.
6656 		 */
6657 		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
6658 			/* This was really a NUL. */
6659 			*(yy_c_buf_p) = '\0';
6660 
6661 		else
6662 			{ /* need more input */
6663 			yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
6664 			++(yy_c_buf_p);
6665 
6666 			switch ( yy_get_next_buffer(  ) )
6667 				{
6668 				case EOB_ACT_LAST_MATCH:
6669 					/* This happens because yy_g_n_b()
6670 					 * sees that we've accumulated a
6671 					 * token and flags that we need to
6672 					 * try matching the token before
6673 					 * proceeding.  But for input(),
6674 					 * there's no matching to consider.
6675 					 * So convert the EOB_ACT_LAST_MATCH
6676 					 * to EOB_ACT_END_OF_FILE.
6677 					 */
6678 
6679 					/* Reset buffer status. */
6680 					socks_yyrestart(socks_yyin );
6681 
6682 					/*FALLTHROUGH*/
6683 
6684 				case EOB_ACT_END_OF_FILE:
6685 					{
6686 					if ( socks_yywrap( ) )
6687 						return EOF;
6688 
6689 					if ( ! (yy_did_buffer_switch_on_eof) )
6690 						YY_NEW_FILE;
6691 #ifdef __cplusplus
6692 					return yyinput();
6693 #else
6694 					return input();
6695 #endif
6696 					}
6697 
6698 				case EOB_ACT_CONTINUE_SCAN:
6699 					(yy_c_buf_p) = (yytext_ptr) + offset;
6700 					break;
6701 				}
6702 			}
6703 		}
6704 
6705 	c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */
6706 	*(yy_c_buf_p) = '\0';	/* preserve socks_yytext */
6707 	(yy_hold_char) = *++(yy_c_buf_p);
6708 
6709 	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
6710 	if ( YY_CURRENT_BUFFER_LVALUE->yy_at_bol )
6711 
6712     socks_yylineno++;
6713 ;
6714 
6715 	return c;
6716 }
6717 #endif	/* ifndef YY_NO_INPUT */
6718 
6719 /** Immediately switch to a different input stream.
6720  * @param input_file A readable stream.
6721  *
6722  * @note This function does not reset the start condition to @c INITIAL .
6723  */
socks_yyrestart(FILE * input_file)6724     void socks_yyrestart  (FILE * input_file )
6725 {
6726 
6727 	if ( ! YY_CURRENT_BUFFER ){
6728         socks_yyensure_buffer_stack ();
6729 		YY_CURRENT_BUFFER_LVALUE =
6730             socks_yy_create_buffer(socks_yyin,YY_BUF_SIZE );
6731 	}
6732 
6733 	socks_yy_init_buffer(YY_CURRENT_BUFFER,input_file );
6734 	socks_yy_load_buffer_state( );
6735 }
6736 
6737 /** Switch to a different input buffer.
6738  * @param new_buffer The new input buffer.
6739  *
6740  */
socks_yy_switch_to_buffer(YY_BUFFER_STATE new_buffer)6741     void socks_yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
6742 {
6743 
6744 	/* TODO. We should be able to replace this entire function body
6745 	 * with
6746 	 *		socks_yypop_buffer_state();
6747 	 *		socks_yypush_buffer_state(new_buffer);
6748      */
6749 	socks_yyensure_buffer_stack ();
6750 	if ( YY_CURRENT_BUFFER == new_buffer )
6751 		return;
6752 
6753 	if ( YY_CURRENT_BUFFER )
6754 		{
6755 		/* Flush out information for old buffer. */
6756 		*(yy_c_buf_p) = (yy_hold_char);
6757 		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
6758 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
6759 		}
6760 
6761 	YY_CURRENT_BUFFER_LVALUE = new_buffer;
6762 	socks_yy_load_buffer_state( );
6763 
6764 	/* We don't actually know whether we did this switch during
6765 	 * EOF (socks_yywrap()) processing, but the only time this flag
6766 	 * is looked at is after socks_yywrap() is called, so it's safe
6767 	 * to go ahead and always set it.
6768 	 */
6769 	(yy_did_buffer_switch_on_eof) = 1;
6770 }
6771 
socks_yy_load_buffer_state(void)6772 static void socks_yy_load_buffer_state  (void)
6773 {
6774     	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
6775 	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
6776 	socks_yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
6777 	(yy_hold_char) = *(yy_c_buf_p);
6778 }
6779 
6780 /** Allocate and initialize an input buffer state.
6781  * @param file A readable stream.
6782  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
6783  *
6784  * @return the allocated buffer state.
6785  */
socks_yy_create_buffer(FILE * file,int size)6786     YY_BUFFER_STATE socks_yy_create_buffer  (FILE * file, int  size )
6787 {
6788 	YY_BUFFER_STATE b;
6789 
6790 	b = (YY_BUFFER_STATE) socks_yyalloc(sizeof( struct yy_buffer_state )  );
6791 	if ( ! b )
6792 		YY_FATAL_ERROR( "out of dynamic memory in socks_yy_create_buffer()" );
6793 
6794 	b->yy_buf_size = size;
6795 
6796 	/* yy_ch_buf has to be 2 characters longer than the size given because
6797 	 * we need to put in 2 end-of-buffer characters.
6798 	 */
6799 	b->yy_ch_buf = (char *) socks_yyalloc(b->yy_buf_size + 2  );
6800 	if ( ! b->yy_ch_buf )
6801 		YY_FATAL_ERROR( "out of dynamic memory in socks_yy_create_buffer()" );
6802 
6803 	b->yy_is_our_buffer = 1;
6804 
6805 	socks_yy_init_buffer(b,file );
6806 
6807 	return b;
6808 }
6809 
6810 /** Destroy the buffer.
6811  * @param b a buffer created with socks_yy_create_buffer()
6812  *
6813  */
socks_yy_delete_buffer(YY_BUFFER_STATE b)6814     void socks_yy_delete_buffer (YY_BUFFER_STATE  b )
6815 {
6816 
6817 	if ( ! b )
6818 		return;
6819 
6820 	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
6821 		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
6822 
6823 	if ( b->yy_is_our_buffer )
6824 		socks_yyfree((void *) b->yy_ch_buf  );
6825 
6826 	socks_yyfree((void *) b  );
6827 }
6828 
6829 /* Initializes or reinitializes a buffer.
6830  * This function is sometimes called more than once on the same buffer,
6831  * such as during a socks_yyrestart() or at EOF.
6832  */
socks_yy_init_buffer(YY_BUFFER_STATE b,FILE * file)6833     static void socks_yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
6834 
6835 {
6836 	int oerrno = errno;
6837 
6838 	socks_yy_flush_buffer(b );
6839 
6840 	b->yy_input_file = file;
6841 	b->yy_fill_buffer = 1;
6842 
6843     /* If b is the current buffer, then socks_yy_init_buffer was _probably_
6844      * called from socks_yyrestart() or through yy_get_next_buffer.
6845      * In that case, we don't want to reset the lineno or column.
6846      */
6847     if (b != YY_CURRENT_BUFFER){
6848         b->yy_bs_lineno = 1;
6849         b->yy_bs_column = 0;
6850     }
6851 
6852         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
6853 
6854 	errno = oerrno;
6855 }
6856 
6857 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
6858  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
6859  *
6860  */
socks_yy_flush_buffer(YY_BUFFER_STATE b)6861     void socks_yy_flush_buffer (YY_BUFFER_STATE  b )
6862 {
6863     	if ( ! b )
6864 		return;
6865 
6866 	b->yy_n_chars = 0;
6867 
6868 	/* We always need two end-of-buffer characters.  The first causes
6869 	 * a transition to the end-of-buffer state.  The second causes
6870 	 * a jam in that state.
6871 	 */
6872 	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
6873 	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
6874 
6875 	b->yy_buf_pos = &b->yy_ch_buf[0];
6876 
6877 	b->yy_at_bol = 1;
6878 	b->yy_buffer_status = YY_BUFFER_NEW;
6879 
6880 	if ( b == YY_CURRENT_BUFFER )
6881 		socks_yy_load_buffer_state( );
6882 }
6883 
6884 /** Pushes the new state onto the stack. The new state becomes
6885  *  the current state. This function will allocate the stack
6886  *  if necessary.
6887  *  @param new_buffer The new state.
6888  *
6889  */
socks_yypush_buffer_state(YY_BUFFER_STATE new_buffer)6890 void socks_yypush_buffer_state (YY_BUFFER_STATE new_buffer )
6891 {
6892     	if (new_buffer == NULL)
6893 		return;
6894 
6895 	socks_yyensure_buffer_stack();
6896 
6897 	/* This block is copied from socks_yy_switch_to_buffer. */
6898 	if ( YY_CURRENT_BUFFER )
6899 		{
6900 		/* Flush out information for old buffer. */
6901 		*(yy_c_buf_p) = (yy_hold_char);
6902 		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
6903 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
6904 		}
6905 
6906 	/* Only push if top exists. Otherwise, replace top. */
6907 	if (YY_CURRENT_BUFFER)
6908 		(yy_buffer_stack_top)++;
6909 	YY_CURRENT_BUFFER_LVALUE = new_buffer;
6910 
6911 	/* copied from socks_yy_switch_to_buffer. */
6912 	socks_yy_load_buffer_state( );
6913 	(yy_did_buffer_switch_on_eof) = 1;
6914 }
6915 
6916 /** Removes and deletes the top of the stack, if present.
6917  *  The next element becomes the new top.
6918  *
6919  */
socks_yypop_buffer_state(void)6920 void socks_yypop_buffer_state (void)
6921 {
6922     	if (!YY_CURRENT_BUFFER)
6923 		return;
6924 
6925 	socks_yy_delete_buffer(YY_CURRENT_BUFFER );
6926 	YY_CURRENT_BUFFER_LVALUE = NULL;
6927 	if ((yy_buffer_stack_top) > 0)
6928 		--(yy_buffer_stack_top);
6929 
6930 	if (YY_CURRENT_BUFFER) {
6931 		socks_yy_load_buffer_state( );
6932 		(yy_did_buffer_switch_on_eof) = 1;
6933 	}
6934 }
6935 
6936 /* Allocates the stack if it does not exist.
6937  *  Guarantees space for at least one push.
6938  */
socks_yyensure_buffer_stack(void)6939 static void socks_yyensure_buffer_stack (void)
6940 {
6941 	yy_size_t num_to_alloc;
6942 
6943 	if (!(yy_buffer_stack)) {
6944 
6945 		/* First allocation is just for 2 elements, since we don't know if this
6946 		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
6947 		 * immediate realloc on the next call.
6948          */
6949 		num_to_alloc = 1;
6950 		(yy_buffer_stack) = (struct yy_buffer_state**)socks_yyalloc
6951 								(num_to_alloc * sizeof(struct yy_buffer_state*)
6952 								);
6953 		if ( ! (yy_buffer_stack) )
6954 			YY_FATAL_ERROR( "out of dynamic memory in socks_yyensure_buffer_stack()" );
6955 
6956 		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
6957 
6958 		(yy_buffer_stack_max) = num_to_alloc;
6959 		(yy_buffer_stack_top) = 0;
6960 		return;
6961 	}
6962 
6963 	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
6964 
6965 		/* Increase the buffer to prepare for a possible push. */
6966 		int grow_size = 8 /* arbitrary grow size */;
6967 
6968 		num_to_alloc = (yy_buffer_stack_max) + grow_size;
6969 		(yy_buffer_stack) = (struct yy_buffer_state**)socks_yyrealloc
6970 								((yy_buffer_stack),
6971 								num_to_alloc * sizeof(struct yy_buffer_state*)
6972 								);
6973 		if ( ! (yy_buffer_stack) )
6974 			YY_FATAL_ERROR( "out of dynamic memory in socks_yyensure_buffer_stack()" );
6975 
6976 		/* zero only the new slots.*/
6977 		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
6978 		(yy_buffer_stack_max) = num_to_alloc;
6979 	}
6980 }
6981 
6982 /** Setup the input buffer state to scan directly from a user-specified character buffer.
6983  * @param base the character buffer
6984  * @param size the size in bytes of the character buffer
6985  *
6986  * @return the newly allocated buffer state object.
6987  */
socks_yy_scan_buffer(char * base,yy_size_t size)6988 YY_BUFFER_STATE socks_yy_scan_buffer  (char * base, yy_size_t  size )
6989 {
6990 	YY_BUFFER_STATE b;
6991 
6992 	if ( size < 2 ||
6993 	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
6994 	     base[size-1] != YY_END_OF_BUFFER_CHAR )
6995 		/* They forgot to leave room for the EOB's. */
6996 		return 0;
6997 
6998 	b = (YY_BUFFER_STATE) socks_yyalloc(sizeof( struct yy_buffer_state )  );
6999 	if ( ! b )
7000 		YY_FATAL_ERROR( "out of dynamic memory in socks_yy_scan_buffer()" );
7001 
7002 	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
7003 	b->yy_buf_pos = b->yy_ch_buf = base;
7004 	b->yy_is_our_buffer = 0;
7005 	b->yy_input_file = 0;
7006 	b->yy_n_chars = b->yy_buf_size;
7007 	b->yy_is_interactive = 0;
7008 	b->yy_at_bol = 1;
7009 	b->yy_fill_buffer = 0;
7010 	b->yy_buffer_status = YY_BUFFER_NEW;
7011 
7012 	socks_yy_switch_to_buffer(b  );
7013 
7014 	return b;
7015 }
7016 
7017 /** Setup the input buffer state to scan a string. The next call to socks_yylex() will
7018  * scan from a @e copy of @a str.
7019  * @param yystr a NUL-terminated string to scan
7020  *
7021  * @return the newly allocated buffer state object.
7022  * @note If you want to scan bytes that may contain NUL values, then use
7023  *       socks_yy_scan_bytes() instead.
7024  */
socks_yy_scan_string(yyconst char * yystr)7025 YY_BUFFER_STATE socks_yy_scan_string (yyconst char * yystr )
7026 {
7027 
7028 	return socks_yy_scan_bytes(yystr,strlen(yystr) );
7029 }
7030 
7031 /** Setup the input buffer state to scan the given bytes. The next call to socks_yylex() will
7032  * scan from a @e copy of @a bytes.
7033  * @param yybytes the byte buffer to scan
7034  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
7035  *
7036  * @return the newly allocated buffer state object.
7037  */
socks_yy_scan_bytes(yyconst char * yybytes,yy_size_t _yybytes_len)7038 YY_BUFFER_STATE socks_yy_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
7039 {
7040 	YY_BUFFER_STATE b;
7041 	char *buf;
7042 	yy_size_t n;
7043 	yy_size_t i;
7044 
7045 	/* Get memory for full buffer, including space for trailing EOB's. */
7046 	n = _yybytes_len + 2;
7047 	buf = (char *) socks_yyalloc(n  );
7048 	if ( ! buf )
7049 		YY_FATAL_ERROR( "out of dynamic memory in socks_yy_scan_bytes()" );
7050 
7051 	for ( i = 0; i < _yybytes_len; ++i )
7052 		buf[i] = yybytes[i];
7053 
7054 	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
7055 
7056 	b = socks_yy_scan_buffer(buf,n );
7057 	if ( ! b )
7058 		YY_FATAL_ERROR( "bad buffer in socks_yy_scan_bytes()" );
7059 
7060 	/* It's okay to grow etc. this buffer, and we should throw it
7061 	 * away when we're done.
7062 	 */
7063 	b->yy_is_our_buffer = 1;
7064 
7065 	return b;
7066 }
7067 
7068 #ifndef YY_EXIT_FAILURE
7069 #define YY_EXIT_FAILURE 2
7070 #endif
7071 
yy_fatal_error(yyconst char * msg)7072 static void yy_fatal_error (yyconst char* msg )
7073 {
7074     	(void) fprintf( stderr, "%s\n", msg );
7075 	exit( YY_EXIT_FAILURE );
7076 }
7077 
7078 /* Redefine yyless() so it works in section 3 code. */
7079 
7080 #undef yyless
7081 #define yyless(n) \
7082 	do \
7083 		{ \
7084 		/* Undo effects of setting up socks_yytext. */ \
7085         int yyless_macro_arg = (n); \
7086         YY_LESS_LINENO(yyless_macro_arg);\
7087 		socks_yytext[socks_yyleng] = (yy_hold_char); \
7088 		(yy_c_buf_p) = socks_yytext + yyless_macro_arg; \
7089 		(yy_hold_char) = *(yy_c_buf_p); \
7090 		*(yy_c_buf_p) = '\0'; \
7091 		socks_yyleng = yyless_macro_arg; \
7092 		} \
7093 	while ( 0 )
7094 
7095 /* Accessor  methods (get/set functions) to struct members. */
7096 
7097 /** Get the current line number.
7098  *
7099  */
socks_yyget_lineno(void)7100 int socks_yyget_lineno  (void)
7101 {
7102 
7103     return socks_yylineno;
7104 }
7105 
7106 /** Get the input stream.
7107  *
7108  */
socks_yyget_in(void)7109 FILE *socks_yyget_in  (void)
7110 {
7111         return socks_yyin;
7112 }
7113 
7114 /** Get the output stream.
7115  *
7116  */
socks_yyget_out(void)7117 FILE *socks_yyget_out  (void)
7118 {
7119         return socks_yyout;
7120 }
7121 
7122 /** Get the length of the current token.
7123  *
7124  */
socks_yyget_leng(void)7125 yy_size_t socks_yyget_leng  (void)
7126 {
7127         return socks_yyleng;
7128 }
7129 
7130 /** Get the current token.
7131  *
7132  */
7133 
socks_yyget_text(void)7134 char *socks_yyget_text  (void)
7135 {
7136         return socks_yytext;
7137 }
7138 
7139 /** Set the current line number.
7140  * @param line_number
7141  *
7142  */
socks_yyset_lineno(int line_number)7143 void socks_yyset_lineno (int  line_number )
7144 {
7145 
7146     socks_yylineno = line_number;
7147 }
7148 
7149 /** Set the input stream. This does not discard the current
7150  * input buffer.
7151  * @param in_str A readable stream.
7152  *
7153  * @see socks_yy_switch_to_buffer
7154  */
socks_yyset_in(FILE * in_str)7155 void socks_yyset_in (FILE *  in_str )
7156 {
7157         socks_yyin = in_str ;
7158 }
7159 
socks_yyset_out(FILE * out_str)7160 void socks_yyset_out (FILE *  out_str )
7161 {
7162         socks_yyout = out_str ;
7163 }
7164 
socks_yyget_debug(void)7165 int socks_yyget_debug  (void)
7166 {
7167         return socks_yy_flex_debug;
7168 }
7169 
socks_yyset_debug(int bdebug)7170 void socks_yyset_debug (int  bdebug )
7171 {
7172         socks_yy_flex_debug = bdebug ;
7173 }
7174 
yy_init_globals(void)7175 static int yy_init_globals (void)
7176 {
7177         /* Initialization is the same as for the non-reentrant scanner.
7178      * This function is called from socks_yylex_destroy(), so don't allocate here.
7179      */
7180 
7181     /* We do not touch socks_yylineno unless the option is enabled. */
7182     socks_yylineno =  1;
7183 
7184     (yy_buffer_stack) = 0;
7185     (yy_buffer_stack_top) = 0;
7186     (yy_buffer_stack_max) = 0;
7187     (yy_c_buf_p) = (char *) 0;
7188     (yy_init) = 0;
7189     (yy_start) = 0;
7190 
7191     (yy_state_buf) = 0;
7192     (yy_state_ptr) = 0;
7193     (yy_full_match) = 0;
7194     (yy_lp) = 0;
7195 
7196 /* Defined in main.c */
7197 #ifdef YY_STDINIT
7198     socks_yyin = stdin;
7199     socks_yyout = stdout;
7200 #else
7201     socks_yyin = (FILE *) 0;
7202     socks_yyout = (FILE *) 0;
7203 #endif
7204 
7205     /* For future reference: Set errno on error, since we are called by
7206      * socks_yylex_init()
7207      */
7208     return 0;
7209 }
7210 
7211 /* socks_yylex_destroy is for both reentrant and non-reentrant scanners. */
socks_yylex_destroy(void)7212 int socks_yylex_destroy  (void)
7213 {
7214 
7215     /* Pop the buffer stack, destroying each element. */
7216 	while(YY_CURRENT_BUFFER){
7217 		socks_yy_delete_buffer(YY_CURRENT_BUFFER  );
7218 		YY_CURRENT_BUFFER_LVALUE = NULL;
7219 		socks_yypop_buffer_state();
7220 	}
7221 
7222 	/* Destroy the stack itself. */
7223 	socks_yyfree((yy_buffer_stack) );
7224 	(yy_buffer_stack) = NULL;
7225 
7226     socks_yyfree ( (yy_state_buf) );
7227     (yy_state_buf)  = NULL;
7228 
7229     /* Reset the globals. This is important in a non-reentrant scanner so the next time
7230      * socks_yylex() is called, initialization will occur. */
7231     yy_init_globals( );
7232 
7233     return 0;
7234 }
7235 
7236 /*
7237  * Internal utility routines.
7238  */
7239 
7240 #ifndef yytext_ptr
yy_flex_strncpy(char * s1,yyconst char * s2,int n)7241 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
7242 {
7243 	int i;
7244 	for ( i = 0; i < n; ++i )
7245 		s1[i] = s2[i];
7246 }
7247 #endif
7248 
7249 #ifdef YY_NEED_STRLEN
yy_flex_strlen(yyconst char * s)7250 static int yy_flex_strlen (yyconst char * s )
7251 {
7252 	int n;
7253 	for ( n = 0; s[n]; ++n )
7254 		;
7255 
7256 	return n;
7257 }
7258 #endif
7259 
socks_yyalloc(yy_size_t size)7260 void *socks_yyalloc (yy_size_t  size )
7261 {
7262 	return (void *) malloc( size );
7263 }
7264 
socks_yyrealloc(void * ptr,yy_size_t size)7265 void *socks_yyrealloc  (void * ptr, yy_size_t  size )
7266 {
7267 	/* The cast to (char *) in the following accommodates both
7268 	 * implementations that use char* generic pointers, and those
7269 	 * that use void* generic pointers.  It works with the latter
7270 	 * because both ANSI C and C++ allow castless assignment from
7271 	 * any pointer type to void*, and deal with argument conversions
7272 	 * as though doing an assignment.
7273 	 */
7274 	return (void *) realloc( (char *) ptr, size );
7275 }
7276 
socks_yyfree(void * ptr)7277 void socks_yyfree (void * ptr )
7278 {
7279 	free( (char *) ptr );	/* see socks_yyrealloc() for (char *) cast */
7280 }
7281 
7282 #define YYTABLES_NAME "yytables"
7283 
7284 #line 1846 "config_scan.l"
7285 
7286 
7287 
7288 static int
shouldresetstate(current_state,next_token)7289 shouldresetstate(current_state, next_token)
7290    const int current_state;
7291    const int next_token;
7292 {
7293    switch (current_state) {
7294       case start_hostindex:
7295       case start_schedulemask:
7296       case start_servicename:
7297          switch (next_token) {
7298             case NUMBER:
7299                return 1;
7300          }
7301          break;
7302    }
7303 
7304    return 0;
7305 }
7306 
7307