• Home
  • History
  • Annotate
  • 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