• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #line 2 "scanner.c"
2 /* Must come first for _LARGE_FILE_API on AIX. */
3 #ifdef HAVE_CONFIG_H
4 #include <config.h>
5 #endif
6 
7 /*
8  * Must come first to avoid warnings on Windows.
9  *
10  * Flex-generated scanners may only include <inttypes.h> if __STDC_VERSION__
11  * is defined with a value >= 199901, meaning "full C99", and MSVC may not
12  * define it with that value, because it isn't 100% C99-compliant, even
13  * though it has an <inttypes.h> capable of defining everything the Flex
14  * scanner needs.
15  *
16  * We, however, will include it if we know we have an MSVC version that has
17  * it; this means that we may define the INTn_MAX and UINTn_MAX values in
18  * scanner.c, and then include <stdint.h>, which may define them differently
19  * (same value, but different string of characters), causing compiler warnings.
20  *
21  * If we include it here, and they're defined, that'll prevent scanner.c
22  * from defining them.  So we include <pcap/pcap-inttypes.h>, to get
23  * <inttypes.h> if we have it.
24  */
25 #include <pcap/pcap-inttypes.h>
26 
27 #include "diag-control.h"
28 
29 #line 30 "scanner.c"
30 
31 #define  YY_INT_ALIGNED short int
32 
33 /* A lexical scanner generated by flex */
34 
35 #define FLEX_SCANNER
36 #define YY_FLEX_MAJOR_VERSION 2
37 #define YY_FLEX_MINOR_VERSION 6
38 #define YY_FLEX_SUBMINOR_VERSION 1
39 #if YY_FLEX_SUBMINOR_VERSION > 0
40 #define FLEX_BETA
41 #endif
42 
43 /* First, we deal with  platform-specific or compiler-specific issues. */
44 
45 /* begin standard C headers. */
46 #include <stdio.h>
47 #include <string.h>
48 #include <errno.h>
49 #include <stdlib.h>
50 
51 /* end standard C headers. */
52 
53 /* flex integer type definitions */
54 
55 #ifndef FLEXINT_H
56 #define FLEXINT_H
57 
58 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
59 
60 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
61 
62 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
63  * if you want the limit (max/min) macros for int types.
64  */
65 #ifndef __STDC_LIMIT_MACROS
66 #define __STDC_LIMIT_MACROS 1
67 #endif
68 
69 #include <inttypes.h>
70 typedef int8_t flex_int8_t;
71 typedef uint8_t flex_uint8_t;
72 typedef int16_t flex_int16_t;
73 typedef uint16_t flex_uint16_t;
74 typedef int32_t flex_int32_t;
75 typedef uint32_t flex_uint32_t;
76 #else
77 typedef signed char flex_int8_t;
78 typedef short int flex_int16_t;
79 typedef int flex_int32_t;
80 typedef unsigned char flex_uint8_t;
81 typedef unsigned short int flex_uint16_t;
82 typedef unsigned int flex_uint32_t;
83 
84 /* Limits of integral types. */
85 #ifndef INT8_MIN
86 #define INT8_MIN               (-128)
87 #endif
88 #ifndef INT16_MIN
89 #define INT16_MIN              (-32767-1)
90 #endif
91 #ifndef INT32_MIN
92 #define INT32_MIN              (-2147483647-1)
93 #endif
94 #ifndef INT8_MAX
95 #define INT8_MAX               (127)
96 #endif
97 #ifndef INT16_MAX
98 #define INT16_MAX              (32767)
99 #endif
100 #ifndef INT32_MAX
101 #define INT32_MAX              (2147483647)
102 #endif
103 #ifndef UINT8_MAX
104 #define UINT8_MAX              (255U)
105 #endif
106 #ifndef UINT16_MAX
107 #define UINT16_MAX             (65535U)
108 #endif
109 #ifndef UINT32_MAX
110 #define UINT32_MAX             (4294967295U)
111 #endif
112 
113 #endif /* ! C99 */
114 
115 #endif /* ! FLEXINT_H */
116 
117 /* TODO: this is always defined, so inline it */
118 #define yyconst const
119 
120 #if defined(__GNUC__) && __GNUC__ >= 3
121 #define yynoreturn __attribute__((__noreturn__))
122 #else
123 #define yynoreturn
124 #endif
125 
126 /* Returned upon end-of-file. */
127 #define YY_NULL 0
128 
129 /* Promotes a possibly negative, possibly signed char to an unsigned
130  * integer for use as an array index.  If the signed char is negative,
131  * we want to instead treat it as an 8-bit unsigned char, hence the
132  * double cast.
133  */
134 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
135 
136 /* An opaque pointer. */
137 #ifndef YY_TYPEDEF_YY_SCANNER_T
138 #define YY_TYPEDEF_YY_SCANNER_T
139 typedef void* yyscan_t;
140 #endif
141 
142 /* For convenience, these vars (plus the bison vars far below)
143    are macros in the reentrant scanner. */
144 #define yyin yyg->yyin_r
145 #define yyout yyg->yyout_r
146 #define yyextra yyg->yyextra_r
147 #define yyleng yyg->yyleng_r
148 #define yytext yyg->yytext_r
149 #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
150 #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
151 #define yy_flex_debug yyg->yy_flex_debug_r
152 
153 /* Enter a start condition.  This macro really ought to take a parameter,
154  * but we do it the disgusting crufty way forced on us by the ()-less
155  * definition of BEGIN.
156  */
157 #define BEGIN yyg->yy_start = 1 + 2 *
158 
159 /* Translate the current start state into a value that can be later handed
160  * to BEGIN to return to the state.  The YYSTATE alias is for lex
161  * compatibility.
162  */
163 #define YY_START ((yyg->yy_start - 1) / 2)
164 #define YYSTATE YY_START
165 
166 /* Action number for EOF rule of a given start state. */
167 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
168 
169 /* Special action meaning "start processing a new file". */
170 #define YY_NEW_FILE pcap_restart(yyin ,yyscanner )
171 
172 #define YY_END_OF_BUFFER_CHAR 0
173 
174 /* Size of default input buffer. */
175 #ifndef YY_BUF_SIZE
176 #ifdef __ia64__
177 /* On IA-64, the buffer size is 16k, not 8k.
178  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
179  * Ditto for the __ia64__ case accordingly.
180  */
181 #define YY_BUF_SIZE 32768
182 #else
183 #define YY_BUF_SIZE 16384
184 #endif /* __ia64__ */
185 #endif
186 
187 /* The state buf must be large enough to hold one state per character in the main buffer.
188  */
189 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
190 
191 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
192 #define YY_TYPEDEF_YY_BUFFER_STATE
193 typedef struct yy_buffer_state *YY_BUFFER_STATE;
194 #endif
195 
196 #ifndef YY_TYPEDEF_YY_SIZE_T
197 #define YY_TYPEDEF_YY_SIZE_T
198 typedef size_t yy_size_t;
199 #endif
200 
201 #define EOB_ACT_CONTINUE_SCAN 0
202 #define EOB_ACT_END_OF_FILE 1
203 #define EOB_ACT_LAST_MATCH 2
204 
205     #define YY_LESS_LINENO(n)
206     #define YY_LINENO_REWIND_TO(ptr)
207 
208 /* Return all but the first "n" matched characters back to the input stream. */
209 #define yyless(n) \
210 	do \
211 		{ \
212 		/* Undo effects of setting up yytext. */ \
213         int yyless_macro_arg = (n); \
214         YY_LESS_LINENO(yyless_macro_arg);\
215 		*yy_cp = yyg->yy_hold_char; \
216 		YY_RESTORE_YY_MORE_OFFSET \
217 		yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
218 		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
219 		} \
220 	while ( 0 )
221 
222 #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
223 
224 #ifndef YY_STRUCT_YY_BUFFER_STATE
225 #define YY_STRUCT_YY_BUFFER_STATE
226 struct yy_buffer_state
227 	{
228 	FILE *yy_input_file;
229 
230 	char *yy_ch_buf;		/* input buffer */
231 	char *yy_buf_pos;		/* current position in input buffer */
232 
233 	/* Size of input buffer in bytes, not including room for EOB
234 	 * characters.
235 	 */
236 	int yy_buf_size;
237 
238 	/* Number of characters read into yy_ch_buf, not including EOB
239 	 * characters.
240 	 */
241 	int yy_n_chars;
242 
243 	/* Whether we "own" the buffer - i.e., we know we created it,
244 	 * and can realloc() it to grow it, and should free() it to
245 	 * delete it.
246 	 */
247 	int yy_is_our_buffer;
248 
249 	/* Whether this is an "interactive" input source; if so, and
250 	 * if we're using stdio for input, then we want to use getc()
251 	 * instead of fread(), to make sure we stop fetching input after
252 	 * each newline.
253 	 */
254 	int yy_is_interactive;
255 
256 	/* Whether we're considered to be at the beginning of a line.
257 	 * If so, '^' rules will be active on the next match, otherwise
258 	 * not.
259 	 */
260 	int yy_at_bol;
261 
262     int yy_bs_lineno; /**< The line count. */
263     int yy_bs_column; /**< The column count. */
264 
265 	/* Whether to try to fill the input buffer when we reach the
266 	 * end of it.
267 	 */
268 	int yy_fill_buffer;
269 
270 	int yy_buffer_status;
271 
272 #define YY_BUFFER_NEW 0
273 #define YY_BUFFER_NORMAL 1
274 	/* When an EOF's been seen but there's still some text to process
275 	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
276 	 * shouldn't try reading from the input source any more.  We might
277 	 * still have a bunch of tokens to match, though, because of
278 	 * possible backing-up.
279 	 *
280 	 * When we actually see the EOF, we change the status to "new"
281 	 * (via pcap_restart()), so that the user can continue scanning by
282 	 * just pointing yyin at a new input file.
283 	 */
284 #define YY_BUFFER_EOF_PENDING 2
285 
286 	};
287 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
288 
289 /* We provide macros for accessing buffer states in case in the
290  * future we want to put the buffer states in a more general
291  * "scanner state".
292  *
293  * Returns the top of the stack, or NULL.
294  */
295 #define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
296                           ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
297                           : NULL)
298 
299 /* Same as previous macro, but useful when we know that the buffer stack is not
300  * NULL or when we need an lvalue. For internal use only.
301  */
302 #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
303 
304 void pcap_restart (FILE *input_file ,yyscan_t yyscanner );
305 void pcap__switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
306 YY_BUFFER_STATE pcap__create_buffer (FILE *file,int size ,yyscan_t yyscanner );
307 void pcap__delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
308 void pcap__flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
309 void pcap_push_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
310 void pcap_pop_buffer_state (yyscan_t yyscanner );
311 
312 static void pcap_ensure_buffer_stack (yyscan_t yyscanner );
313 static void pcap__load_buffer_state (yyscan_t yyscanner );
314 static void pcap__init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yyscanner );
315 
316 #define YY_FLUSH_BUFFER pcap__flush_buffer(YY_CURRENT_BUFFER ,yyscanner)
317 
318 YY_BUFFER_STATE pcap__scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner );
319 YY_BUFFER_STATE pcap__scan_string (yyconst char *yy_str ,yyscan_t yyscanner );
320 YY_BUFFER_STATE pcap__scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner );
321 
322 void *pcap_alloc (yy_size_t ,yyscan_t yyscanner );
323 void *pcap_realloc (void *,yy_size_t ,yyscan_t yyscanner );
324 void pcap_free (void * ,yyscan_t yyscanner );
325 
326 #define yy_new_buffer pcap__create_buffer
327 
328 #define yy_set_interactive(is_interactive) \
329 	{ \
330 	if ( ! YY_CURRENT_BUFFER ){ \
331         pcap_ensure_buffer_stack (yyscanner); \
332 		YY_CURRENT_BUFFER_LVALUE =    \
333             pcap__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
334 	} \
335 	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
336 	}
337 
338 #define yy_set_bol(at_bol) \
339 	{ \
340 	if ( ! YY_CURRENT_BUFFER ){\
341         pcap_ensure_buffer_stack (yyscanner); \
342 		YY_CURRENT_BUFFER_LVALUE =    \
343             pcap__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
344 	} \
345 	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
346 	}
347 
348 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
349 
350 /* Begin user sect3 */
351 
352 #define pcap_wrap(yyscanner) (/*CONSTCOND*/1)
353 #define YY_SKIP_YYWRAP
354 
355 typedef unsigned char YY_CHAR;
356 
357 typedef int yy_state_type;
358 
359 #define yytext_ptr yytext_r
360 
361 static yy_state_type yy_get_previous_state (yyscan_t yyscanner );
362 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  ,yyscan_t yyscanner);
363 static int yy_get_next_buffer (yyscan_t yyscanner );
364 static void yynoreturn yy_fatal_error (yyconst char* msg ,yyscan_t yyscanner );
365 
366 /* Done after the current pattern has been matched and before the
367  * corresponding action - sets up yytext.
368  */
369 #define YY_DO_BEFORE_ACTION \
370 	yyg->yytext_ptr = yy_bp; \
371 	yyleng = (int) (yy_cp - yy_bp); \
372 	yyg->yy_hold_char = *yy_cp; \
373 	*yy_cp = '\0'; \
374 	yyg->yy_c_buf_p = yy_cp;
375 
376 #define YY_NUM_RULES 184
377 #define YY_END_OF_BUFFER 185
378 /* This struct is not used in this scanner,
379    but its presence is necessary. */
380 struct yy_trans_info
381 	{
382 	flex_int32_t yy_verify;
383 	flex_int32_t yy_nxt;
384 	};
385 static yyconst flex_int16_t yy_accept[1729] =
386     {   0,
387         0,    0,  185,  182,  113,  113,  113,  114,  182,  114,
388       114,  114,  183,  123,  123,  114,  114,  114,  114,  180,
389       180,  182,  180,  180,  180,  180,  180,  180,  180,  180,
390       180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
391       180,  180,  114,  182,  117,  121,   67,    0,  180,  123,
392         0,  180,  180,  180,    0,  125,  119,  116,  118,  115,
393       120,  180,  181,  181,  180,  180,  180,   20,  180,  180,
394       180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
395       180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
396       180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
397 
398       180,    7,  180,   34,   35,  180,  180,  180,  180,  180,
399       180,  180,  180,  180,  180,  180,  180,  180,  180,   92,
400       180,   68,  180,  180,  180,  180,  180,  180,   60,  180,
401       180,  180,  180,   86,  180,  180,  180,  180,  180,  180,
402        61,  180,    4,  180,  180,  180,  180,  180,  180,  180,
403        68,  121,  180,  124,  124,  180,  123,  180,    0,  125,
404       123,  125,  125,  125,  180,  180,  180,   67,    5,  180,
405        81,  180,  180,  180,  180,  180,  180,  180,   55,  107,
406         1,    0,  180,   21,  180,  180,  180,  180,  180,  180,
407       180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
408 
409       180,  180,   36,  180,  180,   18,   43,    0,  180,   29,
410       180,   25,   70,  180,  180,   79,   37,  180,  100,  180,
411       180,  180,  180,  101,  180,   46,   69,   82,  106,  180,
412        14,  180,    3,  180,  180,  180,  180,  180,   94,  180,
413       180,   26,  180,  105,  180,  108,   38,    2,  180,   42,
414       180,    9,  180,   10,   89,  180,   88,  180,  180,    0,
415       180,  180,  124,  180,  180,  180,  180,  123,    0,  180,
416         0,  126,  125,  125,    0,  125,    0,  125,    0,  125,
417         0,   23,  180,  180,  180,  180,   64,   16,   41,  180,
418        39,  180,  180,  180,   30,  180,   98,  180,  180,  180,
419 
420       111,  180,  180,  104,  110,   45,  109,  112,   11,  180,
421        12,   13,  180,  180,  180,   32,   78,  180,   62,    3,
422        99,   47,  180,  180,  180,   74,  180,  180,  180,  180,
423        48,  180,  180,   40,  180,    6,  180,   93,  180,    8,
424        95,  180,  180,    0,  180,   53,   73,   15,  180,  124,
425       124,  180,  124,  124,  124,  180,  123,  180,    0,  125,
426       180,    0,    0,  125,    0,  125,  126,  125,    0,    0,
427         0,    0,  125,  125,  125,  125,  125,    0,  180,   56,
428        57,   58,   59,  180,   22,  180,  180,  180,  180,   31,
429       180,  180,  180,  102,  103,    0,   19,  180,  180,  180,
430 
431        87,  180,   33,  180,   80,   28,   27,  180,  180,   83,
432       180,  180,  180,   50,   17,  180,  180,  180,  180,  180,
433       180,  180,  180,  180,  180,  180,  180,  180,  180,    0,
434       180,  180,  124,  180,  180,  180,  180,  124,  124,  180,
435       123,  180,    0,    0,  125,  125,  125,    0,    0,  126,
436       125,  125,  126,  125,    0,    0,  125,  125,  125,  125,
437       125,    0,    0,    0,    0,  125,  125,    0,  125,    0,
438       125,    0,   97,  180,  180,  180,   24,  180,  180,   77,
439       180,  180,  180,  180,  180,  180,  180,  180,  180,    0,
440       180,  180,  180,  180,  180,   70,  180,  180,  180,  180,
441 
442       180,  180,  180,   75,   76,  180,   96,  180,  180,  180,
443       180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
444       180,  124,  124,  180,  124,  124,  124,  124,  180,  123,
445       180,    0,  125,  125,    0,  125,    0,    0,  125,    0,
446       125,  126,  125,    0,    0,    0,  125,  125,    0,  125,
447       126,  125,    0,    0,    0,    0,    0,    0,    0,  125,
448       125,  125,  125,  125,    0,  180,  180,  180,  180,   52,
449        63,  180,  180,  180,  180,  180,  180,  180,  180,  180,
450       180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
451       180,  180,   71,  180,  180,   44,   84,   85,  180,  180,
452 
453       180,  180,   54,  176,  179,  178,  172,  180,  174,  173,
454       177,  180,    0,  180,  180,  124,  180,  180,  180,  124,
455       180,  123,  180,    0,    0,  125,  125,  125,  125,  125,
456       125,    0,    0,  126,  125,  125,  125,    0,    0,  125,
457       125,  125,  125,  125,    0,    0,    0,    0,    0,    0,
458         0,  125,  125,  125,  125,  125,    0,    0,    0,    0,
459         0,  125,  125,    0,  125,    0,  125,    0,  180,  180,
460       180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
461       180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
462       180,  180,  180,  128,  127,  180,  180,   72,  180,  180,
463 
464       180,  175,  171,  180,  180,  124,  124,  124,  124,  180,
465       123,  180,    0,  125,  125,    0,  125,  125,    0,  125,
466         0,    0,  125,    0,  125,  126,  125,    0,    0,    0,
467       125,  125,    0,  125,  126,  125,    0,    0,    0,    0,
468         0,  125,  125,    0,  125,  126,  125,    0,  125,  125,
469         0,    0,    0,    0,    0,    0,    0,  125,  125,  125,
470       125,  125,    0,   65,  180,   55,  133,  140,  180,  180,
471       180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
472       180,  180,  180,  180,  180,  180,  145,  144,  180,   66,
473        49,  180,  180,    0,  180,  180,  180,  180,  180,  123,
474 
475       180,    0,    0,  125,  125,  125,  125,  125,  125,  125,
476       125,  125,    0,    0,  126,  125,  125,  125,    0,    0,
477       125,  125,  125,  125,  125,    0,    0,    0,    0,    0,
478         0,    0,  125,  125,  125,  125,  125,    0,  125,  125,
479         0,    0,    0,    0,    0,    0,    0,  125,  125,  125,
480       125,  125,    0,    0,    0,    0,    0,    0,  125,  125,
481         0,  125,    0,  125,    0,   90,  180,  180,  180,  180,
482       180,  180,  180,  180,  180,  180,  180,  146,  180,  180,
483       180,  180,  180,  180,  180,  180,  180,   51,  122,  122,
484       124,  124,  180,  123,  180,    0,  125,  125,    0,  125,
485 
486       125,    0,  125,  125,    0,  125,    0,  122,  125,    0,
487       125,  126,  125,    0,    0,    0,  125,  125,    0,  125,
488       126,  125,    0,    0,    0,    0,    0,  125,  125,    0,
489       125,  126,  125,    0,    0,    0,    0,    0,    0,  125,
490       125,    0,  125,  126,  125,    0,  125,  125,  125,    0,
491         0,    0,    0,    0,    0,    0,  125,  125,  125,  125,
492       125,    0,  180,  180,  180,  180,  180,  180,  180,  180,
493       138,  180,  180,  180,  180,  180,  180,  180,  180,  180,
494       180,  180,   91,  122,  122,  124,  180,  122,  122,    0,
495         0,  125,  125,  125,  125,  125,  125,  125,  125,  125,
496 
497       125,  125,  125,    0,  122,  126,  125,  125,  125,    0,
498         0,  125,  125,  125,  125,  125,    0,    0,    0,    0,
499         0,    0,    0,  125,  125,  125,  125,  125,    0,  125,
500       125,    0,    0,    0,    0,    0,    0,    0,  125,  125,
501       125,  125,  125,    0,  125,  125,  125,    0,    0,    0,
502         0,    0,    0,    0,  125,  125,  125,  125,  125,    0,
503         0,    0,    0,    0,    0,  125,  125,    0,  125,    0,
504       125,    0,  180,  180,  180,  142,  180,  180,  180,  180,
505       180,  180,  180,  130,  180,  180,  180,  180,  180,  180,
506       180,  180,  180,  180,  124,  180,  123,    0,  125,  125,
507 
508         0,  125,  125,    0,  125,  125,    0,  125,  125,    0,
509       125,    0,    0,    0,  125,    0,    0,  125,  126,  125,
510         0,    0,    0,  125,  125,    0,  125,  126,  125,    0,
511         0,    0,    0,    0,  125,  125,    0,  125,  126,  125,
512         0,    0,    0,    0,    0,    0,  125,  125,    0,  125,
513       126,  125,    0,    0,    0,    0,    0,    0,  125,  125,
514         0,  125,  126,  125,    0,  125,  125,  125,    0,    0,
515         0,    0,    0,    0,    0,  125,  125,  125,  125,  125,
516         0,  180,  180,  180,  180,  132,  180,  180,  180,  136,
517       180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
518 
519       180,  180,  180,  122,    0,    0,  125,  125,  125,  125,
520       125,  125,  125,  125,  125,  125,  125,  125,  125,  125,
521       125,    0,    0,    0,  126,    0,    0,  125,    0,    0,
522       125,  125,  125,    0,    0,    0,    0,    0,    0,    0,
523       125,  125,  125,    0,  125,  125,    0,    0,    0,    0,
524         0,    0,    0,  125,  125,  125,    0,  125,  125,  125,
525         0,    0,    0,    0,    0,    0,    0,  125,  125,  125,
526         0,  125,  125,  125,    0,    0,    0,    0,    0,    0,
527         0,  125,  125,  125,    0,    0,    0,    0,    0,    0,
528       125,  125,    0,  125,    0,  125,    0,  129,  141,  143,
529 
530       137,  180,  180,  180,  180,  180,  180,  180,  180,  180,
531       180,  180,  180,  155,  180,  180,  180,    0,    0,  125,
532         0,  125,    0,  125,  125,    0,  125,  125,    0,  125,
533       125,    0,  125,  125,    0,  125,    0,    0,    0,    0,
534       125,  125,    0,  125,    0,    0,  125,  125,  125,    0,
535         0,    0,    0,  125,  125,  125,    0,    0,    0,    0,
536         0,  125,  125,  125,    0,    0,    0,    0,    0,  125,
537       125,  125,    0,    0,    0,    0,    0,  125,  125,  125,
538       125,  125,  125,    0,    0,    0,    0,    0,    0,    0,
539       125,  125,  125,    0,  180,  180,  180,  180,  180,  180,
540 
541       147,  180,  180,  180,  180,  180,  180,  180,  180,  180,
542       180,    0,    0,    0,  125,  125,  125,  125,  125,  125,
543         0,    0,    0,    0,  125,  125,    0,    0,    0,    0,
544       125,  125,  125,    0,    0,    0,    0,    0,  125,  125,
545       125,  125,    0,    0,    0,    0,    0,  125,  125,  125,
546       125,    0,    0,    0,    0,    0,  125,  125,  125,  125,
547         0,    0,    0,    0,    0,  125,    0,    0,    0,    0,
548         0,  125,  125,  125,  180,  180,  180,  139,  180,  180,
549       180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
550       180,  125,  125,  125,  125,  125,  125,  125,  125,    0,
551 
552         0,    0,    0,  125,  125,    0,    0,  125,    0,    0,
553         0,  125,    0,    0,    0,  125,    0,    0,    0,  125,
554         0,    0,    0,  125,  125,  125,  125,    0,    0,    0,
555         0,    0,  125,  134,  180,  131,  180,  180,  180,  180,
556       180,  180,  180,  180,  180,  180,  180,  156,  180,  125,
557         0,    0,  125,  125,    0,  125,  125,  125,    0,  125,
558       125,  125,    0,  125,  125,  125,    0,  125,  125,  125,
559         0,    0,    0,    0,  125,  135,  180,  180,  180,  180,
560       180,  180,  180,  180,  180,  180,  152,  180,  125,  125,
561         0,    0,    0,    0,    0,    0,  125,  125,  125,    0,
562 
563       180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
564       180,  151,    0,  125,  125,  125,  125,  125,    0,  167,
565       180,  180,  180,  180,  180,  180,  180,  154,  180,  180,
566       125,  125,  166,  180,  180,  180,  180,  180,  180,  153,
567       180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
568       180,  180,  180,  180,  180,  180,  180,  180,  180,  180,
569       180,  180,  180,  165,  180,  180,  180,  180,  180,  180,
570       180,  180,  180,  180,  180,  180,  164,  180,  180,  180,
571       180,  180,  170,  180,  180,  180,  180,  180,  180,  180,
572       180,  180,  180,  157,  180,  180,  180,  180,  180,  150,
573 
574       180,  180,  168,  180,  180,  180,  180,  180,  180,  148,
575       180,  169,  180,  163,  180,  180,  180,  180,  158,  180,
576       160,  180,  180,  162,  159,  149,  161,    0
577     } ;
578 
579 static yyconst YY_CHAR yy_ec[256] =
580     {   0,
581         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
582         1,    1,    4,    1,    1,    1,    1,    1,    1,    1,
583         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
584         1,    2,    5,    1,    1,    6,    7,    8,    1,    9,
585         9,    7,    7,    1,   10,   11,    7,   12,   13,   14,
586        15,   16,   17,   18,   17,   17,   17,   19,    1,   20,
587        21,   22,    1,    1,   23,   23,   23,   23,   23,   23,
588        24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
589        24,   24,   24,   24,   24,   24,   24,   25,   24,   24,
590        26,   27,   26,    7,   28,    1,   29,   30,   31,   32,
591 
592        33,   34,   35,   36,   37,   24,   38,   39,   40,   41,
593        42,   43,   44,   45,   46,   47,   48,   49,   50,   51,
594        52,   24,    1,   53,    1,    1,    1,    1,    1,    1,
595         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
596         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
597         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
598         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
599         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
600         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
601         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
602 
603         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
604         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
605         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
606         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
607         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
608         1,    1,    1,    1,    1
609     } ;
610 
611 static yyconst YY_CHAR yy_meta[54] =
612     {   0,
613         1,    2,    2,    1,    2,    1,    1,    3,    2,    4,
614         5,    6,    6,    6,    6,    6,    6,    6,    7,    3,
615         3,    3,    8,    4,    9,    3,    1,    4,    8,    8,
616         8,    8,    8,    8,    4,    4,    4,    4,    4,    4,
617         4,    4,    4,    4,    4,    4,    4,    4,    4,    4,
618         9,    4,    3
619     } ;
620 
621 static yyconst flex_uint16_t yy_base[2189] =
622     {   0,
623         0,    0, 5455,   53, 7856, 7856,   57, 5433,   64,   81,
624      5445, 7856, 7856,   99,   30,  151,   46, 5430,   52,  168,
625       210,  168,  160,   44,  125,   60,   31,   58,  132,  170,
626       214,  217,  229,   59,  170,  222,  237,  243,  250, 5418,
627       255, 5410, 5380,  300, 7856,    0, 7856,  316,  339,  363,
628      5413,  387,    0,  394,    0,  428, 7856, 7856, 7856, 7856,
629      7856,  296,  316,    0, 5386, 5383, 5397,    0, 5395, 5383,
630      5396, 5378, 5366, 5360, 5361, 5362, 5360, 5344, 5352, 5337,
631      5350, 5331,  116, 5341, 5312, 5297, 5295, 5299, 5305, 5294,
632      5299, 5279, 5278,   56,   68, 5263, 5261,   80, 5265, 5259,
633 
634      5267,   68,  166,    0,    0,   15,  122, 5255, 5264,  189,
635      5238, 5236, 5219, 5222, 5212, 5219, 5209, 5208, 5214,    0,
636      5212,    0, 5195, 5181, 5175, 5176, 5175, 5174,  128, 5185,
637      5168, 5167, 5160,  159, 5147,  201, 5144,   38, 5137, 5149,
638         0, 5133,    0, 5112, 5111, 5094, 5090, 5078, 5048, 5062,
639      7856, 7856,  453,  477,  236,  518,  542,  566, 5071,  573,
640      5078,  597,  248, 5054, 5029, 5034, 5025,    0,    0, 5030,
641         0, 5038, 5033, 5022, 5006, 5007, 5004, 5005, 5012,    0,
642         0, 5006, 4996,    0, 5008, 4988, 4976, 4990, 4989, 4992,
643      4988, 4972, 4971, 4953, 4969, 4952, 4956, 4951, 4952, 4965,
644 
645      4950, 4934,    0, 4939, 4933,    0,    0, 4937, 4927,    0,
646      4938,    0, 4935, 4907, 4912,    0,    0, 4901,    0, 4909,
647      4917,  244, 4899,    0, 4887, 4882,    0, 4877,    0, 4880,
648         0, 4861, 4864, 4857, 4845, 4850, 4843, 4839,    0, 4837,
649      4849,    0, 4838,    0, 4837,    0,    0,    0, 4819,    0,
650       153,  156, 4830,    0,    0, 4821,    0, 4818, 4818,  637,
651      4847,  660,  684, 4830,  691,  500,  281,  715, 4821,  739,
652      4820, 4819,  747,  290, 4818, 4816,  507,  788,  811, 4815,
653         0,    0, 4775,  350, 4778, 4783,    0,    0,    0, 4781,
654         0, 4777, 4762, 4746,    0, 4746,    0, 4740, 4739, 4740,
655 
656         0, 4722, 4721,    0,    0,    0,    0,    0,  614, 4728,
657         0,    0, 4736, 4715, 4700,    0,    0, 4698,    0,    0,
658         0,    0, 4713, 4704, 4710,    0, 4703, 4706, 4707, 4679,
659      4675, 4667, 4639,    0, 4632,    0, 4607,    0,  275,    0,
660         0, 4599, 4592,  817, 4585,    0,    0,    0,  856,  880,
661       293,  921, 4610, 4608,  405,  944,  968,  992, 4598,  999,
662       621, 4581, 4579, 1022,  770, 1046, 1069, 4562,    0, 4553,
663       427,  428, 1093, 4552, 1117,  333, 4551, 4550, 4519,    0,
664         0,    0,    0, 4491,    0, 4504, 4502, 4469, 4460,    0,
665      4477, 4472, 4463,    0,    0, 1136,  293, 4453, 4420, 4437,
666 
667         0, 4427,    0, 4429, 4422,    0,    0, 4420, 4394,  292,
668      4393, 4411,  387, 4408,    0, 4390, 4382, 4394, 4368, 4362,
669      4372, 4350, 4357, 4338, 4317, 4318, 4310, 4278, 4292, 1173,
670      4310, 1196, 1220, 4305, 1227,  777,  285, 1251,  334, 1291,
671      1314, 1338, 4294, 4293, 1346,  336, 4291, 4256, 4255, 4254,
672      1387,  363, 4252, 4251,  515,  631, 1428, 4250, 1452,  364,
673      4240, 4247, 4218,  840,    0,  371, 4214,  903, 1493, 1516,
674      4212,    0,    0, 4184, 4200, 4149,    0, 4158, 4140,    0,
675      4145, 4158, 4143, 4126, 4125,  380, 4109,  427, 4108, 1121,
676      4106, 4095, 4082, 4067, 4076,    0, 4066, 4077, 4025, 4028,
677 
678      4026, 4015, 4014,    0,    0, 4018,    0, 3981, 3973, 3986,
679      3984, 3976, 3949, 3960, 3929, 3923, 3918, 3909, 3888, 3885,
680      1541, 1565,  423, 1606, 3892, 3888,  633, 1630, 1654, 1661,
681      1685, 3877, 1692, 1716, 1739, 3876, 3857, 3856, 1762,  910,
682      1786, 1809, 3852,    0, 1274,    0,  461, 3837, 1281, 1833,
683      1856, 3833,    0,  785,  824, 3820,  485,  853,  856, 1880,
684      3810, 1904,  424, 3809, 3798,  529, 3762, 3765, 3739,    0,
685         0, 3742, 3729, 3715, 3691, 3703, 3683, 3666, 3672, 3664,
686      3643, 3632, 3633, 3619, 3601,   56,  504,  646, 3609, 3575,
687      3584, 3582,    0, 3573, 3567,    0,    0,    0, 3580, 3552,
688 
689      3533, 3519,    0,    0,    0,    0,    0, 3523,    0,    0,
690         0, 3512, 1944, 3547, 1967, 1991, 3514, 1998,  325, 2022,
691      2046, 2053, 2077, 3505, 3474, 2085,  452, 3434, 2126,  476,
692      3393, 3386, 3385, 3365, 2167,  513, 3345,  918,  938, 2208,
693      3344, 2232,  542, 3343, 3348, 1142, 1149, 3347, 3314, 1167,
694      1169, 2273, 3305, 2297,  543, 3304, 3310, 1369,    0, 1376,
695         0,  486, 3282, 1410, 2338, 2361, 3278,    0, 2384,  374,
696       115,  389,  150,  672,  205,  610, 3235,  550,  403,  313,
697       783,  553,  761,  522,  800,  451,  578,  893,  633,  829,
698       571, 1108, 1112, 3231, 3228, 1123, 3206, 3189, 1130, 1128,
699 
700       593, 3186, 3185, 2422, 2459, 2495, 2531,  634, 2555,  258,
701      2563, 2587, 3194, 2594, 2618, 2641, 3193, 2665, 2688, 3191,
702      3188, 3185, 2711, 1417, 2735, 2758, 3184,    0, 1475,    0,
703       723, 3172, 1482, 2782, 2805, 3147,    0, 1588,    0, 1595,
704         0,  724, 3146, 1927, 2829, 2852, 3135,    0,  661, 1934,
705      3122, 1290, 1425, 3114, 3111, 1490, 1510, 2876, 3101, 2900,
706       662, 3090, 3061,  636,  803,  653, 1290, 1427, 1492, 2095,
707      1604,  708,  849,  937, 2122,  872, 1605, 1944,  804, 1187,
708      1242, 2099,  936,  960, 1532, 2101,  874,  938, 1015,  962,
709      1014, 2124, 2163, 2942, 1016, 2965, 1038, 2988, 2154, 3012,
710 
711      3036, 3052, 3051, 3044,  686, 3049, 3085,  967, 3047, 3126,
712       969, 3046, 3045, 3020, 3017, 3167,  970, 2967, 1541, 1733,
713      3208, 2966, 3232, 1022, 2947, 2953, 2096, 2163, 2951, 2950,
714      2164, 2182, 3273, 2909, 3297, 1042, 2908, 2915, 1043, 2255,
715      2913, 2183, 2184, 2911, 2892, 2205, 2249, 3338, 2882, 3362,
716      1045, 2881, 2886,    0, 2263,    0, 2320,    0,  756, 2857,
717      2327, 3403, 3426, 2853,    0, 1061, 1062, 1087, 1111, 2337,
718      1188, 1943, 1189, 1244, 2376, 1534, 2377, 2336, 1109, 1243,
719      2402, 2013, 1306, 2096, 2378, 1446, 2375, 1245, 3451, 3474,
720      3498, 1066, 3538, 3562, 3586, 2834, 3593, 3617, 3640, 2830,
721 
722      3664, 3687, 2811, 3711, 3734, 2810, 2806, 2791, 3757, 2445,
723      3781, 3804, 2789,    0, 2482,    0, 1008, 2787, 2502, 3828,
724      3851, 2744,    0, 2509,    0, 2516,    0, 1153, 2741, 2523,
725      3875, 3898, 2740,    0,    0, 2923,    0, 2930,    0, 1300,
726      2718, 3067, 3922, 3945, 2717,    0,    0, 1198, 3074, 2724,
727      2399, 2417, 2721, 2701, 2453, 2454, 3969, 2670, 3993, 1285,
728      2649, 2655, 2401, 2438, 3083, 2398, 1558, 2457, 2940, 1708,
729      3084, 1557, 1385, 1709, 1508, 1754, 1710, 1755, 1778, 3120,
730      1779, 3118, 1801, 1803, 1825, 4035, 4059, 4068, 1826, 2646,
731      2643, 4086, 1287, 2624, 4127, 1288, 2600, 4168, 1315, 2599,
732 
733      4209, 1345, 2597, 2596, 2595, 4249, 4273, 1427, 2594, 2635,
734      2682, 4314, 2572, 4338, 1429, 2571, 2578, 2938, 2942, 2577,
735      2576, 3096, 3142, 4379, 2566, 4403, 1489, 2540, 2544, 1600,
736      3156, 2542, 3151, 3164, 2541, 2540, 3183, 3184, 4444, 2531,
737      4468, 1603, 2468, 2469,    0, 1605, 3255, 2438, 3203, 3205,
738      2372, 2371, 3249, 3268, 4509, 2343, 4533, 1606, 2341, 2348,
739         0, 3320,    0, 3327,    0, 1396, 2306, 3385, 4574, 4597,
740      2299,    0, 3095, 3096, 3178, 1827, 3122, 2399, 1848, 3420,
741      2959, 1849, 1850, 1872, 3248, 3380, 1874, 1896, 3490, 2014,
742      3492, 1959, 2016, 3337, 4622, 4646, 4655, 2275, 4672, 4696,
743 
744      4719, 2263, 4743, 4766, 2239, 4790, 4813, 2234, 4837, 4860,
745      2198, 2194, 4884, 1630, 2192, 2145, 3523, 4925, 2144, 2107,
746         0, 3530,    0, 1615, 2106, 4016, 4949, 2103, 2060,    0,
747      4023,    0, 4075,    0, 1639, 2059, 4109, 4973, 2058, 2055,
748         0,    0, 4116,    0, 4150,    0, 1669, 2000, 4157, 4997,
749      1999, 1976,    0,    0, 4191,    0, 4198,    0, 1748, 1951,
750      4232, 5021, 1945, 1913,    0,    0, 1660, 4239, 1917, 3335,
751      3399, 1914, 1897, 3400, 3420, 5045, 1882, 5069, 1661, 1842,
752      1846, 2102, 2177, 2200, 2289, 2103, 2612, 4283, 2226, 2473,
753      4266, 2680, 4348, 4267, 4331, 3249, 3271, 4289, 4332, 3399,
754 
755      2610, 2611, 4396, 5111, 1815, 5128, 5152, 1662, 1814, 5193,
756      1689, 1811, 5234, 1736, 1795, 5275, 1879, 1791, 5316, 1880,
757      1747, 1744, 4365, 5357, 1741, 1698,    0, 1697, 3634, 3681,
758      5381, 1670, 1664, 1671, 3728, 4289, 1616, 1580, 4374, 4418,
759      5405, 1568, 1565, 1552, 1938, 4432, 1527, 4441, 4478, 1508,
760      1506, 4479, 4483, 5429, 1494, 1454, 1442,    0, 1940, 4497,
761      1438, 4506, 4543, 1437, 1400, 4544, 4548, 5453, 1390, 1389,
762      1363,    0, 1941, 4562, 1362, 4571, 4591,   83,  110, 4666,
763      4667, 5477,  195,  198,  225,    0, 4907,    0, 4914,    0,
764      2006,  307, 5092, 5501,    0,  348,    0, 2474, 2635, 2657,
765 
766      2659, 2681, 3003, 5107, 5162, 4670, 2703, 4291, 4356, 2682,
767      4376, 4923, 4443, 2728, 2729, 5108, 5163, 5525, 1943,    0,
768       372, 5566,    0,  399, 5590,    0,  418, 5614,    0,  480,
769      5638,    0,  520, 5662,    0,  544, 4671, 4713, 5686,  551,
770       580,  582,  610,  604, 5180,    0, 2061,  624,  643, 5216,
771         0, 5223,    0, 2062,  696,  697,    0, 5257,    0, 5264,
772         0, 2109,  698,  720,    0, 5298,    0, 5305,    0, 2142,
773       721,  749,    0, 5339,    0, 5346,    0, 2193,  750,  752,
774         0, 1995, 5548,  762, 4760, 4807,  763,  798, 4854, 5086,
775      5710,  793,    0,  804, 4508, 2751, 2752, 2774, 2775, 5146,
776 
777      2776, 2799, 2822, 2823, 5720, 2845, 5703, 5722, 2846, 3270,
778      3489, 5755,  820,  864,    0,    0,    0,    0,    0,    0,
779      5555,    0, 2282,  880,  887,    0, 5127, 5354,  897,  930,
780         0, 1997, 5739,  931, 5563, 5724,  934,  976,    0,    0,
781      2024, 5778,  985, 5752, 5772, 1012, 1039,    0,    0, 2151,
782      5792, 1063, 5787, 5788, 1102, 1103,    0,    0, 2181, 5802,
783      1107, 5800, 5810, 1132, 1160,    0,    0, 5814,    0, 5828,
784         0, 2347, 1176,    0, 5085, 3553, 2868, 2870, 3103, 5824,
785      5827, 5837, 5838, 5839, 5826, 3379, 5843, 2892, 4573, 5736,
786      2981,    0, 7856,    0,    0,    0,    0,    0,    0, 5845,
787 
788      5847, 1190, 1235,    0, 7856, 5871,    0, 7856,    0, 5887,
789         0, 7856,    0, 5894,    0, 7856,    0, 5901,    0, 7856,
790         0, 5908,    0, 7856,    0, 2270, 5915, 1236, 5923, 5924,
791      1237, 2414,    0, 2980, 5086, 2982, 3004, 5926, 5356, 5565,
792      3201, 5849, 4287, 3005, 5927, 5106, 5850, 3006, 5928,    0,
793      5927,    0, 2272, 5954, 1240,    0, 2273, 5964, 1264,    0,
794      2338, 5971, 1306,    0, 2396, 5978, 1322,    0, 2531, 5985,
795      1356,    0, 5992,    0, 7856, 3177, 6001, 3442, 3444, 3467,
796      6002, 6004, 6005, 6008, 3491, 6006, 3378, 6007, 2532, 6007,
797      1357,    0,    0,    0,    0,    0,    0, 2533, 6043, 1361,
798 
799      6016, 6037, 5852, 6039, 3554, 6040, 3555, 3556, 6017, 6052,
800      6056, 3419,    0,    0,    0,    0,    0,    0,    0, 3466,
801      6059, 3611, 3658, 3705, 6060, 6062, 6063, 3468, 6065, 6066,
802         0,    0, 3609, 3610, 3634, 3656, 6067, 3680, 6068, 3681,
803      6073, 6082, 6092, 6095, 3727, 6101, 3728, 6103, 3749, 5102,
804      3773, 3774, 3797, 6106, 6111, 6115, 3775, 6116, 6122, 3820,
805      6123, 6126, 6128, 3822, 6114, 6142, 6148, 3844, 3845, 6152,
806      6153, 6154, 6155, 3869, 3890, 6158, 3891, 6162, 3914, 6163,
807      6167, 3915, 3916, 3938, 6169, 6177, 4737, 6191, 3939, 6182,
808      6194, 6197, 6198, 3961, 6204, 6203, 6205, 3963, 6206, 3985,
809 
810      4084, 6213, 3987, 6218, 6227, 4125, 4613, 6219, 4308, 4032,
811      6228, 4033, 4615, 4085, 6238, 6229, 6240, 4784, 4166, 6239,
812      4207, 6241, 6268, 4208, 4665, 4666, 4669, 7856, 6296, 6304,
813      6308, 6311, 6314, 6317, 6320, 6323, 6326, 6329, 6332, 6335,
814      6338, 6341, 6344, 6347, 6350, 6353, 6356, 6360, 6364, 6367,
815      6370, 6373, 6376, 6379, 6382, 6385, 6388, 6392, 6396, 6399,
816      6402, 6406, 6408, 6411, 6414, 6417, 6420, 6423, 6426, 6429,
817      6432, 6436, 6438, 6441, 6445, 6450, 6454, 6457, 6461, 6464,
818      6467, 6470, 6473, 6476, 6479, 6482, 6486, 6490, 6493, 6497,
819      6501, 6506, 6510, 6512, 6516, 6519, 6523, 6526, 6529, 6533,
820 
821      6535, 6538, 6541, 6544, 6547, 6550, 6553, 6556, 6559, 6562,
822      6566, 6568, 6571, 6574, 6577, 6581, 6583, 6586, 6589, 6594,
823      6598, 6603, 6607, 6609, 6613, 6616, 6620, 6625, 6629, 6632,
824      6635, 6638, 6641, 6644, 6647, 6650, 6654, 6658, 6661, 6665,
825      6669, 6674, 6678, 6680, 6684, 6687, 6691, 6694, 6699, 6703,
826      6708, 6712, 6714, 6718, 6721, 6725, 6728, 6731, 6734, 6738,
827      6740, 6743, 6748, 6752, 6755, 6758, 6761, 6764, 6767, 6770,
828      6773, 6776, 6780, 6782, 6785, 6788, 6791, 6795, 6797, 6800,
829      6803, 6806, 6809, 6813, 6815, 6818, 6821, 6824, 6829, 6833,
830      6838, 6842, 6844, 6848, 6851, 6855, 6860, 6864, 6867, 6870,
831 
832      6873, 6876, 6879, 6882, 6885, 6889, 6893, 6896, 6900, 6904,
833      6909, 6913, 6915, 6919, 6922, 6926, 6929, 6934, 6938, 6943,
834      6947, 6949, 6953, 6956, 6960, 6963, 6966, 6971, 6975, 6980,
835      6984, 6986, 6990, 6993, 6997, 7000, 7003, 7006, 7010, 7012,
836      7015, 7020, 7024, 7027, 7030, 7033, 7036, 7039, 7042, 7045,
837      7048, 7051, 7054, 7057, 7061, 7063, 7066, 7069, 7072, 7075,
838      7079, 7081, 7084, 7087, 7090, 7093, 7096, 7100, 7102, 7105,
839      7108, 7111, 7114, 7117, 7121, 7123, 7126, 7129, 7132, 7135,
840      7140, 7144, 7149, 7153, 7155, 7159, 7162, 7166, 7171, 7175,
841      7178, 7181, 7184, 7187, 7190, 7193, 7196, 7199, 7202, 7206,
842 
843      7210, 7213, 7217, 7221, 7226, 7230, 7232, 7236, 7239, 7243,
844      7246, 7251, 7255, 7260, 7264, 7266, 7270, 7273, 7277, 7280,
845      7283, 7288, 7292, 7297, 7301, 7303, 7307, 7310, 7314, 7317,
846      7320, 7325, 7329, 7334, 7338, 7340, 7344, 7347, 7351, 7354,
847      7357, 7360, 7364, 7366, 7369, 7372, 7377, 7381, 7384, 7387,
848      7390, 7393, 7396, 7399, 7402, 7405, 7408, 7411, 7414, 7418,
849      7422, 7425, 7428, 7432, 7435, 7438, 7442, 7444, 7447, 7450,
850      7454, 7456, 7459, 7462, 7465, 7469, 7471, 7474, 7477, 7480,
851      7484, 7486, 7489, 7492, 7495, 7499, 7501, 7504, 7507, 7512,
852      7516, 7521, 7525, 7527, 7531, 7534, 7538, 7543, 7547, 7550,
853 
854      7553, 7556, 7559, 7562, 7565, 7568, 7571, 7575, 7577, 7580,
855      7584, 7589, 7593, 7594, 7597, 7602, 7606, 7611, 7615, 7616,
856      7619, 7622, 7627, 7631, 7636, 7640, 7641, 7644, 7647, 7652,
857      7656, 7661, 7665, 7666, 7669, 7672, 7677, 7681, 7686, 7690,
858      7691, 7694, 7697, 7700, 7704, 7706, 7711, 7715, 7718, 7721,
859      7724, 7727, 7730, 7733, 7737, 7742, 7746, 7747, 7750, 7753,
860      7756, 7759, 7762, 7765, 7768, 7771, 7774, 7777, 7782, 7786,
861      7789, 7792, 7795, 7799, 7803, 7807, 7811, 7815, 7818, 7821,
862      7825, 7828, 7831, 7834, 7837, 7840, 7844, 7847
863     } ;
864 
865 static yyconst flex_int16_t yy_def[2189] =
866     {   0,
867      1728,    1, 1728, 1728, 1728, 1728, 1728, 1728, 1729, 1728,
868      1728, 1728, 1728, 1728,   14, 1728, 1728, 1728, 1728,   14,
869        20, 1730,   20,   20,   20,   20,   20,   20,   21,   21,
870        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
871        21,   21, 1728, 1728, 1728, 1731, 1728,   21,   21,   20,
872      1732,   50,   21,   21,   21, 1728, 1728, 1728, 1728, 1728,
873      1728,   49, 1730, 1730,   52,   52,   52,   21,   21,   21,
874        21,   52,   21,   21,   52,   21,   21,   21,   52,   21,
875        21,   21,   21,   21,   52,   21,   21,   21,   21,   21,
876        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
877 
878        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
879        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
880        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
881        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
882        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
883      1728, 1728,   21,   21,  154,   21,   21,  157, 1733, 1728,
884        54, 1728,  162, 1734,   21,   21,  158,   21,   21,   21,
885       158,   21,   21,   21,   21,   21,   21,  158,   21,   21,
886        21,   21,   21,   21,   21,  158,   21,   21,   21,   21,
887        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
888 
889        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
890        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
891        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
892        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
893        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
894        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
895        21,   21,   21,   21,   21,  262,  263,  158, 1735,  268,
896      1736, 1737, 1728,  273, 1738, 1739, 1728, 1728, 1728, 1740,
897      1741,   21,   21,   21,   21,   21,   21,   21,   21,   21,
898        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
899 
900        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
901        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
902        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
903        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
904        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
905       350,   21,  263,  265,  263,  265,  265,  357, 1742, 1728,
906       356, 1743, 1744, 1728, 1728, 1728, 1728, 1745, 1746, 1747,
907      1748, 1748, 1728, 1749, 1728,  375, 1750, 1741,   21,   21,
908        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
909        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
910 
911        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
912        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
913        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
914        21,   21,   21,   21,   21,  432,  433,  433,  438,  432,
915       357,  441, 1751, 1752, 1728,  445, 1753, 1728, 1754, 1755,
916      1728,  451, 1756, 1757, 1758, 1758, 1728, 1759, 1728,  459,
917      1760, 1746, 1728, 1728, 1761, 1762, 1728, 1728, 1728, 1728,
918      1763, 1764,   21,   21,   21,   21,   21,   21,   21,   21,
919        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
920        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
921 
922        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
923        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
924        21,   21,  522,   21,  433,  435,  433,  433,  528,  441,
925       530, 1765, 1728, 1728, 1728, 1766, 1767, 1768, 1728, 1728,
926      1728, 1728, 1769, 1770, 1728, 1771, 1772, 1728, 1728, 1728,
927      1728, 1773, 1774, 1775, 1775, 1761, 1762, 1776, 1776, 1728,
928      1777, 1728,  562, 1778, 1779,   21,   21,   21,   21,   21,
929        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
930        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
931        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
932 
933        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
934        21,   21,   21,   21,   21,   21,   21,   21,  616,  616,
935       620,  530,  622, 1780, 1781, 1728,  626, 1782, 1728,  629,
936      1783, 1728, 1784, 1785, 1728,  635, 1786, 1787, 1787, 1728,
937      1788, 1728,  642, 1789, 1790, 1791, 1791, 1792, 1793, 1794,
938      1794, 1728, 1795, 1728,  654, 1796, 1797, 1728, 1798, 1728,
939      1799, 1800, 1728, 1728, 1728, 1728, 1801, 1802,  623,  669,
940       669,  669,  669,  669,  669,  669,  669,  669,  669,  669,
941       669,  669,  669,  669,  669,  669,  669,  669,  669,  669,
942       669,  669,  669,  669,  669,  669,  669,  669,  669,  669,
943 
944       669,  669,  669,  669,  669,  669,  706,  706,  706,  669,
945       706,  711, 1803, 1728, 1728, 1728, 1804, 1728, 1728, 1805,
946      1806, 1807, 1728, 1728, 1728, 1728, 1808, 1809, 1728, 1810,
947      1811, 1728, 1728, 1728, 1728, 1812, 1813, 1728, 1814, 1728,
948      1815, 1816, 1728, 1728, 1728, 1728, 1817, 1818, 1819, 1728,
949      1820, 1821, 1821, 1822, 1823, 1824, 1824, 1728, 1825, 1728,
950       760, 1826, 1827, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
951      1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
952      1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
953      1828, 1828, 1828, 1828, 1828,  794, 1828,  794,  798,  798,
954 
955       800, 1829, 1830, 1728,  804, 1831, 1728,  807, 1832, 1728,
956       810, 1833, 1728, 1834, 1835, 1728,  816, 1836, 1837, 1837,
957      1728, 1838, 1728,  823, 1839, 1840, 1841, 1841, 1842, 1843,
958      1844, 1844, 1728, 1845, 1728,  835, 1846, 1847, 1848, 1728,
959      1849, 1850, 1850, 1851, 1852, 1853, 1853, 1728, 1854, 1728,
960       850, 1855, 1856, 1857, 1728, 1858, 1728, 1859, 1860, 1728,
961      1728, 1728, 1728, 1861, 1862, 1863, 1863, 1863, 1863, 1863,
962      1863, 1863, 1863, 1863, 1863, 1863, 1863, 1863, 1863, 1863,
963      1863, 1863, 1863, 1863, 1863, 1863, 1863, 1863, 1863,  889,
964       889,  891,  889,  889,  894, 1864, 1728, 1728, 1728, 1865,
965 
966      1728, 1728, 1866, 1728, 1728, 1867, 1868, 1869, 1728, 1728,
967      1728, 1728, 1870, 1871, 1728, 1872, 1873, 1728, 1728, 1728,
968      1728, 1874, 1875, 1728, 1876, 1728, 1877, 1878, 1728, 1728,
969      1728, 1728, 1879, 1880, 1881, 1728, 1882, 1728, 1883, 1884,
970      1728, 1728, 1728, 1728, 1885, 1886, 1887, 1888, 1728, 1889,
971      1890, 1890, 1891, 1892, 1893, 1893, 1728, 1894, 1728,  959,
972      1895, 1896, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897,
973      1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897, 1897,
974      1897, 1897, 1897, 1897, 1897, 1897,  986, 1897, 1897, 1898,
975      1899, 1728,  992, 1900, 1728,  995, 1901, 1728,  998, 1902,
976 
977      1728, 1001, 1903, 1728, 1904, 1728, 1728, 1007, 1905, 1906,
978      1906, 1728, 1907, 1728, 1014, 1908, 1909, 1910, 1910, 1911,
979      1912, 1913, 1913, 1728, 1914, 1728, 1026, 1915, 1916, 1917,
980      1728, 1918, 1919, 1919, 1920, 1921, 1922, 1922, 1728, 1923,
981      1728, 1041, 1924, 1925, 1926, 1927, 1728, 1928, 1929, 1929,
982      1930, 1931, 1932, 1932, 1728, 1933, 1728, 1057, 1934, 1935,
983      1936, 1728, 1937, 1728, 1938, 1939, 1728, 1728, 1728, 1728,
984      1940, 1941, 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942,
985      1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942, 1942,
986      1942, 1942, 1942, 1942, 1942, 1095, 1942, 1943, 1728, 1728,
987 
988      1728, 1944, 1728, 1728, 1945, 1728, 1728, 1946, 1728, 1728,
989      1947, 1948, 1728, 1113, 1949, 1950, 1728, 1728, 1951, 1952,
990      1953, 1728, 1954, 1955, 1728, 1728, 1728, 1956, 1957, 1958,
991      1728, 1959, 1728, 1960, 1961, 1728, 1728, 1728, 1962, 1963,
992      1964, 1965, 1728, 1966, 1728, 1967, 1968, 1728, 1728, 1728,
993      1969, 1970, 1971, 1972, 1728, 1973, 1728, 1974, 1975, 1728,
994      1728, 1728, 1976, 1977, 1978, 1979, 1980, 1728, 1981, 1982,
995      1982, 1983, 1984, 1985, 1985, 1728, 1986, 1728, 1178, 1987,
996      1988, 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989,
997      1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989, 1989,
998 
999      1989, 1989, 1989, 1989, 1990, 1728, 1728, 1207, 1991, 1728,
1000      1210, 1992, 1728, 1213, 1993, 1728, 1216, 1994, 1728, 1219,
1001      1995, 1728, 1728, 1728, 1996, 1997, 1998, 1999, 2000, 2000,
1002      1728, 2001, 2002, 2003, 2004, 2004, 2005, 2006, 2007, 2007,
1003      1728, 2008, 2009, 2010, 2011, 1728, 2012, 2013, 2013, 2014,
1004      2015, 2016, 2016, 1728, 2017, 2018, 2019, 2020, 2021, 1728,
1005      2022, 2023, 2023, 2024, 2025, 2026, 2026, 1728, 2027, 2028,
1006      2029, 2030, 2031, 1728, 2032, 2033, 2033, 2034, 2035, 2036,
1007      2036, 1728, 2037, 2038, 2039, 2040, 1728, 2041, 1728, 2042,
1008      2043, 1728, 1728, 1728, 2044, 2045, 2046, 2047, 2047, 2047,
1009 
1010      2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
1011      2047, 2047, 2047, 2047, 2047, 2047, 2047, 1728, 1318, 2048,
1012      2049, 1728, 2050, 2051, 1728, 2052, 2053, 1728, 2054, 2055,
1013      1728, 2056, 2057, 1728, 2058, 2059, 2060, 2060, 1728, 2061,
1014      2062, 2063, 2064, 2065, 1728, 2066, 2067, 1728, 2068, 1728,
1015      2069, 1728, 2070, 2071, 1728, 2072, 2073, 1728, 2074, 1728,
1016      2075, 2076, 1728, 2077, 2078, 1728, 2079, 1728, 2080, 2081,
1017      1728, 2082, 2083, 1728, 2084, 1728, 2085, 2086, 1728, 2087,
1018      2088, 2089, 1728, 2090, 2091, 2091, 2092, 2093, 2094, 2094,
1019      1728, 2095, 2096, 2097, 2098, 2098, 2098, 2098, 2098, 2098,
1020 
1021      2098, 2098, 2098, 2098, 2098, 2098, 2098, 2098, 2098, 2098,
1022      2098, 1728, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106,
1023      1728, 2107, 2108, 1728, 2109, 2110, 2111, 2111, 2112, 2113,
1024      2114, 2115, 1728, 2116, 2117, 2117, 2118, 2119, 2120, 2121,
1025      2122, 1728, 2123, 2124, 2124, 2125, 2126, 2127, 2128, 2129,
1026      1728, 2130, 2131, 2131, 2132, 2133, 2134, 2135, 2136, 1728,
1027      2137, 2138, 2138, 2139, 2140, 2141, 2142, 1728, 2143, 1728,
1028      2144, 2145, 1728, 2146, 2147, 2147, 2147, 2147, 2147, 2147,
1029      2147, 2147, 2147, 2147, 2147, 2147, 2147, 2147, 2147, 2147,
1030      2147, 2148, 1728, 2149, 2150, 2151, 2152, 2153, 2154, 2155,
1031 
1032      2155, 2156, 2157, 2158, 1728, 1728, 2159, 1728, 2160, 1728,
1033      2161, 1728, 2162, 1728, 2163, 1728, 2164, 1728, 2165, 1728,
1034      2166, 1728, 2167, 1728, 2142, 2168, 1728, 2143, 2169, 2169,
1035      2144, 2145, 2170, 2147, 2147, 2147, 2147, 2147, 2147, 2147,
1036      2147, 2147, 2147, 2147, 2147, 2147, 2147, 2147, 2147, 2171,
1037      1728, 2172, 2173, 1728, 2159, 2160, 2174, 1728, 2161, 2162,
1038      2175, 1728, 2163, 2164, 2176, 1728, 2165, 2166, 2177, 1728,
1039      2167, 2178, 1728, 2179, 1728, 2147, 2147, 2147, 2147, 2147,
1040      2147, 2147, 2147, 2147, 2147, 2147, 2147, 2147, 2180, 1728,
1041      2172, 2181, 2182, 2183, 2184, 2185, 2178, 2186, 1728, 2179,
1042 
1043      2147, 2147, 2147, 2147, 2147, 2147, 2147, 2147, 2147, 2147,
1044      2147, 2147, 2187, 2181, 2182, 2183, 2184, 2185, 2188, 2147,
1045      2147, 2147, 2147, 2147, 2147, 2147, 2147, 2147, 2147, 2147,
1046      2187, 2188, 2147, 2147, 2147, 2147, 2147, 2147, 2147, 2147,
1047      2147, 2147, 2147, 2147, 2147, 2147, 2147, 2147, 2147, 2147,
1048      2147, 2147, 2147, 2147, 2147, 2147, 2147, 2147, 2147, 2147,
1049      2147, 2147, 2147, 2147, 2147, 2147, 2147, 2147, 2147, 2147,
1050      2147, 2147, 2147, 2147, 2147, 2147, 2147, 2147, 2147, 2147,
1051      2147, 2147, 2147, 2147, 2147, 2147, 2147, 2147, 2147, 2147,
1052      2147, 2147, 2147, 2147, 2147, 2147, 2147, 2147, 2147, 2147,
1053 
1054      2147, 2147, 2147, 2147, 2147, 2147, 2147, 2147, 2147, 2147,
1055      2147, 2147, 2147, 2147, 2147, 2147, 2147, 2147, 2147, 2147,
1056      2147, 2147, 2147, 2147, 2147, 2147, 2147,    0, 1728, 1728,
1057      1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
1058      1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
1059      1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
1060      1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
1061      1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
1062      1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
1063      1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
1064 
1065      1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
1066      1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
1067      1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
1068      1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
1069      1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
1070      1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
1071      1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
1072      1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
1073      1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
1074      1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
1075 
1076      1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
1077      1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
1078      1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
1079      1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
1080      1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
1081      1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
1082      1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
1083      1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
1084      1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
1085      1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
1086 
1087      1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
1088      1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
1089      1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
1090      1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
1091      1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
1092      1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
1093      1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
1094      1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
1095      1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
1096      1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
1097 
1098      1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
1099      1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
1100      1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
1101      1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
1102      1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
1103      1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
1104      1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
1105      1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
1106      1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728
1107     } ;
1108 
1109 static yyconst flex_uint16_t yy_nxt[7910] =
1110     {   0,
1111         4,    5,    6,    7,    8,    9,   10,   11,   12,   12,
1112        13,   14,   15,   15,   15,   15,   15,   15,   16,   17,
1113        18,   19,   20,   21,   21,   12,   22,   13,   23,   24,
1114        25,   26,   27,   28,   29,   30,   31,   21,   32,   33,
1115        34,   35,   36,   21,   37,   38,   39,   40,   41,   42,
1116        21,   21,   43,   44,   53,  211,   44,   44,   44,   44,
1117        44,  212,   44,   44,   44,   57,   58,   44,  248,   44,
1118        44,   44,   60,   61,   72,   44,   83,   84,  249,   44,
1119        53,   44,   44,   44,   44,  206,   44,   44,   73,   85,
1120        44,  117,   79, 1157,   86,   74,   80,  686,  195,   44,
1121 
1122       118,  196,   81,  687,  197,   82,  198,   44,   48,   49,
1123        50,   50,   50,   50,   50,   50,   50,   51,  207,  201,
1124       942,   52,   53,   54,  202,  182,   55,   52,   52,   52,
1125        52,   52,   52,   53,   53,   53,   53,   53,   53,   53,
1126        53,   53,   53,   53,   53,   53,   53,   53,   53,   54,
1127        53,   44,  183,   75,   44,  766,   44,   44,  184,  236,
1128        87,   53,  213,   76,   88,  344,   77,  214,   63,   56,
1129        78,   63,  237,   63,   63,  208,   89,   44,   62,   52,
1130        52,   52,   52,   52,   52,   52,   63,  242,   65,  345,
1131        66,   67,   53,  768,   63,   68,   53,  342,  119,  343,
1132 
1133        69,   90,  209,   91,   70,  243,   71,  210,   92,   93,
1134       120,   94,  121, 1335,  122,   95,  453,  123,   53,   55,
1135        53,   53,   53,   53,   53,   53,   53,   53, 1728,  104,
1136       105,  217,   53,  770,  218, 1161,  219,  245,   53,   53,
1137        53,   53,   53,   53,   96,  106,  246,   97,   98,  107,
1138        99,   53,  100,  108,  101,  109,  102,  111,  124,  103,
1139        53,  112,  110,  125,  126,  129,  127,  128,  799,  130,
1140       113,  114, 1728,  134,  115,  324,  116,  131,  141,  135,
1141       142,  136,  132,  137,  133,  146,   53,  138,  325,  139,
1142       140,   53,  355,  147,  143,   53,  527,  148, 1728,  149,
1143 
1144        44,  144,  490,   44,   53,   44,   44,  156,  156,  156,
1145       156,  156,  156,  156, 1728,  417,   63,   53,   44,   63,
1146       418,   63,   63,  491,  500, 1070,   44,  153,  153,  153,
1147       153,  153,  153,  153,   63,   53,  708,  501,  153,  492,
1148      1728,  775,   63,   53,  153,  153,  153,  153,  153,  153,
1149       154,  155,  155,  155,  155,  155,  155, 1728,   53,   53,
1150      1728,  156,  380,  381,  382,  383, 1295,  156,  156,  156,
1151       156,  156,  156,   49,  157,  157,  157,  157,  157,  157,
1152       157,  277,  384, 1728,   53,  158, 1728, 1728, 1728,  279,
1153      1413,  158,  158,  158,  158,  158,  158,   62,  158,  158,
1154 
1155       158,  158,  158,  158,  158,  161,  161,  161,  161,  161,
1156       161,  161,  576, 1728, 1728,  437,  161, 1323,  504,  765,
1157        53,  577,  161,  161,  161,  161,  161,  161,   44,  265,
1158       767,   44,  505,   44,   44,   53, 1326,  464,  464,  162,
1159       163,  163,  163,  163,  163,  163,   44,   53, 1728,   53,
1160       164,  465, 1728,  774,   44,  265,  164,  164,  164,  164,
1161       164,  164,  260,  579,  261,  261,  261,  261,  261,  261,
1162       261,  365,  580,   53, 1728,  261, 1728,  465, 1728,  535,
1163       781,  261,  261,  261,  261,  261,  261,  262,  263,  263,
1164       263,  263,  263,  263,  263,  277,  468,   53, 1329,  264,
1165 
1166      1728,  265, 1728, 1728,  470,  264,  264,  264,  264,  264,
1167       264,  352,  352,  352,  352,  352,  352,  352,  371,  372,
1168       372,  372,  372,  372,  372,  545, 1728,  265,  266,  264,
1169       264,  264,  264,  264,  264,  264,  688, 1728, 1332,  546,
1170       264,  380,  381,  382,  383,  689,  264,  264,  264,  264,
1171       264,  264,  267,  268,  268,  268,  268,  268,  268,  268,
1172       269,  779, 1335, 1728,  270,  546, 1728, 1728,   53, 1413,
1173       270,  270,  270,  270,  270,  270,   53,  270,  270,  270,
1174       270,  270,  270,  270,  273,  274,  274,  274,  274,  274,
1175       274,  275, 1728, 1728,  773,  276,   53,  777,  453,   53,
1176 
1177       453,  276,  276,  276,  276,  276,  276,  277,  278,  278,
1178       278,  278,  278,  278,  278,  279,  782,   53,  786,  280,
1179      1223,  281,  453,  396,   53,  280,  280,  280,  280,  280,
1180       280,  397,  440,  440,  440,  440,  440,  440,  440,   53,
1181       793,  545, 1323,  619,  398,   55,  771,  281,  349,  349,
1182       349,  349,  349,  349,  349, 1728,   53,  435,  618,  349,
1183       399,  453,   55,   55,  784,  349,  349,  349,  349,  349,
1184       349,  350,  351,  351,  351,  351,  351,  351,  690,   53,
1185        55, 1728,  352,  435,  618,  854, 1728,  691,  352,  352,
1186       352,  352,  352,  352,  262,  353,  353,  353,  353,  353,
1187 
1188       353,  353,  354,  354,  354,  354,  354,  354,  354,  769,
1189      1728,  854, 1728,  354, 1326,  453, 1329,   55,   53,  354,
1190       354,  354,  354,  354,  354,  356,  357,  357,  357,  357,
1191       357,  357,  357,  540,  549,   55, 1728,  358,  453, 1332,
1192       872,  716,  719,  358,  358,  358,  358,  358,  358,  361,
1193       358,  358,  358,  358,  358,  358,  358,  365,  366,  366,
1194       366,  366,  366,  366,  366,  367,  664,  453, 1335,  368,
1195       453,  369, 1287, 1289,  666,  368,  368,  368,  368,  368,
1196       368,  455,  456,  456,  456,  456,  456,  456,  524,  524,
1197       524,  524,  524,  524,  524,  658,  778,  369,  277,  373,
1198 
1199       373,  373,  373,  373,  373,  373,  279,   53, 1068,  659,
1200       374, 1295,   55,   55, 1293,  776,  374,  374,  374,  374,
1201       374,  374,  375,  376,  376,  376,  376,  376,  376,   53,
1202        55,   55,  780,  377,  658,  659,  879,  866, 1493,  377,
1203       377,  377,  377,  377,  377,  421,   53,  422, 1728,  423,
1204       424,  554,  555,  555,  555,  555,  555,  555,   55,  425,
1205       785,  426,  427,  660,  428,  430,  660,  431,  431,  431,
1206       431,  431,  431,  431, 1728,   53,   55,  661,  431,  873,
1207      1728,   55, 1413,   55,  431,  431,  431,  431,  431,  431,
1208       432,  433,  433,  433,  433,  433,  433,  433, 1413,   55,
1209 
1210       876,   55,  434,  661,  435,  453, 1728, 1345,  434,  434,
1211       434,  434,  434,  434,  558,  559,  559,  559,  559,  559,
1212       559,  638,  639,  639,  639,  639,  639,  639,  729,  783,
1213       435,  436,  434,  434,  434,  434,  434,  434,  434,   53,
1214      1117, 1350,  730,  434, 1352,   55,   55,   55,  729,  434,
1215       434,  434,  434,  434,  434,  438,  439,  439,  439,  439,
1216       439,  439, 1728,   55,   55,   55,  440,  874,  730,   55,
1217       883,   55,  440,  440,  440,  440,  440,  440,  267,  441,
1218       441,  441,  441,  441,  441,  441, 1126,   55, 1728,   55,
1219       442, 1728,  884, 1728, 1728, 1358,  442,  442,  442,  442,
1220 
1221       442,  442,   53,  442,  442,  442,  442,  442,  442,  442,
1222       445,  446,  446,  446,  446,  446,  446, 1728,  724, 1728,
1223      1728,  447, 1360,   55,   55,  794,  899,  447,  447,  447,
1224       447,  447,  447,  451,  452,  452,  452,  452,  452,  452,
1225       453,   55,   55,   55,  454,  887, 1728,   55,  796, 1137,
1226       454,  454,  454,  454,  454,  454,  365,  457,  457,  457,
1227       457,  457,  457,  457,  367,   55, 1728,  935,  458, 1728,
1228        55,   55, 1728, 1366,  458,  458,  458,  458,  458,  458,
1229       459,  460,  460,  460,  460,  460,  460,  453,   55,   55,
1230        53,  461, 1728,  935,  963, 1728,   55,  461,  461,  461,
1231 
1232       461,  461,  461,  277,  466,  466,  466,  466,  466,  466,
1233       466,  279, 1368, 1149,   55,  467,   53, 1374,   55,  964,
1234        55,  467,  467,  467,  467,  467,  467,  468,  469,  469,
1235       469,  469,  469,  469,  469,  470,   55,  975,   55,  471,
1236       787,  472, 1376,  965,  788,  471,  471,  471,  471,  471,
1237       471,  582,  738,  583,   53,  789,  584,  585,   53,  738,
1238       586,  587,  791,  733,  792,  588,  739,  472,  482,   53,
1239      1161,  902,  483, 1728,   53,  484,   53,  740,  485,  740,
1240       486,  487,  488,  489,  521,  521,  521,  521,  521,  521,
1241       521,  741,  739, 1728, 1295,  521,   55,   55,   55, 1728,
1242 
1243      1421,  521,  521,  521,  521,  521,  521,  522,  523,  523,
1244       523,  523,  523,  523,   55,   55,   55,  741,  524, 1728,
1245       967,  969, 1061,  880,  524,  524,  524,  524,  524,  524,
1246       432,  525,  525,  525,  525,  525,  525,  525,  526,  526,
1247       526,  526,  526,  526,  526, 1223, 1468, 1470, 1061,  526,
1248      1506,   55,   55,   55,   55,  526,  526,  526,  526,  526,
1249       526,  437,  528,  528,  528,  528,  528,  528,  528,   55,
1250        55,   55,   55,  529, 1510,  265,  970,  976,  881,  529,
1251       529,  529,  529,  529,  529,  646,  647,  647,  647,  647,
1252       647,  647,  650,  651,  651,  651,  651,  651,  651,   55,
1253 
1254       855,  265,  529,  529,  529,  529,  529,  529,  529, 1728,
1255       744, 1728, 1728,  529,  856,   55, 1514,   55,  905,  529,
1256       529,  529,  529,  529,  529,  530,  530,  530,  530,  530,
1257       530,  530, 1518,   55,  867, 1728,  531, 1728, 1728, 1728,
1258       856,  979,  531,  531,  531,  531,  531,  531,   53,  531,
1259       531,  531,  531,  531,  531,  531,  365,  534,  534,  534,
1260       534,  534,  534,  534,  535, 1728, 1522, 1551,  536, 1728,
1261       369, 1573, 1155, 1149,  536,  536,  536,  536,  536,  536,
1262       749,  750,  750,  750,  750,  750,  750,  752,  753,  753,
1263       753,  753,  753,  753,   55, 1728,  369,  540,  541,  541,
1264 
1265       541,  541,  541,  541,  541,  542,  861,  453, 1332,  543,
1266       930,  544,   55, 1085,  863,  543,  543,  543,  543,  543,
1267       543,  756,  757,  757,  757,  757,  757,  757,  819,  820,
1268       820,  820,  820,  820,  820,  855,   55,  544,  365,  547,
1269       547,  547,  547,  547,  547,  547,  535, 1145, 1143, 1728,
1270       548, 1728, 1137, 1728,   55,   55,  548,  548,  548,  548,
1271       548,  548,  549,  550,  550,  550,  550,  550,  550,  550,
1272       551,  868,  453,   55,  552, 1728,  553, 1728,  982, 1728,
1273       552,  552,  552,  552,  552,  552,  827,  828,  828,  828,
1274       828,  828,  828,  831,  832,  832,  832,  832,  832,  832,
1275 
1276       857,   55,  553,  468,  560,  560,  560,  560,  560,  560,
1277       560,  470, 1329, 1728,  858,  561,  919,   55, 1133,   55,
1278       857,  561,  561,  561,  561,  561,  561,  562,  563,  563,
1279       563,  563,  563,  563, 1728,   55,  869, 1131,  564, 1728,
1280       858,   55, 1087,   55,  564,  564,  564,  564,  564,  564,
1281       613,  915,  614,  614,  614,  614,  614,  614,  614,   55,
1282      1728,   55, 1126,  614,  972,  916,   55,   55,  885,  614,
1283       614,  614,  614,  614,  614,  615,  616,  616,  616,  616,
1284       616,  616,  616,  453,   55,   55, 1326,  617, 1078,  618,
1285       910,  916, 1084,  617,  617,  617,  617,  617,  617,  839,
1286 
1287       840,  840,  840,  840,  840,  840,  842,  843,  843,  843,
1288       843,  843,  843,   55,   55,  618,  615,  617,  617,  617,
1289       617,  617,  617,  617, 1142,  910, 1122, 1728,  617, 1154,
1290      1728,   55,   55, 1101,  617,  617,  617,  617,  617,  617,
1291       437,  620,  620,  620,  620,  620,  620,  620,  871,  919,
1292      1142,  877,  621, 1728, 1728, 1154, 1728, 1104,  621,  621,
1293       621,  621,  621,  621,   53,  621,  621,  621,  621,  621,
1294       621,  621,  622,  622,  622,  622,  622,  622,  622,  930,
1295      1728, 1117,  453,  623, 1286, 1728, 1728, 1107, 1323,  623,
1296       623,  623,  623,  623,  623,   53,  623,  623,  623,  623,
1297 
1298       623,  623,  623,  626,  627,  627,  627,  627,  627,  627,
1299      1286, 1728, 1728, 1728,  628,  453, 1225,   55,   55,   55,
1300       628,  628,  628,  628,  628,  628,  365,  457,  457,  457,
1301       457,  457,  457,  457,  535,   55,   55,   55,  458, 1728,
1302      1082, 1086, 1089,  915,  458,  458,  458,  458,  458,  458,
1303       629,  630,  630,  630,  630,  630,  630, 1728,  942, 1342,
1304      1728,  631, 1206,   55,   55, 1335, 1110,  631,  631,  631,
1305       631,  631,  631,  635,  636,  636,  636,  636,  636,  636,
1306       453,   55,   55, 1728,  637, 1090, 1728,   55,   55, 1088,
1307       637,  637,  637,  637,  637,  637,  540,  640,  640,  640,
1308 
1309       640,  640,  640,  640,  542,   55,   55, 1091,  641, 1332,
1310        55, 1093,   55, 1329,  641,  641,  641,  641,  641,  641,
1311       642,  643,  643,  643,  643,  643,  643,  453,   55, 1326,
1312        55,  644, 1323, 1206,   55,   55,   55,  644,  644,  644,
1313       644,  644,  644,  549,  652,  652,  652,  652,  652,  652,
1314       652,  551,   55,   55,   55,  653, 1068,   55,   55,   55,
1315      1295,  653,  653,  653,  653,  653,  653,  654,  655,  655,
1316       655,  655,  655,  655,  453,   55,   55,   55,  656, 1187,
1317      1190,   55, 1191,   55,  656,  656,  656,  656,  656,  656,
1318       468,  662,  662,  662,  662,  662,  662,  662,  470,   55,
1319 
1320      1070,   55,  663, 1728, 1728,   55, 1194,  861,  663,  663,
1321       663,  663,  663,  663,  664,  665,  665,  665,  665,  665,
1322       665,  665,  666,   55, 1064, 1195,  667, 1062,  668, 1728,
1323      1728, 1163,  667,  667,  667,  667,  667,  667,  846,  847,
1324       847,  847,  847,  847,  847,  750,  750,  750,  750,  750,
1325       750,  750,   55,   55,  668,  704,  704,  704,  704,  704,
1326       704,  704, 1357,  453, 1365, 1373,  704, 1728,   55, 1110,
1327        55,   55,  704,  704,  704,  704,  704,  704,  705,  705,
1328       705,  705,  705,  705,  705,  878,   55,  968, 1357,  705,
1329      1365, 1373, 1199, 1728, 1151,  705,  705,  705,  705,  705,
1330 
1331       705,  615,  706,  706,  706,  706,  706,  706,  706,  707,
1332       707,  707,  707,  707,  707,  707, 1068,  453, 1107, 1467,
1333       707, 1509,   55,   55, 1070,   55,  707,  707,  707,  707,
1334       707,  707,  437,  709,  709,  709,  709,  709,  709,  709,
1335        55,   55, 1197,   55,  710, 1467, 1200, 1509, 1513,  978,
1336       710,  710,  710,  710,  710,  710,   53,  710,  710,  710,
1337       710,  710,  710,  710,  711,  711,  711,  711,  711,  711,
1338       711, 1117, 1126, 1139, 1513,  712,  453, 1104, 1128, 1323,
1339      1326,  712,  712,  712,  712,  712,  712,   53,  712,  712,
1340       712,  712,  712,  712,  712,  540,  715,  715,  715,  715,
1341 
1342       715,  715,  715,  716,   55,   55,  924,  717,   55,  544,
1343        55,   55,   55,  717,  717,  717,  717,  717,  717, 1137,
1344       925,  453,   55,   55, 1101, 1119,   55, 1329,   55,   55,
1345        55,   55,  980,   55,  870,  544,  549,  718,  718,  718,
1346       718,  718,  718,  718,  719,  882,  925,  886,  720,   55,
1347       553,   55, 1149, 1298,  720,  720,  720,  720,  720,  720,
1348      1332,  875,  453, 1225,  888,  893,  893,  893,  893,  893,
1349       893,  893,   55,  924,  926, 1517,  553,  724,  725,  725,
1350       725,  725,  725,  725,  725,  726,   55, 1728,  927,  727,
1351        55,  728,  926,  936,  936,  727,  727,  727,  727,  727,
1352 
1353       727, 1517,  341, 1161,   55, 1521, 1728,  937, 1728,   55,
1354       453, 1335, 1206, 1728,  927,  938, 1110,  728,  540,  731,
1355       731,  731,  731,  731,  731,  731,  716,   55, 1299,  939,
1356       732, 1521, 1728,  937, 1728,   55,  732,  732,  732,  732,
1357       732,  732,  733,  734,  734,  734,  734,  734,  734,  734,
1358       735, 1300, 1107,   55,  736,  939,  737, 1104, 1304,  938,
1359       736,  736,  736,  736,  736,  736,  840,  840,  840,  840,
1360       840,  840,  840, 1728,  948,  949,  949,  949,  949,  949,
1361       949, 1101,  737,  549,  742,  742,  742,  742,  742,  742,
1362       742,  719, 1223, 1206, 1572,  743, 1592, 1593,   55, 1728,
1363 
1364      1413,  743,  743,  743,  743,  743,  743,  744,  745,  745,
1365       745,  745,  745,  745,  745,  746,   55, 1070, 1301,  747,
1366      1572,  748, 1592, 1593,  863,  747,  747,  747,  747,  747,
1367       747,  951,  952,  952,  952,  952,  952,  952,  955,  956,
1368       956,  956,  956,  956,  956,   55,   55,  748,  664,  758,
1369       758,  758,  758,  758,  758,  758,  666, 1293,  942, 1163,
1370       759, 1110, 1594,   55,   55, 1295,  759,  759,  759,  759,
1371       759,  759,  760,  761,  761,  761,  761,  761,  761,  966,
1372       974,  744,  938,  762,   55,   55,   55,   55, 1594,  762,
1373       762,  762,  762,  762,  762,   53,   53,   53,   53,   53,
1374 
1375        53,   53,   55,   55,   55,   55,   53,   55,   55, 1062,
1376        55,   55,   53,   53,   53,   53,   53,   53,  971,  973,
1377      1595,  983,  981, 1063, 1293,   55,   55, 1062,   55,   55,
1378       764,  794, 1728,  795,  795,  795,  795,  795,  795,  795,
1379       977, 1728, 1077, 1073,  795, 1186, 1595,   55,  936, 1063,
1380       795,  795,  795,  795,  795,  795, 1010, 1011, 1011, 1011,
1381      1011, 1011, 1011, 1064, 1064,   55,   55, 1728,   53,  796,
1382       797,  797,  797,  797,  797,  797,  797, 1065, 1728,  930,
1383      1074,  797,   55,   55,   55, 1079, 1151,  797,  797,  797,
1384       797,  797,  797, 1018, 1019, 1019, 1019, 1019, 1019, 1019,
1385 
1386        55,   55, 1080, 1065, 1728,   53,  706,  706,  706,  706,
1387       706,  706,  706, 1022, 1023, 1023, 1023, 1023, 1023, 1023,
1388      1030, 1031, 1031, 1031, 1031, 1031, 1031, 1033, 1034, 1034,
1389      1034, 1034, 1034, 1034, 1037, 1038, 1038, 1038, 1038, 1038,
1390      1038,   53,  707,  707,  707,  707,  707,  707,  707, 1107,
1391       733,  926,  924,  707,  919, 1596, 1613, 1619, 1139,  707,
1392       707,  707,  707,  707,  707,  798,  353,  353,  353,  353,
1393       353,  353,  353,  267,  800,  800,  800,  800,  800,  800,
1394       800, 1596, 1613, 1619, 1104,  801,  724,  915,  910, 1128,
1395      1101,  801,  801,  801,  801,  801,  801,   53,  801,  801,
1396 
1397       801,  801,  801,  801,  801,  804,  805,  805,  805,  805,
1398       805,  805, 1119, 1006,  991, 1110,  806, 1107, 1104,   55,
1399        55,   55,  806,  806,  806,  806,  806,  806,  540,  640,
1400       640,  640,  640,  640,  640,  640,  716,   55,   55,   55,
1401       641, 1315, 1101, 1316,   55, 1122,  641,  641,  641,  641,
1402       641,  641,  807,  808,  808,  808,  808,  808,  808, 1123,
1403      1302, 1099,   55,  809,  991,  861,   55, 1070,   55,  809,
1404       809,  809,  809,  809,  809,  549,  652,  652,  652,  652,
1405       652,  652,  652,  719,   55, 1123,   55,  653,  863,   55,
1406        55,   55, 1122,  653,  653,  653,  653,  653,  653,  810,
1407 
1408       811,  811,  811,  811,  811,  811, 1728,   55,   55,   55,
1409       812,  664,   55, 1395, 1404, 1306,  812,  812,  812,  812,
1410       812,  812,  816,  817,  817,  817,  817,  817,  817,  453,
1411        55,  857, 1728,  818,  855,  944,  905,   55,   55,  818,
1412       818,  818,  818,  818,  818,  724,  821,  821,  821,  821,
1413       821,  821,  821,  726, 1401,   55,   55,  822,  932,  902,
1414        55,   55,  921,  822,  822,  822,  822,  822,  822,  823,
1415       824,  824,  824,  824,  824,  824,  453, 1409,   55,   55,
1416       825, 1476, 1477,   55,   55,   55,  825,  825,  825,  825,
1417       825,  825,  733,  833,  833,  833,  833,  833,  833,  833,
1418 
1419       735,   55,   55,   55,  834,  899, 1479,  912,   55, 1006,
1420       834,  834,  834,  834,  834,  834,  835,  836,  836,  836,
1421       836,  836,  836,  453,  991, 1478,   55,  837,  905,  902,
1422      1481,   55,   55,  837,  837,  837,  837,  837,  837,  744,
1423       848,  848,  848,  848,  848,  848,  848,  746,  899,   55,
1424        55,  849,  991, 1482,   55,   55, 1483,  849,  849,  849,
1425       849,  849,  849,  850,  851,  851,  851,  851,  851,  851,
1426       453,  863,   55,   55,  852,  666, 1486,   55, 1489,   55,
1427       852,  852,  852,  852,  852,  852,  664,  859,  859,  859,
1428       859,  859,  859,  859,  666,   55,  744,   55,  860,  944,
1429 
1430       905,   55,  549, 1536,  860,  860,  860,  860,  860,  860,
1431       861,  862,  862,  862,  862,  862,  862,  862,  863,   55,
1432      1546,  740,  864,  738,  865,  733,  932,  902,  864,  864,
1433       864,  864,  864,  864, 1046, 1047, 1047, 1047, 1047, 1047,
1434      1047, 1049, 1050, 1050, 1050, 1050, 1050, 1050, 1131,   55,
1435       865,   55, 1131,  889,  889,  889,  889,  889,  889,  889,
1436       540,  729, 1132,  724,  889,  921, 1728,   55,   55,   55,
1437       889,  889,  889,  889,  889,  889,  890,  890,  890,  890,
1438       890,  890,  890, 1081,  899,  912,   55,  890, 1132,   55,
1439        55,   55, 1728,  890,  890,  890,  890,  890,  890,  891,
1440 
1441       892,  892,  892,  892,  892,  892, 1189,   55,   55,   55,
1442       893, 1549,   55,   55,   55,   55,  893,  893,  893,  893,
1443       893,  893,  267,  894,  894,  894,  894,  894,  894,  894,
1444        55,   55,   55,   55,  895,  909, 1577, 1584,  815, 1396,
1445       895,  895,  895,  895,  895,  895,   53,  895,  895,  895,
1446       895,  895,  895,  895,  724,  898,  898,  898,  898,  898,
1447       898,  898,  899,  803,  905,  902,  900,  899,  728,  897,
1448       803,  664,  900,  900,  900,  900,  900,  900, 1053, 1054,
1449      1054, 1054, 1054, 1054, 1054,  949,  949,  949,  949,  949,
1450       949,  949,   55,   55,  728,  733,  901,  901,  901,  901,
1451 
1452       901,  901,  901,  902,   55,   55, 1133,  903,  863,  737,
1453        55,   55,   55,  903,  903,  903,  903,  903,  903,  666,
1454      1134,  468,   55,   55,  660, 1075, 1076,   55, 1083,   55,
1455        55,   55,  658, 1182, 1183,  737,  744,  904,  904,  904,
1456       904,  904,  904,  904,  905,   55, 1134,   55,  906,   55,
1457       748, 1537, 1133,  746,  906,  906,  906,  906,  906,  906,
1458      1092, 1143, 1094, 1185,  719,  735, 1728, 1031, 1031, 1031,
1459      1031, 1031, 1031, 1031, 1143, 1144,  748,  910,  911,  911,
1460       911,  911,  911,  911,  911,  912,   55,   55, 1728,  913,
1461       716,  914, 1728, 1145, 1145,  913,  913,  913,  913,  913,
1462 
1463       913, 1144,  726,  815,   55,   55,  803, 1146, 1728,  719,
1464        55,  716,  803, 1155, 1728, 1155, 1184,  914,  724,  917,
1465       917,  917,  917,  917,  917,  917,  899, 1156,   55, 1728,
1466       918,   53,   53, 1146, 1728,   53,  918,  918,  918,  918,
1467       918,  918,  919,  920,  920,  920,  920,  920,  920,  920,
1468       921, 1581,  790, 1156,  922, 1728,  923,   55,   55, 1157,
1469       922,  922,  922,  922,  922,  922, 1047, 1047, 1047, 1047,
1470      1047, 1047, 1047, 1158,   53,   55,   55,   53, 1157,   55,
1471        55,  772,  923,  733,  928,  928,  928,  928,  928,  928,
1472       928,  902, 1728, 1310, 1192,  929,  666,   55,   55, 1158,
1473 
1474       470,  929,  929,  929,  929,  929,  929,  930,  931,  931,
1475       931,  931,  931,  931,  931,  932, 1311, 1490, 1728,  933,
1476       549,  934,  746,  719,  365,  933,  933,  933,  933,  933,
1477       933, 1167, 1168, 1168, 1168, 1168, 1168, 1168, 1170, 1171,
1478      1171, 1171, 1171, 1171, 1171, 1287,   55,  934,  744,  940,
1479       940,  940,  940,  940,  940,  940,  905,  545,  540, 1288,
1480       941,  735,  716,  726,   55, 1201,  941,  941,  941,  941,
1481       941,  941,  942,  943,  943,  943,  943,  943,  943,  943,
1482       944, 1202, 1203,  723,  945, 1288,  946,   55,   55,   55,
1483       945,  945,  945,  945,  945,  945, 1174, 1175, 1175, 1175,
1484 
1485      1175, 1175, 1175,  634,  625,   55,   55,   55,   55, 1287,
1486      1289,  719,  946,  861,  957,  957,  957,  957,  957,  957,
1487       957,  863, 1193, 1728, 1290,  958,   55, 1544,   55,   55,
1488      1289,  958,  958,  958,  958,  958,  958,  959,  960,  960,
1489       960,  960,  960,  960, 1728, 1314,   55,   55,  961, 1728,
1490      1290,   55,  716,   55,  961,  961,  961,  961,  961,  961,
1491        55, 1188,  984,  984,  984,  984,  984,  984,  984,   55,
1492      1728,   55, 1602,  984, 1603,   55,   55,   55,   55,  984,
1493       984,  984,  984,  984,  984,  985,  985,  985,  985,  985,
1494       985,  985,  714,   55,   55,   55,  985, 1604,   55,   55,
1495 
1496        55,   55,  985,  985,  985,  985,  985,  985,  619,  986,
1497       986,  986,  986,  986,  986,  986,   55,   55,   55,   55,
1498       987, 1610,  435,  625,  615, 1491,  987,  987,  987,  987,
1499       987,  987, 1196, 1198, 1229, 1230, 1230, 1230, 1230, 1230,
1500      1230, 1235, 1236, 1236, 1236, 1236, 1236, 1236,  435,  987,
1501       987,  987,  987,  987,  987,  987,  613,  703,  702,  701,
1502       987,  700,   55,   55,   55,   55,  987,  987,  987,  987,
1503       987,  987,  267,  988,  988,  988,  988,  988,  988,  988,
1504        55,   55,   55,   55,  989, 1624,  699, 1626, 1627, 1535,
1505       989,  989,  989,  989,  989,  989,   53,  989,  989,  989,
1506 
1507       989,  989,  989,  989,  992,  993,  993,  993,  993,  993,
1508       993,  698,  697,  696,  695,  994,  694,  693,   55,   55,
1509        55,  994,  994,  994,  994,  994,  994,  724,  821,  821,
1510       821,  821,  821,  821,  821,  899,   55,   55,   55,  822,
1511       692,  685, 1642,   55, 1345,  822,  822,  822,  822,  822,
1512       822,  995,  996,  996,  996,  996,  996,  996, 1346, 1634,
1513       684,   55,  997,  683,  682,   55, 1643,   55,  997,  997,
1514       997,  997,  997,  997,  733,  833,  833,  833,  833,  833,
1515       833,  833,  902,   55, 1346,   55,  834,  681, 1644,   55,
1516        55, 1345,  834,  834,  834,  834,  834,  834,  998,  999,
1517 
1518       999,  999,  999,  999,  999, 1728, 1635,   55,   55, 1000,
1519       680,  679, 1646,  678,   55, 1000, 1000, 1000, 1000, 1000,
1520      1000,  744,  848,  848,  848,  848,  848,  848,  848,  905,
1521       677, 1728,   55,  849,  676,  675,   55,   55, 1350,  849,
1522       849,  849,  849,  849,  849, 1001, 1002, 1002, 1002, 1002,
1523      1002, 1002, 1351, 1636,   55,   55, 1003, 1655,   55, 1657,
1524       674,  673, 1003, 1003, 1003, 1003, 1003, 1003, 1007, 1008,
1525      1008, 1008, 1008, 1008, 1008,  453,   55,  672, 1351, 1009,
1526       671, 1659,   55,   55,   55, 1009, 1009, 1009, 1009, 1009,
1527      1009,  910, 1012, 1012, 1012, 1012, 1012, 1012, 1012,  912,
1528 
1529        55,   55,   55, 1013,  670, 1661,   55,  669,  468, 1013,
1530      1013, 1013, 1013, 1013, 1013, 1014, 1015, 1015, 1015, 1015,
1531      1015, 1015,  453, 1669,   55, 1662, 1016,  666,  470,   55,
1532       464,   55, 1016, 1016, 1016, 1016, 1016, 1016,  919, 1024,
1533      1024, 1024, 1024, 1024, 1024, 1024,  921,   55, 1663,   55,
1534      1025,  551, 1672,   55,   55,  535, 1025, 1025, 1025, 1025,
1535      1025, 1025, 1026, 1027, 1027, 1027, 1027, 1027, 1027,  453,
1536       542,   55,   55, 1028,  634,  625, 1680, 1681,   55, 1028,
1537      1028, 1028, 1028, 1028, 1028,  930, 1039, 1039, 1039, 1039,
1538      1039, 1039, 1039,  932,  535,  625,   55, 1040,  619,   55,
1539 
1540        55, 1686,  619, 1040, 1040, 1040, 1040, 1040, 1040, 1041,
1541      1042, 1042, 1042, 1042, 1042, 1042,  453,   55,   55,  612,
1542      1043, 1687,  611,   55,   55,   55, 1043, 1043, 1043, 1043,
1543      1043, 1043,  942, 1055, 1055, 1055, 1055, 1055, 1055, 1055,
1544       944,   55,   55,   55, 1056, 1693, 1690,   55,   55,  610,
1545      1056, 1056, 1056, 1056, 1056, 1056, 1057, 1058, 1058, 1058,
1546      1058, 1058, 1058,  453,  609,   55,   55, 1059,  608,  607,
1547        55, 1700,   55, 1059, 1059, 1059, 1059, 1059, 1059,  861,
1548      1066, 1066, 1066, 1066, 1066, 1066, 1066,  863,   55, 1694,
1549        55, 1067,  606,  605,   55, 1708,   55, 1067, 1067, 1067,
1550 
1551      1067, 1067, 1067, 1068, 1069, 1069, 1069, 1069, 1069, 1069,
1552      1069, 1070,   55,  604,   55, 1071,  603, 1072,  602,  338,
1553       239, 1071, 1071, 1071, 1071, 1071, 1071, 1239, 1240, 1240,
1554      1240, 1240, 1240, 1240, 1245, 1246, 1246, 1246, 1246, 1246,
1555      1246,   55,   55, 1072,   55,  619, 1095, 1095, 1095, 1095,
1556      1095, 1095, 1095,  601,  600,  599,  598, 1096,  597,   55,
1557        55,  596,   55, 1096, 1096, 1096, 1096, 1096, 1096,   53,
1558      1096, 1096, 1096, 1096, 1096, 1096, 1096,   55,  267, 1097,
1559      1097, 1097, 1097, 1097, 1097, 1097, 1248, 1249, 1249, 1249,
1560      1249, 1249, 1249,   55,   55,   55,  910, 1100, 1100, 1100,
1561 
1562      1100, 1100, 1100, 1100, 1101,  595,  594,  593, 1102,  592,
1563       914,   55,   55,  591, 1102, 1102, 1102, 1102, 1102, 1102,
1564      1252, 1253, 1253, 1253, 1253, 1253, 1253, 1259, 1260, 1260,
1565      1260, 1260, 1260, 1260,   55, 1710,  914,  919, 1103, 1103,
1566      1103, 1103, 1103, 1103, 1103, 1104,  590,  589,  581, 1105,
1567       578,  923,   55,  575,  574, 1105, 1105, 1105, 1105, 1105,
1568      1105, 1262, 1263, 1263, 1263, 1263, 1263, 1263, 1266, 1267,
1569      1267, 1267, 1267, 1267, 1267,   55, 1714,  923,  930, 1106,
1570      1106, 1106, 1106, 1106, 1106, 1106, 1107,  573,  572,  571,
1571      1108,  570,  934,   55,  569,  568, 1108, 1108, 1108, 1108,
1572 
1573      1108, 1108, 1273, 1274, 1274, 1274, 1274, 1274, 1274, 1276,
1574      1277, 1277, 1277, 1277, 1277, 1277,   55,   55,  934,  942,
1575      1109, 1109, 1109, 1109, 1109, 1109, 1109, 1110,  567,  566,
1576       470, 1111,  279,  946,   55,   55,  453, 1111, 1111, 1111,
1577      1111, 1111, 1111, 1280, 1281, 1281, 1281, 1281, 1281, 1281,
1578      1168, 1168, 1168, 1168, 1168, 1168, 1168,  365,  551,  946,
1579      1113, 1114, 1114, 1114, 1114, 1114, 1114, 1115,  535,  542,
1580       453, 1116,  539,  450,  444,   55,   55, 1116, 1116, 1116,
1581      1116, 1116, 1116, 1117, 1118, 1118, 1118, 1118, 1118, 1118,
1582      1118, 1119,   55,   55,   55, 1120,   55, 1121,   55, 1350,
1583 
1584        55, 1120, 1120, 1120, 1120, 1120, 1120, 1308, 1305,  535,
1585        55,  533,  444, 1728,   55,  436,   55,   55,   55,  430,
1586       520, 1303,  519, 1121,  910, 1124, 1124, 1124, 1124, 1124,
1587      1124, 1124, 1101, 1312, 1583,   55, 1125, 1402, 1717, 1728,
1588        55,   55, 1125, 1125, 1125, 1125, 1125, 1125, 1126, 1127,
1589      1127, 1127, 1127, 1127, 1127, 1127, 1128,   55,   55,   55,
1590      1129,  518, 1130,  517,  516,   55, 1129, 1129, 1129, 1129,
1591      1129, 1129, 1309, 1313,  515,   55, 1337, 1338, 1338, 1338,
1592      1338, 1338, 1338,   55, 1352,   55, 1307,  514, 1130,  919,
1593      1135, 1135, 1135, 1135, 1135, 1135, 1135, 1104, 1353,  513,
1594 
1595      1403, 1136,  512,   55,  511,   55,  510, 1136, 1136, 1136,
1596      1136, 1136, 1136, 1137, 1138, 1138, 1138, 1138, 1138, 1138,
1597      1138, 1139, 1405,   55, 1353, 1140,  509, 1141, 1352,  508,
1598       507, 1140, 1140, 1140, 1140, 1140, 1140, 1317,  506,  503,
1599       502,  499, 1728, 1246, 1246, 1246, 1246, 1246, 1246, 1246,
1600       498, 1358,   55, 1141,  930, 1147, 1147, 1147, 1147, 1147,
1601      1147, 1147, 1107,  497,  496, 1359, 1148,  495, 1728,  120,
1602        55,  494, 1148, 1148, 1148, 1148, 1148, 1148, 1149, 1150,
1603      1150, 1150, 1150, 1150, 1150, 1150, 1151, 1408, 1358, 1360,
1604      1152, 1359, 1153, 1360,  493,  481, 1152, 1152, 1152, 1152,
1605 
1606      1152, 1152, 1728, 1361,  480,  479,  478, 1728, 1260, 1260,
1607      1260, 1260, 1260, 1260, 1260,  477, 1366,   55, 1153,  942,
1608      1159, 1159, 1159, 1159, 1159, 1159, 1159, 1110, 1728, 1361,
1609      1367, 1160,  476, 1728,  475,   55,  474, 1160, 1160, 1160,
1610      1160, 1160, 1160, 1161, 1162, 1162, 1162, 1162, 1162, 1162,
1611      1162, 1163, 1475, 1366, 1368, 1164, 1367, 1165, 1368,  473,
1612       277, 1164, 1164, 1164, 1164, 1164, 1164, 1728, 1369,  470,
1613       279,  453, 1728, 1274, 1274, 1274, 1274, 1274, 1274, 1274,
1614       367, 1374,   55, 1165, 1068, 1176, 1176, 1176, 1176, 1176,
1615      1176, 1176, 1070, 1728, 1369, 1375, 1177,  450, 1728,  444,
1616 
1617        55, 1374, 1177, 1177, 1177, 1177, 1177, 1177, 1178, 1179,
1618      1179, 1179, 1179, 1179, 1179, 1728,  444, 1547,  437, 1180,
1619       437, 1375,   55,  429,   55, 1180, 1180, 1180, 1180, 1180,
1620      1180,   55,  619, 1204, 1204, 1204, 1204, 1204, 1204, 1204,
1621        55, 1728,   55,  420,  989, 1715,  419, 1719,  416,   55,
1622       989,  989,  989,  989,  989,  989,   53,  989,  989,  989,
1623       989,  989,  989,  989,   55,  267, 1097, 1097, 1097, 1097,
1624      1097, 1097, 1097,  415,   55,   55, 1376, 1376,   55,   55,
1625       414, 1421,   55, 1207, 1208, 1208, 1208, 1208, 1208, 1208,
1626      1377, 1728,   55,   55, 1209, 1422,   55,   55, 1399,  413,
1627 
1628      1209, 1209, 1209, 1209, 1209, 1209,  910, 1012, 1012, 1012,
1629      1012, 1012, 1012, 1012, 1101, 1400, 1377, 1728, 1013,  412,
1630       411, 1422,  410, 1421, 1013, 1013, 1013, 1013, 1013, 1013,
1631      1210, 1211, 1211, 1211, 1211, 1211, 1211, 1728,  409,  408,
1632       407, 1212,  406,  405,  404,  403,   55, 1212, 1212, 1212,
1633      1212, 1212, 1212,  919, 1024, 1024, 1024, 1024, 1024, 1024,
1634      1024, 1104,  402, 1728,   55, 1025,  401,  400,  395,  394,
1635      1468, 1025, 1025, 1025, 1025, 1025, 1025, 1213, 1214, 1214,
1636      1214, 1214, 1214, 1214, 1469, 1698,  393,  392, 1215,  391,
1637       320,  390,  389,   55, 1215, 1215, 1215, 1215, 1215, 1215,
1638 
1639       930, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1107,  388,
1640      1469,   55, 1040,  387,  386,  385,  379, 1468, 1040, 1040,
1641      1040, 1040, 1040, 1040, 1216, 1217, 1217, 1217, 1217, 1217,
1642      1217, 1728, 1723,  279,  367, 1218,  275,  364,  272,  360,
1643       266, 1218, 1218, 1218, 1218, 1218, 1218,  942, 1055, 1055,
1644      1055, 1055, 1055, 1055, 1055, 1110,  260, 1728,  143, 1056,
1645       348,  347,  346,  341, 1470, 1056, 1056, 1056, 1056, 1056,
1646      1056, 1219, 1220, 1220, 1220, 1220, 1220, 1220, 1471,  320,
1647       340,  339, 1221,  338,  337,  336,  335,  334, 1221, 1221,
1648      1221, 1221, 1221, 1221, 1223, 1224, 1224, 1224, 1224, 1224,
1649 
1650      1224, 1224, 1225,  333, 1471,  332, 1226,  331, 1227,  330,
1651       329,  328, 1226, 1226, 1226, 1226, 1226, 1226, 1382, 1383,
1652      1383, 1383, 1383, 1383, 1383, 1385, 1386, 1386, 1386, 1386,
1653      1386, 1386,   55,  327, 1227, 1117, 1231, 1231, 1231, 1231,
1654      1231, 1231, 1231, 1119,  326,  323,  322, 1232,  321,  320,
1655        55, 1406,  319, 1232, 1232, 1232, 1232, 1232, 1232, 1126,
1656      1241, 1241, 1241, 1241, 1241, 1241, 1241, 1128, 1407,  318,
1657       317, 1242,  316,  315,  314,  313,  312, 1242, 1242, 1242,
1658      1242, 1242, 1242, 1137, 1254, 1254, 1254, 1254, 1254, 1254,
1659      1254, 1139,  311,  310,  309, 1255,  308,  307,  306,  305,
1660 
1661       304, 1255, 1255, 1255, 1255, 1255, 1255, 1149, 1268, 1268,
1662      1268, 1268, 1268, 1268, 1268, 1151,  303,  302,  301, 1269,
1663       300,  299,  298,  297,  143, 1269, 1269, 1269, 1269, 1269,
1664      1269, 1161, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1163,
1665       296,  295,  294, 1283,  293,  292,  291,  290,  289, 1283,
1666      1283, 1283, 1283, 1283, 1283, 1068, 1291, 1291, 1291, 1291,
1667      1291, 1291, 1291, 1070,  288,  287,  286, 1292,  285,  284,
1668       283,  282,  279, 1292, 1292, 1292, 1292, 1292, 1292, 1293,
1669      1294, 1294, 1294, 1294, 1294, 1294, 1294, 1295,  267,  272,
1670       259, 1296,  258, 1297,   55,   55, 1470, 1296, 1296, 1296,
1671 
1672      1296, 1296, 1296, 1389, 1390, 1390, 1390, 1390, 1390, 1390,
1673      1728,   55,   55,   55,  257,   55,   55,   55,  256, 1297,
1674        55,  619,  525,  525,  525,  525,  525,  525,  525,   55,
1675       255, 1534, 1576,   55,   55,   55, 1728, 1506,   55, 1318,
1676      1319, 1319, 1319, 1319, 1319, 1319, 1320, 1397, 1410, 1660,
1677      1321, 1507, 1586,  254,  253,   55, 1321, 1321, 1321, 1321,
1678      1321, 1321, 1117, 1322, 1322, 1322, 1322, 1322, 1322, 1322,
1679      1323,   55,   55,   55, 1324,  252, 1121, 1507,  251,  250,
1680      1324, 1324, 1324, 1324, 1324, 1324,  247, 1480,  244,   55,
1681        55, 1427, 1428, 1428, 1428, 1428, 1428, 1428,  241,  240,
1682 
1683      1398, 1411, 1121, 1126, 1325, 1325, 1325, 1325, 1325, 1325,
1684      1325, 1326,  239,  238,  235, 1327,  234, 1130,  233,  232,
1685       231, 1327, 1327, 1327, 1327, 1327, 1327, 1432, 1433, 1433,
1686      1433, 1433, 1433, 1433, 1435, 1436, 1436, 1436, 1436, 1436,
1687      1436,  230,  229, 1130, 1137, 1328, 1328, 1328, 1328, 1328,
1688      1328, 1328, 1329,  228,  227,  226, 1330,  225, 1141,  224,
1689       223,  222, 1330, 1330, 1330, 1330, 1330, 1330, 1441, 1442,
1690      1442, 1442, 1442, 1442, 1442, 1444, 1445, 1445, 1445, 1445,
1691      1445, 1445,  221,  220, 1141, 1149, 1331, 1331, 1331, 1331,
1692      1331, 1331, 1331, 1332,  216,  215,  205, 1333,  204, 1153,
1693 
1694       203,  200,  199, 1333, 1333, 1333, 1333, 1333, 1333, 1450,
1695      1451, 1451, 1451, 1451, 1451, 1451, 1453, 1454, 1454, 1454,
1696      1454, 1454, 1454,  194,  193, 1153, 1161, 1334, 1334, 1334,
1697      1334, 1334, 1334, 1334, 1335,  192,  191,  190, 1336,  189,
1698      1165,  188,  187,  186, 1336, 1336, 1336, 1336, 1336, 1336,
1699      1459, 1460, 1460, 1460, 1460, 1460, 1460, 1462, 1463, 1463,
1700      1463, 1463, 1463, 1463, 1506,   55, 1165, 1223, 1339, 1339,
1701      1339, 1339, 1339, 1339, 1339, 1225,  185,  181, 1728, 1340,
1702       180,  179,  178,   55,  177, 1340, 1340, 1340, 1340, 1340,
1703      1340, 1117, 1347, 1347, 1347, 1347, 1347, 1347, 1347, 1323,
1704 
1705       176, 1579,  175, 1348, 1728,  174,  173,  172,  171, 1348,
1706      1348, 1348, 1348, 1348, 1348, 1126, 1354, 1354, 1354, 1354,
1707      1354, 1354, 1354, 1326,  170,  169,  168, 1355,  167,  166,
1708       165,  160,  151, 1355, 1355, 1355, 1355, 1355, 1355, 1137,
1709      1362, 1362, 1362, 1362, 1362, 1362, 1362, 1329,  150,  145,
1710        59, 1363,   47,   45, 1728, 1728, 1728, 1363, 1363, 1363,
1711      1363, 1363, 1363, 1149, 1370, 1370, 1370, 1370, 1370, 1370,
1712      1370, 1332, 1728, 1728, 1728, 1371, 1728, 1728, 1728, 1728,
1713      1728, 1371, 1371, 1371, 1371, 1371, 1371, 1161, 1378, 1378,
1714      1378, 1378, 1378, 1378, 1378, 1335, 1728, 1728, 1728, 1379,
1715 
1716      1728, 1728, 1728, 1728, 1728, 1379, 1379, 1379, 1379, 1379,
1717      1379, 1293, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1295,
1718      1728, 1728, 1728, 1392, 1728, 1728, 1728, 1728, 1728, 1392,
1719      1392, 1392, 1392, 1392, 1392, 1223, 1412, 1412, 1412, 1412,
1720      1412, 1412, 1412, 1413, 1728, 1728, 1728, 1414, 1728, 1227,
1721      1728, 1728, 1728, 1414, 1414, 1414, 1414, 1414, 1414, 1383,
1722      1383, 1383, 1383, 1383, 1383, 1383, 1500, 1501, 1501, 1501,
1723      1501, 1501, 1501, 1510,   55, 1227, 1117, 1231, 1231, 1231,
1724      1231, 1231, 1231, 1231, 1323, 1728, 1728, 1511, 1232, 1728,
1725      1728, 1728,   55, 1728, 1232, 1232, 1232, 1232, 1232, 1232,
1726 
1727      1126, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1326, 1728,
1728      1580, 1728, 1242, 1511, 1728, 1728, 1728, 1728, 1242, 1242,
1729      1242, 1242, 1242, 1242, 1137, 1254, 1254, 1254, 1254, 1254,
1730      1254, 1254, 1329, 1728, 1728, 1728, 1255, 1728, 1728, 1728,
1731      1728, 1728, 1255, 1255, 1255, 1255, 1255, 1255, 1149, 1268,
1732      1268, 1268, 1268, 1268, 1268, 1268, 1332, 1728, 1728, 1728,
1733      1269, 1728, 1728, 1728, 1728, 1728, 1269, 1269, 1269, 1269,
1734      1269, 1269, 1161, 1282, 1282, 1282, 1282, 1282, 1282, 1282,
1735      1335, 1728, 1728, 1728, 1283, 1728, 1728, 1728, 1728, 1728,
1736      1283, 1283, 1283, 1283, 1283, 1283, 1223, 1423, 1423, 1423,
1737 
1738      1423, 1423, 1423, 1423, 1413, 1728, 1728, 1728, 1424, 1728,
1739      1728, 1728,   55, 1728, 1424, 1424, 1424, 1424, 1424, 1424,
1740      1293, 1472, 1472, 1472, 1472, 1472, 1472, 1472, 1295,   55,
1741        55,   55, 1473, 1728, 1510, 1728, 1728, 1728, 1473, 1473,
1742      1473, 1473, 1473, 1473, 1487,   55, 1728,   55, 1728,   55,
1743      1433, 1433, 1433, 1433, 1433, 1433, 1433, 1728, 1484, 1728,
1744      1728, 1488, 1514,   55, 1485, 1223, 1339, 1339, 1339, 1339,
1745      1339, 1339, 1339, 1413, 1728, 1548, 1515, 1340, 1728, 1728,
1746      1728, 1728, 1514, 1340, 1340, 1340, 1340, 1340, 1340, 1442,
1747      1442, 1442, 1442, 1442, 1442, 1442, 1728, 1518, 1518, 1728,
1748 
1749      1728, 1728, 1515, 1451, 1451, 1451, 1451, 1451, 1451, 1451,
1750      1522, 1519, 1728, 1460, 1460, 1460, 1460, 1460, 1460, 1460,
1751      1522, 1728, 1728, 1728, 1523, 1526, 1527, 1527, 1527, 1527,
1752      1527, 1527, 1728,   55, 1728,   55,   55, 1519, 1728, 1529,
1753      1530, 1530, 1530, 1530, 1530, 1530,   55,   55,   55, 1728,
1754      1523,   55,   55,   55,   55, 1551, 1728, 1551,   55,   55,
1755      1728,   55, 1538, 1539,   55,   55,   55, 1543, 1728, 1552,
1756        55, 1728, 1728, 1540, 1541, 1542,   55,   55, 1728,   55,
1757      1728, 1545, 1553, 1554, 1554, 1554, 1554, 1554, 1554, 1728,
1758      1728, 1728, 1728, 1622, 1582, 1552, 1587, 1728, 1557, 1558,
1759 
1760      1558, 1558, 1558, 1558, 1558, 1561, 1562, 1562, 1562, 1562,
1761      1562, 1562, 1565, 1566, 1566, 1566, 1566, 1566, 1566, 1569,
1762      1570, 1570, 1570, 1570, 1570, 1570, 1527, 1527, 1527, 1527,
1763      1527, 1527, 1527, 1573, 1573,   55,   55,   55, 1589, 1590,
1764      1590, 1590, 1590, 1590, 1590, 1728, 1728, 1574, 1728, 1728,
1765      1728, 1728, 1728,   55,   55,   55, 1728, 1728, 1728, 1728,
1766      1728, 1728, 1578, 1585, 1588, 1554, 1554, 1554, 1554, 1554,
1767      1554, 1554, 1728, 1574, 1728, 1558, 1558, 1558, 1558, 1558,
1768      1558, 1558, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1566,
1769      1566, 1566, 1566, 1566, 1566, 1566, 1570, 1570, 1570, 1570,
1770 
1771      1570, 1570, 1570, 1598, 1599, 1599, 1599, 1599, 1599, 1599,
1772        55,   55, 1728,   55,   55,   55,   55,   55, 1590, 1590,
1773      1590, 1590, 1590, 1590, 1590,   55,   55, 1728,   55,   55,
1774      1605,   55,   55,   55,   55,   55, 1728, 1728, 1728, 1728,
1775      1728, 1728, 1611,   55,   55, 1601,   55, 1606,   55,   55,
1776      1607, 1608, 1609, 1612, 1599, 1599, 1599, 1599, 1599, 1599,
1777      1599,   55, 1620, 1628,   55,   55,   55,   55,   55,   55,
1778      1728,   55,   55, 1621,   55,   55,   55,   55, 1728,   55,
1779      1623, 1625,   55,   55, 1728, 1728,   55,   55, 1629,   55,
1780        55,   55,   55,   55,   55,   55, 1647, 1630, 1637, 1728,
1781 
1782        55,   55, 1638, 1645,   55, 1633, 1641, 1639, 1728,   55,
1783        55, 1640,   55, 1648, 1649,   55, 1650, 1651, 1728,   55,
1784        55, 1728,   55,   55,   55,   55, 1652, 1728,   55, 1728,
1785        55,   55,   55,   55, 1728,   55, 1653,   55,   55, 1654,
1786      1728,   55,   55,   55, 1658, 1656, 1666, 1665, 1728,   55,
1787        55,   55, 1664,   55, 1670,   55, 1675,   55, 1667, 1668,
1788      1677,   55,   55,   55,   55, 1728, 1671,   55, 1673,   55,
1789      1674,   55,   55, 1676, 1728,   55,   55, 1728,   55,   55,
1790        55,   55,   55, 1678, 1728,   55,   55, 1728, 1682,   55,
1791        55,   55, 1683, 1728,   55, 1679,   55, 1685, 1684, 1688,
1792 
1793        55, 1728, 1689,   55,   55, 1691,   55,   55, 1728,   55,
1794      1695, 1692,   55,   55,   55,   55, 1728, 1728,   55, 1696,
1795      1697,   55,   55, 1728,   55,   55, 1701,   55,   55, 1699,
1796        55,   55,   55,   55, 1704, 1702,   55,   55,   55, 1728,
1797        55, 1706, 1709, 1703, 1705,   55,   55,   55,   55,   55,
1798        55, 1728, 1707, 1728,   55,   55,   55, 1711, 1728, 1728,
1799      1728, 1728, 1728, 1716, 1712,   55,   55,   55,   55, 1728,
1800      1728, 1728, 1713, 1728, 1718, 1721, 1722,   55, 1728, 1728,
1801      1726, 1727, 1728, 1720, 1728, 1724, 1728, 1725, 1728, 1728,
1802      1728, 1728, 1728, 1728, 1728,   55,   46, 1728, 1728, 1728,
1803 
1804      1728,   46,   46,   46,   64, 1728,   64,   64,   64,   64,
1805        64,   64,   64,  152, 1728,  152,  159,  159,  159,  271,
1806       271,  271,  280,  280,  280,  359,  359,  359,  362,  362,
1807       362,  363,  363,  363,  370,  370,  370,  368,  368,  368,
1808       374,  374,  374,  378, 1728,  378,  443,  443,  443,  448,
1809       448,  448,  449,  449,  449,  458,  458,  458,  462, 1728,
1810       462,  463,  463,  463,  372,  372, 1728, 1728,  372,  467,
1811       467,  467,  471,  471,  471,  362,  362,  362,  532,  532,
1812       532,  536,  536,  536,  537,  537,  537,  538,  538,  538,
1813       370,  370,  370,  543,  543,  543,  456,  456, 1728, 1728,
1814 
1815       456,  548,  548,  548,  552,  552,  552,  556, 1728,  556,
1816       557,  557,  557,  561,  561,  561,  565, 1728,  565,  624,
1817       624,  624,  458,  458,  458,  632,  632,  632,  633,  633,
1818       633,  641,  641,  641,  645, 1728,  645,  648, 1728,  648,
1819       649,  649,  649,  653,  653,  653,  657, 1728,  657,  555,
1820       555, 1728, 1728,  555,  559,  559, 1728, 1728,  559,  663,
1821       663,  663,  667,  667,  667,  565,  565, 1728,  565,  537,
1822       537,  537,  713,  713,  713,  717,  717,  717,  720,  720,
1823       720,  721,  721,  721,  722,  722,  722,  727,  727,  727,
1824       639,  639, 1728, 1728,  639,  732,  732,  732,  736,  736,
1825 
1826       736,  645,  645, 1728,  645,  647,  647, 1728, 1728,  647,
1827       648,  648, 1728,  648,  649,  649,  651,  651, 1728, 1728,
1828       651,  743,  743,  743,  747,  747,  747,  657,  657, 1728,
1829       657,  751, 1728,  751,  754, 1728,  754,  755,  755,  755,
1830       759,  759,  759,  763, 1728,  763,  802,  802,  802,  641,
1831       641,  641,  653,  653,  653,  813,  813,  813,  814,  814,
1832       814,  822,  822,  822,  826, 1728,  826,  829, 1728,  829,
1833       830,  830,  830,  834,  834,  834,  838, 1728,  838,  841,
1834      1728,  841,  844, 1728,  844,  845,  845,  845,  849,  849,
1835       849,  853, 1728,  853,  750, 1728, 1728,  750,  751,  751,
1836 
1837      1728,  751,  753,  753, 1728, 1728,  753,  754,  754, 1728,
1838       754,  755,  755,  757,  757, 1728, 1728,  757,  860,  860,
1839       860,  864,  864,  864,  763,  763, 1728,  763,   53,   53,
1840        53, 1728,   53,   53,  721,  721,  721,  896,  896,  896,
1841       900,  900,  900,  903,  903,  903,  906,  906,  906,  907,
1842       907,  907,  908,  908,  908,  913,  913,  913,  820,  820,
1843      1728, 1728,  820,  918,  918,  918,  922,  922,  922,  826,
1844       826, 1728,  826,  828,  828, 1728, 1728,  828,  829,  829,
1845      1728,  829,  830,  830,  832,  832, 1728, 1728,  832,  929,
1846       929,  929,  933,  933,  933,  838,  838, 1728,  838,  840,
1847 
1848      1728, 1728,  840,  841,  841, 1728,  841,  843,  843, 1728,
1849      1728,  843,  844,  844, 1728,  844,  845,  845,  847,  847,
1850      1728, 1728,  847,  941,  941,  941,  945,  945,  945,  853,
1851       853, 1728,  853,  947, 1728,  947,  950, 1728,  950,  953,
1852      1728,  953,  954,  954,  954,  958,  958,  958,  962, 1728,
1853       962,   53,   53,   53, 1728,   53,   53,  990,  990,  990,
1854       822,  822,  822,  834,  834,  834,  849,  849,  849, 1004,
1855      1004, 1004, 1005, 1005, 1005, 1013, 1013, 1013, 1017, 1728,
1856      1017, 1020, 1728, 1020, 1021, 1021, 1021, 1025, 1025, 1025,
1857      1029, 1728, 1029, 1032, 1728, 1032, 1035, 1728, 1035, 1036,
1858 
1859      1036, 1036, 1040, 1040, 1040, 1044, 1728, 1044, 1045, 1728,
1860      1045, 1048, 1728, 1048, 1051, 1728, 1051, 1052, 1052, 1052,
1861      1056, 1056, 1056, 1060, 1728, 1060,  947, 1728,  947,  949,
1862      1728, 1728,  949,  950,  950, 1728,  950,  952,  952, 1728,
1863      1728,  952,  953,  953, 1728,  953,  954,  954,  956,  956,
1864      1728, 1728,  956, 1067, 1067, 1067, 1071, 1071, 1071,  962,
1865       962, 1728,  962,   53,   53,   53, 1728,   53,   53,  907,
1866       907,  907, 1098, 1098, 1098, 1102, 1102, 1102, 1105, 1105,
1867      1105, 1108, 1108, 1108, 1111, 1111, 1111, 1112, 1112, 1112,
1868      1120, 1120, 1120, 1011, 1011, 1728, 1728, 1011, 1125, 1125,
1869 
1870      1125, 1129, 1129, 1129, 1017, 1017, 1728, 1017, 1019, 1019,
1871      1728, 1728, 1019, 1020, 1020, 1728, 1020, 1021, 1021, 1023,
1872      1023, 1728, 1728, 1023, 1136, 1136, 1136, 1140, 1140, 1140,
1873      1029, 1029, 1728, 1029, 1031, 1728, 1728, 1031, 1032, 1032,
1874      1728, 1032, 1034, 1034, 1728, 1728, 1034, 1035, 1035, 1728,
1875      1035, 1036, 1036, 1038, 1038, 1728, 1728, 1038, 1148, 1148,
1876      1148, 1152, 1152, 1152, 1044, 1044, 1728, 1044, 1045, 1728,
1877      1045, 1047, 1728, 1728, 1047, 1048, 1048, 1728, 1048, 1050,
1878      1050, 1728, 1728, 1050, 1051, 1051, 1728, 1051, 1052, 1052,
1879      1054, 1054, 1728, 1728, 1054, 1160, 1160, 1160, 1164, 1164,
1880 
1881      1164, 1060, 1060, 1728, 1060, 1166, 1728, 1166, 1169, 1728,
1882      1169, 1172, 1728, 1172, 1173, 1173, 1173, 1177, 1177, 1177,
1883      1181, 1728, 1181,   53,   53,   53, 1728,   53,   53, 1205,
1884      1205, 1205, 1013, 1013, 1013, 1025, 1025, 1025, 1040, 1040,
1885      1040, 1056, 1056, 1056, 1222, 1222, 1222, 1228, 1228, 1228,
1886      1226, 1226, 1226, 1233, 1233, 1233, 1232, 1232, 1232, 1234,
1887      1728, 1234, 1237, 1728, 1237, 1238, 1238, 1238, 1243, 1243,
1888      1243, 1242, 1242, 1242, 1244, 1728, 1244, 1247, 1728, 1247,
1889      1250, 1728, 1250, 1251, 1251, 1251, 1256, 1256, 1256, 1255,
1890      1255, 1255, 1257, 1728, 1257, 1258, 1728, 1258, 1261, 1728,
1891 
1892      1261, 1264, 1728, 1264, 1265, 1265, 1265, 1270, 1270, 1270,
1893      1269, 1269, 1269, 1271, 1728, 1271, 1272, 1728, 1272, 1275,
1894      1728, 1275, 1278, 1728, 1278, 1279, 1279, 1279, 1284, 1284,
1895      1284, 1283, 1283, 1283, 1285, 1728, 1285, 1166, 1728, 1166,
1896      1168, 1728, 1728, 1168, 1169, 1169, 1728, 1169, 1171, 1171,
1897      1728, 1728, 1171, 1172, 1172, 1728, 1172, 1173, 1173, 1175,
1898      1175, 1728, 1728, 1175, 1292, 1292, 1292, 1296, 1296, 1296,
1899      1181, 1181, 1728, 1181,   53,   53,   53, 1728,   53,   53,
1900      1112, 1112, 1112, 1324, 1324, 1324, 1327, 1327, 1327, 1330,
1901      1330, 1330, 1333, 1333, 1333, 1336, 1336, 1336, 1341, 1341,
1902 
1903      1341, 1340, 1340, 1340, 1343, 1728, 1343, 1344, 1344, 1344,
1904      1230, 1230, 1728, 1728, 1230, 1348, 1348, 1348, 1349, 1349,
1905      1349, 1234, 1234, 1728, 1234, 1236, 1236, 1728, 1728, 1236,
1906      1237, 1237, 1728, 1237, 1238, 1238, 1240, 1240, 1728, 1728,
1907      1240, 1355, 1355, 1355, 1356, 1356, 1356, 1244, 1244, 1728,
1908      1244, 1246, 1728, 1728, 1246, 1247, 1247, 1728, 1247, 1249,
1909      1249, 1728, 1728, 1249, 1250, 1250, 1728, 1250, 1251, 1251,
1910      1253, 1253, 1728, 1728, 1253, 1363, 1363, 1363, 1364, 1364,
1911      1364, 1257, 1257, 1728, 1257, 1258, 1728, 1258, 1260, 1728,
1912      1728, 1260, 1261, 1261, 1728, 1261, 1263, 1263, 1728, 1728,
1913 
1914      1263, 1264, 1264, 1728, 1264, 1265, 1265, 1267, 1267, 1728,
1915      1728, 1267, 1371, 1371, 1371, 1372, 1372, 1372, 1271, 1271,
1916      1728, 1271, 1272, 1728, 1272, 1274, 1728, 1728, 1274, 1275,
1917      1275, 1728, 1275, 1277, 1277, 1728, 1728, 1277, 1278, 1278,
1918      1728, 1278, 1279, 1279, 1281, 1281, 1728, 1728, 1281, 1379,
1919      1379, 1379, 1380, 1380, 1380, 1285, 1285, 1728, 1285, 1381,
1920      1728, 1381, 1384, 1728, 1384, 1387, 1728, 1387, 1388, 1388,
1921      1388, 1393, 1728, 1393, 1392, 1392, 1392, 1394, 1728, 1394,
1922        53,   53,   53, 1728,   53,   53, 1415, 1728, 1415, 1414,
1923      1414, 1414, 1416, 1728, 1416, 1232, 1232, 1232, 1417, 1728,
1924 
1925      1417, 1242, 1242, 1242, 1418, 1728, 1418, 1255, 1255, 1255,
1926      1419, 1728, 1419, 1269, 1269, 1269, 1420, 1728, 1420, 1283,
1927      1283, 1283, 1338, 1338, 1728, 1728, 1338, 1424, 1424, 1424,
1928      1425, 1425, 1425,  370,  370,  370, 1343, 1343, 1728, 1343,
1929      1426, 1426, 1426, 1429, 1728, 1429, 1430, 1430, 1430, 1431,
1930      1431, 1431, 1434, 1728, 1434, 1437, 1728, 1437, 1438, 1438,
1931      1438, 1439, 1439, 1439, 1440, 1728, 1440, 1443, 1728, 1443,
1932      1446, 1728, 1446, 1447, 1447, 1447, 1448, 1448, 1448, 1449,
1933      1728, 1449, 1452, 1728, 1452, 1455, 1728, 1455, 1456, 1456,
1934      1456, 1457, 1457, 1457, 1458, 1728, 1458, 1461, 1728, 1461,
1935 
1936      1464, 1728, 1464, 1465, 1465, 1465, 1466, 1466, 1466, 1381,
1937      1728, 1381, 1383, 1728, 1728, 1383, 1384, 1384, 1728, 1384,
1938      1386, 1386, 1728, 1728, 1386, 1387, 1387, 1728, 1387, 1388,
1939      1388, 1390, 1390, 1728, 1728, 1390, 1473, 1473, 1473, 1474,
1940      1728, 1474, 1394, 1394, 1728, 1394,   53,   53,   53, 1728,
1941        53,   53, 1492, 1492, 1492, 1340, 1340, 1340, 1494, 1728,
1942      1494, 1495, 1728, 1495, 1496, 1728, 1496, 1497, 1728, 1497,
1943      1498, 1728, 1498, 1499, 1728, 1499, 1502, 1728, 1502, 1503,
1944      1503, 1503, 1504, 1504, 1504, 1505, 1728, 1505, 1428, 1428,
1945      1728, 1728, 1428, 1429, 1429, 1728, 1429, 1430, 1430, 1508,
1946 
1947      1728, 1508, 1433, 1728, 1728, 1433, 1434, 1434, 1728, 1434,
1948      1436, 1436, 1728, 1728, 1436, 1437, 1437, 1728, 1437, 1438,
1949      1438, 1512, 1728, 1512, 1440, 1728, 1440, 1442, 1728, 1728,
1950      1442, 1443, 1443, 1728, 1443, 1445, 1445, 1728, 1728, 1445,
1951      1446, 1446, 1728, 1446, 1447, 1447, 1516, 1728, 1516, 1449,
1952      1728, 1449, 1451, 1728, 1728, 1451, 1452, 1452, 1728, 1452,
1953      1454, 1454, 1728, 1728, 1454, 1455, 1455, 1728, 1455, 1456,
1954      1456, 1520, 1728, 1520, 1458, 1728, 1458, 1460, 1728, 1728,
1955      1460, 1461, 1461, 1728, 1461, 1463, 1463, 1728, 1728, 1463,
1956      1464, 1464, 1728, 1464, 1465, 1465, 1524, 1728, 1524, 1525,
1957 
1958      1728, 1525, 1528, 1728, 1528, 1531, 1728, 1531, 1532, 1532,
1959      1532, 1533, 1728, 1533,   53,   53,   53, 1728,   53,   53,
1960      1550, 1728, 1550, 1426, 1728, 1426, 1431, 1728, 1431, 1439,
1961      1728, 1439, 1448, 1728, 1448, 1457, 1728, 1457, 1466, 1728,
1962      1466, 1501, 1501, 1728, 1728, 1501, 1502, 1502, 1728, 1502,
1963      1503, 1503, 1493, 1728, 1493, 1555, 1728, 1555, 1556, 1728,
1964      1556, 1559, 1728, 1559, 1560, 1728, 1560, 1563, 1728, 1563,
1965      1564, 1728, 1564, 1567, 1728, 1567, 1568, 1728, 1568, 1571,
1966      1728, 1571, 1527, 1728, 1728, 1527, 1530, 1530, 1728, 1728,
1967      1530, 1575, 1728, 1575, 1504, 1728, 1504, 1591, 1728, 1591,
1968 
1969      1554, 1728, 1728, 1554, 1558, 1728, 1728, 1558, 1562, 1728,
1970      1728, 1562, 1566, 1728, 1728, 1566, 1570, 1728, 1728, 1570,
1971      1597, 1728, 1597, 1600, 1728, 1600, 1590, 1728, 1728, 1590,
1972      1614, 1728, 1614, 1615, 1728, 1615, 1616, 1728, 1616, 1617,
1973      1728, 1617, 1618, 1728, 1618, 1599, 1728, 1728, 1599, 1631,
1974      1728, 1631, 1632, 1728, 1632,    3, 1728, 1728, 1728, 1728,
1975      1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
1976      1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
1977      1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
1978      1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
1979 
1980      1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728
1981     } ;
1982 
1983 static yyconst flex_int16_t yy_chk[7910] =
1984     {   0,
1985         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1986         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1987         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1988         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1989         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1990         1,    1,    1,    4,   15,  106,    4,    7,    4,    4,
1991         7,  106,    7,    7,    9,   17,   17,    9,  138,    9,
1992         9,    4,   19,   19,   24,    7,   27,   27,  138,    4,
1993        15,   10,    9,    7,   10,  102,   10,   10,   24,   28,
1994         9,   34,   26, 1278,   28,   24,   26,  586,   94,   10,
1995 
1996        34,   94,   26,  586,   95,   26,   95,   10,   14,   14,
1997        14,   14,   14,   14,   14,   14,   14,   14,  102,   98,
1998      1279,   14,   14,   14,   98,   83,   14,   14,   14,   14,
1999        14,   14,   14,   14,   14,   14,   14,   14,   14,   14,
2000        14,   14,   14,   14,   14,   14,   14,   14,   14,   14,
2001        14,   16,   83,   25,   16,  671,   16,   16,   83,  129,
2002        29,  671,  107,   25,   29,  252,   25,  107,   22,   16,
2003        25,   22,  129,   22,   22,  103,   29,   16,   20,   20,
2004        20,   20,   20,   20,   20,   20,   22,  134,   23,  252,
2005        23,   23,   20,  673,   22,   23,  673,  251,   35,  251,
2006 
2007        23,   30,  103,   30,   23,  134,   23,  103,   30,   30,
2008        35,   30,   35, 1283,   35,   30, 1284,   35,   20,   21,
2009        21,   21,   21,   21,   21,   21,   21,   21,   21,   32,
2010        32,  110,   21,  675,  110, 1285,  110,  136,   21,   21,
2011        21,   21,   21,   21,   31,   32,  136,   31,   31,   32,
2012        31,  675,   31,   32,   31,   32,   31,   33,   36,   31,
2013       155,   33,   32,   36,   36,   37,   36,   36,  710,   37,
2014        33,   33,  163,   38,   33,  222,   33,   37,   39,   38,
2015        39,   38,   37,   38,   37,   41,  155,   38,  222,   38,
2016        38,  267,  267,   41,   39,  437,  437,   41,  163,   41,
2017 
2018        44,   39,  397,   44,  710,   44,   44,   62,   62,   62,
2019        62,   62,   62,   62,  274,  339,   63,  351,   44,   63,
2020       339,   63,   63,  397,  410, 1292,   44,   48,   48,   48,
2021        48,   48,   48,   48,   63,  619,  619,  410,   48,  397,
2022       274,  680,   63,  351,   48,   48,   48,   48,   48,   48,
2023        49,   49,   49,   49,   49,   49,   49,  376,  439,  680,
2024       446,   49,  284,  284,  284,  284, 1296,   49,   49,   49,
2025        49,   49,   49,   50,   50,   50,   50,   50,   50,   50,
2026        50,  466,  284,  376,  439,   50,  446,  452,  460,  466,
2027      1321,   50,   50,   50,   50,   50,   50,   52,   52,   52,
2028 
2029        52,   52,   52,   52,   52,   54,   54,   54,   54,   54,
2030        54,   54,  486,  452,  460,  355,   54, 1324,  413,  670,
2031       670,  486,   54,   54,   54,   54,   54,   54,   56,  355,
2032       672,   56,  413,   56,   56,  672, 1327,  371,  372,   56,
2033        56,   56,   56,   56,   56,   56,   56,  523,  563,  679,
2034        56,  371,  372,  679,   56,  355,   56,   56,   56,   56,
2035        56,   56,  153,  488,  153,  153,  153,  153,  153,  153,
2036       153,  547,  488,  523,  563,  153,  627,  371,  372,  547,
2037       686,  153,  153,  153,  153,  153,  153,  154,  154,  154,
2038       154,  154,  154,  154,  154,  557,  662,  686, 1330,  154,
2039 
2040       630,  154,  627,  557,  662,  154,  154,  154,  154,  154,
2041       154,  266,  266,  266,  266,  266,  266,  266,  277,  277,
2042       277,  277,  277,  277,  277,  455,  630,  154,  156,  156,
2043       156,  156,  156,  156,  156,  156,  587,  636, 1333,  455,
2044       156,  566,  566,  566,  566,  587,  156,  156,  156,  156,
2045       156,  156,  157,  157,  157,  157,  157,  157,  157,  157,
2046       157,  684, 1336,  636,  157,  455,  643,  655,  684, 1340,
2047       157,  157,  157,  157,  157,  157,  158,  158,  158,  158,
2048       158,  158,  158,  158,  160,  160,  160,  160,  160,  160,
2049       160,  160,  643,  655,  678,  160,  678,  682, 1341,  682,
2050 
2051      1342,  160,  160,  160,  160,  160,  160,  162,  162,  162,
2052       162,  162,  162,  162,  162,  162,  687,  691,  691,  162,
2053      1343,  162, 1344,  309,  687,  162,  162,  162,  162,  162,
2054       162,  309,  361,  361,  361,  361,  361,  361,  361,  701,
2055       701,  456, 1348,  527,  309,  764,  676,  162,  260,  260,
2056       260,  260,  260,  260,  260,  456,  676,  527,  708,  260,
2057       309, 1349,  766,  764,  689,  260,  260,  260,  260,  260,
2058       260,  262,  262,  262,  262,  262,  262,  262,  588,  689,
2059       766,  456,  262,  527,  708,  749,  761,  588,  262,  262,
2060       262,  262,  262,  262,  263,  263,  263,  263,  263,  263,
2061 
2062       263,  263,  265,  265,  265,  265,  265,  265,  265,  674,
2063       805,  749,  761,  265, 1355, 1356, 1363,  772,  674,  265,
2064       265,  265,  265,  265,  265,  268,  268,  268,  268,  268,
2065       268,  268,  268,  731,  742,  772,  805,  268, 1364, 1371,
2066       772,  731,  742,  268,  268,  268,  268,  268,  268,  270,
2067       270,  270,  270,  270,  270,  270,  270,  273,  273,  273,
2068       273,  273,  273,  273,  273,  273,  859, 1372, 1379,  273,
2069      1380,  273, 1384, 1387,  859,  273,  273,  273,  273,  273,
2070       273,  365,  365,  365,  365,  365,  365,  365,  436,  436,
2071       436,  436,  436,  436,  436,  554,  683,  273,  278,  278,
2072 
2073       278,  278,  278,  278,  278,  278,  278,  683, 1388,  554,
2074       278, 1392,  765,  779, 1394,  681,  278,  278,  278,  278,
2075       278,  278,  279,  279,  279,  279,  279,  279,  279,  681,
2076       765,  779,  685,  279,  555,  554,  779,  765, 1413,  279,
2077       279,  279,  279,  279,  279,  344,  685,  344,  555,  344,
2078       344,  464,  464,  464,  464,  464,  464,  464,  773,  344,
2079       690,  344,  344,  558,  344,  349,  559,  349,  349,  349,
2080       349,  349,  349,  349,  555,  690,  773,  558,  349,  773,
2081       559,  776, 1414,  787,  349,  349,  349,  349,  349,  349,
2082       350,  350,  350,  350,  350,  350,  350,  350, 1424,  776,
2083 
2084       776,  787,  350,  558,  350, 1425,  559, 1429,  350,  350,
2085       350,  350,  350,  350,  468,  468,  468,  468,  468,  468,
2086       468,  540,  540,  540,  540,  540,  540,  540,  638,  688,
2087       350,  352,  352,  352,  352,  352,  352,  352,  352,  688,
2088      1430, 1434,  638,  352, 1437,  783,  774,  788,  639,  352,
2089       352,  352,  352,  352,  352,  356,  356,  356,  356,  356,
2090       356,  356,  639,  783,  774,  788,  356,  774,  638,  784,
2091       783,  790,  356,  356,  356,  356,  356,  356,  357,  357,
2092       357,  357,  357,  357,  357,  357, 1438,  784,  639,  790,
2093       357,  808,  784,  811,  817, 1443,  357,  357,  357,  357,
2094 
2095       357,  357,  358,  358,  358,  358,  358,  358,  358,  358,
2096       360,  360,  360,  360,  360,  360,  360,  808,  917,  811,
2097       817,  360, 1446,  791,  789,  795,  917,  360,  360,  360,
2098       360,  360,  360,  364,  364,  364,  364,  364,  364,  364,
2099       364,  791,  789,  795,  364,  789,  824,  797,  797, 1447,
2100       364,  364,  364,  364,  364,  364,  366,  366,  366,  366,
2101       366,  366,  366,  366,  366,  797,  836,  839,  366,  851,
2102       866,  867,  824, 1452,  366,  366,  366,  366,  366,  366,
2103       367,  367,  367,  367,  367,  367,  367,  367,  866,  867,
2104       892,  367,  836,  839,  867,  851,  868,  367,  367,  367,
2105 
2106       367,  367,  367,  373,  373,  373,  373,  373,  373,  373,
2107       373,  373, 1455, 1456,  868,  373,  892, 1461,  879,  868,
2108       869,  373,  373,  373,  373,  373,  373,  375,  375,  375,
2109       375,  375,  375,  375,  375,  375,  879,  879,  869,  375,
2110       692,  375, 1464,  869,  693,  375,  375,  375,  375,  375,
2111       375,  490,  646,  490,  692,  696,  490,  490,  693,  647,
2112       490,  490,  699,  928,  700,  490,  646,  375,  396,  696,
2113      1465,  928,  396,  647,  700,  396,  699,  650,  396,  651,
2114       396,  396,  396,  396,  430,  430,  430,  430,  430,  430,
2115       430,  650,  646,  651, 1473,  430,  780,  871,  873,  647,
2116 
2117      1502,  430,  430,  430,  430,  430,  430,  432,  432,  432,
2118       432,  432,  432,  432,  780,  871,  873,  650,  432,  651,
2119       871,  873,  948,  780,  432,  432,  432,  432,  432,  432,
2120       433,  433,  433,  433,  433,  433,  433,  433,  435,  435,
2121       435,  435,  435,  435,  435, 1503, 1528, 1531,  948,  435,
2122      1555,  781,  880,  874,  888,  435,  435,  435,  435,  435,
2123       435,  438,  438,  438,  438,  438,  438,  438,  438,  781,
2124       880,  874,  888,  438, 1559,  438,  874,  880,  781,  438,
2125       438,  438,  438,  438,  438,  545,  545,  545,  545,  545,
2126       545,  545,  549,  549,  549,  549,  549,  549,  549,  767,
2127 
2128       752,  438,  440,  440,  440,  440,  440,  440,  440,  960,
2129       940,  993,  996,  440,  752,  883, 1563,  767,  940,  440,
2130       440,  440,  440,  440,  440,  441,  441,  441,  441,  441,
2131       441,  441, 1567,  883,  767,  960,  441,  993,  996,  999,
2132       752,  883,  441,  441,  441,  441,  441,  441,  442,  442,
2133       442,  442,  442,  442,  442,  442,  445,  445,  445,  445,
2134       445,  445,  445,  445,  445,  999, 1571, 1591,  445, 1002,
2135       445, 1600, 1275, 1271,  445,  445,  445,  445,  445,  445,
2136       658,  658,  658,  658,  658,  658,  658,  660,  660,  660,
2137       660,  660,  660,  660,  973, 1002,  445,  451,  451,  451,
2138 
2139       451,  451,  451,  451,  451,  451, 1066, 1270, 1269,  451,
2140      1265,  451,  973,  973, 1066,  451,  451,  451,  451,  451,
2141       451,  664,  664,  664,  664,  664,  664,  664,  724,  724,
2142       724,  724,  724,  724,  724,  753,  768,  451,  457,  457,
2143       457,  457,  457,  457,  457,  457,  457, 1264, 1261,  753,
2144       457, 1008, 1257, 1015,  768,  886,  457,  457,  457,  457,
2145       457,  457,  459,  459,  459,  459,  459,  459,  459,  459,
2146       459,  768, 1256,  886,  459,  753,  459, 1008,  886, 1015,
2147       459,  459,  459,  459,  459,  459,  729,  729,  729,  729,
2148       729,  729,  729,  733,  733,  733,  733,  733,  733,  733,
2149 
2150       756,  769,  459,  469,  469,  469,  469,  469,  469,  469,
2151       469,  469, 1255, 1027,  756,  469, 1251,  975, 1250,  769,
2152       757,  469,  469,  469,  469,  469,  469,  470,  470,  470,
2153       470,  470,  470,  470,  757,  975,  769, 1247,  470, 1027,
2154       756,  785,  975,  876,  470,  470,  470,  470,  470,  470,
2155       521,  819,  521,  521,  521,  521,  521,  521,  521,  785,
2156       757,  876, 1244,  521,  876,  819,  972,  967,  785,  521,
2157       521,  521,  521,  521,  521,  522,  522,  522,  522,  522,
2158       522,  522,  522, 1243,  972,  967, 1242,  522,  967,  522,
2159      1238,  819,  972,  522,  522,  522,  522,  522,  522,  738,
2160 
2161       738,  738,  738,  738,  738,  738,  740,  740,  740,  740,
2162       740,  740,  740,  771,  777,  522,  524,  524,  524,  524,
2163       524,  524,  524,  524, 1030, 1124, 1237, 1042,  524, 1046,
2164      1058,  771,  777, 1124,  524,  524,  524,  524,  524,  524,
2165       528,  528,  528,  528,  528,  528,  528,  528,  771, 1135,
2166      1030,  777,  528, 1042, 1114, 1046, 1058, 1135,  528,  528,
2167       528,  528,  528,  528,  529,  529,  529,  529,  529,  529,
2168       529,  529,  530,  530,  530,  530,  530,  530,  530, 1147,
2169      1114, 1234, 1233,  530, 1167, 1179, 1208, 1147, 1232,  530,
2170       530,  530,  530,  530,  530,  531,  531,  531,  531,  531,
2171 
2172       531,  531,  531,  533,  533,  533,  533,  533,  533,  533,
2173      1167, 1179, 1208, 1211,  533, 1228, 1226,  970,  974,  977,
2174       533,  533,  533,  533,  533,  533,  534,  534,  534,  534,
2175       534,  534,  534,  534,  534,  970,  974,  977,  534, 1211,
2176       970,  974,  977,  820,  534,  534,  534,  534,  534,  534,
2177       535,  535,  535,  535,  535,  535,  535,  820, 1159, 1225,
2178      1214,  535, 1222,  976,  978, 1221, 1159,  535,  535,  535,
2179       535,  535,  535,  539,  539,  539,  539,  539,  539,  539,
2180       539,  976,  978,  820,  539,  978, 1214,  979,  981,  976,
2181       539,  539,  539,  539,  539,  539,  541,  541,  541,  541,
2182 
2183       541,  541,  541,  541,  541,  979,  981,  979,  541, 1218,
2184       983,  981,  984, 1215,  541,  541,  541,  541,  541,  541,
2185       542,  542,  542,  542,  542,  542,  542,  542,  983, 1212,
2186       984,  542, 1209, 1205,  985,  989, 1076,  542,  542,  542,
2187       542,  542,  542,  550,  550,  550,  550,  550,  550,  550,
2188       550,  550,  985,  989, 1076,  550, 1181, 1079, 1082, 1083,
2189      1180,  550,  550,  550,  550,  550,  550,  551,  551,  551,
2190       551,  551,  551,  551,  551, 1079, 1082, 1083,  551, 1079,
2191      1082, 1084, 1083, 1087,  551,  551,  551,  551,  551,  551,
2192       560,  560,  560,  560,  560,  560,  560,  560,  560, 1084,
2193 
2194      1177, 1087,  560, 1217, 1220, 1088, 1087, 1173,  560,  560,
2195       560,  560,  560,  560,  562,  562,  562,  562,  562,  562,
2196       562,  562,  562, 1088, 1172, 1088,  562, 1169,  562, 1217,
2197      1220, 1164,  562,  562,  562,  562,  562,  562,  744,  744,
2198       744,  744,  744,  744,  744,  750,  750,  750,  750,  750,
2199       750,  750,  872,  778,  562,  613,  613,  613,  613,  613,
2200       613,  613, 1245, 1163, 1259, 1273,  613, 1319, 1092, 1160,
2201       872,  778,  613,  613,  613,  613,  613,  613,  615,  615,
2202       615,  615,  615,  615,  615,  778, 1092,  872, 1245,  615,
2203      1259, 1273, 1092, 1319, 1152,  615,  615,  615,  615,  615,
2204 
2205       615,  616,  616,  616,  616,  616,  616,  616,  616,  618,
2206       618,  618,  618,  618,  618,  618, 1291, 1151, 1148, 1382,
2207       618, 1432,  882, 1090, 1291, 1093,  618,  618,  618,  618,
2208       618,  618,  620,  620,  620,  620,  620,  620,  620,  620,
2209       882, 1090, 1090, 1093,  620, 1382, 1093, 1432, 1441,  882,
2210       620,  620,  620,  620,  620,  620,  621,  621,  621,  621,
2211       621,  621,  621,  621,  622,  622,  622,  622,  622,  622,
2212       622, 1347, 1354, 1140, 1441,  622, 1139, 1136, 1129, 1347,
2213      1354,  622,  622,  622,  622,  622,  622,  623,  623,  623,
2214       623,  623,  623,  623,  623,  626,  626,  626,  626,  626,
2215 
2216       626,  626,  626,  626,  770,  884,  827,  626,  782,  626,
2217       786, 1182, 1186,  626,  626,  626,  626,  626,  626, 1362,
2218       827, 1128,  770,  884, 1125, 1120,  782, 1362,  786, 1182,
2219      1186,  775,  884,  792,  770,  626,  629,  629,  629,  629,
2220       629,  629,  629,  629,  629,  782,  827,  786,  629,  775,
2221       629,  792, 1370, 1182,  629,  629,  629,  629,  629,  629,
2222      1370,  775, 1119, 1116,  792,  799,  799,  799,  799,  799,
2223       799,  799,  793,  828,  831, 1450,  629,  635,  635,  635,
2224       635,  635,  635,  635,  635,  635, 1183,  828,  831,  635,
2225       793,  635,  832,  842,  843,  635,  635,  635,  635,  635,
2226 
2227       635, 1450,  793, 1378, 1183, 1459,  832,  842,  843, 1184,
2228      1115, 1378, 1112,  828,  831,  846, 1111,  635,  640,  640,
2229       640,  640,  640,  640,  640,  640,  640, 1184, 1183,  846,
2230       640, 1459,  832,  842,  843, 1189,  640,  640,  640,  640,
2231       640,  640,  642,  642,  642,  642,  642,  642,  642,  642,
2232       642, 1184, 1108, 1189,  642,  846,  642, 1105, 1189,  847,
2233       642,  642,  642,  642,  642,  642,  840,  840,  840,  840,
2234       840,  840,  840,  847,  855,  855,  855,  855,  855,  855,
2235       855, 1102,  642,  652,  652,  652,  652,  652,  652,  652,
2236       652,  652, 1423, 1098, 1526,  652, 1553, 1557, 1185,  847,
2237 
2238      1423,  652,  652,  652,  652,  652,  652,  654,  654,  654,
2239       654,  654,  654,  654,  654,  654, 1185, 1071, 1185,  654,
2240      1526,  654, 1553, 1557, 1067,  654,  654,  654,  654,  654,
2241       654,  857,  857,  857,  857,  857,  857,  857,  861,  861,
2242       861,  861,  861,  861,  861,  878,  870,  654,  665,  665,
2243       665,  665,  665,  665,  665,  665,  665, 1472, 1060, 1059,
2244       665, 1056, 1561,  878,  870, 1472,  665,  665,  665,  665,
2245       665,  665,  666,  666,  666,  666,  666,  666,  666,  870,
2246       878, 1052, 1051,  666,  887,  875,  877,  885, 1561,  666,
2247       666,  666,  666,  666,  666,  669,  669,  669,  669,  669,
2248 
2249       669,  669,  887,  875,  877,  885,  669,  966, 1078,  951,
2250       963,  881,  669,  669,  669,  669,  669,  669,  875,  877,
2251      1565,  887,  885,  951, 1532,  966, 1078,  952,  963,  881,
2252       669,  704, 1532,  704,  704,  704,  704,  704,  704,  704,
2253       881,  952,  966,  963,  704, 1078, 1565,  964, 1048,  951,
2254       704,  704,  704,  704,  704,  704,  910,  910,  910,  910,
2255       910,  910,  910,  955,  956,  964,  968,  952,  704,  705,
2256       705,  705,  705,  705,  705,  705,  705,  955,  956, 1044,
2257       964,  705, 1190, 1298,  968,  968, 1043,  705,  705,  705,
2258       705,  705,  705,  915,  915,  915,  915,  915,  915,  915,
2259 
2260      1190, 1298,  968,  955,  956,  705,  706,  706,  706,  706,
2261       706,  706,  706,  919,  919,  919,  919,  919,  919,  919,
2262       924,  924,  924,  924,  924,  924,  924,  926,  926,  926,
2263       926,  926,  926,  926,  930,  930,  930,  930,  930,  930,
2264       930,  706,  707,  707,  707,  707,  707,  707,  707, 1040,
2265      1036, 1035, 1032,  707, 1029, 1569, 1589, 1598, 1028,  707,
2266       707,  707,  707,  707,  707,  709,  709,  709,  709,  709,
2267       709,  709,  709,  711,  711,  711,  711,  711,  711,  711,
2268       711, 1569, 1589, 1598, 1025,  711, 1021, 1020, 1017, 1016,
2269      1013,  711,  711,  711,  711,  711,  711,  712,  712,  712,
2270 
2271       712,  712,  712,  712,  712,  714,  714,  714,  714,  714,
2272       714,  714, 1009, 1005, 1004, 1003,  714, 1000,  997, 1201,
2273      1202, 1187,  714,  714,  714,  714,  714,  714,  715,  715,
2274       715,  715,  715,  715,  715,  715,  715, 1201, 1202, 1187,
2275       715, 1201,  994, 1202, 1299, 1010,  715,  715,  715,  715,
2276       715,  715,  716,  716,  716,  716,  716,  716,  716, 1010,
2277      1187,  991, 1299,  716,  990,  962, 1300,  961, 1301,  716,
2278       716,  716,  716,  716,  716,  718,  718,  718,  718,  718,
2279       718,  718,  718,  718, 1300, 1010, 1301,  718,  958, 1192,
2280      1302, 1310, 1011,  718,  718,  718,  718,  718,  718,  719,
2281 
2282       719,  719,  719,  719,  719,  719, 1011, 1192, 1302, 1310,
2283       719,  954, 1307, 1302, 1310, 1192,  719,  719,  719,  719,
2284       719,  719,  723,  723,  723,  723,  723,  723,  723,  723,
2285      1307,  953, 1011,  723,  950,  945,  941, 1314, 1315,  723,
2286       723,  723,  723,  723,  723,  725,  725,  725,  725,  725,
2287       725,  725,  725,  725, 1307, 1314, 1315,  725,  933,  929,
2288      1396, 1397,  922,  725,  725,  725,  725,  725,  725,  726,
2289       726,  726,  726,  726,  726,  726,  726, 1315, 1396, 1397,
2290       726, 1396, 1397, 1398, 1399, 1401,  726,  726,  726,  726,
2291       726,  726,  734,  734,  734,  734,  734,  734,  734,  734,
2292 
2293       734, 1398, 1399, 1401,  734,  918, 1399,  913, 1402,  908,
2294       734,  734,  734,  734,  734,  734,  735,  735,  735,  735,
2295       735,  735,  735,  735,  907, 1398, 1402,  735,  906,  903,
2296      1402, 1403, 1404,  735,  735,  735,  735,  735,  735,  745,
2297       745,  745,  745,  745,  745,  745,  745,  745,  900, 1403,
2298      1404,  745,  896, 1403, 1406, 1409, 1404,  745,  745,  745,
2299       745,  745,  745,  746,  746,  746,  746,  746,  746,  746,
2300       746,  864, 1406, 1409,  746,  860, 1406, 1477, 1409, 1478,
2301       746,  746,  746,  746,  746,  746,  758,  758,  758,  758,
2302       758,  758,  758,  758,  758, 1477,  853, 1478,  758,  852,
2303 
2304       849, 1488,  845, 1477,  758,  758,  758,  758,  758,  758,
2305       760,  760,  760,  760,  760,  760,  760,  760,  760, 1488,
2306      1488,  844,  760,  841,  760,  838,  837,  834,  760,  760,
2307       760,  760,  760,  760,  936,  936,  936,  936,  936,  936,
2308       936,  938,  938,  938,  938,  938,  938,  938, 1018,  969,
2309       760,  794, 1019,  794,  794,  794,  794,  794,  794,  794,
2310       830,  829, 1018,  826,  794,  825, 1019,  969, 1081,  794,
2311       794,  794,  794,  794,  794,  794,  796,  796,  796,  796,
2312       796,  796,  796,  969,  822,  818, 1081,  796, 1018, 1534,
2313      1491, 1536, 1019,  796,  796,  796,  796,  796,  796,  798,
2314 
2315       798,  798,  798,  798,  798,  798, 1081, 1534, 1491, 1536,
2316       798, 1491, 1303, 1537, 1544, 1548,  798,  798,  798,  798,
2317       798,  798,  800,  800,  800,  800,  800,  800,  800,  800,
2318      1303, 1537, 1544, 1548,  800,  815, 1537, 1544,  814, 1303,
2319       800,  800,  800,  800,  800,  800,  801,  801,  801,  801,
2320       801,  801,  801,  801,  804,  804,  804,  804,  804,  804,
2321       804,  804,  804,  813,  812,  809,  804,  806,  804,  803,
2322       802,  763,  804,  804,  804,  804,  804,  804,  942,  942,
2323       942,  942,  942,  942,  942,  949,  949,  949,  949,  949,
2324       949,  949,  965,  971,  804,  807,  807,  807,  807,  807,
2325 
2326       807,  807,  807,  807, 1073, 1074, 1022,  807,  762,  807,
2327       965,  971, 1479,  807,  807,  807,  807,  807,  807,  759,
2328      1022,  755, 1073, 1074,  754,  965,  965,  982,  971,  980,
2329      1479, 1077,  751, 1073, 1074,  807,  810,  810,  810,  810,
2330       810,  810,  810,  810,  810,  982, 1022,  980,  810, 1077,
2331       810, 1479, 1023,  747,  810,  810,  810,  810,  810,  810,
2332       980, 1033,  982, 1077,  743,  736, 1023, 1031, 1031, 1031,
2333      1031, 1031, 1031, 1031, 1034, 1033,  810,  816,  816,  816,
2334       816,  816,  816,  816,  816,  816, 1576, 1075, 1034,  816,
2335       732,  816, 1023, 1037, 1038,  816,  816,  816,  816,  816,
2336 
2337       816, 1033,  727,  722, 1576, 1075,  721, 1037, 1038,  720,
2338      1541,  717,  713, 1049, 1034, 1050, 1075,  816,  821,  821,
2339       821,  821,  821,  821,  821,  821,  821, 1049, 1541, 1050,
2340       821,  703,  702, 1037, 1038,  698,  821,  821,  821,  821,
2341       821,  821,  823,  823,  823,  823,  823,  823,  823,  823,
2342       823, 1541,  697, 1049,  823, 1050,  823, 1085, 1196, 1053,
2343       823,  823,  823,  823,  823,  823, 1047, 1047, 1047, 1047,
2344      1047, 1047, 1047, 1053,  695, 1085, 1196,  694, 1054, 1410,
2345      1197,  677,  823,  833,  833,  833,  833,  833,  833,  833,
2346       833,  833, 1054, 1196, 1085,  833,  667, 1410, 1197, 1053,
2347 
2348       663,  833,  833,  833,  833,  833,  833,  835,  835,  835,
2349       835,  835,  835,  835,  835,  835, 1197, 1410, 1054,  835,
2350       657,  835,  656,  653,  649,  835,  835,  835,  835,  835,
2351       835, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1064, 1064,
2352      1064, 1064, 1064, 1064, 1064, 1170, 1094,  835,  848,  848,
2353       848,  848,  848,  848,  848,  848,  848,  648,  645, 1170,
2354       848,  644,  641,  637, 1094, 1094,  848,  848,  848,  848,
2355       848,  848,  850,  850,  850,  850,  850,  850,  850,  850,
2356       850, 1094, 1094,  634,  850, 1170,  850, 1587, 1486, 1086,
2357       850,  850,  850,  850,  850,  850, 1068, 1068, 1068, 1068,
2358 
2359      1068, 1068, 1068,  633,  632, 1587, 1486, 1086, 1200, 1171,
2360      1174,  631,  850,  862,  862,  862,  862,  862,  862,  862,
2361       862,  862, 1086, 1171, 1174,  862, 1200, 1486, 1612, 1080,
2362      1175,  862,  862,  862,  862,  862,  862,  863,  863,  863,
2363       863,  863,  863,  863, 1175, 1200, 1612, 1080,  863, 1171,
2364      1174, 1578,  628, 1579,  863,  863,  863,  863,  863,  863,
2365       889, 1080,  889,  889,  889,  889,  889,  889,  889, 1578,
2366      1175, 1579, 1578,  889, 1579, 1620, 1580, 1628,  889,  889,
2367       889,  889,  889,  889,  889,  890,  890,  890,  890,  890,
2368       890,  890,  625, 1620, 1580, 1628,  890, 1580, 1411, 1089,
2369 
2370      1585, 1091,  890,  890,  890,  890,  890,  890,  891,  891,
2371       891,  891,  891,  891,  891,  891, 1411, 1089, 1585, 1091,
2372       891, 1585,  891,  624,  617, 1411,  891,  891,  891,  891,
2373       891,  891, 1089, 1091, 1117, 1117, 1117, 1117, 1117, 1117,
2374      1117, 1122, 1122, 1122, 1122, 1122, 1122, 1122,  891,  893,
2375       893,  893,  893,  893,  893,  893,  614,  612,  608,  602,
2376       893,  601, 1476, 1605, 1607, 1608,  893,  893,  893,  893,
2377       893,  893,  894,  894,  894,  894,  894,  894,  894,  894,
2378      1476, 1605, 1607, 1608,  894, 1605,  600, 1607, 1608, 1476,
2379       894,  894,  894,  894,  894,  894,  895,  895,  895,  895,
2380 
2381       895,  895,  895,  895,  897,  897,  897,  897,  897,  897,
2382       897,  599,  595,  594,  592,  897,  591,  590, 1633, 1634,
2383      1622,  897,  897,  897,  897,  897,  897,  898,  898,  898,
2384       898,  898,  898,  898,  898,  898, 1633, 1634, 1622,  898,
2385       589,  585, 1634, 1635, 1229,  898,  898,  898,  898,  898,
2386       898,  899,  899,  899,  899,  899,  899,  899, 1229, 1622,
2387       584, 1635,  899,  583,  582, 1636, 1635, 1623,  899,  899,
2388       899,  899,  899,  899,  901,  901,  901,  901,  901,  901,
2389       901,  901,  901, 1636, 1229, 1623,  901,  581, 1636, 1638,
2390      1640, 1230,  901,  901,  901,  901,  901,  901,  902,  902,
2391 
2392       902,  902,  902,  902,  902, 1230, 1623, 1638, 1640,  902,
2393       580,  579, 1638,  578, 1624,  902,  902,  902,  902,  902,
2394       902,  904,  904,  904,  904,  904,  904,  904,  904,  904,
2395       577, 1230, 1624,  904,  576,  575, 1645, 1647, 1235,  904,
2396       904,  904,  904,  904,  904,  905,  905,  905,  905,  905,
2397       905,  905, 1235, 1624, 1645, 1647,  905, 1645, 1649, 1647,
2398       574,  573,  905,  905,  905,  905,  905,  905,  909,  909,
2399       909,  909,  909,  909,  909,  909, 1649,  572, 1235,  909,
2400       569, 1649, 1651, 1652, 1657,  909,  909,  909,  909,  909,
2401       909,  911,  911,  911,  911,  911,  911,  911,  911,  911,
2402 
2403      1651, 1652, 1657,  911,  568, 1651, 1653,  567,  565,  911,
2404       911,  911,  911,  911,  911,  912,  912,  912,  912,  912,
2405       912,  912,  912, 1657, 1653, 1652,  912,  564,  561, 1660,
2406       556, 1664,  912,  912,  912,  912,  912,  912,  920,  920,
2407       920,  920,  920,  920,  920,  920,  920, 1660, 1653, 1664,
2408       920,  552, 1660, 1668, 1669,  548,  920,  920,  920,  920,
2409       920,  920,  921,  921,  921,  921,  921,  921,  921,  921,
2410       543, 1668, 1669,  921,  538,  537, 1668, 1669, 1674,  921,
2411       921,  921,  921,  921,  921,  931,  931,  931,  931,  931,
2412       931,  931,  931,  931,  536,  532, 1674,  931,  526, 1675,
2413 
2414      1677, 1674,  525,  931,  931,  931,  931,  931,  931,  932,
2415       932,  932,  932,  932,  932,  932,  932, 1675, 1677,  520,
2416       932, 1675,  519, 1679, 1682, 1683,  932,  932,  932,  932,
2417       932,  932,  943,  943,  943,  943,  943,  943,  943,  943,
2418       943, 1679, 1682, 1683,  943, 1682, 1679, 1684, 1689,  518,
2419       943,  943,  943,  943,  943,  943,  944,  944,  944,  944,
2420       944,  944,  944,  944,  517, 1684, 1689,  944,  516,  515,
2421      1694, 1689, 1698,  944,  944,  944,  944,  944,  944,  957,
2422       957,  957,  957,  957,  957,  957,  957,  957, 1694, 1684,
2423      1698,  957,  514,  513, 1700, 1698, 1703,  957,  957,  957,
2424 
2425       957,  957,  957,  959,  959,  959,  959,  959,  959,  959,
2426       959,  959, 1700,  512, 1703,  959,  511,  959,  510,  509,
2427       508,  959,  959,  959,  959,  959,  959, 1126, 1126, 1126,
2428      1126, 1126, 1126, 1126, 1131, 1131, 1131, 1131, 1131, 1131,
2429      1131, 1710, 1712,  959,  986,  986,  986,  986,  986,  986,
2430       986,  986,  986,  506,  503,  502,  501,  986,  500, 1710,
2431      1712,  499,  986,  986,  986,  986,  986,  986,  986,  987,
2432       987,  987,  987,  987,  987,  987,  987,  988,  988,  988,
2433       988,  988,  988,  988,  988,  988, 1133, 1133, 1133, 1133,
2434      1133, 1133, 1133, 1701, 1714,  988,  992,  992,  992,  992,
2435 
2436       992,  992,  992,  992,  992,  498,  497,  495,  992,  494,
2437       992, 1701, 1714,  493,  992,  992,  992,  992,  992,  992,
2438      1137, 1137, 1137, 1137, 1137, 1137, 1137, 1143, 1143, 1143,
2439      1143, 1143, 1143, 1143, 1706, 1701,  992,  995,  995,  995,
2440       995,  995,  995,  995,  995,  995,  492,  491,  489,  995,
2441       487,  995, 1706,  485,  484,  995,  995,  995,  995,  995,
2442       995, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1149, 1149,
2443      1149, 1149, 1149, 1149, 1149, 1719, 1706,  995,  998,  998,
2444       998,  998,  998,  998,  998,  998,  998,  483,  482,  481,
2445       998,  479,  998, 1719,  478,  476,  998,  998,  998,  998,
2446 
2447       998,  998, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1157,
2448      1157, 1157, 1157, 1157, 1157, 1157, 1721, 1724,  998, 1001,
2449      1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,  475,  474,
2450       471, 1001,  467, 1001, 1721, 1724,  463, 1001, 1001, 1001,
2451      1001, 1001, 1001, 1161, 1161, 1161, 1161, 1161, 1161, 1161,
2452      1168, 1168, 1168, 1168, 1168, 1168, 1168,  462,  461, 1001,
2453      1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006,  458,  454,
2454       453, 1006,  450,  449,  448, 1191, 1194, 1006, 1006, 1006,
2455      1006, 1006, 1006, 1007, 1007, 1007, 1007, 1007, 1007, 1007,
2456      1007, 1007, 1188, 1191, 1194, 1007, 1543, 1007, 1198, 1236,
2457 
2458      1308, 1007, 1007, 1007, 1007, 1007, 1007, 1194, 1191,  447,
2459      1188,  444,  443, 1236, 1543,  434, 1198, 1709, 1308,  431,
2460       429, 1188,  428, 1007, 1012, 1012, 1012, 1012, 1012, 1012,
2461      1012, 1012, 1012, 1198, 1543, 1709, 1012, 1308, 1709, 1236,
2462      1195, 1199, 1012, 1012, 1012, 1012, 1012, 1012, 1014, 1014,
2463      1014, 1014, 1014, 1014, 1014, 1014, 1014, 1193, 1195, 1199,
2464      1014,  427, 1014,  426,  425, 1309, 1014, 1014, 1014, 1014,
2465      1014, 1014, 1195, 1199,  424, 1193, 1223, 1223, 1223, 1223,
2466      1223, 1223, 1223, 1309, 1239, 1311, 1193,  423, 1014, 1024,
2467      1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1239,  422,
2468 
2469      1309, 1024,  421, 1311,  420, 1203,  419, 1024, 1024, 1024,
2470      1024, 1024, 1024, 1026, 1026, 1026, 1026, 1026, 1026, 1026,
2471      1026, 1026, 1311, 1203, 1239, 1026,  418, 1026, 1240,  417,
2472       416, 1026, 1026, 1026, 1026, 1026, 1026, 1203,  414,  412,
2473       411,  409, 1240, 1246, 1246, 1246, 1246, 1246, 1246, 1246,
2474       408, 1248, 1313, 1026, 1039, 1039, 1039, 1039, 1039, 1039,
2475      1039, 1039, 1039,  405,  404, 1248, 1039,  402, 1240,  400,
2476      1313,  399, 1039, 1039, 1039, 1039, 1039, 1039, 1041, 1041,
2477      1041, 1041, 1041, 1041, 1041, 1041, 1041, 1313, 1249, 1252,
2478      1041, 1248, 1041, 1253,  398,  393, 1041, 1041, 1041, 1041,
2479 
2480      1041, 1041, 1249, 1252,  392,  391,  389, 1253, 1260, 1260,
2481      1260, 1260, 1260, 1260, 1260,  388, 1262, 1395, 1041, 1055,
2482      1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1249, 1252,
2483      1262, 1055,  387, 1253,  386, 1395,  384, 1055, 1055, 1055,
2484      1055, 1055, 1055, 1057, 1057, 1057, 1057, 1057, 1057, 1057,
2485      1057, 1057, 1395, 1263, 1266, 1057, 1262, 1057, 1267,  379,
2486       378, 1057, 1057, 1057, 1057, 1057, 1057, 1263, 1266,  377,
2487       374,  370, 1267, 1274, 1274, 1274, 1274, 1274, 1274, 1274,
2488       368, 1276, 1489, 1057, 1069, 1069, 1069, 1069, 1069, 1069,
2489      1069, 1069, 1069, 1263, 1266, 1276, 1069,  363, 1267,  362,
2490 
2491      1489, 1277, 1069, 1069, 1069, 1069, 1069, 1069, 1070, 1070,
2492      1070, 1070, 1070, 1070, 1070, 1277,  359, 1489,  354, 1070,
2493       353, 1276, 1707,  345, 1713, 1070, 1070, 1070, 1070, 1070,
2494      1070, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095,
2495      1707, 1277, 1713,  343, 1095, 1707,  342, 1713,  337, 1095,
2496      1095, 1095, 1095, 1095, 1095, 1095, 1096, 1096, 1096, 1096,
2497      1096, 1096, 1096, 1096, 1097, 1097, 1097, 1097, 1097, 1097,
2498      1097, 1097, 1097,  335, 1725, 1726, 1280, 1281, 1727, 1306,
2499       333, 1337, 1097, 1099, 1099, 1099, 1099, 1099, 1099, 1099,
2500      1280, 1281, 1725, 1726, 1099, 1337, 1727, 1306, 1306,  332,
2501 
2502      1099, 1099, 1099, 1099, 1099, 1099, 1100, 1100, 1100, 1100,
2503      1100, 1100, 1100, 1100, 1100, 1306, 1280, 1281, 1100,  331,
2504       330, 1337,  329, 1338, 1100, 1100, 1100, 1100, 1100, 1100,
2505      1101, 1101, 1101, 1101, 1101, 1101, 1101, 1338,  328,  327,
2506       325, 1101,  324,  323,  318,  315, 1687, 1101, 1101, 1101,
2507      1101, 1101, 1101, 1103, 1103, 1103, 1103, 1103, 1103, 1103,
2508      1103, 1103,  314, 1338, 1687, 1103,  313,  310,  303,  302,
2509      1385, 1103, 1103, 1103, 1103, 1103, 1103, 1104, 1104, 1104,
2510      1104, 1104, 1104, 1104, 1385, 1687,  300,  299, 1104,  298,
2511       296,  294,  293, 1718, 1104, 1104, 1104, 1104, 1104, 1104,
2512 
2513      1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,  292,
2514      1385, 1718, 1106,  290,  286,  285,  283, 1386, 1106, 1106,
2515      1106, 1106, 1106, 1106, 1107, 1107, 1107, 1107, 1107, 1107,
2516      1107, 1386, 1718,  280,  276, 1107,  275,  272,  271,  269,
2517       264, 1107, 1107, 1107, 1107, 1107, 1107, 1109, 1109, 1109,
2518      1109, 1109, 1109, 1109, 1109, 1109,  261, 1386,  259, 1109,
2519       258,  256,  253,  249, 1389, 1109, 1109, 1109, 1109, 1109,
2520      1109, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1389,  245,
2521       243,  241, 1110,  240,  238,  237,  236,  235, 1110, 1110,
2522      1110, 1110, 1110, 1110, 1113, 1113, 1113, 1113, 1113, 1113,
2523 
2524      1113, 1113, 1113,  234, 1389,  233, 1113,  232, 1113,  230,
2525       228,  226, 1113, 1113, 1113, 1113, 1113, 1113, 1287, 1287,
2526      1287, 1287, 1287, 1287, 1287, 1289, 1289, 1289, 1289, 1289,
2527      1289, 1289, 1312,  225, 1113, 1118, 1118, 1118, 1118, 1118,
2528      1118, 1118, 1118, 1118,  223,  221,  220, 1118,  218,  215,
2529      1312, 1312,  214, 1118, 1118, 1118, 1118, 1118, 1118, 1127,
2530      1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1312,  213,
2531       211, 1127,  209,  208,  205,  204,  202, 1127, 1127, 1127,
2532      1127, 1127, 1127, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
2533      1138, 1138,  201,  200,  199, 1138,  198,  197,  196,  195,
2534 
2535       194, 1138, 1138, 1138, 1138, 1138, 1138, 1150, 1150, 1150,
2536      1150, 1150, 1150, 1150, 1150, 1150,  193,  192,  191, 1150,
2537       190,  189,  188,  187,  186, 1150, 1150, 1150, 1150, 1150,
2538      1150, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162,
2539       185,  183,  182, 1162,  179,  178,  177,  176,  175, 1162,
2540      1162, 1162, 1162, 1162, 1162, 1176, 1176, 1176, 1176, 1176,
2541      1176, 1176, 1176, 1176,  174,  173,  172, 1176,  170,  167,
2542       166,  165,  164, 1176, 1176, 1176, 1176, 1176, 1176, 1178,
2543      1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,  161,  159,
2544       150, 1178,  149, 1178, 1475, 1535, 1390, 1178, 1178, 1178,
2545 
2546      1178, 1178, 1178, 1293, 1293, 1293, 1293, 1293, 1293, 1293,
2547      1390, 1650, 1475, 1535,  148, 1546, 1304, 1316,  147, 1178,
2548      1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1650,
2549       146, 1475, 1535, 1546, 1304, 1316, 1390, 1427, 1204, 1206,
2550      1206, 1206, 1206, 1206, 1206, 1206, 1206, 1304, 1316, 1650,
2551      1206, 1427, 1546,  145,  144, 1400, 1206, 1206, 1206, 1206,
2552      1206, 1206, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207,
2553      1207, 1305, 1317, 1400, 1207,  142, 1207, 1427,  140,  139,
2554      1207, 1207, 1207, 1207, 1207, 1207,  137, 1400,  135, 1305,
2555      1317, 1345, 1345, 1345, 1345, 1345, 1345, 1345,  133,  132,
2556 
2557      1305, 1317, 1207, 1210, 1210, 1210, 1210, 1210, 1210, 1210,
2558      1210, 1210,  131,  130,  128, 1210,  127, 1210,  126,  125,
2559       124, 1210, 1210, 1210, 1210, 1210, 1210, 1350, 1350, 1350,
2560      1350, 1350, 1350, 1350, 1352, 1352, 1352, 1352, 1352, 1352,
2561      1352,  123,  121, 1210, 1213, 1213, 1213, 1213, 1213, 1213,
2562      1213, 1213, 1213,  119,  118,  117, 1213,  116, 1213,  115,
2563       114,  113, 1213, 1213, 1213, 1213, 1213, 1213, 1358, 1358,
2564      1358, 1358, 1358, 1358, 1358, 1360, 1360, 1360, 1360, 1360,
2565      1360, 1360,  112,  111, 1213, 1216, 1216, 1216, 1216, 1216,
2566      1216, 1216, 1216, 1216,  109,  108,  101, 1216,  100, 1216,
2567 
2568        99,   97,   96, 1216, 1216, 1216, 1216, 1216, 1216, 1366,
2569      1366, 1366, 1366, 1366, 1366, 1366, 1368, 1368, 1368, 1368,
2570      1368, 1368, 1368,   93,   92, 1216, 1219, 1219, 1219, 1219,
2571      1219, 1219, 1219, 1219, 1219,   91,   90,   89, 1219,   88,
2572      1219,   87,   86,   85, 1219, 1219, 1219, 1219, 1219, 1219,
2573      1374, 1374, 1374, 1374, 1374, 1374, 1374, 1376, 1376, 1376,
2574      1376, 1376, 1376, 1376, 1428, 1539, 1219, 1224, 1224, 1224,
2575      1224, 1224, 1224, 1224, 1224, 1224,   84,   82, 1428, 1224,
2576        81,   80,   79, 1539,   78, 1224, 1224, 1224, 1224, 1224,
2577      1224, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231,
2578 
2579        77, 1539,   76, 1231, 1428,   75,   74,   73,   72, 1231,
2580      1231, 1231, 1231, 1231, 1231, 1241, 1241, 1241, 1241, 1241,
2581      1241, 1241, 1241, 1241,   71,   70,   69, 1241,   67,   66,
2582        65,   51,   43, 1241, 1241, 1241, 1241, 1241, 1241, 1254,
2583      1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254,   42,   40,
2584        18, 1254,   11,    8,    3,    0,    0, 1254, 1254, 1254,
2585      1254, 1254, 1254, 1268, 1268, 1268, 1268, 1268, 1268, 1268,
2586      1268, 1268,    0,    0,    0, 1268,    0,    0,    0,    0,
2587         0, 1268, 1268, 1268, 1268, 1268, 1268, 1282, 1282, 1282,
2588      1282, 1282, 1282, 1282, 1282, 1282,    0,    0,    0, 1282,
2589 
2590         0,    0,    0,    0,    0, 1282, 1282, 1282, 1282, 1282,
2591      1282, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294,
2592         0,    0,    0, 1294,    0,    0,    0,    0,    0, 1294,
2593      1294, 1294, 1294, 1294, 1294, 1318, 1318, 1318, 1318, 1318,
2594      1318, 1318, 1318, 1318,    0,    0,    0, 1318,    0, 1318,
2595         0,    0,    0, 1318, 1318, 1318, 1318, 1318, 1318, 1383,
2596      1383, 1383, 1383, 1383, 1383, 1383, 1421, 1421, 1421, 1421,
2597      1421, 1421, 1421, 1435, 1540, 1318, 1322, 1322, 1322, 1322,
2598      1322, 1322, 1322, 1322, 1322,    0,    0, 1435, 1322,    0,
2599         0,    0, 1540,    0, 1322, 1322, 1322, 1322, 1322, 1322,
2600 
2601      1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325,    0,
2602      1540,    0, 1325, 1435,    0,    0,    0,    0, 1325, 1325,
2603      1325, 1325, 1325, 1325, 1328, 1328, 1328, 1328, 1328, 1328,
2604      1328, 1328, 1328,    0,    0,    0, 1328,    0,    0,    0,
2605         0,    0, 1328, 1328, 1328, 1328, 1328, 1328, 1331, 1331,
2606      1331, 1331, 1331, 1331, 1331, 1331, 1331,    0,    0,    0,
2607      1331,    0,    0,    0,    0,    0, 1331, 1331, 1331, 1331,
2608      1331, 1331, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334,
2609      1334,    0,    0,    0, 1334,    0,    0,    0,    0,    0,
2610      1334, 1334, 1334, 1334, 1334, 1334, 1339, 1339, 1339, 1339,
2611 
2612      1339, 1339, 1339, 1339, 1339,    0,    0,    0, 1339,    0,
2613         0,    0, 1407,    0, 1339, 1339, 1339, 1339, 1339, 1339,
2614      1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1405,
2615      1407, 1408, 1391,    0, 1436,    0,    0,    0, 1391, 1391,
2616      1391, 1391, 1391, 1391, 1407, 1490,    0, 1405, 1436, 1408,
2617      1433, 1433, 1433, 1433, 1433, 1433, 1433,    0, 1405,    0,
2618         0, 1408, 1444, 1490, 1405, 1412, 1412, 1412, 1412, 1412,
2619      1412, 1412, 1412, 1412, 1436, 1490, 1444, 1412,    0,    0,
2620         0,    0, 1445, 1412, 1412, 1412, 1412, 1412, 1412, 1442,
2621      1442, 1442, 1442, 1442, 1442, 1442, 1445, 1453, 1454,    0,
2622 
2623         0,    0, 1444, 1451, 1451, 1451, 1451, 1451, 1451, 1451,
2624      1462, 1453, 1454, 1460, 1460, 1460, 1460, 1460, 1460, 1460,
2625      1463,    0, 1445,    0, 1462, 1468, 1468, 1468, 1468, 1468,
2626      1468, 1468,    0, 1480, 1463, 1485, 1481, 1453, 1454, 1470,
2627      1470, 1470, 1470, 1470, 1470, 1470, 1482, 1483, 1484,    0,
2628      1462, 1480, 1487, 1485, 1481, 1500,    0, 1501, 1542, 1547,
2629      1463, 1603, 1480, 1481, 1482, 1483, 1484, 1485,    0, 1500,
2630      1487, 1501,    0, 1482, 1483, 1484, 1542, 1547,    0, 1603,
2631         0, 1487, 1506, 1506, 1506, 1506, 1506, 1506, 1506,    0,
2632         0,    0,    0, 1603, 1542, 1500, 1547, 1501, 1510, 1510,
2633 
2634      1510, 1510, 1510, 1510, 1510, 1514, 1514, 1514, 1514, 1514,
2635      1514, 1514, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1522,
2636      1522, 1522, 1522, 1522, 1522, 1522, 1527, 1527, 1527, 1527,
2637      1527, 1527, 1527, 1529, 1530, 1538, 1545, 1549, 1551, 1551,
2638      1551, 1551, 1551, 1551, 1551,    0,    0, 1529, 1530,    0,
2639         0,    0,    0, 1538, 1545, 1549,    0,    0,    0,    0,
2640         0,    0, 1538, 1545, 1549, 1554, 1554, 1554, 1554, 1554,
2641      1554, 1554,    0, 1529, 1530, 1558, 1558, 1558, 1558, 1558,
2642      1558, 1558, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1566,
2643      1566, 1566, 1566, 1566, 1566, 1566, 1570, 1570, 1570, 1570,
2644 
2645      1570, 1570, 1570, 1573, 1573, 1573, 1573, 1573, 1573, 1573,
2646      1577, 1581,    0, 1582, 1583, 1586, 1588, 1584, 1590, 1590,
2647      1590, 1590, 1590, 1590, 1590, 1601, 1609,    0, 1577, 1581,
2648      1581, 1582, 1583, 1586, 1588, 1584,    0,    0,    0,    0,
2649         0,    0, 1586, 1601, 1609, 1577, 1602, 1581, 1604, 1606,
2650      1582, 1583, 1584, 1588, 1599, 1599, 1599, 1599, 1599, 1599,
2651      1599, 1610, 1601, 1609, 1602, 1611, 1604, 1606, 1621, 1625,
2652         0, 1626, 1627, 1602, 1629, 1630, 1637, 1639,    0, 1610,
2653      1604, 1606, 1641, 1611,    0,    0, 1621, 1625, 1610, 1626,
2654      1627, 1642, 1629, 1630, 1637, 1639, 1639, 1611, 1625,    0,
2655 
2656      1641, 1643, 1626, 1637, 1644, 1621, 1630, 1627,    0, 1642,
2657      1646, 1629, 1648, 1639, 1639, 1654, 1641, 1641,    0, 1643,
2658      1655,    0, 1644, 1665, 1656, 1658, 1642,    0, 1646,    0,
2659      1648, 1659, 1661, 1654,    0, 1662, 1643, 1663, 1655, 1644,
2660         0, 1665, 1656, 1658, 1648, 1646, 1656, 1655,    0, 1659,
2661      1661, 1666, 1654, 1662, 1658, 1663, 1663, 1667, 1656, 1656,
2662      1665, 1670, 1671, 1672, 1673,    0, 1659, 1676, 1661, 1666,
2663      1662, 1678, 1680, 1663,    0, 1667, 1681,    0, 1685, 1670,
2664      1671, 1672, 1673, 1666,    0, 1676, 1686,    0, 1670, 1678,
2665      1680, 1690, 1671,    0, 1681, 1667, 1685, 1673, 1672, 1676,
2666 
2667      1688,    0, 1678, 1691, 1686, 1680, 1692, 1693,    0, 1690,
2668      1685, 1681, 1696, 1695, 1697, 1699,    0,    0, 1688, 1686,
2669      1686, 1691, 1702,    0, 1692, 1693, 1690, 1704, 1708, 1688,
2670      1696, 1695, 1697, 1699, 1693, 1691, 1705, 1711, 1716,    0,
2671      1702, 1696, 1699, 1692, 1695, 1704, 1708, 1715, 1720, 1717,
2672      1722,    0, 1697,    0, 1705, 1711, 1716, 1702,    0,    0,
2673         0,    0,    0, 1708, 1704, 1715, 1720, 1717, 1722,    0,
2674         0,    0, 1705,    0, 1711, 1716, 1717, 1723,    0,    0,
2675      1723, 1723,    0, 1715,    0, 1720,    0, 1722,    0,    0,
2676         0,    0,    0,    0,    0, 1723, 1729,    0,    0,    0,
2677 
2678         0, 1729, 1729, 1729, 1730,    0, 1730, 1730, 1730, 1730,
2679      1730, 1730, 1730, 1731,    0, 1731, 1732, 1732, 1732, 1733,
2680      1733, 1733, 1734, 1734, 1734, 1735, 1735, 1735, 1736, 1736,
2681      1736, 1737, 1737, 1737, 1738, 1738, 1738, 1739, 1739, 1739,
2682      1740, 1740, 1740, 1741,    0, 1741, 1742, 1742, 1742, 1743,
2683      1743, 1743, 1744, 1744, 1744, 1745, 1745, 1745, 1746,    0,
2684      1746, 1747, 1747, 1747, 1748, 1748,    0,    0, 1748, 1749,
2685      1749, 1749, 1750, 1750, 1750, 1751, 1751, 1751, 1752, 1752,
2686      1752, 1753, 1753, 1753, 1754, 1754, 1754, 1755, 1755, 1755,
2687      1756, 1756, 1756, 1757, 1757, 1757, 1758, 1758,    0,    0,
2688 
2689      1758, 1759, 1759, 1759, 1760, 1760, 1760, 1761,    0, 1761,
2690      1762, 1762, 1762, 1763, 1763, 1763, 1764,    0, 1764, 1765,
2691      1765, 1765, 1766, 1766, 1766, 1767, 1767, 1767, 1768, 1768,
2692      1768, 1769, 1769, 1769, 1770,    0, 1770, 1771,    0, 1771,
2693      1772, 1772, 1772, 1773, 1773, 1773, 1774,    0, 1774, 1775,
2694      1775,    0,    0, 1775, 1776, 1776,    0,    0, 1776, 1777,
2695      1777, 1777, 1778, 1778, 1778, 1779, 1779,    0, 1779, 1780,
2696      1780, 1780, 1781, 1781, 1781, 1782, 1782, 1782, 1783, 1783,
2697      1783, 1784, 1784, 1784, 1785, 1785, 1785, 1786, 1786, 1786,
2698      1787, 1787,    0,    0, 1787, 1788, 1788, 1788, 1789, 1789,
2699 
2700      1789, 1790, 1790,    0, 1790, 1791, 1791,    0,    0, 1791,
2701      1792, 1792,    0, 1792, 1793, 1793, 1794, 1794,    0,    0,
2702      1794, 1795, 1795, 1795, 1796, 1796, 1796, 1797, 1797,    0,
2703      1797, 1798,    0, 1798, 1799,    0, 1799, 1800, 1800, 1800,
2704      1801, 1801, 1801, 1802,    0, 1802, 1803, 1803, 1803, 1804,
2705      1804, 1804, 1805, 1805, 1805, 1806, 1806, 1806, 1807, 1807,
2706      1807, 1808, 1808, 1808, 1809,    0, 1809, 1810,    0, 1810,
2707      1811, 1811, 1811, 1812, 1812, 1812, 1813,    0, 1813, 1814,
2708         0, 1814, 1815,    0, 1815, 1816, 1816, 1816, 1817, 1817,
2709      1817, 1818,    0, 1818, 1819,    0,    0, 1819, 1820, 1820,
2710 
2711         0, 1820, 1821, 1821,    0,    0, 1821, 1822, 1822,    0,
2712      1822, 1823, 1823, 1824, 1824,    0,    0, 1824, 1825, 1825,
2713      1825, 1826, 1826, 1826, 1827, 1827,    0, 1827, 1828, 1828,
2714      1828,    0, 1828, 1828, 1829, 1829, 1829, 1830, 1830, 1830,
2715      1831, 1831, 1831, 1832, 1832, 1832, 1833, 1833, 1833, 1834,
2716      1834, 1834, 1835, 1835, 1835, 1836, 1836, 1836, 1837, 1837,
2717         0,    0, 1837, 1838, 1838, 1838, 1839, 1839, 1839, 1840,
2718      1840,    0, 1840, 1841, 1841,    0,    0, 1841, 1842, 1842,
2719         0, 1842, 1843, 1843, 1844, 1844,    0,    0, 1844, 1845,
2720      1845, 1845, 1846, 1846, 1846, 1847, 1847,    0, 1847, 1848,
2721 
2722         0,    0, 1848, 1849, 1849,    0, 1849, 1850, 1850,    0,
2723         0, 1850, 1851, 1851,    0, 1851, 1852, 1852, 1853, 1853,
2724         0,    0, 1853, 1854, 1854, 1854, 1855, 1855, 1855, 1856,
2725      1856,    0, 1856, 1857,    0, 1857, 1858,    0, 1858, 1859,
2726         0, 1859, 1860, 1860, 1860, 1861, 1861, 1861, 1862,    0,
2727      1862, 1863, 1863, 1863,    0, 1863, 1863, 1864, 1864, 1864,
2728      1865, 1865, 1865, 1866, 1866, 1866, 1867, 1867, 1867, 1868,
2729      1868, 1868, 1869, 1869, 1869, 1870, 1870, 1870, 1871,    0,
2730      1871, 1872,    0, 1872, 1873, 1873, 1873, 1874, 1874, 1874,
2731      1875,    0, 1875, 1876,    0, 1876, 1877,    0, 1877, 1878,
2732 
2733      1878, 1878, 1879, 1879, 1879, 1880,    0, 1880, 1881,    0,
2734      1881, 1882,    0, 1882, 1883,    0, 1883, 1884, 1884, 1884,
2735      1885, 1885, 1885, 1886,    0, 1886, 1887,    0, 1887, 1888,
2736         0,    0, 1888, 1889, 1889,    0, 1889, 1890, 1890,    0,
2737         0, 1890, 1891, 1891,    0, 1891, 1892, 1892, 1893, 1893,
2738         0,    0, 1893, 1894, 1894, 1894, 1895, 1895, 1895, 1896,
2739      1896,    0, 1896, 1897, 1897, 1897,    0, 1897, 1897, 1898,
2740      1898, 1898, 1899, 1899, 1899, 1900, 1900, 1900, 1901, 1901,
2741      1901, 1902, 1902, 1902, 1903, 1903, 1903, 1904, 1904, 1904,
2742      1905, 1905, 1905, 1906, 1906,    0,    0, 1906, 1907, 1907,
2743 
2744      1907, 1908, 1908, 1908, 1909, 1909,    0, 1909, 1910, 1910,
2745         0,    0, 1910, 1911, 1911,    0, 1911, 1912, 1912, 1913,
2746      1913,    0,    0, 1913, 1914, 1914, 1914, 1915, 1915, 1915,
2747      1916, 1916,    0, 1916, 1917,    0,    0, 1917, 1918, 1918,
2748         0, 1918, 1919, 1919,    0,    0, 1919, 1920, 1920,    0,
2749      1920, 1921, 1921, 1922, 1922,    0,    0, 1922, 1923, 1923,
2750      1923, 1924, 1924, 1924, 1925, 1925,    0, 1925, 1926,    0,
2751      1926, 1927,    0,    0, 1927, 1928, 1928,    0, 1928, 1929,
2752      1929,    0,    0, 1929, 1930, 1930,    0, 1930, 1931, 1931,
2753      1932, 1932,    0,    0, 1932, 1933, 1933, 1933, 1934, 1934,
2754 
2755      1934, 1935, 1935,    0, 1935, 1936,    0, 1936, 1937,    0,
2756      1937, 1938,    0, 1938, 1939, 1939, 1939, 1940, 1940, 1940,
2757      1941,    0, 1941, 1942, 1942, 1942,    0, 1942, 1942, 1943,
2758      1943, 1943, 1944, 1944, 1944, 1945, 1945, 1945, 1946, 1946,
2759      1946, 1947, 1947, 1947, 1948, 1948, 1948, 1949, 1949, 1949,
2760      1950, 1950, 1950, 1951, 1951, 1951, 1952, 1952, 1952, 1953,
2761         0, 1953, 1954,    0, 1954, 1955, 1955, 1955, 1956, 1956,
2762      1956, 1957, 1957, 1957, 1958,    0, 1958, 1959,    0, 1959,
2763      1960,    0, 1960, 1961, 1961, 1961, 1962, 1962, 1962, 1963,
2764      1963, 1963, 1964,    0, 1964, 1965,    0, 1965, 1966,    0,
2765 
2766      1966, 1967,    0, 1967, 1968, 1968, 1968, 1969, 1969, 1969,
2767      1970, 1970, 1970, 1971,    0, 1971, 1972,    0, 1972, 1973,
2768         0, 1973, 1974,    0, 1974, 1975, 1975, 1975, 1976, 1976,
2769      1976, 1977, 1977, 1977, 1978,    0, 1978, 1979,    0, 1979,
2770      1980,    0,    0, 1980, 1981, 1981,    0, 1981, 1982, 1982,
2771         0,    0, 1982, 1983, 1983,    0, 1983, 1984, 1984, 1985,
2772      1985,    0,    0, 1985, 1986, 1986, 1986, 1987, 1987, 1987,
2773      1988, 1988,    0, 1988, 1989, 1989, 1989,    0, 1989, 1989,
2774      1990, 1990, 1990, 1991, 1991, 1991, 1992, 1992, 1992, 1993,
2775      1993, 1993, 1994, 1994, 1994, 1995, 1995, 1995, 1996, 1996,
2776 
2777      1996, 1997, 1997, 1997, 1998,    0, 1998, 1999, 1999, 1999,
2778      2000, 2000,    0,    0, 2000, 2001, 2001, 2001, 2002, 2002,
2779      2002, 2003, 2003,    0, 2003, 2004, 2004,    0,    0, 2004,
2780      2005, 2005,    0, 2005, 2006, 2006, 2007, 2007,    0,    0,
2781      2007, 2008, 2008, 2008, 2009, 2009, 2009, 2010, 2010,    0,
2782      2010, 2011,    0,    0, 2011, 2012, 2012,    0, 2012, 2013,
2783      2013,    0,    0, 2013, 2014, 2014,    0, 2014, 2015, 2015,
2784      2016, 2016,    0,    0, 2016, 2017, 2017, 2017, 2018, 2018,
2785      2018, 2019, 2019,    0, 2019, 2020,    0, 2020, 2021,    0,
2786         0, 2021, 2022, 2022,    0, 2022, 2023, 2023,    0,    0,
2787 
2788      2023, 2024, 2024,    0, 2024, 2025, 2025, 2026, 2026,    0,
2789         0, 2026, 2027, 2027, 2027, 2028, 2028, 2028, 2029, 2029,
2790         0, 2029, 2030,    0, 2030, 2031,    0,    0, 2031, 2032,
2791      2032,    0, 2032, 2033, 2033,    0,    0, 2033, 2034, 2034,
2792         0, 2034, 2035, 2035, 2036, 2036,    0,    0, 2036, 2037,
2793      2037, 2037, 2038, 2038, 2038, 2039, 2039,    0, 2039, 2040,
2794         0, 2040, 2041,    0, 2041, 2042,    0, 2042, 2043, 2043,
2795      2043, 2044,    0, 2044, 2045, 2045, 2045, 2046,    0, 2046,
2796      2047, 2047, 2047,    0, 2047, 2047, 2048,    0, 2048, 2049,
2797      2049, 2049, 2050,    0, 2050, 2051, 2051, 2051, 2052,    0,
2798 
2799      2052, 2053, 2053, 2053, 2054,    0, 2054, 2055, 2055, 2055,
2800      2056,    0, 2056, 2057, 2057, 2057, 2058,    0, 2058, 2059,
2801      2059, 2059, 2060, 2060,    0,    0, 2060, 2061, 2061, 2061,
2802      2062, 2062, 2062, 2063, 2063, 2063, 2064, 2064,    0, 2064,
2803      2065, 2065, 2065, 2066,    0, 2066, 2067, 2067, 2067, 2068,
2804      2068, 2068, 2069,    0, 2069, 2070,    0, 2070, 2071, 2071,
2805      2071, 2072, 2072, 2072, 2073,    0, 2073, 2074,    0, 2074,
2806      2075,    0, 2075, 2076, 2076, 2076, 2077, 2077, 2077, 2078,
2807         0, 2078, 2079,    0, 2079, 2080,    0, 2080, 2081, 2081,
2808      2081, 2082, 2082, 2082, 2083,    0, 2083, 2084,    0, 2084,
2809 
2810      2085,    0, 2085, 2086, 2086, 2086, 2087, 2087, 2087, 2088,
2811         0, 2088, 2089,    0,    0, 2089, 2090, 2090,    0, 2090,
2812      2091, 2091,    0,    0, 2091, 2092, 2092,    0, 2092, 2093,
2813      2093, 2094, 2094,    0,    0, 2094, 2095, 2095, 2095, 2096,
2814         0, 2096, 2097, 2097,    0, 2097, 2098, 2098, 2098,    0,
2815      2098, 2098, 2099, 2099, 2099, 2100, 2100, 2100, 2101,    0,
2816      2101, 2102,    0, 2102, 2103,    0, 2103, 2104,    0, 2104,
2817      2105,    0, 2105, 2106,    0, 2106, 2107,    0, 2107, 2108,
2818      2108, 2108, 2109, 2109, 2109, 2110,    0, 2110, 2111, 2111,
2819         0,    0, 2111, 2112, 2112,    0, 2112, 2113, 2113, 2114,
2820 
2821         0, 2114, 2115,    0,    0, 2115, 2116, 2116,    0, 2116,
2822      2117, 2117,    0,    0, 2117, 2118, 2118,    0, 2118, 2119,
2823      2119, 2120,    0, 2120, 2121,    0, 2121, 2122,    0,    0,
2824      2122, 2123, 2123,    0, 2123, 2124, 2124,    0,    0, 2124,
2825      2125, 2125,    0, 2125, 2126, 2126, 2127,    0, 2127, 2128,
2826         0, 2128, 2129,    0,    0, 2129, 2130, 2130,    0, 2130,
2827      2131, 2131,    0,    0, 2131, 2132, 2132,    0, 2132, 2133,
2828      2133, 2134,    0, 2134, 2135,    0, 2135, 2136,    0,    0,
2829      2136, 2137, 2137,    0, 2137, 2138, 2138,    0,    0, 2138,
2830      2139, 2139,    0, 2139, 2140, 2140, 2141,    0, 2141, 2142,
2831 
2832         0, 2142, 2143,    0, 2143, 2144,    0, 2144, 2145, 2145,
2833      2145, 2146,    0, 2146, 2147, 2147, 2147,    0, 2147, 2147,
2834      2148,    0, 2148, 2149,    0, 2149, 2150,    0, 2150, 2151,
2835         0, 2151, 2152,    0, 2152, 2153,    0, 2153, 2154,    0,
2836      2154, 2155, 2155,    0,    0, 2155, 2156, 2156,    0, 2156,
2837      2157, 2157, 2158,    0, 2158, 2159,    0, 2159, 2160,    0,
2838      2160, 2161,    0, 2161, 2162,    0, 2162, 2163,    0, 2163,
2839      2164,    0, 2164, 2165,    0, 2165, 2166,    0, 2166, 2167,
2840         0, 2167, 2168,    0,    0, 2168, 2169, 2169,    0,    0,
2841      2169, 2170,    0, 2170, 2171,    0, 2171, 2172,    0, 2172,
2842 
2843      2173,    0,    0, 2173, 2174,    0,    0, 2174, 2175,    0,
2844         0, 2175, 2176,    0,    0, 2176, 2177,    0,    0, 2177,
2845      2178,    0, 2178, 2179,    0, 2179, 2180,    0,    0, 2180,
2846      2181,    0, 2181, 2182,    0, 2182, 2183,    0, 2183, 2184,
2847         0, 2184, 2185,    0, 2185, 2186,    0,    0, 2186, 2187,
2848         0, 2187, 2188,    0, 2188, 1728, 1728, 1728, 1728, 1728,
2849      1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
2850      1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
2851      1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
2852      1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
2853 
2854      1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728
2855     } ;
2856 
2857 /* The intent behind this definition is that it'll catch
2858  * any uses of REJECT which flex missed.
2859  */
2860 #define REJECT reject_used_but_not_detected
2861 #define yymore() yymore_used_but_not_detected
2862 #define YY_MORE_ADJ 0
2863 #define YY_RESTORE_YY_MORE_OFFSET
2864 #line 1 "scanner.l"
2865 
2866 /*
2867  * We want a reentrant scanner.
2868  */
2869 /*
2870  * And we need to pass the compiler state to the scanner.
2871  */
2872 /*
2873  * We don't use input, so don't generate code for it.
2874  */
2875 #define YY_NO_INPUT 1
2876 /*
2877  * We don't use unput, so don't generate code for it.
2878  */
2879 /*
2880  * We don't read from the terminal.
2881  */
2882 /*
2883  * We want to stop processing when we get to the end of the input.
2884  */
2885 /*
2886  * We want to generate code that can be used by a reentrant parser
2887  * generated by Bison or Berkeley YACC.
2888  */
2889 #line 67 "scanner.l"
2890 /*
2891  * Copyright (c) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997
2892  *	The Regents of the University of California.  All rights reserved.
2893  *
2894  * Redistribution and use in source and binary forms, with or without
2895  * modification, are permitted provided that: (1) source code distributions
2896  * retain the above copyright notice and this paragraph in its entirety, (2)
2897  * distributions including binary code include the above copyright notice and
2898  * this paragraph in its entirety in the documentation or other materials
2899  * provided with the distribution, and (3) all advertising materials mentioning
2900  * features or use of this software display the following acknowledgement:
2901  * ``This product includes software developed by the University of California,
2902  * Lawrence Berkeley Laboratory and its contributors.'' Neither the name of
2903  * the University nor the names of its contributors may be used to endorse
2904  * or promote products derived from this software without specific prior
2905  * written permission.
2906  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
2907  * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
2908  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
2909  */
2910 
2911 #include <ctype.h>
2912 #include <string.h>
2913 
2914 #include "pcap-int.h"
2915 
2916 #include "gencode.h"
2917 
2918 #include "grammar.h"
2919 
2920 /*
2921  * Earlier versions of Flex don't declare these, so we declare them
2922  * ourselves to squelch warnings.
2923  */
2924 int pcap_get_column(yyscan_t);
2925 void pcap_set_column(int, yyscan_t);
2926 
2927 #ifdef INET6
2928 
2929 #ifdef _WIN32
2930 #include <winsock2.h>
2931 #include <ws2tcpip.h>
2932 /*
2933  * To quote the MSDN page for getaddrinfo() at
2934  *
2935  *    https://msdn.microsoft.com/en-us/library/windows/desktop/ms738520(v=vs.85).aspx
2936  *
2937  * "Support for getaddrinfo on Windows 2000 and older versions
2938  * The getaddrinfo function was added to the Ws2_32.dll on Windows XP and
2939  * later. To execute an application that uses this function on earlier
2940  * versions of Windows, then you need to include the Ws2tcpip.h and
2941  * Wspiapi.h files. When the Wspiapi.h include file is added, the
2942  * getaddrinfo function is defined to the WspiapiGetAddrInfo inline
2943  * function in the Wspiapi.h file. At runtime, the WspiapiGetAddrInfo
2944  * function is implemented in such a way that if the Ws2_32.dll or the
2945  * Wship6.dll (the file containing getaddrinfo in the IPv6 Technology
2946  * Preview for Windows 2000) does not include getaddrinfo, then a
2947  * version of getaddrinfo is implemented inline based on code in the
2948  * Wspiapi.h header file. This inline code will be used on older Windows
2949  * platforms that do not natively support the getaddrinfo function."
2950  *
2951  * We use getaddrinfo(), so we include Wspiapi.h here.
2952  */
2953 #include <wspiapi.h>
2954 #else /* _WIN32 */
2955 #include <sys/socket.h>	/* for "struct sockaddr" in "struct addrinfo" */
2956 #include <netdb.h>	/* for "struct addrinfo" */
2957 #endif /* _WIN32 */
2958 
2959 /* Workaround for AIX 4.3 */
2960 #if !defined(AI_NUMERICHOST)
2961 #define AI_NUMERICHOST 0x04
2962 #endif
2963 
2964 #endif /*INET6*/
2965 
2966 #include <pcap/namedb.h>
2967 #include "grammar.h"
2968 
2969 #ifdef HAVE_OS_PROTO_H
2970 #include "os-proto.h"
2971 #endif
2972 
2973 static int stoi(char *);
2974 static inline int xdtoi(int);
2975 
2976 /*
2977  * Disable diagnostics in the code generated by Flex.
2978  */
2979 DIAG_OFF_FLEX
2980 
2981 #line 2982 "scanner.c"
2982 
2983 #define INITIAL 0
2984 
2985 #ifndef YY_NO_UNISTD_H
2986 /* Special case for "unistd.h", since it is non-ANSI. We include it way
2987  * down here because we want the user's section 1 to have been scanned first.
2988  * The user has a chance to override it with an option.
2989  */
2990 #include <unistd.h>
2991 #endif
2992 
2993 #define YY_EXTRA_TYPE compiler_state_t *
2994 
2995 /* Holds the entire state of the reentrant scanner. */
2996 struct yyguts_t
2997     {
2998 
2999     /* User-defined. Not touched by flex. */
3000     YY_EXTRA_TYPE yyextra_r;
3001 
3002     /* The rest are the same as the globals declared in the non-reentrant scanner. */
3003     FILE *yyin_r, *yyout_r;
3004     size_t yy_buffer_stack_top; /**< index of top of stack. */
3005     size_t yy_buffer_stack_max; /**< capacity of stack. */
3006     YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */
3007     char yy_hold_char;
3008     int yy_n_chars;
3009     int yyleng_r;
3010     char *yy_c_buf_p;
3011     int yy_init;
3012     int yy_start;
3013     int yy_did_buffer_switch_on_eof;
3014     int yy_start_stack_ptr;
3015     int yy_start_stack_depth;
3016     int *yy_start_stack;
3017     yy_state_type yy_last_accepting_state;
3018     char* yy_last_accepting_cpos;
3019 
3020     int yylineno_r;
3021     int yy_flex_debug_r;
3022 
3023     char *yytext_r;
3024     int yy_more_flag;
3025     int yy_more_len;
3026 
3027     YYSTYPE * yylval_r;
3028 
3029     }; /* end struct yyguts_t */
3030 
3031 static int yy_init_globals (yyscan_t yyscanner );
3032 
3033     /* This must go here because YYSTYPE and YYLTYPE are included
3034      * from bison output in section 1.*/
3035     #    define yylval yyg->yylval_r
3036 
3037 int pcap_lex_init (yyscan_t* scanner);
3038 
3039 int pcap_lex_init_extra (YY_EXTRA_TYPE user_defined,yyscan_t* scanner);
3040 
3041 /* Accessor methods to globals.
3042    These are made visible to non-reentrant scanners for convenience. */
3043 
3044 int pcap_lex_destroy (yyscan_t yyscanner );
3045 
3046 int pcap_get_debug (yyscan_t yyscanner );
3047 
3048 void pcap_set_debug (int debug_flag ,yyscan_t yyscanner );
3049 
3050 YY_EXTRA_TYPE pcap_get_extra (yyscan_t yyscanner );
3051 
3052 void pcap_set_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner );
3053 
3054 FILE *pcap_get_in (yyscan_t yyscanner );
3055 
3056 void pcap_set_in  (FILE * _in_str ,yyscan_t yyscanner );
3057 
3058 FILE *pcap_get_out (yyscan_t yyscanner );
3059 
3060 void pcap_set_out  (FILE * _out_str ,yyscan_t yyscanner );
3061 
3062 			int pcap_get_leng (yyscan_t yyscanner );
3063 
3064 char *pcap_get_text (yyscan_t yyscanner );
3065 
3066 int pcap_get_lineno (yyscan_t yyscanner );
3067 
3068 void pcap_set_lineno (int _line_number ,yyscan_t yyscanner );
3069 
3070 int pcap_get_column  (yyscan_t yyscanner );
3071 
3072 void pcap_set_column (int _column_no ,yyscan_t yyscanner );
3073 
3074 YYSTYPE * pcap_get_lval (yyscan_t yyscanner );
3075 
3076 void pcap_set_lval (YYSTYPE * yylval_param ,yyscan_t yyscanner );
3077 
3078 /* Macros after this point can all be overridden by user definitions in
3079  * section 1.
3080  */
3081 
3082 #ifndef YY_SKIP_YYWRAP
3083 #ifdef __cplusplus
3084 extern "C" int pcap_wrap (yyscan_t yyscanner );
3085 #else
3086 extern int pcap_wrap (yyscan_t yyscanner );
3087 #endif
3088 #endif
3089 
3090 #ifndef YY_NO_UNPUT
3091 
3092 #endif
3093 
3094 #ifndef yytext_ptr
3095 static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner);
3096 #endif
3097 
3098 #ifdef YY_NEED_STRLEN
3099 static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner);
3100 #endif
3101 
3102 #ifndef YY_NO_INPUT
3103 
3104 #ifdef __cplusplus
3105 static int yyinput (yyscan_t yyscanner );
3106 #else
3107 static int input (yyscan_t yyscanner );
3108 #endif
3109 
3110 #endif
3111 
3112 /* Amount of stuff to slurp up with each read. */
3113 #ifndef YY_READ_BUF_SIZE
3114 #ifdef __ia64__
3115 /* On IA-64, the buffer size is 16k, not 8k */
3116 #define YY_READ_BUF_SIZE 16384
3117 #else
3118 #define YY_READ_BUF_SIZE 8192
3119 #endif /* __ia64__ */
3120 #endif
3121 
3122 /* Copy whatever the last rule matched to the standard output. */
3123 #ifndef ECHO
3124 /* This used to be an fputs(), but since the string might contain NUL's,
3125  * we now use fwrite().
3126  */
3127 #define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
3128 #endif
3129 
3130 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
3131  * is returned in "result".
3132  */
3133 #ifndef YY_INPUT
3134 #define YY_INPUT(buf,result,max_size) \
3135 	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
3136 		{ \
3137 		int c = '*'; \
3138 		size_t n; \
3139 		for ( n = 0; n < max_size && \
3140 			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
3141 			buf[n] = (char) c; \
3142 		if ( c == '\n' ) \
3143 			buf[n++] = (char) c; \
3144 		if ( c == EOF && ferror( yyin ) ) \
3145 			YY_FATAL_ERROR( "input in flex scanner failed" ); \
3146 		result = n; \
3147 		} \
3148 	else \
3149 		{ \
3150 		errno=0; \
3151 		while ( (result = (int) fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
3152 			{ \
3153 			if( errno != EINTR) \
3154 				{ \
3155 				YY_FATAL_ERROR( "input in flex scanner failed" ); \
3156 				break; \
3157 				} \
3158 			errno=0; \
3159 			clearerr(yyin); \
3160 			} \
3161 		}\
3162 \
3163 
3164 #endif
3165 
3166 /* No semi-colon after return; correct usage is to write "yyterminate();" -
3167  * we don't want an extra ';' after the "return" because that will cause
3168  * some compilers to complain about unreachable statements.
3169  */
3170 #ifndef yyterminate
3171 #define yyterminate() return YY_NULL
3172 #endif
3173 
3174 /* Number of entries by which start-condition stack grows. */
3175 #ifndef YY_START_STACK_INCR
3176 #define YY_START_STACK_INCR 25
3177 #endif
3178 
3179 /* Report a fatal error. */
3180 #ifndef YY_FATAL_ERROR
3181 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
3182 #endif
3183 
3184 /* end tables serialization structures and prototypes */
3185 
3186 /* Default declaration of generated scanner - a define so the user can
3187  * easily add parameters.
3188  */
3189 #ifndef YY_DECL
3190 #define YY_DECL_IS_OURS 1
3191 
3192 extern int pcap_lex \
3193                (YYSTYPE * yylval_param ,yyscan_t yyscanner);
3194 
3195 #define YY_DECL int pcap_lex \
3196                (YYSTYPE * yylval_param , yyscan_t yyscanner)
3197 #endif /* !YY_DECL */
3198 
3199 /* Code executed at the beginning of each rule, after yytext and yyleng
3200  * have been set up.
3201  */
3202 #ifndef YY_USER_ACTION
3203 #define YY_USER_ACTION
3204 #endif
3205 
3206 /* Code executed at the end of each rule. */
3207 #ifndef YY_BREAK
3208 #define YY_BREAK /*LINTED*/break;
3209 #endif
3210 
3211 #define YY_RULE_SETUP \
3212 	YY_USER_ACTION
3213 
3214 /** The main scanner function which does all the work.
3215  */
3216 YY_DECL
3217 {
3218 	yy_state_type yy_current_state;
3219 	char *yy_cp, *yy_bp;
3220 	int yy_act;
3221     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3222 
3223     yylval = yylval_param;
3224 
3225 	if ( !yyg->yy_init )
3226 		{
3227 		yyg->yy_init = 1;
3228 
3229 #ifdef YY_USER_INIT
3230 		YY_USER_INIT;
3231 #endif
3232 
3233 		if ( ! yyg->yy_start )
3234 			yyg->yy_start = 1;	/* first start state */
3235 
3236 		if ( ! yyin )
3237 			yyin = stdin;
3238 
3239 		if ( ! yyout )
3240 			yyout = stdout;
3241 
3242 		if ( ! YY_CURRENT_BUFFER ) {
3243 			pcap_ensure_buffer_stack (yyscanner);
3244 			YY_CURRENT_BUFFER_LVALUE =
3245 				pcap__create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
3246 		}
3247 
3248 		pcap__load_buffer_state(yyscanner );
3249 		}
3250 
3251 	{
3252 #line 254 "scanner.l"
3253 
3254 #line 3255 "scanner.c"
3255 
3256 	while ( /*CONSTCOND*/1 )		/* loops until end-of-file is reached */
3257 		{
3258 		yy_cp = yyg->yy_c_buf_p;
3259 
3260 		/* Support of yytext. */
3261 		*yy_cp = yyg->yy_hold_char;
3262 
3263 		/* yy_bp points to the position in yy_ch_buf of the start of
3264 		 * the current run.
3265 		 */
3266 		yy_bp = yy_cp;
3267 
3268 		yy_current_state = yyg->yy_start;
3269 yy_match:
3270 		do
3271 			{
3272 			YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
3273 			if ( yy_accept[yy_current_state] )
3274 				{
3275 				yyg->yy_last_accepting_state = yy_current_state;
3276 				yyg->yy_last_accepting_cpos = yy_cp;
3277 				}
3278 			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3279 				{
3280 				yy_current_state = (int) yy_def[yy_current_state];
3281 				if ( yy_current_state >= 1729 )
3282 					yy_c = yy_meta[(unsigned int) yy_c];
3283 				}
3284 			yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
3285 			++yy_cp;
3286 			}
3287 		while ( yy_current_state != 1728 );
3288 		yy_cp = yyg->yy_last_accepting_cpos;
3289 		yy_current_state = yyg->yy_last_accepting_state;
3290 
3291 yy_find_action:
3292 		yy_act = yy_accept[yy_current_state];
3293 
3294 		YY_DO_BEFORE_ACTION;
3295 
3296 do_action:	/* This label is used only to access EOF actions. */
3297 
3298 		switch ( yy_act )
3299 	{ /* beginning of action switch */
3300 			case 0: /* must back up */
3301 			/* undo the effects of YY_DO_BEFORE_ACTION */
3302 			*yy_cp = yyg->yy_hold_char;
3303 			yy_cp = yyg->yy_last_accepting_cpos;
3304 			yy_current_state = yyg->yy_last_accepting_state;
3305 			goto yy_find_action;
3306 
3307 case 1:
3308 YY_RULE_SETUP
3309 #line 255 "scanner.l"
3310 return DST;
3311 	YY_BREAK
3312 case 2:
3313 YY_RULE_SETUP
3314 #line 256 "scanner.l"
3315 return SRC;
3316 	YY_BREAK
3317 case 3:
3318 YY_RULE_SETUP
3319 #line 258 "scanner.l"
3320 return LINK;
3321 	YY_BREAK
3322 case 4:
3323 YY_RULE_SETUP
3324 #line 259 "scanner.l"
3325 return LINK;
3326 	YY_BREAK
3327 case 5:
3328 YY_RULE_SETUP
3329 #line 260 "scanner.l"
3330 return ARP;
3331 	YY_BREAK
3332 case 6:
3333 YY_RULE_SETUP
3334 #line 261 "scanner.l"
3335 return RARP;
3336 	YY_BREAK
3337 case 7:
3338 YY_RULE_SETUP
3339 #line 262 "scanner.l"
3340 return IP;
3341 	YY_BREAK
3342 case 8:
3343 YY_RULE_SETUP
3344 #line 263 "scanner.l"
3345 return SCTP;
3346 	YY_BREAK
3347 case 9:
3348 YY_RULE_SETUP
3349 #line 264 "scanner.l"
3350 return TCP;
3351 	YY_BREAK
3352 case 10:
3353 YY_RULE_SETUP
3354 #line 265 "scanner.l"
3355 return UDP;
3356 	YY_BREAK
3357 case 11:
3358 YY_RULE_SETUP
3359 #line 266 "scanner.l"
3360 return ICMP;
3361 	YY_BREAK
3362 case 12:
3363 YY_RULE_SETUP
3364 #line 267 "scanner.l"
3365 return IGMP;
3366 	YY_BREAK
3367 case 13:
3368 YY_RULE_SETUP
3369 #line 268 "scanner.l"
3370 return IGRP;
3371 	YY_BREAK
3372 case 14:
3373 YY_RULE_SETUP
3374 #line 269 "scanner.l"
3375 return PIM;
3376 	YY_BREAK
3377 case 15:
3378 YY_RULE_SETUP
3379 #line 270 "scanner.l"
3380 return VRRP;
3381 	YY_BREAK
3382 case 16:
3383 YY_RULE_SETUP
3384 #line 271 "scanner.l"
3385 return CARP;
3386 	YY_BREAK
3387 case 17:
3388 YY_RULE_SETUP
3389 #line 272 "scanner.l"
3390 return RADIO;
3391 	YY_BREAK
3392 case 18:
3393 YY_RULE_SETUP
3394 #line 274 "scanner.l"
3395 return IPV6;
3396 	YY_BREAK
3397 case 19:
3398 YY_RULE_SETUP
3399 #line 275 "scanner.l"
3400 return ICMPV6;
3401 	YY_BREAK
3402 case 20:
3403 YY_RULE_SETUP
3404 #line 276 "scanner.l"
3405 return AH;
3406 	YY_BREAK
3407 case 21:
3408 YY_RULE_SETUP
3409 #line 277 "scanner.l"
3410 return ESP;
3411 	YY_BREAK
3412 case 22:
3413 YY_RULE_SETUP
3414 #line 279 "scanner.l"
3415 return ATALK;
3416 	YY_BREAK
3417 case 23:
3418 YY_RULE_SETUP
3419 #line 280 "scanner.l"
3420 return AARP;
3421 	YY_BREAK
3422 case 24:
3423 YY_RULE_SETUP
3424 #line 281 "scanner.l"
3425 return DECNET;
3426 	YY_BREAK
3427 case 25:
3428 YY_RULE_SETUP
3429 #line 282 "scanner.l"
3430 return LAT;
3431 	YY_BREAK
3432 case 26:
3433 YY_RULE_SETUP
3434 #line 283 "scanner.l"
3435 return SCA;
3436 	YY_BREAK
3437 case 27:
3438 YY_RULE_SETUP
3439 #line 284 "scanner.l"
3440 return MOPRC;
3441 	YY_BREAK
3442 case 28:
3443 YY_RULE_SETUP
3444 #line 285 "scanner.l"
3445 return MOPDL;
3446 	YY_BREAK
3447 case 29:
3448 YY_RULE_SETUP
3449 #line 287 "scanner.l"
3450 return ISO;
3451 	YY_BREAK
3452 case 30:
3453 YY_RULE_SETUP
3454 #line 288 "scanner.l"
3455 return ESIS;
3456 	YY_BREAK
3457 case 31:
3458 YY_RULE_SETUP
3459 #line 289 "scanner.l"
3460 return ESIS;
3461 	YY_BREAK
3462 case 32:
3463 YY_RULE_SETUP
3464 #line 290 "scanner.l"
3465 return ISIS;
3466 	YY_BREAK
3467 case 33:
3468 YY_RULE_SETUP
3469 #line 291 "scanner.l"
3470 return ISIS;
3471 	YY_BREAK
3472 case 34:
3473 YY_RULE_SETUP
3474 #line 292 "scanner.l"
3475 return L1;
3476 	YY_BREAK
3477 case 35:
3478 YY_RULE_SETUP
3479 #line 293 "scanner.l"
3480 return L2;
3481 	YY_BREAK
3482 case 36:
3483 YY_RULE_SETUP
3484 #line 294 "scanner.l"
3485 return IIH;
3486 	YY_BREAK
3487 case 37:
3488 YY_RULE_SETUP
3489 #line 295 "scanner.l"
3490 return LSP;
3491 	YY_BREAK
3492 case 38:
3493 YY_RULE_SETUP
3494 #line 296 "scanner.l"
3495 return SNP;
3496 	YY_BREAK
3497 case 39:
3498 YY_RULE_SETUP
3499 #line 297 "scanner.l"
3500 return CSNP;
3501 	YY_BREAK
3502 case 40:
3503 YY_RULE_SETUP
3504 #line 298 "scanner.l"
3505 return PSNP;
3506 	YY_BREAK
3507 case 41:
3508 YY_RULE_SETUP
3509 #line 300 "scanner.l"
3510 return CLNP;
3511 	YY_BREAK
3512 case 42:
3513 YY_RULE_SETUP
3514 #line 302 "scanner.l"
3515 return STP;
3516 	YY_BREAK
3517 case 43:
3518 YY_RULE_SETUP
3519 #line 304 "scanner.l"
3520 return IPX;
3521 	YY_BREAK
3522 case 44:
3523 YY_RULE_SETUP
3524 #line 306 "scanner.l"
3525 return NETBEUI;
3526 	YY_BREAK
3527 case 45:
3528 YY_RULE_SETUP
3529 #line 308 "scanner.l"
3530 return HOST;
3531 	YY_BREAK
3532 case 46:
3533 YY_RULE_SETUP
3534 #line 309 "scanner.l"
3535 return NET;
3536 	YY_BREAK
3537 case 47:
3538 YY_RULE_SETUP
3539 #line 310 "scanner.l"
3540 return NETMASK;
3541 	YY_BREAK
3542 case 48:
3543 YY_RULE_SETUP
3544 #line 311 "scanner.l"
3545 return PORT;
3546 	YY_BREAK
3547 case 49:
3548 YY_RULE_SETUP
3549 #line 312 "scanner.l"
3550 return PORTRANGE;
3551 	YY_BREAK
3552 case 50:
3553 YY_RULE_SETUP
3554 #line 313 "scanner.l"
3555 return PROTO;
3556 	YY_BREAK
3557 case 51:
3558 YY_RULE_SETUP
3559 #line 314 "scanner.l"
3560 {
3561 #ifdef NO_PROTOCHAIN
3562 		  bpf_error(yyextra, "%s not supported", yytext);
3563 #else
3564 		  return PROTOCHAIN;
3565 #endif
3566 		}
3567 	YY_BREAK
3568 case 52:
3569 YY_RULE_SETUP
3570 #line 322 "scanner.l"
3571 return GATEWAY;
3572 	YY_BREAK
3573 case 53:
3574 YY_RULE_SETUP
3575 #line 324 "scanner.l"
3576 return TYPE;
3577 	YY_BREAK
3578 case 54:
3579 YY_RULE_SETUP
3580 #line 325 "scanner.l"
3581 return SUBTYPE;
3582 	YY_BREAK
3583 case 55:
3584 YY_RULE_SETUP
3585 #line 326 "scanner.l"
3586 return DIR;
3587 	YY_BREAK
3588 case 56:
3589 YY_RULE_SETUP
3590 #line 327 "scanner.l"
3591 return ADDR1;
3592 	YY_BREAK
3593 case 57:
3594 YY_RULE_SETUP
3595 #line 328 "scanner.l"
3596 return ADDR2;
3597 	YY_BREAK
3598 case 58:
3599 YY_RULE_SETUP
3600 #line 329 "scanner.l"
3601 return ADDR3;
3602 	YY_BREAK
3603 case 59:
3604 YY_RULE_SETUP
3605 #line 330 "scanner.l"
3606 return ADDR4;
3607 	YY_BREAK
3608 case 60:
3609 YY_RULE_SETUP
3610 #line 331 "scanner.l"
3611 return RA;
3612 	YY_BREAK
3613 case 61:
3614 YY_RULE_SETUP
3615 #line 332 "scanner.l"
3616 return TA;
3617 	YY_BREAK
3618 case 62:
3619 YY_RULE_SETUP
3620 #line 334 "scanner.l"
3621 return LESS;
3622 	YY_BREAK
3623 case 63:
3624 YY_RULE_SETUP
3625 #line 335 "scanner.l"
3626 return GREATER;
3627 	YY_BREAK
3628 case 64:
3629 YY_RULE_SETUP
3630 #line 336 "scanner.l"
3631 return CBYTE;
3632 	YY_BREAK
3633 case 65:
3634 YY_RULE_SETUP
3635 #line 337 "scanner.l"
3636 return TK_BROADCAST;
3637 	YY_BREAK
3638 case 66:
3639 YY_RULE_SETUP
3640 #line 338 "scanner.l"
3641 return TK_MULTICAST;
3642 	YY_BREAK
3643 case 67:
3644 YY_RULE_SETUP
3645 #line 340 "scanner.l"
3646 return AND;
3647 	YY_BREAK
3648 case 68:
3649 YY_RULE_SETUP
3650 #line 341 "scanner.l"
3651 return OR;
3652 	YY_BREAK
3653 case 69:
3654 YY_RULE_SETUP
3655 #line 342 "scanner.l"
3656 return '!';
3657 	YY_BREAK
3658 case 70:
3659 YY_RULE_SETUP
3660 #line 344 "scanner.l"
3661 return LEN;
3662 	YY_BREAK
3663 case 71:
3664 YY_RULE_SETUP
3665 #line 345 "scanner.l"
3666 return INBOUND;
3667 	YY_BREAK
3668 case 72:
3669 YY_RULE_SETUP
3670 #line 346 "scanner.l"
3671 return OUTBOUND;
3672 	YY_BREAK
3673 case 73:
3674 YY_RULE_SETUP
3675 #line 348 "scanner.l"
3676 return VLAN;
3677 	YY_BREAK
3678 case 74:
3679 YY_RULE_SETUP
3680 #line 349 "scanner.l"
3681 return MPLS;
3682 	YY_BREAK
3683 case 75:
3684 YY_RULE_SETUP
3685 #line 350 "scanner.l"
3686 return PPPOED;
3687 	YY_BREAK
3688 case 76:
3689 YY_RULE_SETUP
3690 #line 351 "scanner.l"
3691 return PPPOES;
3692 	YY_BREAK
3693 case 77:
3694 YY_RULE_SETUP
3695 #line 352 "scanner.l"
3696 return GENEVE;
3697 	YY_BREAK
3698 case 78:
3699 YY_RULE_SETUP
3700 #line 354 "scanner.l"
3701 return LANE;
3702 	YY_BREAK
3703 case 79:
3704 YY_RULE_SETUP
3705 #line 355 "scanner.l"
3706 return LLC;
3707 	YY_BREAK
3708 case 80:
3709 YY_RULE_SETUP
3710 #line 356 "scanner.l"
3711 return METAC;
3712 	YY_BREAK
3713 case 81:
3714 YY_RULE_SETUP
3715 #line 357 "scanner.l"
3716 return BCC;
3717 	YY_BREAK
3718 case 82:
3719 YY_RULE_SETUP
3720 #line 358 "scanner.l"
3721 return OAM;
3722 	YY_BREAK
3723 case 83:
3724 YY_RULE_SETUP
3725 #line 359 "scanner.l"
3726 return OAMF4;
3727 	YY_BREAK
3728 case 84:
3729 YY_RULE_SETUP
3730 #line 360 "scanner.l"
3731 return OAMF4EC;
3732 	YY_BREAK
3733 case 85:
3734 YY_RULE_SETUP
3735 #line 361 "scanner.l"
3736 return OAMF4SC;
3737 	YY_BREAK
3738 case 86:
3739 YY_RULE_SETUP
3740 #line 362 "scanner.l"
3741 return SC;
3742 	YY_BREAK
3743 case 87:
3744 YY_RULE_SETUP
3745 #line 363 "scanner.l"
3746 return ILMIC;
3747 	YY_BREAK
3748 case 88:
3749 YY_RULE_SETUP
3750 #line 364 "scanner.l"
3751 return VPI;
3752 	YY_BREAK
3753 case 89:
3754 YY_RULE_SETUP
3755 #line 365 "scanner.l"
3756 return VCI;
3757 	YY_BREAK
3758 case 90:
3759 YY_RULE_SETUP
3760 #line 366 "scanner.l"
3761 return CONNECTMSG;
3762 	YY_BREAK
3763 case 91:
3764 YY_RULE_SETUP
3765 #line 367 "scanner.l"
3766 return METACONNECT;
3767 	YY_BREAK
3768 case 92:
3769 YY_RULE_SETUP
3770 #line 369 "scanner.l"
3771 return PF_IFNAME;
3772 	YY_BREAK
3773 case 93:
3774 YY_RULE_SETUP
3775 #line 370 "scanner.l"
3776 return PF_RSET;
3777 	YY_BREAK
3778 case 94:
3779 YY_RULE_SETUP
3780 #line 371 "scanner.l"
3781 return PF_RNR;
3782 	YY_BREAK
3783 case 95:
3784 YY_RULE_SETUP
3785 #line 372 "scanner.l"
3786 return PF_SRNR;
3787 	YY_BREAK
3788 case 96:
3789 YY_RULE_SETUP
3790 #line 373 "scanner.l"
3791 return PF_REASON;
3792 	YY_BREAK
3793 case 97:
3794 YY_RULE_SETUP
3795 #line 374 "scanner.l"
3796 return PF_ACTION;
3797 	YY_BREAK
3798 case 98:
3799 YY_RULE_SETUP
3800 #line 376 "scanner.l"
3801 return FISU;
3802 	YY_BREAK
3803 case 99:
3804 YY_RULE_SETUP
3805 #line 377 "scanner.l"
3806 return LSSU;
3807 	YY_BREAK
3808 case 100:
3809 YY_RULE_SETUP
3810 #line 378 "scanner.l"
3811 return LSSU;
3812 	YY_BREAK
3813 case 101:
3814 YY_RULE_SETUP
3815 #line 379 "scanner.l"
3816 return MSU;
3817 	YY_BREAK
3818 case 102:
3819 YY_RULE_SETUP
3820 #line 380 "scanner.l"
3821 return HFISU;
3822 	YY_BREAK
3823 case 103:
3824 YY_RULE_SETUP
3825 #line 381 "scanner.l"
3826 return HLSSU;
3827 	YY_BREAK
3828 case 104:
3829 YY_RULE_SETUP
3830 #line 382 "scanner.l"
3831 return HMSU;
3832 	YY_BREAK
3833 case 105:
3834 YY_RULE_SETUP
3835 #line 383 "scanner.l"
3836 return SIO;
3837 	YY_BREAK
3838 case 106:
3839 YY_RULE_SETUP
3840 #line 384 "scanner.l"
3841 return OPC;
3842 	YY_BREAK
3843 case 107:
3844 YY_RULE_SETUP
3845 #line 385 "scanner.l"
3846 return DPC;
3847 	YY_BREAK
3848 case 108:
3849 YY_RULE_SETUP
3850 #line 386 "scanner.l"
3851 return SLS;
3852 	YY_BREAK
3853 case 109:
3854 YY_RULE_SETUP
3855 #line 387 "scanner.l"
3856 return HSIO;
3857 	YY_BREAK
3858 case 110:
3859 YY_RULE_SETUP
3860 #line 388 "scanner.l"
3861 return HOPC;
3862 	YY_BREAK
3863 case 111:
3864 YY_RULE_SETUP
3865 #line 389 "scanner.l"
3866 return HDPC;
3867 	YY_BREAK
3868 case 112:
3869 YY_RULE_SETUP
3870 #line 390 "scanner.l"
3871 return HSLS;
3872 	YY_BREAK
3873 case 113:
3874 /* rule 113 can match eol */
3875 YY_RULE_SETUP
3876 #line 392 "scanner.l"
3877 ;
3878 	YY_BREAK
3879 case 114:
3880 YY_RULE_SETUP
3881 #line 393 "scanner.l"
3882 return yytext[0];
3883 	YY_BREAK
3884 case 115:
3885 YY_RULE_SETUP
3886 #line 394 "scanner.l"
3887 return GEQ;
3888 	YY_BREAK
3889 case 116:
3890 YY_RULE_SETUP
3891 #line 395 "scanner.l"
3892 return LEQ;
3893 	YY_BREAK
3894 case 117:
3895 YY_RULE_SETUP
3896 #line 396 "scanner.l"
3897 return NEQ;
3898 	YY_BREAK
3899 case 118:
3900 YY_RULE_SETUP
3901 #line 397 "scanner.l"
3902 return '=';
3903 	YY_BREAK
3904 case 119:
3905 YY_RULE_SETUP
3906 #line 398 "scanner.l"
3907 return LSH;
3908 	YY_BREAK
3909 case 120:
3910 YY_RULE_SETUP
3911 #line 399 "scanner.l"
3912 return RSH;
3913 	YY_BREAK
3914 case 121:
3915 YY_RULE_SETUP
3916 #line 400 "scanner.l"
3917 { yylval->e = pcap_ether_aton(((char *)yytext)+1);
3918 			  if (yylval->e == NULL)
3919 				bpf_error(yyextra, "malloc");
3920 			  return AID; }
3921 	YY_BREAK
3922 case 122:
3923 YY_RULE_SETUP
3924 #line 404 "scanner.l"
3925 { yylval->e = pcap_ether_aton((char *)yytext);
3926 			  if (yylval->e == NULL)
3927 				bpf_error(yyextra, "malloc");
3928 			  return EID; }
3929 	YY_BREAK
3930 case 123:
3931 YY_RULE_SETUP
3932 #line 408 "scanner.l"
3933 { yylval->i = stoi((char *)yytext); return NUM; }
3934 	YY_BREAK
3935 case 124:
3936 YY_RULE_SETUP
3937 #line 409 "scanner.l"
3938 {
3939 			yylval->s = sdup(yyextra, (char *)yytext); return HID; }
3940 	YY_BREAK
3941 case 125:
3942 YY_RULE_SETUP
3943 #line 411 "scanner.l"
3944 {
3945 #ifdef INET6
3946 			  struct addrinfo hints, *res;
3947 			  memset(&hints, 0, sizeof(hints));
3948 			  hints.ai_family = AF_INET6;
3949 			  hints.ai_flags = AI_NUMERICHOST;
3950 			  if (getaddrinfo(yytext, NULL, &hints, &res))
3951 				bpf_error(yyextra, "bogus IPv6 address %s", yytext);
3952 			  else {
3953 				freeaddrinfo(res);
3954 				yylval->s = sdup(yyextra, (char *)yytext); return HID6;
3955 			  }
3956 #else
3957 			  bpf_error(yyextra, "IPv6 address %s not supported", yytext);
3958 #endif /*INET6*/
3959 			}
3960 	YY_BREAK
3961 case 126:
3962 YY_RULE_SETUP
3963 #line 427 "scanner.l"
3964 { bpf_error(yyextra, "bogus ethernet address %s", yytext); }
3965 	YY_BREAK
3966 case 127:
3967 YY_RULE_SETUP
3968 #line 428 "scanner.l"
3969 { yylval->i = 0; return NUM; }
3970 	YY_BREAK
3971 case 128:
3972 YY_RULE_SETUP
3973 #line 429 "scanner.l"
3974 { yylval->i = 1; return NUM; }
3975 	YY_BREAK
3976 case 129:
3977 YY_RULE_SETUP
3978 #line 430 "scanner.l"
3979 { yylval->i = 0; return NUM; }
3980 	YY_BREAK
3981 case 130:
3982 YY_RULE_SETUP
3983 #line 431 "scanner.l"
3984 { yylval->i = 3; return NUM; }
3985 	YY_BREAK
3986 case 131:
3987 YY_RULE_SETUP
3988 #line 432 "scanner.l"
3989 { yylval->i = 4; return NUM; }
3990 	YY_BREAK
3991 case 132:
3992 YY_RULE_SETUP
3993 #line 433 "scanner.l"
3994 { yylval->i = 5; return NUM; }
3995 	YY_BREAK
3996 case 133:
3997 YY_RULE_SETUP
3998 #line 434 "scanner.l"
3999 { yylval->i = 8; return NUM; }
4000 	YY_BREAK
4001 case 134:
4002 YY_RULE_SETUP
4003 #line 435 "scanner.l"
4004 { yylval->i = 9; return NUM; }
4005 	YY_BREAK
4006 case 135:
4007 YY_RULE_SETUP
4008 #line 436 "scanner.l"
4009 { yylval->i = 10; return NUM; }
4010 	YY_BREAK
4011 case 136:
4012 YY_RULE_SETUP
4013 #line 437 "scanner.l"
4014 { yylval->i = 11; return NUM; }
4015 	YY_BREAK
4016 case 137:
4017 YY_RULE_SETUP
4018 #line 438 "scanner.l"
4019 { yylval->i = 12; return NUM; }
4020 	YY_BREAK
4021 case 138:
4022 YY_RULE_SETUP
4023 #line 439 "scanner.l"
4024 { yylval->i = 13; return NUM; }
4025 	YY_BREAK
4026 case 139:
4027 YY_RULE_SETUP
4028 #line 440 "scanner.l"
4029 { yylval->i = 14; return NUM; }
4030 	YY_BREAK
4031 case 140:
4032 YY_RULE_SETUP
4033 #line 441 "scanner.l"
4034 { yylval->i = 15; return NUM; }
4035 	YY_BREAK
4036 case 141:
4037 YY_RULE_SETUP
4038 #line 442 "scanner.l"
4039 { yylval->i = 16; return NUM; }
4040 	YY_BREAK
4041 case 142:
4042 YY_RULE_SETUP
4043 #line 443 "scanner.l"
4044 { yylval->i = 17; return NUM; }
4045 	YY_BREAK
4046 case 143:
4047 YY_RULE_SETUP
4048 #line 444 "scanner.l"
4049 { yylval->i = 18; return NUM; }
4050 	YY_BREAK
4051 case 144:
4052 YY_RULE_SETUP
4053 #line 446 "scanner.l"
4054 { yylval->i = 0; return NUM; }
4055 	YY_BREAK
4056 case 145:
4057 YY_RULE_SETUP
4058 #line 447 "scanner.l"
4059 { yylval->i = 1; return NUM; }
4060 	YY_BREAK
4061 case 146:
4062 YY_RULE_SETUP
4063 #line 449 "scanner.l"
4064 { yylval->i = 128; return NUM; }
4065 	YY_BREAK
4066 case 147:
4067 YY_RULE_SETUP
4068 #line 450 "scanner.l"
4069 { yylval->i = 129; return NUM; }
4070 	YY_BREAK
4071 case 148:
4072 YY_RULE_SETUP
4073 #line 451 "scanner.l"
4074 { yylval->i = 130; return NUM; }
4075 	YY_BREAK
4076 case 149:
4077 YY_RULE_SETUP
4078 #line 452 "scanner.l"
4079 { yylval->i = 131; return NUM; }
4080 	YY_BREAK
4081 case 150:
4082 YY_RULE_SETUP
4083 #line 453 "scanner.l"
4084 { yylval->i = 132; return NUM; }
4085 	YY_BREAK
4086 case 151:
4087 YY_RULE_SETUP
4088 #line 454 "scanner.l"
4089 { yylval->i = 133; return NUM; }
4090 	YY_BREAK
4091 case 152:
4092 YY_RULE_SETUP
4093 #line 455 "scanner.l"
4094 { yylval->i = 134; return NUM; }
4095 	YY_BREAK
4096 case 153:
4097 YY_RULE_SETUP
4098 #line 456 "scanner.l"
4099 { yylval->i = 135; return NUM; }
4100 	YY_BREAK
4101 case 154:
4102 YY_RULE_SETUP
4103 #line 457 "scanner.l"
4104 { yylval->i = 136; return NUM; }
4105 	YY_BREAK
4106 case 155:
4107 YY_RULE_SETUP
4108 #line 458 "scanner.l"
4109 { yylval->i = 137; return NUM; }
4110 	YY_BREAK
4111 case 156:
4112 YY_RULE_SETUP
4113 #line 459 "scanner.l"
4114 { yylval->i = 138; return NUM; }
4115 	YY_BREAK
4116 case 157:
4117 YY_RULE_SETUP
4118 #line 460 "scanner.l"
4119 { yylval->i = 139; return NUM; }
4120 	YY_BREAK
4121 case 158:
4122 YY_RULE_SETUP
4123 #line 461 "scanner.l"
4124 { yylval->i = 140; return NUM; }
4125 	YY_BREAK
4126 case 159:
4127 YY_RULE_SETUP
4128 #line 462 "scanner.l"
4129 { yylval->i = 141; return NUM; }
4130 	YY_BREAK
4131 case 160:
4132 YY_RULE_SETUP
4133 #line 463 "scanner.l"
4134 { yylval->i = 142; return NUM; }
4135 	YY_BREAK
4136 case 161:
4137 YY_RULE_SETUP
4138 #line 464 "scanner.l"
4139 { yylval->i = 143; return NUM; }
4140 	YY_BREAK
4141 case 162:
4142 YY_RULE_SETUP
4143 #line 465 "scanner.l"
4144 { yylval->i = 144; return NUM; }
4145 	YY_BREAK
4146 case 163:
4147 YY_RULE_SETUP
4148 #line 466 "scanner.l"
4149 { yylval->i = 145; return NUM; }
4150 	YY_BREAK
4151 case 164:
4152 YY_RULE_SETUP
4153 #line 467 "scanner.l"
4154 { yylval->i = 146; return NUM; }
4155 	YY_BREAK
4156 case 165:
4157 YY_RULE_SETUP
4158 #line 468 "scanner.l"
4159 { yylval->i = 147; return NUM; }
4160 	YY_BREAK
4161 case 166:
4162 YY_RULE_SETUP
4163 #line 469 "scanner.l"
4164 { yylval->i = 148; return NUM; }
4165 	YY_BREAK
4166 case 167:
4167 YY_RULE_SETUP
4168 #line 470 "scanner.l"
4169 { yylval->i = 149; return NUM; }
4170 	YY_BREAK
4171 case 168:
4172 YY_RULE_SETUP
4173 #line 471 "scanner.l"
4174 { yylval->i = 151; return NUM; }
4175 	YY_BREAK
4176 case 169:
4177 YY_RULE_SETUP
4178 #line 472 "scanner.l"
4179 { yylval->i = 152; return NUM; }
4180 	YY_BREAK
4181 case 170:
4182 YY_RULE_SETUP
4183 #line 473 "scanner.l"
4184 { yylval->i = 153; return NUM; }
4185 	YY_BREAK
4186 case 171:
4187 YY_RULE_SETUP
4188 #line 475 "scanner.l"
4189 { yylval->i = 13; return NUM; }
4190 	YY_BREAK
4191 case 172:
4192 YY_RULE_SETUP
4193 #line 476 "scanner.l"
4194 { yylval->i = 0x01; return NUM; }
4195 	YY_BREAK
4196 case 173:
4197 YY_RULE_SETUP
4198 #line 477 "scanner.l"
4199 { yylval->i = 0x02; return NUM; }
4200 	YY_BREAK
4201 case 174:
4202 YY_RULE_SETUP
4203 #line 478 "scanner.l"
4204 { yylval->i = 0x04; return NUM; }
4205 	YY_BREAK
4206 case 175:
4207 YY_RULE_SETUP
4208 #line 479 "scanner.l"
4209 { yylval->i = 0x08; return NUM; }
4210 	YY_BREAK
4211 case 176:
4212 YY_RULE_SETUP
4213 #line 480 "scanner.l"
4214 { yylval->i = 0x10; return NUM; }
4215 	YY_BREAK
4216 case 177:
4217 YY_RULE_SETUP
4218 #line 481 "scanner.l"
4219 { yylval->i = 0x20; return NUM; }
4220 	YY_BREAK
4221 case 178:
4222 YY_RULE_SETUP
4223 #line 482 "scanner.l"
4224 { yylval->i = 0x40; return NUM; }
4225 	YY_BREAK
4226 case 179:
4227 YY_RULE_SETUP
4228 #line 483 "scanner.l"
4229 { yylval->i = 0x80; return NUM; }
4230 	YY_BREAK
4231 case 180:
4232 YY_RULE_SETUP
4233 #line 484 "scanner.l"
4234 {
4235 			 yylval->s = sdup(yyextra, (char *)yytext); return ID; }
4236 	YY_BREAK
4237 case 181:
4238 YY_RULE_SETUP
4239 #line 486 "scanner.l"
4240 { yylval->s = sdup(yyextra, (char *)yytext + 1); return ID; }
4241 	YY_BREAK
4242 case 182:
4243 YY_RULE_SETUP
4244 #line 487 "scanner.l"
4245 {
4246 			bpf_error(yyextra, "illegal token: %s", yytext); }
4247 	YY_BREAK
4248 case 183:
4249 YY_RULE_SETUP
4250 #line 489 "scanner.l"
4251 { bpf_error(yyextra, "illegal char '%c'", *yytext); }
4252 	YY_BREAK
4253 case 184:
4254 YY_RULE_SETUP
4255 #line 490 "scanner.l"
4256 ECHO;
4257 	YY_BREAK
4258 #line 4259 "scanner.c"
4259 case YY_STATE_EOF(INITIAL):
4260 	yyterminate();
4261 
4262 	case YY_END_OF_BUFFER:
4263 		{
4264 		/* Amount of text matched not including the EOB char. */
4265 		int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1;
4266 
4267 		/* Undo the effects of YY_DO_BEFORE_ACTION. */
4268 		*yy_cp = yyg->yy_hold_char;
4269 		YY_RESTORE_YY_MORE_OFFSET
4270 
4271 		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
4272 			{
4273 			/* We're scanning a new file or input source.  It's
4274 			 * possible that this happened because the user
4275 			 * just pointed yyin at a new source and called
4276 			 * pcap_lex().  If so, then we have to assure
4277 			 * consistency between YY_CURRENT_BUFFER and our
4278 			 * globals.  Here is the right place to do so, because
4279 			 * this is the first action (other than possibly a
4280 			 * back-up) that will match for the new input source.
4281 			 */
4282 			yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
4283 			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
4284 			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
4285 			}
4286 
4287 		/* Note that here we test for yy_c_buf_p "<=" to the position
4288 		 * of the first EOB in the buffer, since yy_c_buf_p will
4289 		 * already have been incremented past the NUL character
4290 		 * (since all states make transitions on EOB to the
4291 		 * end-of-buffer state).  Contrast this with the test
4292 		 * in input().
4293 		 */
4294 		if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
4295 			{ /* This was really a NUL. */
4296 			yy_state_type yy_next_state;
4297 
4298 			yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text;
4299 
4300 			yy_current_state = yy_get_previous_state( yyscanner );
4301 
4302 			/* Okay, we're now positioned to make the NUL
4303 			 * transition.  We couldn't have
4304 			 * yy_get_previous_state() go ahead and do it
4305 			 * for us because it doesn't know how to deal
4306 			 * with the possibility of jamming (and we don't
4307 			 * want to build jamming into it because then it
4308 			 * will run more slowly).
4309 			 */
4310 
4311 			yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner);
4312 
4313 			yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
4314 
4315 			if ( yy_next_state )
4316 				{
4317 				/* Consume the NUL. */
4318 				yy_cp = ++yyg->yy_c_buf_p;
4319 				yy_current_state = yy_next_state;
4320 				goto yy_match;
4321 				}
4322 
4323 			else
4324 				{
4325 				yy_cp = yyg->yy_last_accepting_cpos;
4326 				yy_current_state = yyg->yy_last_accepting_state;
4327 				goto yy_find_action;
4328 				}
4329 			}
4330 
4331 		else switch ( yy_get_next_buffer( yyscanner ) )
4332 			{
4333 			case EOB_ACT_END_OF_FILE:
4334 				{
4335 				yyg->yy_did_buffer_switch_on_eof = 0;
4336 
4337 				if ( pcap_wrap(yyscanner ) )
4338 					{
4339 					/* Note: because we've taken care in
4340 					 * yy_get_next_buffer() to have set up
4341 					 * yytext, we can now set up
4342 					 * yy_c_buf_p so that if some total
4343 					 * hoser (like flex itself) wants to
4344 					 * call the scanner after we return the
4345 					 * YY_NULL, it'll still work - another
4346 					 * YY_NULL will get returned.
4347 					 */
4348 					yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ;
4349 
4350 					yy_act = YY_STATE_EOF(YY_START);
4351 					goto do_action;
4352 					}
4353 
4354 				else
4355 					{
4356 					if ( ! yyg->yy_did_buffer_switch_on_eof )
4357 						YY_NEW_FILE;
4358 					}
4359 				break;
4360 				}
4361 
4362 			case EOB_ACT_CONTINUE_SCAN:
4363 				yyg->yy_c_buf_p =
4364 					yyg->yytext_ptr + yy_amount_of_matched_text;
4365 
4366 				yy_current_state = yy_get_previous_state( yyscanner );
4367 
4368 				yy_cp = yyg->yy_c_buf_p;
4369 				yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
4370 				goto yy_match;
4371 
4372 			case EOB_ACT_LAST_MATCH:
4373 				yyg->yy_c_buf_p =
4374 				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars];
4375 
4376 				yy_current_state = yy_get_previous_state( yyscanner );
4377 
4378 				yy_cp = yyg->yy_c_buf_p;
4379 				yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
4380 				goto yy_find_action;
4381 			}
4382 		break;
4383 		}
4384 
4385 	default:
4386 		YY_FATAL_ERROR(
4387 			"fatal flex scanner internal error--no action found" );
4388 	} /* end of action switch */
4389 		} /* end of scanning one token */
4390 	} /* end of user's declarations */
4391 } /* end of pcap_lex */
4392 
4393 /* yy_get_next_buffer - try to read in a new buffer
4394  *
4395  * Returns a code representing an action:
4396  *	EOB_ACT_LAST_MATCH -
4397  *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
4398  *	EOB_ACT_END_OF_FILE - end of file
4399  */
yy_get_next_buffer(yyscan_t yyscanner)4400 static int yy_get_next_buffer (yyscan_t yyscanner)
4401 {
4402     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4403 	char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
4404 	char *source = yyg->yytext_ptr;
4405 	int number_to_move, i;
4406 	int ret_val;
4407 
4408 	if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] )
4409 		YY_FATAL_ERROR(
4410 		"fatal flex scanner internal error--end of buffer missed" );
4411 
4412 	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
4413 		{ /* Don't try to fill the buffer, so this is an EOF. */
4414 		if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 )
4415 			{
4416 			/* We matched a single character, the EOB, so
4417 			 * treat this as a final EOF.
4418 			 */
4419 			return EOB_ACT_END_OF_FILE;
4420 			}
4421 
4422 		else
4423 			{
4424 			/* We matched some text prior to the EOB, first
4425 			 * process it.
4426 			 */
4427 			return EOB_ACT_LAST_MATCH;
4428 			}
4429 		}
4430 
4431 	/* Try to read more data. */
4432 
4433 	/* First move last chars to start of buffer. */
4434 	number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr - 1);
4435 
4436 	for ( i = 0; i < number_to_move; ++i )
4437 		*(dest++) = *(source++);
4438 
4439 	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
4440 		/* don't do the read, it's not guaranteed to return an EOF,
4441 		 * just force an EOF
4442 		 */
4443 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0;
4444 
4445 	else
4446 		{
4447 			int num_to_read =
4448 			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
4449 
4450 		while ( num_to_read <= 0 )
4451 			{ /* Not enough room in the buffer - grow it. */
4452 
4453 			/* just a shorter name for the current buffer */
4454 			YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
4455 
4456 			int yy_c_buf_p_offset =
4457 				(int) (yyg->yy_c_buf_p - b->yy_ch_buf);
4458 
4459 			if ( b->yy_is_our_buffer )
4460 				{
4461 				int new_size = b->yy_buf_size * 2;
4462 
4463 				if ( new_size <= 0 )
4464 					b->yy_buf_size += b->yy_buf_size / 8;
4465 				else
4466 					b->yy_buf_size *= 2;
4467 
4468 				b->yy_ch_buf = (char *)
4469 					/* Include room in for 2 EOB chars. */
4470 					pcap_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ,yyscanner );
4471 				}
4472 			else
4473 				/* Can't grow it, we don't own it. */
4474 				b->yy_ch_buf = NULL;
4475 
4476 			if ( ! b->yy_ch_buf )
4477 				YY_FATAL_ERROR(
4478 				"fatal error - scanner input buffer overflow" );
4479 
4480 			yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
4481 
4482 			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
4483 						number_to_move - 1;
4484 
4485 			}
4486 
4487 		if ( num_to_read > YY_READ_BUF_SIZE )
4488 			num_to_read = YY_READ_BUF_SIZE;
4489 
4490 		/* Read in more data. */
4491 		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
4492 			yyg->yy_n_chars, num_to_read );
4493 
4494 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
4495 		}
4496 
4497 	if ( yyg->yy_n_chars == 0 )
4498 		{
4499 		if ( number_to_move == YY_MORE_ADJ )
4500 			{
4501 			ret_val = EOB_ACT_END_OF_FILE;
4502 			pcap_restart(yyin  ,yyscanner);
4503 			}
4504 
4505 		else
4506 			{
4507 			ret_val = EOB_ACT_LAST_MATCH;
4508 			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
4509 				YY_BUFFER_EOF_PENDING;
4510 			}
4511 		}
4512 
4513 	else
4514 		ret_val = EOB_ACT_CONTINUE_SCAN;
4515 
4516 	if ((yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
4517 		/* Extend the array by 50%, plus the number we really need. */
4518 		int new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1);
4519 		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) pcap_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ,yyscanner );
4520 		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
4521 			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
4522 	}
4523 
4524 	yyg->yy_n_chars += number_to_move;
4525 	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR;
4526 	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
4527 
4528 	yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
4529 
4530 	return ret_val;
4531 }
4532 
4533 /* yy_get_previous_state - get the state just before the EOB char was reached */
4534 
yy_get_previous_state(yyscan_t yyscanner)4535     static yy_state_type yy_get_previous_state (yyscan_t yyscanner)
4536 {
4537 	yy_state_type yy_current_state;
4538 	char *yy_cp;
4539     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4540 
4541 	yy_current_state = yyg->yy_start;
4542 
4543 	for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp )
4544 		{
4545 		YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
4546 		if ( yy_accept[yy_current_state] )
4547 			{
4548 			yyg->yy_last_accepting_state = yy_current_state;
4549 			yyg->yy_last_accepting_cpos = yy_cp;
4550 			}
4551 		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
4552 			{
4553 			yy_current_state = (int) yy_def[yy_current_state];
4554 			if ( yy_current_state >= 1729 )
4555 				yy_c = yy_meta[(unsigned int) yy_c];
4556 			}
4557 		yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
4558 		}
4559 
4560 	return yy_current_state;
4561 }
4562 
4563 /* yy_try_NUL_trans - try to make a transition on the NUL character
4564  *
4565  * synopsis
4566  *	next_state = yy_try_NUL_trans( current_state );
4567  */
yy_try_NUL_trans(yy_state_type yy_current_state,yyscan_t yyscanner)4568     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state , yyscan_t yyscanner)
4569 {
4570 	int yy_is_jam;
4571     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */
4572 	char *yy_cp = yyg->yy_c_buf_p;
4573 
4574 	YY_CHAR yy_c = 1;
4575 	if ( yy_accept[yy_current_state] )
4576 		{
4577 		yyg->yy_last_accepting_state = yy_current_state;
4578 		yyg->yy_last_accepting_cpos = yy_cp;
4579 		}
4580 	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
4581 		{
4582 		yy_current_state = (int) yy_def[yy_current_state];
4583 		if ( yy_current_state >= 1729 )
4584 			yy_c = yy_meta[(unsigned int) yy_c];
4585 		}
4586 	yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
4587 	yy_is_jam = (yy_current_state == 1728);
4588 
4589 	(void)yyg;
4590 	return yy_is_jam ? 0 : yy_current_state;
4591 }
4592 
4593 #ifndef YY_NO_UNPUT
4594 
4595 #endif
4596 
4597 #ifndef YY_NO_INPUT
4598 #ifdef __cplusplus
yyinput(yyscan_t yyscanner)4599     static int yyinput (yyscan_t yyscanner)
4600 #else
4601     static int input  (yyscan_t yyscanner)
4602 #endif
4603 
4604 {
4605 	int c;
4606     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4607 
4608 	*yyg->yy_c_buf_p = yyg->yy_hold_char;
4609 
4610 	if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
4611 		{
4612 		/* yy_c_buf_p now points to the character we want to return.
4613 		 * If this occurs *before* the EOB characters, then it's a
4614 		 * valid NUL; if not, then we've hit the end of the buffer.
4615 		 */
4616 		if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
4617 			/* This was really a NUL. */
4618 			*yyg->yy_c_buf_p = '\0';
4619 
4620 		else
4621 			{ /* need more input */
4622 			int offset = yyg->yy_c_buf_p - yyg->yytext_ptr;
4623 			++yyg->yy_c_buf_p;
4624 
4625 			switch ( yy_get_next_buffer( yyscanner ) )
4626 				{
4627 				case EOB_ACT_LAST_MATCH:
4628 					/* This happens because yy_g_n_b()
4629 					 * sees that we've accumulated a
4630 					 * token and flags that we need to
4631 					 * try matching the token before
4632 					 * proceeding.  But for input(),
4633 					 * there's no matching to consider.
4634 					 * So convert the EOB_ACT_LAST_MATCH
4635 					 * to EOB_ACT_END_OF_FILE.
4636 					 */
4637 
4638 					/* Reset buffer status. */
4639 					pcap_restart(yyin ,yyscanner);
4640 
4641 					/*FALLTHROUGH*/
4642 
4643 				case EOB_ACT_END_OF_FILE:
4644 					{
4645 					if ( pcap_wrap(yyscanner ) )
4646 						return 0;
4647 
4648 					if ( ! yyg->yy_did_buffer_switch_on_eof )
4649 						YY_NEW_FILE;
4650 #ifdef __cplusplus
4651 					return yyinput(yyscanner);
4652 #else
4653 					return input(yyscanner);
4654 #endif
4655 					}
4656 
4657 				case EOB_ACT_CONTINUE_SCAN:
4658 					yyg->yy_c_buf_p = yyg->yytext_ptr + offset;
4659 					break;
4660 				}
4661 			}
4662 		}
4663 
4664 	c = *(unsigned char *) yyg->yy_c_buf_p;	/* cast for 8-bit char's */
4665 	*yyg->yy_c_buf_p = '\0';	/* preserve yytext */
4666 	yyg->yy_hold_char = *++yyg->yy_c_buf_p;
4667 
4668 	return c;
4669 }
4670 #endif	/* ifndef YY_NO_INPUT */
4671 
4672 /** Immediately switch to a different input stream.
4673  * @param input_file A readable stream.
4674  * @param yyscanner The scanner object.
4675  * @note This function does not reset the start condition to @c INITIAL .
4676  */
pcap_restart(FILE * input_file,yyscan_t yyscanner)4677     void pcap_restart  (FILE * input_file , yyscan_t yyscanner)
4678 {
4679     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4680 
4681 	if ( ! YY_CURRENT_BUFFER ){
4682         pcap_ensure_buffer_stack (yyscanner);
4683 		YY_CURRENT_BUFFER_LVALUE =
4684             pcap__create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
4685 	}
4686 
4687 	pcap__init_buffer(YY_CURRENT_BUFFER,input_file ,yyscanner);
4688 	pcap__load_buffer_state(yyscanner );
4689 }
4690 
4691 /** Switch to a different input buffer.
4692  * @param new_buffer The new input buffer.
4693  * @param yyscanner The scanner object.
4694  */
pcap__switch_to_buffer(YY_BUFFER_STATE new_buffer,yyscan_t yyscanner)4695     void pcap__switch_to_buffer  (YY_BUFFER_STATE  new_buffer , yyscan_t yyscanner)
4696 {
4697     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4698 
4699 	/* TODO. We should be able to replace this entire function body
4700 	 * with
4701 	 *		pcap_pop_buffer_state();
4702 	 *		pcap_push_buffer_state(new_buffer);
4703      */
4704 	pcap_ensure_buffer_stack (yyscanner);
4705 	if ( YY_CURRENT_BUFFER == new_buffer )
4706 		return;
4707 
4708 	if ( YY_CURRENT_BUFFER )
4709 		{
4710 		/* Flush out information for old buffer. */
4711 		*yyg->yy_c_buf_p = yyg->yy_hold_char;
4712 		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
4713 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
4714 		}
4715 
4716 	YY_CURRENT_BUFFER_LVALUE = new_buffer;
4717 	pcap__load_buffer_state(yyscanner );
4718 
4719 	/* We don't actually know whether we did this switch during
4720 	 * EOF (pcap_wrap()) processing, but the only time this flag
4721 	 * is looked at is after pcap_wrap() is called, so it's safe
4722 	 * to go ahead and always set it.
4723 	 */
4724 	yyg->yy_did_buffer_switch_on_eof = 1;
4725 }
4726 
pcap__load_buffer_state(yyscan_t yyscanner)4727 static void pcap__load_buffer_state  (yyscan_t yyscanner)
4728 {
4729     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4730 	yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
4731 	yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
4732 	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
4733 	yyg->yy_hold_char = *yyg->yy_c_buf_p;
4734 }
4735 
4736 /** Allocate and initialize an input buffer state.
4737  * @param file A readable stream.
4738  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
4739  * @param yyscanner The scanner object.
4740  * @return the allocated buffer state.
4741  */
pcap__create_buffer(FILE * file,int size,yyscan_t yyscanner)4742     YY_BUFFER_STATE pcap__create_buffer  (FILE * file, int  size , yyscan_t yyscanner)
4743 {
4744 	YY_BUFFER_STATE b;
4745 
4746 	b = (YY_BUFFER_STATE) pcap_alloc(sizeof( struct yy_buffer_state ) ,yyscanner );
4747 	if ( ! b )
4748 		YY_FATAL_ERROR( "out of dynamic memory in pcap__create_buffer()" );
4749 
4750 	b->yy_buf_size = (yy_size_t)size;
4751 
4752 	/* yy_ch_buf has to be 2 characters longer than the size given because
4753 	 * we need to put in 2 end-of-buffer characters.
4754 	 */
4755 	b->yy_ch_buf = (char *) pcap_alloc(b->yy_buf_size + 2 ,yyscanner );
4756 	if ( ! b->yy_ch_buf )
4757 		YY_FATAL_ERROR( "out of dynamic memory in pcap__create_buffer()" );
4758 
4759 	b->yy_is_our_buffer = 1;
4760 
4761 	pcap__init_buffer(b,file ,yyscanner);
4762 
4763 	return b;
4764 }
4765 
4766 /** Destroy the buffer.
4767  * @param b a buffer created with pcap__create_buffer()
4768  * @param yyscanner The scanner object.
4769  */
pcap__delete_buffer(YY_BUFFER_STATE b,yyscan_t yyscanner)4770     void pcap__delete_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
4771 {
4772     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4773 
4774 	if ( ! b )
4775 		return;
4776 
4777 	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
4778 		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
4779 
4780 	if ( b->yy_is_our_buffer )
4781 		pcap_free((void *) b->yy_ch_buf ,yyscanner );
4782 
4783 	pcap_free((void *) b ,yyscanner );
4784 }
4785 
4786 /* Initializes or reinitializes a buffer.
4787  * This function is sometimes called more than once on the same buffer,
4788  * such as during a pcap_restart() or at EOF.
4789  */
pcap__init_buffer(YY_BUFFER_STATE b,FILE * file,yyscan_t yyscanner)4790     static void pcap__init_buffer  (YY_BUFFER_STATE  b, FILE * file , yyscan_t yyscanner)
4791 
4792 {
4793 	int oerrno = errno;
4794     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4795 
4796 	pcap__flush_buffer(b ,yyscanner);
4797 
4798 	b->yy_input_file = file;
4799 	b->yy_fill_buffer = 1;
4800 
4801     /* If b is the current buffer, then pcap__init_buffer was _probably_
4802      * called from pcap_restart() or through yy_get_next_buffer.
4803      * In that case, we don't want to reset the lineno or column.
4804      */
4805     if (b != YY_CURRENT_BUFFER){
4806         b->yy_bs_lineno = 1;
4807         b->yy_bs_column = 0;
4808     }
4809 
4810         b->yy_is_interactive = 0;
4811 
4812 	errno = oerrno;
4813 }
4814 
4815 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
4816  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
4817  * @param yyscanner The scanner object.
4818  */
pcap__flush_buffer(YY_BUFFER_STATE b,yyscan_t yyscanner)4819     void pcap__flush_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
4820 {
4821     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4822 	if ( ! b )
4823 		return;
4824 
4825 	b->yy_n_chars = 0;
4826 
4827 	/* We always need two end-of-buffer characters.  The first causes
4828 	 * a transition to the end-of-buffer state.  The second causes
4829 	 * a jam in that state.
4830 	 */
4831 	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
4832 	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
4833 
4834 	b->yy_buf_pos = &b->yy_ch_buf[0];
4835 
4836 	b->yy_at_bol = 1;
4837 	b->yy_buffer_status = YY_BUFFER_NEW;
4838 
4839 	if ( b == YY_CURRENT_BUFFER )
4840 		pcap__load_buffer_state(yyscanner );
4841 }
4842 
4843 /** Pushes the new state onto the stack. The new state becomes
4844  *  the current state. This function will allocate the stack
4845  *  if necessary.
4846  *  @param new_buffer The new state.
4847  *  @param yyscanner The scanner object.
4848  */
pcap_push_buffer_state(YY_BUFFER_STATE new_buffer,yyscan_t yyscanner)4849 void pcap_push_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
4850 {
4851     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4852 	if (new_buffer == NULL)
4853 		return;
4854 
4855 	pcap_ensure_buffer_stack(yyscanner);
4856 
4857 	/* This block is copied from pcap__switch_to_buffer. */
4858 	if ( YY_CURRENT_BUFFER )
4859 		{
4860 		/* Flush out information for old buffer. */
4861 		*yyg->yy_c_buf_p = yyg->yy_hold_char;
4862 		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
4863 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
4864 		}
4865 
4866 	/* Only push if top exists. Otherwise, replace top. */
4867 	if (YY_CURRENT_BUFFER)
4868 		yyg->yy_buffer_stack_top++;
4869 	YY_CURRENT_BUFFER_LVALUE = new_buffer;
4870 
4871 	/* copied from pcap__switch_to_buffer. */
4872 	pcap__load_buffer_state(yyscanner );
4873 	yyg->yy_did_buffer_switch_on_eof = 1;
4874 }
4875 
4876 /** Removes and deletes the top of the stack, if present.
4877  *  The next element becomes the new top.
4878  *  @param yyscanner The scanner object.
4879  */
pcap_pop_buffer_state(yyscan_t yyscanner)4880 void pcap_pop_buffer_state (yyscan_t yyscanner)
4881 {
4882     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4883 	if (!YY_CURRENT_BUFFER)
4884 		return;
4885 
4886 	pcap__delete_buffer(YY_CURRENT_BUFFER ,yyscanner);
4887 	YY_CURRENT_BUFFER_LVALUE = NULL;
4888 	if (yyg->yy_buffer_stack_top > 0)
4889 		--yyg->yy_buffer_stack_top;
4890 
4891 	if (YY_CURRENT_BUFFER) {
4892 		pcap__load_buffer_state(yyscanner );
4893 		yyg->yy_did_buffer_switch_on_eof = 1;
4894 	}
4895 }
4896 
4897 /* Allocates the stack if it does not exist.
4898  *  Guarantees space for at least one push.
4899  */
pcap_ensure_buffer_stack(yyscan_t yyscanner)4900 static void pcap_ensure_buffer_stack (yyscan_t yyscanner)
4901 {
4902 	int num_to_alloc;
4903     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4904 
4905 	if (!yyg->yy_buffer_stack) {
4906 
4907 		/* First allocation is just for 2 elements, since we don't know if this
4908 		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
4909 		 * immediate realloc on the next call.
4910          */
4911       num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
4912 		yyg->yy_buffer_stack = (struct yy_buffer_state**)pcap_alloc
4913 								(num_to_alloc * sizeof(struct yy_buffer_state*)
4914 								, yyscanner);
4915 		if ( ! yyg->yy_buffer_stack )
4916 			YY_FATAL_ERROR( "out of dynamic memory in pcap_ensure_buffer_stack()" );
4917 
4918 		memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*));
4919 
4920 		yyg->yy_buffer_stack_max = num_to_alloc;
4921 		yyg->yy_buffer_stack_top = 0;
4922 		return;
4923 	}
4924 
4925 	if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){
4926 
4927 		/* Increase the buffer to prepare for a possible push. */
4928 		yy_size_t grow_size = 8 /* arbitrary grow size */;
4929 
4930 		num_to_alloc = yyg->yy_buffer_stack_max + grow_size;
4931 		yyg->yy_buffer_stack = (struct yy_buffer_state**)pcap_realloc
4932 								(yyg->yy_buffer_stack,
4933 								num_to_alloc * sizeof(struct yy_buffer_state*)
4934 								, yyscanner);
4935 		if ( ! yyg->yy_buffer_stack )
4936 			YY_FATAL_ERROR( "out of dynamic memory in pcap_ensure_buffer_stack()" );
4937 
4938 		/* zero only the new slots.*/
4939 		memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*));
4940 		yyg->yy_buffer_stack_max = num_to_alloc;
4941 	}
4942 }
4943 
4944 /** Setup the input buffer state to scan directly from a user-specified character buffer.
4945  * @param base the character buffer
4946  * @param size the size in bytes of the character buffer
4947  * @param yyscanner The scanner object.
4948  * @return the newly allocated buffer state object.
4949  */
pcap__scan_buffer(char * base,yy_size_t size,yyscan_t yyscanner)4950 YY_BUFFER_STATE pcap__scan_buffer  (char * base, yy_size_t  size , yyscan_t yyscanner)
4951 {
4952 	YY_BUFFER_STATE b;
4953 
4954 	if ( size < 2 ||
4955 	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
4956 	     base[size-1] != YY_END_OF_BUFFER_CHAR )
4957 		/* They forgot to leave room for the EOB's. */
4958 		return NULL;
4959 
4960 	b = (YY_BUFFER_STATE) pcap_alloc(sizeof( struct yy_buffer_state ) ,yyscanner );
4961 	if ( ! b )
4962 		YY_FATAL_ERROR( "out of dynamic memory in pcap__scan_buffer()" );
4963 
4964 	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
4965 	b->yy_buf_pos = b->yy_ch_buf = base;
4966 	b->yy_is_our_buffer = 0;
4967 	b->yy_input_file = NULL;
4968 	b->yy_n_chars = b->yy_buf_size;
4969 	b->yy_is_interactive = 0;
4970 	b->yy_at_bol = 1;
4971 	b->yy_fill_buffer = 0;
4972 	b->yy_buffer_status = YY_BUFFER_NEW;
4973 
4974 	pcap__switch_to_buffer(b ,yyscanner );
4975 
4976 	return b;
4977 }
4978 
4979 /** Setup the input buffer state to scan a string. The next call to pcap_lex() will
4980  * scan from a @e copy of @a str.
4981  * @param yystr a NUL-terminated string to scan
4982  * @param yyscanner The scanner object.
4983  * @return the newly allocated buffer state object.
4984  * @note If you want to scan bytes that may contain NUL values, then use
4985  *       pcap__scan_bytes() instead.
4986  */
pcap__scan_string(yyconst char * yystr,yyscan_t yyscanner)4987 YY_BUFFER_STATE pcap__scan_string (yyconst char * yystr , yyscan_t yyscanner)
4988 {
4989 
4990 	return pcap__scan_bytes(yystr,(int) strlen(yystr) ,yyscanner);
4991 }
4992 
4993 /** Setup the input buffer state to scan the given bytes. The next call to pcap_lex() will
4994  * scan from a @e copy of @a bytes.
4995  * @param yybytes the byte buffer to scan
4996  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
4997  * @param yyscanner The scanner object.
4998  * @return the newly allocated buffer state object.
4999  */
pcap__scan_bytes(yyconst char * yybytes,int _yybytes_len,yyscan_t yyscanner)5000 YY_BUFFER_STATE pcap__scan_bytes  (yyconst char * yybytes, int  _yybytes_len , yyscan_t yyscanner)
5001 {
5002 	YY_BUFFER_STATE b;
5003 	char *buf;
5004 	yy_size_t n;
5005 	int i;
5006 
5007 	/* Get memory for full buffer, including space for trailing EOB's. */
5008 	n = (yy_size_t) (_yybytes_len + 2);
5009 	buf = (char *) pcap_alloc(n ,yyscanner );
5010 	if ( ! buf )
5011 		YY_FATAL_ERROR( "out of dynamic memory in pcap__scan_bytes()" );
5012 
5013 	for ( i = 0; i < _yybytes_len; ++i )
5014 		buf[i] = yybytes[i];
5015 
5016 	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
5017 
5018 	b = pcap__scan_buffer(buf,n ,yyscanner);
5019 	if ( ! b )
5020 		YY_FATAL_ERROR( "bad buffer in pcap__scan_bytes()" );
5021 
5022 	/* It's okay to grow etc. this buffer, and we should throw it
5023 	 * away when we're done.
5024 	 */
5025 	b->yy_is_our_buffer = 1;
5026 
5027 	return b;
5028 }
5029 
5030 #ifndef YY_EXIT_FAILURE
5031 #define YY_EXIT_FAILURE 2
5032 #endif
5033 
yy_fatal_error(yyconst char * msg,yyscan_t yyscanner)5034 static void yynoreturn yy_fatal_error (yyconst char* msg , yyscan_t yyscanner)
5035 {
5036 	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5037 	(void)yyg;
5038 	(void) fprintf( stderr, "%s\n", msg );
5039 	exit( YY_EXIT_FAILURE );
5040 }
5041 
5042 /* Redefine yyless() so it works in section 3 code. */
5043 
5044 #undef yyless
5045 #define yyless(n) \
5046 	do \
5047 		{ \
5048 		/* Undo effects of setting up yytext. */ \
5049         int yyless_macro_arg = (n); \
5050         YY_LESS_LINENO(yyless_macro_arg);\
5051 		yytext[yyleng] = yyg->yy_hold_char; \
5052 		yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
5053 		yyg->yy_hold_char = *yyg->yy_c_buf_p; \
5054 		*yyg->yy_c_buf_p = '\0'; \
5055 		yyleng = yyless_macro_arg; \
5056 		} \
5057 	while ( 0 )
5058 
5059 /* Accessor  methods (get/set functions) to struct members. */
5060 
5061 /** Get the user-defined data for this scanner.
5062  * @param yyscanner The scanner object.
5063  */
pcap_get_extra(yyscan_t yyscanner)5064 YY_EXTRA_TYPE pcap_get_extra  (yyscan_t yyscanner)
5065 {
5066     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5067     return yyextra;
5068 }
5069 
5070 /** Get the current line number.
5071  * @param yyscanner The scanner object.
5072  */
pcap_get_lineno(yyscan_t yyscanner)5073 int pcap_get_lineno  (yyscan_t yyscanner)
5074 {
5075     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5076 
5077         if (! YY_CURRENT_BUFFER)
5078             return 0;
5079 
5080     return yylineno;
5081 }
5082 
5083 /** Get the current column number.
5084  * @param yyscanner The scanner object.
5085  */
pcap_get_column(yyscan_t yyscanner)5086 int pcap_get_column  (yyscan_t yyscanner)
5087 {
5088     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5089 
5090         if (! YY_CURRENT_BUFFER)
5091             return 0;
5092 
5093     return yycolumn;
5094 }
5095 
5096 /** Get the input stream.
5097  * @param yyscanner The scanner object.
5098  */
pcap_get_in(yyscan_t yyscanner)5099 FILE *pcap_get_in  (yyscan_t yyscanner)
5100 {
5101     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5102     return yyin;
5103 }
5104 
5105 /** Get the output stream.
5106  * @param yyscanner The scanner object.
5107  */
pcap_get_out(yyscan_t yyscanner)5108 FILE *pcap_get_out  (yyscan_t yyscanner)
5109 {
5110     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5111     return yyout;
5112 }
5113 
5114 /** Get the length of the current token.
5115  * @param yyscanner The scanner object.
5116  */
pcap_get_leng(yyscan_t yyscanner)5117 int pcap_get_leng  (yyscan_t yyscanner)
5118 {
5119     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5120     return yyleng;
5121 }
5122 
5123 /** Get the current token.
5124  * @param yyscanner The scanner object.
5125  */
5126 
pcap_get_text(yyscan_t yyscanner)5127 char *pcap_get_text  (yyscan_t yyscanner)
5128 {
5129     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5130     return yytext;
5131 }
5132 
5133 /** Set the user-defined data. This data is never touched by the scanner.
5134  * @param user_defined The data to be associated with this scanner.
5135  * @param yyscanner The scanner object.
5136  */
pcap_set_extra(YY_EXTRA_TYPE user_defined,yyscan_t yyscanner)5137 void pcap_set_extra (YY_EXTRA_TYPE  user_defined , yyscan_t yyscanner)
5138 {
5139     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5140     yyextra = user_defined ;
5141 }
5142 
5143 /** Set the current line number.
5144  * @param _line_number line number
5145  * @param yyscanner The scanner object.
5146  */
pcap_set_lineno(int _line_number,yyscan_t yyscanner)5147 void pcap_set_lineno (int  _line_number , yyscan_t yyscanner)
5148 {
5149     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5150 
5151         /* lineno is only valid if an input buffer exists. */
5152         if (! YY_CURRENT_BUFFER )
5153            YY_FATAL_ERROR( "pcap_set_lineno called with no buffer" );
5154 
5155     yylineno = _line_number;
5156 }
5157 
5158 /** Set the current column.
5159  * @param _column_no column number
5160  * @param yyscanner The scanner object.
5161  */
pcap_set_column(int _column_no,yyscan_t yyscanner)5162 void pcap_set_column (int  _column_no , yyscan_t yyscanner)
5163 {
5164     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5165 
5166         /* column is only valid if an input buffer exists. */
5167         if (! YY_CURRENT_BUFFER )
5168            YY_FATAL_ERROR( "pcap_set_column called with no buffer" );
5169 
5170     yycolumn = _column_no;
5171 }
5172 
5173 /** Set the input stream. This does not discard the current
5174  * input buffer.
5175  * @param _in_str A readable stream.
5176  * @param yyscanner The scanner object.
5177  * @see pcap__switch_to_buffer
5178  */
pcap_set_in(FILE * _in_str,yyscan_t yyscanner)5179 void pcap_set_in (FILE *  _in_str , yyscan_t yyscanner)
5180 {
5181     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5182     yyin = _in_str ;
5183 }
5184 
pcap_set_out(FILE * _out_str,yyscan_t yyscanner)5185 void pcap_set_out (FILE *  _out_str , yyscan_t yyscanner)
5186 {
5187     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5188     yyout = _out_str ;
5189 }
5190 
pcap_get_debug(yyscan_t yyscanner)5191 int pcap_get_debug  (yyscan_t yyscanner)
5192 {
5193     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5194     return yy_flex_debug;
5195 }
5196 
pcap_set_debug(int _bdebug,yyscan_t yyscanner)5197 void pcap_set_debug (int  _bdebug , yyscan_t yyscanner)
5198 {
5199     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5200     yy_flex_debug = _bdebug ;
5201 }
5202 
5203 /* Accessor methods for yylval and yylloc */
5204 
pcap_get_lval(yyscan_t yyscanner)5205 YYSTYPE * pcap_get_lval  (yyscan_t yyscanner)
5206 {
5207     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5208     return yylval;
5209 }
5210 
pcap_set_lval(YYSTYPE * yylval_param,yyscan_t yyscanner)5211 void pcap_set_lval (YYSTYPE *  yylval_param , yyscan_t yyscanner)
5212 {
5213     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5214     yylval = yylval_param;
5215 }
5216 
5217 /* User-visible API */
5218 
5219 /* pcap_lex_init is special because it creates the scanner itself, so it is
5220  * the ONLY reentrant function that doesn't take the scanner as the last argument.
5221  * That's why we explicitly handle the declaration, instead of using our macros.
5222  */
5223 
pcap_lex_init(yyscan_t * ptr_yy_globals)5224 int pcap_lex_init(yyscan_t* ptr_yy_globals)
5225 
5226 {
5227     if (ptr_yy_globals == NULL){
5228         errno = EINVAL;
5229         return 1;
5230     }
5231 
5232     *ptr_yy_globals = (yyscan_t) pcap_alloc ( sizeof( struct yyguts_t ), NULL );
5233 
5234     if (*ptr_yy_globals == NULL){
5235         errno = ENOMEM;
5236         return 1;
5237     }
5238 
5239     /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */
5240     memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
5241 
5242     return yy_init_globals ( *ptr_yy_globals );
5243 }
5244 
5245 /* pcap_lex_init_extra has the same functionality as pcap_lex_init, but follows the
5246  * convention of taking the scanner as the last argument. Note however, that
5247  * this is a *pointer* to a scanner, as it will be allocated by this call (and
5248  * is the reason, too, why this function also must handle its own declaration).
5249  * The user defined value in the first argument will be available to pcap_alloc in
5250  * the yyextra field.
5251  */
5252 
pcap_lex_init_extra(YY_EXTRA_TYPE yy_user_defined,yyscan_t * ptr_yy_globals)5253 int pcap_lex_init_extra(YY_EXTRA_TYPE yy_user_defined,yyscan_t* ptr_yy_globals )
5254 
5255 {
5256     struct yyguts_t dummy_yyguts;
5257 
5258     pcap_set_extra (yy_user_defined, &dummy_yyguts);
5259 
5260     if (ptr_yy_globals == NULL){
5261         errno = EINVAL;
5262         return 1;
5263     }
5264 
5265     *ptr_yy_globals = (yyscan_t) pcap_alloc ( sizeof( struct yyguts_t ), &dummy_yyguts );
5266 
5267     if (*ptr_yy_globals == NULL){
5268         errno = ENOMEM;
5269         return 1;
5270     }
5271 
5272     /* By setting to 0xAA, we expose bugs in
5273     yy_init_globals. Leave at 0x00 for releases. */
5274     memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
5275 
5276     pcap_set_extra (yy_user_defined, *ptr_yy_globals);
5277 
5278     return yy_init_globals ( *ptr_yy_globals );
5279 }
5280 
yy_init_globals(yyscan_t yyscanner)5281 static int yy_init_globals (yyscan_t yyscanner)
5282 {
5283     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5284     /* Initialization is the same as for the non-reentrant scanner.
5285      * This function is called from pcap_lex_destroy(), so don't allocate here.
5286      */
5287 
5288     yyg->yy_buffer_stack = NULL;
5289     yyg->yy_buffer_stack_top = 0;
5290     yyg->yy_buffer_stack_max = 0;
5291     yyg->yy_c_buf_p = NULL;
5292     yyg->yy_init = 0;
5293     yyg->yy_start = 0;
5294 
5295     yyg->yy_start_stack_ptr = 0;
5296     yyg->yy_start_stack_depth = 0;
5297     yyg->yy_start_stack =  NULL;
5298 
5299 /* Defined in main.c */
5300 #ifdef YY_STDINIT
5301     yyin = stdin;
5302     yyout = stdout;
5303 #else
5304     yyin = NULL;
5305     yyout = NULL;
5306 #endif
5307 
5308     /* For future reference: Set errno on error, since we are called by
5309      * pcap_lex_init()
5310      */
5311     return 0;
5312 }
5313 
5314 /* pcap_lex_destroy is for both reentrant and non-reentrant scanners. */
pcap_lex_destroy(yyscan_t yyscanner)5315 int pcap_lex_destroy  (yyscan_t yyscanner)
5316 {
5317     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5318 
5319     /* Pop the buffer stack, destroying each element. */
5320 	while(YY_CURRENT_BUFFER){
5321 		pcap__delete_buffer(YY_CURRENT_BUFFER ,yyscanner );
5322 		YY_CURRENT_BUFFER_LVALUE = NULL;
5323 		pcap_pop_buffer_state(yyscanner);
5324 	}
5325 
5326 	/* Destroy the stack itself. */
5327 	pcap_free(yyg->yy_buffer_stack ,yyscanner);
5328 	yyg->yy_buffer_stack = NULL;
5329 
5330     /* Destroy the start condition stack. */
5331         pcap_free(yyg->yy_start_stack ,yyscanner );
5332         yyg->yy_start_stack = NULL;
5333 
5334     /* Reset the globals. This is important in a non-reentrant scanner so the next time
5335      * pcap_lex() is called, initialization will occur. */
5336     yy_init_globals( yyscanner);
5337 
5338     /* Destroy the main struct (reentrant only). */
5339     pcap_free ( yyscanner , yyscanner );
5340     yyscanner = NULL;
5341     return 0;
5342 }
5343 
5344 /*
5345  * Internal utility routines.
5346  */
5347 
5348 #ifndef yytext_ptr
yy_flex_strncpy(char * s1,yyconst char * s2,int n,yyscan_t yyscanner)5349 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yyscanner)
5350 {
5351 	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5352 	(void)yyg;
5353 
5354 	int i;
5355 	for ( i = 0; i < n; ++i )
5356 		s1[i] = s2[i];
5357 }
5358 #endif
5359 
5360 #ifdef YY_NEED_STRLEN
yy_flex_strlen(yyconst char * s,yyscan_t yyscanner)5361 static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner)
5362 {
5363 	int n;
5364 	for ( n = 0; s[n]; ++n )
5365 		;
5366 
5367 	return n;
5368 }
5369 #endif
5370 
pcap_alloc(yy_size_t size,yyscan_t yyscanner)5371 void *pcap_alloc (yy_size_t  size , yyscan_t yyscanner)
5372 {
5373 	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5374 	(void)yyg;
5375 	return malloc(size);
5376 }
5377 
pcap_realloc(void * ptr,yy_size_t size,yyscan_t yyscanner)5378 void *pcap_realloc  (void * ptr, yy_size_t  size , yyscan_t yyscanner)
5379 {
5380 	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5381 	(void)yyg;
5382 
5383 	/* The cast to (char *) in the following accommodates both
5384 	 * implementations that use char* generic pointers, and those
5385 	 * that use void* generic pointers.  It works with the latter
5386 	 * because both ANSI C and C++ allow castless assignment from
5387 	 * any pointer type to void*, and deal with argument conversions
5388 	 * as though doing an assignment.
5389 	 */
5390 	return realloc(ptr, size);
5391 }
5392 
pcap_free(void * ptr,yyscan_t yyscanner)5393 void pcap_free (void * ptr , yyscan_t yyscanner)
5394 {
5395 	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5396 	(void)yyg;
5397 	free( (char *) ptr );	/* see pcap_realloc() for (char *) cast */
5398 }
5399 
5400 #define YYTABLES_NAME "yytables"
5401 
5402 #line 490 "scanner.l"
5403 
5404 
5405 
5406 /*
5407  * Turn diagnostics back on, so we check the code that we've written.
5408  */
5409 DIAG_ON_FLEX
5410 
5411 /* Hex digit to integer. */
5412 static inline int
xdtoi(int c)5413 xdtoi(int c)
5414 {
5415 	if (isdigit(c))
5416 		return c - '0';
5417 	else if (islower(c))
5418 		return c - 'a' + 10;
5419 	else
5420 		return c - 'A' + 10;
5421 }
5422 
5423 /*
5424  * Convert string to integer.  Just like atoi(), but checks for
5425  * preceding 0x or 0 and uses hex or octal instead of decimal.
5426  */
5427 static int
stoi(char * s)5428 stoi(char *s)
5429 {
5430 	int base = 10;
5431 	int n = 0;
5432 
5433 	if (*s == '0') {
5434 		if (s[1] == 'x' || s[1] == 'X') {
5435 			s += 2;
5436 			base = 16;
5437 		}
5438 		else {
5439 			base = 8;
5440 			s += 1;
5441 		}
5442 	}
5443 	while (*s)
5444 		n = n * base + xdtoi(*s++);
5445 
5446 	return n;
5447 }
5448 
5449