1 #line 2 "sf_scanner.c"
2 
3 #line 4 "sf_scanner.c"
4 
5 #define  YY_INT_ALIGNED short int
6 
7 /* A lexical scanner generated by flex */
8 
9 #define yy_create_buffer sfbpf__create_buffer
10 #define yy_delete_buffer sfbpf__delete_buffer
11 #define yy_flex_debug sfbpf__flex_debug
12 #define yy_init_buffer sfbpf__init_buffer
13 #define yy_flush_buffer sfbpf__flush_buffer
14 #define yy_load_buffer_state sfbpf__load_buffer_state
15 #define yy_switch_to_buffer sfbpf__switch_to_buffer
16 #define yyin sfbpf_in
17 #define yyleng sfbpf_leng
18 #define yylex sfbpf_lex
19 #define yylineno sfbpf_lineno
20 #define yyout sfbpf_out
21 #define yyrestart sfbpf_restart
22 #define yytext sfbpf_text
23 #define yywrap sfbpf_wrap
24 #define yyalloc sfbpf_alloc
25 #define yyrealloc sfbpf_realloc
26 #define yyfree sfbpf_free
27 
28 #define FLEX_SCANNER
29 #define YY_FLEX_MAJOR_VERSION 2
30 #define YY_FLEX_MINOR_VERSION 5
31 #define YY_FLEX_SUBMINOR_VERSION 35
32 #if YY_FLEX_SUBMINOR_VERSION > 0
33 #define FLEX_BETA
34 #endif
35 
36 /* First, we deal with  platform-specific or compiler-specific issues. */
37 
38 /* begin standard C headers. */
39 #include <stdio.h>
40 #include <string.h>
41 #include <errno.h>
42 #include <stdlib.h>
43 
44 /* end standard C headers. */
45 
46 /* flex integer type definitions */
47 
48 #ifndef FLEXINT_H
49 #define FLEXINT_H
50 
51 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
52 
53 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
54 
55 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
56  * if you want the limit (max/min) macros for int types.
57  */
58 #ifndef __STDC_LIMIT_MACROS
59 #define __STDC_LIMIT_MACROS 1
60 #endif
61 
62 #include <inttypes.h>
63 typedef int8_t flex_int8_t;
64 typedef uint8_t flex_uint8_t;
65 typedef int16_t flex_int16_t;
66 typedef uint16_t flex_uint16_t;
67 typedef int32_t flex_int32_t;
68 typedef uint32_t flex_uint32_t;
69 #else
70 typedef signed char flex_int8_t;
71 typedef short int flex_int16_t;
72 typedef int flex_int32_t;
73 typedef unsigned char flex_uint8_t;
74 typedef unsigned short int flex_uint16_t;
75 typedef unsigned int flex_uint32_t;
76 
77 /* Limits of integral types. */
78 #ifndef INT8_MIN
79 #define INT8_MIN               (-128)
80 #endif
81 #ifndef INT16_MIN
82 #define INT16_MIN              (-32767-1)
83 #endif
84 #ifndef INT32_MIN
85 #define INT32_MIN              (-2147483647-1)
86 #endif
87 #ifndef INT8_MAX
88 #define INT8_MAX               (127)
89 #endif
90 #ifndef INT16_MAX
91 #define INT16_MAX              (32767)
92 #endif
93 #ifndef INT32_MAX
94 #define INT32_MAX              (2147483647)
95 #endif
96 #ifndef UINT8_MAX
97 #define UINT8_MAX              (255U)
98 #endif
99 #ifndef UINT16_MAX
100 #define UINT16_MAX             (65535U)
101 #endif
102 #ifndef UINT32_MAX
103 #define UINT32_MAX             (4294967295U)
104 #endif
105 
106 #endif /* ! C99 */
107 
108 #endif /* ! FLEXINT_H */
109 
110 #ifdef __cplusplus
111 
112 /* The "const" storage-class-modifier is valid. */
113 #define YY_USE_CONST
114 
115 #else	/* ! __cplusplus */
116 
117 /* C99 requires __STDC__ to be defined as 1. */
118 #if defined (__STDC__)
119 
120 #define YY_USE_CONST
121 
122 #endif	/* defined (__STDC__) */
123 #endif	/* ! __cplusplus */
124 
125 #ifdef YY_USE_CONST
126 #define yyconst const
127 #else
128 #define yyconst
129 #endif
130 
131 /* Returned upon end-of-file. */
132 #define YY_NULL 0
133 
134 /* Promotes a possibly negative, possibly signed char to an unsigned
135  * integer for use as an array index.  If the signed char is negative,
136  * we want to instead treat it as an 8-bit unsigned char, hence the
137  * double cast.
138  */
139 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
140 
141 /* Enter a start condition.  This macro really ought to take a parameter,
142  * but we do it the disgusting crufty way forced on us by the ()-less
143  * definition of BEGIN.
144  */
145 #define BEGIN (yy_start) = 1 + 2 *
146 
147 /* Translate the current start state into a value that can be later handed
148  * to BEGIN to return to the state.  The YYSTATE alias is for lex
149  * compatibility.
150  */
151 #define YY_START (((yy_start) - 1) / 2)
152 #define YYSTATE YY_START
153 
154 /* Action number for EOF rule of a given start state. */
155 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
156 
157 /* Special action meaning "start processing a new file". */
158 #define YY_NEW_FILE sfbpf_restart(sfbpf_in  )
159 
160 #define YY_END_OF_BUFFER_CHAR 0
161 
162 /* Size of default input buffer. */
163 #ifndef YY_BUF_SIZE
164 #ifdef __ia64__
165 /* On IA-64, the buffer size is 16k, not 8k.
166  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
167  * Ditto for the __ia64__ case accordingly.
168  */
169 #define YY_BUF_SIZE 32768
170 #else
171 #define YY_BUF_SIZE 16384
172 #endif /* __ia64__ */
173 #endif
174 
175 /* The state buf must be large enough to hold one state per character in the main buffer.
176  */
177 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
178 
179 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
180 #define YY_TYPEDEF_YY_BUFFER_STATE
181 typedef struct yy_buffer_state *YY_BUFFER_STATE;
182 #endif
183 
184 extern __thread int sfbpf_leng;
185 
186 extern __thread FILE *sfbpf_in, *sfbpf_out;
187 
188 #define EOB_ACT_CONTINUE_SCAN 0
189 #define EOB_ACT_END_OF_FILE 1
190 #define EOB_ACT_LAST_MATCH 2
191 
192     #define YY_LESS_LINENO(n)
193 
194 /* Return all but the first "n" matched characters back to the input stream. */
195 #define yyless(n) \
196 	do \
197 		{ \
198 		/* Undo effects of setting up sfbpf_text. */ \
199         int yyless_macro_arg = (n); \
200         YY_LESS_LINENO(yyless_macro_arg);\
201 		*yy_cp = (yy_hold_char); \
202 		YY_RESTORE_YY_MORE_OFFSET \
203 		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
204 		YY_DO_BEFORE_ACTION; /* set up sfbpf_text again */ \
205 		} \
206 	while ( 0 )
207 
208 #define unput(c) yyunput( c, (yytext_ptr)  )
209 
210 #ifndef YY_TYPEDEF_YY_SIZE_T
211 #define YY_TYPEDEF_YY_SIZE_T
212 typedef size_t yy_size_t;
213 #endif
214 
215 #ifndef YY_STRUCT_YY_BUFFER_STATE
216 #define YY_STRUCT_YY_BUFFER_STATE
217 struct yy_buffer_state
218 	{
219 	FILE *yy_input_file;
220 
221 	char *yy_ch_buf;		/* input buffer */
222 	char *yy_buf_pos;		/* current position in input buffer */
223 
224 	/* Size of input buffer in bytes, not including room for EOB
225 	 * characters.
226 	 */
227 	yy_size_t yy_buf_size;
228 
229 	/* Number of characters read into yy_ch_buf, not including EOB
230 	 * characters.
231 	 */
232 	int yy_n_chars;
233 
234 	/* Whether we "own" the buffer - i.e., we know we created it,
235 	 * and can realloc() it to grow it, and should free() it to
236 	 * delete it.
237 	 */
238 	int yy_is_our_buffer;
239 
240 	/* Whether this is an "interactive" input source; if so, and
241 	 * if we're using stdio for input, then we want to use getc()
242 	 * instead of fread(), to make sure we stop fetching input after
243 	 * each newline.
244 	 */
245 	int yy_is_interactive;
246 
247 	/* Whether we're considered to be at the beginning of a line.
248 	 * If so, '^' rules will be active on the next match, otherwise
249 	 * not.
250 	 */
251 	int yy_at_bol;
252 
253     int yy_bs_lineno; /**< The line count. */
254     int yy_bs_column; /**< The column count. */
255 
256 	/* Whether to try to fill the input buffer when we reach the
257 	 * end of it.
258 	 */
259 	int yy_fill_buffer;
260 
261 	int yy_buffer_status;
262 
263 #define YY_BUFFER_NEW 0
264 #define YY_BUFFER_NORMAL 1
265 	/* When an EOF's been seen but there's still some text to process
266 	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
267 	 * shouldn't try reading from the input source any more.  We might
268 	 * still have a bunch of tokens to match, though, because of
269 	 * possible backing-up.
270 	 *
271 	 * When we actually see the EOF, we change the status to "new"
272 	 * (via sfbpf_restart()), so that the user can continue scanning by
273 	 * just pointing sfbpf_in at a new input file.
274 	 */
275 #define YY_BUFFER_EOF_PENDING 2
276 
277 	};
278 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
279 
280 /* Stack of input buffers. */
281 static __thread size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
282 static __thread size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
283 static __thread YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
284 
285 /* We provide macros for accessing buffer states in case in the
286  * future we want to put the buffer states in a more general
287  * "scanner state".
288  *
289  * Returns the top of the stack, or NULL.
290  */
291 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
292                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
293                           : NULL)
294 
295 /* Same as previous macro, but useful when we know that the buffer stack is not
296  * NULL or when we need an lvalue. For internal use only.
297  */
298 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
299 
300 /* yy_hold_char holds the character lost when sfbpf_text is formed. */
301 static __thread char yy_hold_char;
302 static __thread int yy_n_chars;		/* number of characters read into yy_ch_buf */
303 __thread int sfbpf_leng;
304 
305 /* Points to current character in buffer. */
306 static __thread char *yy_c_buf_p = (char *) 0;
307 static __thread int yy_init = 0;		/* whether we need to initialize */
308 static __thread int yy_start = 0;	/* start state number */
309 
310 /* Flag which is used to allow sfbpf_wrap()'s to do buffer switches
311  * instead of setting up a fresh sfbpf_in.  A bit of a hack ...
312  */
313 static __thread int yy_did_buffer_switch_on_eof;
314 
315 void sfbpf_restart (FILE *input_file  );
316 void sfbpf__switch_to_buffer (YY_BUFFER_STATE new_buffer  );
317 YY_BUFFER_STATE sfbpf__create_buffer (FILE *file,int size  );
318 void sfbpf__delete_buffer (YY_BUFFER_STATE b  );
319 void sfbpf__flush_buffer (YY_BUFFER_STATE b  );
320 void sfbpf_push_buffer_state (YY_BUFFER_STATE new_buffer  );
321 void sfbpf_pop_buffer_state (void );
322 
323 static void sfbpf_ensure_buffer_stack (void );
324 static void sfbpf__load_buffer_state (void );
325 static void sfbpf__init_buffer (YY_BUFFER_STATE b,FILE *file  );
326 
327 #define YY_FLUSH_BUFFER sfbpf__flush_buffer(YY_CURRENT_BUFFER )
328 
329 YY_BUFFER_STATE sfbpf__scan_buffer (char *base,yy_size_t size  );
330 YY_BUFFER_STATE sfbpf__scan_string (yyconst char *yy_str  );
331 YY_BUFFER_STATE sfbpf__scan_bytes (yyconst char *bytes,int len  );
332 
333 void *sfbpf_alloc (yy_size_t  );
334 void *sfbpf_realloc (void *,yy_size_t  );
335 void sfbpf_free (void *  );
336 
337 #define yy_new_buffer sfbpf__create_buffer
338 
339 #define yy_set_interactive(is_interactive) \
340 	{ \
341 	if ( ! YY_CURRENT_BUFFER ){ \
342         sfbpf_ensure_buffer_stack (); \
343 		YY_CURRENT_BUFFER_LVALUE =    \
344             sfbpf__create_buffer(sfbpf_in,YY_BUF_SIZE ); \
345 	} \
346 	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
347 	}
348 
349 #define yy_set_bol(at_bol) \
350 	{ \
351 	if ( ! YY_CURRENT_BUFFER ){\
352         sfbpf_ensure_buffer_stack (); \
353 		YY_CURRENT_BUFFER_LVALUE =    \
354             sfbpf__create_buffer(sfbpf_in,YY_BUF_SIZE ); \
355 	} \
356 	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
357 	}
358 
359 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
360 
361 /* Begin user sect3 */
362 
363 typedef unsigned char YY_CHAR;
364 
365 __thread FILE *sfbpf_in = (FILE *) 0, *sfbpf_out = (FILE *) 0;
366 
367 typedef int yy_state_type;
368 
369 extern __thread int sfbpf_lineno;
370 
371 __thread int sfbpf_lineno = 1;
372 
373 extern __thread char *sfbpf_text;
374 #define yytext_ptr sfbpf_text
375 
376 static yy_state_type yy_get_previous_state (void );
377 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
378 static int yy_get_next_buffer (void );
379 static void yy_fatal_error (yyconst char msg[]  );
380 
381 /* Done after the current pattern has been matched and before the
382  * corresponding action - sets up sfbpf_text.
383  */
384 #define YY_DO_BEFORE_ACTION \
385 	(yytext_ptr) = yy_bp; \
386 	sfbpf_leng = (size_t) (yy_cp - yy_bp); \
387 	(yy_hold_char) = *yy_cp; \
388 	*yy_cp = '\0'; \
389 	(yy_c_buf_p) = yy_cp;
390 
391 #define YY_NUM_RULES 144
392 #define YY_END_OF_BUFFER 145
393 /* This struct is not used in this scanner,
394    but its presence is necessary. */
395 struct yy_trans_info
396 	{
397 	flex_int32_t yy_verify;
398 	flex_int32_t yy_nxt;
399 	};
400 static yyconst flex_int16_t yy_accept[1434] =
401     {   0,
402         0,    0,  145,  142,  102,  102,  102,  103,  142,  103,
403       103,  103,  143,  112,  112,  103,  103,  103,  103,  140,
404       140,  142,  140,  140,  140,  140,  140,  140,  140,  140,
405       140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
406       140,  140,  103,  142,  106,  110,   64,    0,  140,  112,
407         0,  140,  140,  140,    0,  114,  108,  105,  107,  104,
408       109,  140,  141,  141,  140,  140,  140,   19,  140,  140,
409       140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
410       140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
411       140,  140,  140,  140,    7,  140,   33,   34,  140,  140,
412 
413       140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
414       140,  140,   88,  140,   65,  140,  140,  140,  140,  140,
415       140,  140,  140,  140,  140,  140,   82,  140,  140,  140,
416       140,  140,  140,  140,    4,  140,  140,  140,  140,  140,
417       140,  140,   65,  110,  140,  113,  113,  140,  112,  140,
418         0,  114,  112,  114,  114,  114,  140,  140,  140,   64,
419         5,  140,   77,  140,  140,  140,  140,  140,  140,   54,
420       100,    1,    0,  140,   20,  140,  140,  140,  140,  140,
421       140,  140,  140,  140,  140,   35,  140,  140,   17,   42,
422         0,  140,   28,  140,   24,   67,  140,  140,   75,   36,
423 
424       140,   96,  140,  140,  140,  140,   97,  140,   45,   66,
425        78,   99,  140,   14,  140,    3,  140,  140,  140,  140,
426       140,   90,  140,  140,   25,  140,   98,  140,  101,   37,
427         2,  140,   41,  140,    9,  140,   10,   85,  140,   84,
428       140,  140,    0,  140,  140,  113,  140,  140,  140,  140,
429       112,    0,  140,    0,  115,  114,  114,    0,  114,    0,
430       114,    0,  114,    0,   22,  140,  140,  140,  140,   61,
431        40,  140,   38,  140,  140,  140,   29,  140,   94,  140,
432       140,   44,   11,  140,   12,   13,  140,  140,  140,   31,
433        74,  140,   59,    3,   95,   46,  140,  140,  140,   71,
434 
435       140,  140,  140,  140,   47,  140,  140,   39,  140,    6,
436       140,   89,  140,    8,   91,  140,  140,    0,  140,   52,
437        70,   15,  140,  113,  113,  140,  113,  113,  113,  140,
438       112,  140,    0,  114,  140,    0,    0,  114,    0,  114,
439       115,  114,    0,    0,    0,    0,  114,  114,  114,  114,
440       114,    0,  140,   55,   56,   57,   58,  140,   21,  140,
441       140,  140,  140,   30,  140,  140,    0,   18,  140,  140,
442       140,   83,  140,   32,  140,   76,   27,   26,  140,  140,
443        79,  140,  140,  140,   49,   16,  140,  140,  140,  140,
444       140,  140,  140,  140,  140,  140,  140,  140,    0,  140,
445 
446       140,  113,  140,  140,  140,  140,  113,  113,  140,  112,
447       140,    0,    0,  114,  114,  114,    0,    0,  115,  114,
448       114,  115,  114,    0,    0,  114,  114,  114,  114,  114,
449         0,    0,    0,    0,  114,  114,    0,  114,    0,  114,
450         0,   93,  140,  140,  140,   23,  140,  140,  140,  140,
451       140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
452        67,  140,  140,  140,  140,  140,  140,  140,   72,   73,
453       140,   92,  140,  140,  140,  140,  140,  140,  140,  140,
454       140,  140,  140,  140,  113,  113,  140,  113,  113,  113,
455       113,  140,  112,  140,    0,  114,  114,    0,  114,    0,
456 
457         0,  114,    0,  114,  115,  114,    0,    0,    0,  114,
458       114,    0,  114,  115,  114,    0,    0,    0,    0,    0,
459         0,    0,  114,  114,  114,  114,  114,    0,  140,  140,
460       140,  140,   51,   60,  140,  140,  140,  140,  140,  140,
461       140,  140,  140,  140,  140,  140,   68,  140,  140,   43,
462        80,   81,  140,  140,  140,  140,   53,  138,  134,  140,
463       136,  135,  139,  140,    0,  140,  140,  113,  140,  140,
464       140,  113,  140,  112,  140,    0,    0,  114,  114,  114,
465       114,  114,  114,    0,    0,  115,  114,  114,  114,    0,
466         0,  114,  114,  114,  114,  114,    0,    0,    0,    0,
467 
468         0,    0,    0,  114,  114,  114,  114,  114,    0,    0,
469         0,    0,    0,  114,  114,    0,  114,    0,  114,    0,
470       140,  140,  140,  140,  140,  140,  140,  140,  140,  140,
471       140,  140,  140,  117,  116,  140,  140,   69,  140,  140,
472       140,  137,  133,  140,  140,  113,  113,  113,  113,  140,
473       112,  140,    0,  114,  114,    0,  114,  114,    0,  114,
474         0,    0,  114,    0,  114,  115,  114,    0,    0,    0,
475       114,  114,    0,  114,  115,  114,    0,    0,    0,    0,
476         0,  114,  114,    0,  114,  115,  114,    0,  114,  114,
477         0,    0,    0,    0,    0,    0,    0,  114,  114,  114,
478 
479       114,  114,    0,   62,  140,   54,  122,  129,  140,  140,
480       140,  140,  140,  140,  140,  140,  140,   63,   48,  140,
481       140,    0,  140,  140,  140,  140,  140,  112,  140,    0,
482         0,  114,  114,  114,  114,  114,  114,  114,  114,  114,
483         0,    0,  115,  114,  114,  114,    0,    0,  114,  114,
484       114,  114,  114,    0,    0,    0,    0,    0,    0,    0,
485       114,  114,  114,  114,  114,    0,  114,  114,    0,    0,
486         0,    0,    0,    0,    0,  114,  114,  114,  114,  114,
487         0,    0,    0,    0,    0,    0,  114,  114,    0,  114,
488         0,  114,    0,   86,  140,  140,  140,  140,  140,  140,
489 
490       140,  140,  140,  140,  140,   50,  111,  111,  113,  113,
491       140,  112,  140,    0,  114,  114,    0,  114,  114,    0,
492       114,  114,    0,  114,    0,  111,  114,    0,  114,  115,
493       114,    0,    0,    0,  114,  114,    0,  114,  115,  114,
494         0,    0,    0,    0,    0,  114,  114,    0,  114,  115,
495       114,    0,    0,    0,    0,    0,    0,  114,  114,    0,
496       114,  115,  114,    0,  114,  114,  114,    0,    0,    0,
497         0,    0,    0,    0,  114,  114,  114,  114,  114,    0,
498       140,  140,  140,  140,  140,  140,  140,  140,  127,  140,
499        87,  111,  111,  113,  140,  111,  111,    0,    0,  114,
500 
501       114,  114,  114,  114,  114,  114,  114,  114,  114,  114,
502       114,    0,  111,  115,  114,  114,  114,    0,    0,  114,
503       114,  114,  114,  114,    0,    0,    0,    0,    0,    0,
504         0,  114,  114,  114,  114,  114,    0,  114,  114,    0,
505         0,    0,    0,    0,    0,    0,  114,  114,  114,  114,
506       114,    0,  114,  114,  114,    0,    0,    0,    0,    0,
507         0,    0,  114,  114,  114,  114,  114,    0,    0,    0,
508         0,    0,    0,  114,  114,    0,  114,    0,  114,    0,
509       140,  140,  140,  131,  140,  140,  140,  140,  140,  140,
510       140,  119,  113,  140,  112,    0,  114,  114,    0,  114,
511 
512       114,    0,  114,  114,    0,  114,  114,    0,  114,    0,
513         0,    0,  114,    0,    0,  114,  115,  114,    0,    0,
514         0,  114,  114,    0,  114,  115,  114,    0,    0,    0,
515         0,    0,  114,  114,    0,  114,  115,  114,    0,    0,
516         0,    0,    0,    0,  114,  114,    0,  114,  115,  114,
517         0,    0,    0,    0,    0,    0,  114,  114,    0,  114,
518       115,  114,    0,  114,  114,  114,    0,    0,    0,    0,
519         0,    0,    0,  114,  114,  114,  114,  114,    0,  140,
520       140,  140,  140,  121,  140,  140,  140,  125,  140,  111,
521         0,    0,  114,  114,  114,  114,  114,  114,  114,  114,
522 
523       114,  114,  114,  114,  114,  114,  114,    0,    0,    0,
524       115,    0,    0,  114,    0,    0,  114,  114,  114,    0,
525         0,    0,    0,    0,    0,    0,  114,  114,  114,    0,
526       114,  114,    0,    0,    0,    0,    0,    0,    0,  114,
527       114,  114,    0,  114,  114,  114,    0,    0,    0,    0,
528         0,    0,    0,  114,  114,  114,    0,  114,  114,  114,
529         0,    0,    0,    0,    0,    0,    0,  114,  114,  114,
530         0,    0,    0,    0,    0,    0,  114,  114,    0,  114,
531         0,  114,    0,  118,  130,  132,  126,  140,  140,  140,
532       140,    0,    0,  114,    0,  114,    0,  114,  114,    0,
533 
534       114,  114,    0,  114,  114,    0,  114,  114,    0,  114,
535         0,    0,    0,    0,  114,  114,    0,  114,    0,    0,
536       114,  114,  114,    0,    0,    0,    0,  114,  114,  114,
537         0,    0,    0,    0,    0,  114,  114,  114,    0,    0,
538         0,    0,    0,  114,  114,  114,    0,    0,    0,    0,
539         0,  114,  114,  114,  114,  114,  114,    0,    0,    0,
540         0,    0,    0,    0,  114,  114,  114,    0,  140,  140,
541       140,  140,    0,    0,    0,  114,  114,  114,  114,  114,
542       114,    0,    0,    0,    0,  114,  114,    0,    0,    0,
543         0,  114,  114,  114,    0,    0,    0,    0,    0,  114,
544 
545       114,  114,  114,    0,    0,    0,    0,    0,  114,  114,
546       114,  114,    0,    0,    0,    0,    0,  114,  114,  114,
547       114,    0,    0,    0,    0,    0,  114,    0,    0,    0,
548         0,    0,  114,  114,  114,  140,  140,  140,  128,  114,
549       114,  114,  114,  114,  114,  114,  114,    0,    0,    0,
550         0,  114,  114,    0,    0,  114,    0,    0,    0,  114,
551         0,    0,    0,  114,    0,    0,    0,  114,    0,    0,
552         0,  114,  114,  114,  114,    0,    0,    0,    0,    0,
553       114,  123,  140,  120,  114,    0,    0,  114,  114,    0,
554       114,  114,  114,    0,  114,  114,  114,    0,  114,  114,
555 
556       114,    0,  114,  114,  114,    0,    0,    0,    0,  114,
557       124,  114,  114,    0,    0,    0,    0,    0,    0,  114,
558       114,  114,    0,    0,  114,  114,  114,  114,  114,    0,
559       114,  114,    0
560     } ;
561 
562 static yyconst flex_int32_t yy_ec[256] =
563     {   0,
564         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
565         1,    1,    4,    1,    1,    1,    1,    1,    1,    1,
566         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
567         1,    2,    5,    1,    1,    6,    1,    7,    1,    8,
568         8,    9,    9,    1,   10,   11,    9,   12,   13,   14,
569        15,   16,   17,   18,   17,   17,   17,   19,    1,   20,
570        21,   22,    1,    1,   23,   23,   23,   23,   23,   23,
571        24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
572        24,   24,   24,   24,   24,   24,   24,   25,   24,   24,
573        26,   27,   26,    1,   28,    1,   29,   30,   31,   32,
574 
575        33,   34,   35,   36,   37,   24,   38,   39,   40,   41,
576        42,   43,   44,   45,   46,   47,   48,   49,   50,   51,
577        52,   24,    1,   53,    1,    1,    1,    1,    1,    1,
578         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
579         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
580         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
581         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
582         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
583         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
584         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
585 
586         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
587         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
588         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
589         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
590         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
591         1,    1,    1,    1,    1
592     } ;
593 
594 static yyconst flex_int32_t yy_meta[54] =
595     {   0,
596         1,    2,    2,    1,    2,    1,    3,    2,    1,    4,
597         5,    6,    6,    6,    6,    6,    6,    6,    7,    3,
598         3,    3,    8,    4,    9,    3,    1,    4,    8,    8,
599         8,    8,    8,    8,    4,    4,    4,    4,    4,    4,
600         4,    4,    4,    4,    4,    4,    4,    4,    4,    4,
601         9,    4,    3
602     } ;
603 
604 static yyconst flex_int16_t yy_base[1894] =
605     {   0,
606         0,    0, 3838,   53, 7401, 7401,   54, 3816,   60, 3829,
607      7401,   82, 7401,  100,   31,  152,   47, 3813,   49,  169,
608       211,  169,   61,   44,   61,  122,   30,   62,   75, 3791,
609       215,  218,  160,   32,  166,  155,  230,  236,   53, 3800,
610       173, 3778, 3763,  281, 7401,    0, 7401,  297,  320,  344,
611      3796,  368,    0,  375,    0,  409, 7401, 7401, 7401, 7401,
612      7401,  279,  297,    0, 3769, 3766, 3779,    0, 3778, 3766,
613      3764, 3761, 3749, 3743, 3748, 3746, 3745, 3754, 3725, 3738,
614      3721,  117, 3731, 3734, 3718, 3716, 3729, 3700, 3705, 3703,
615        81, 3707, 3702, 3709,  139,  223,    0,    0,  122,  121,
616 
617      3697, 3692,  167, 3676, 3674, 3677, 3680, 3669, 3677, 3668,
618      3652, 3658,    0, 3666,    0, 3649, 3654, 3647, 3633, 3633,
619      3633,  132, 3644, 3627, 3637, 3630,  170, 3626,  202, 3609,
620        54, 3608, 3620, 3606,    0, 3604, 3602, 3592, 3599, 3590,
621      3581, 3596, 7401, 7401,  434,  458,  211,  499,  523,  547,
622      3604,  554, 3611,  578,  228, 3602, 3562, 3567, 3558,    0,
623         0, 3563,    0, 3571, 3566, 3555, 3541, 3538, 3539, 3546,
624         0,    0, 3541, 3530,    0, 3542, 3537, 3525, 3518, 3521,
625      3501, 3504, 3516, 3501, 3500,    0, 3505, 3485,    0,    0,
626      3489, 3479,    0, 3491,    0, 3486, 3474, 3481,    0,    0,
627 
628      3470,    0, 3470, 3458,  254, 3440,    0, 3438, 3453,    0,
629      3447,    0, 3450,    0, 3432, 3436, 3415, 3418, 3423, 3416,
630      3411,    0, 3409, 3422,    0, 3411,    0, 3396,    0,    0,
631         0, 3393,    0,  127,  270, 3403,    0,    0, 3393,    0,
632      3390, 3390,  618, 3405,  641,  665, 3403,  672,  481,  226,
633       696, 3394,  720, 3393, 3390,  728,  293, 3389, 3388,  488,
634       769,  792, 3372,    0,    0, 3348,  332, 3351, 3354,    0,
635         0, 3340,    0, 3337, 3329, 3313,    0, 3305,    0, 3299,
636      3300,    0,  595, 3287,    0,    0, 3295, 3277, 3278,    0,
637         0, 3276,    0,    0,    0,    0, 3290, 3267, 3264,    0,
638 
639      3256, 3253, 3269, 3242, 3217, 3228, 3218,    0, 3217,    0,
640      3216,    0,  228,    0,    0, 3207, 3202,  720, 3204,    0,
641         0,    0,  817,  841,  315,  882, 3210, 3209,  386,  905,
642       929,  953, 3200,  960,  602, 3195, 3194,  983,  757, 1007,
643      1030, 3178,    0, 3176,  405,  408, 1054, 3175, 1078,  317,
644      3174, 3179, 3137,    0,    0,    0,    0, 3127,    0, 3141,
645      3140, 3107, 3105,    0, 3120, 3104, 1097,    0, 3091, 3080,
646      3098,    0, 3067,    0, 3060, 3050,    0,    0, 3060, 3042,
647       256, 3041, 3057,  159, 3054,    0, 3043, 3035, 3049, 3033,
648      3027, 3035, 3018, 2985, 2986, 2979, 2984, 2998, 1134, 3016,
649 
650      1157, 1181, 3014, 1188,  864,  310, 1212,  344, 1252, 1275,
651      1299, 2981, 2980, 1307,  345, 2979, 2978, 2976, 2975, 1348,
652       369, 2974, 2958,  496,  612, 1389, 2957, 1413,  378, 2956,
653      2962, 2952,  871,    0,  306, 2951, 1101, 1454, 1477, 2950,
654         0,    0, 2922, 2924, 2905,    0, 2911, 2895, 2901, 2914,
655      2885, 2900, 2898,  330, 2881,  408, 2881, 2857, 2845, 2855,
656         0, 2844, 2854, 2845, 2850, 2834, 2823, 2822,    0,    0,
657      2826,    0, 2821, 2812, 2825, 2824, 2803, 2799, 2793, 2791,
658      2796, 2800, 2799, 1502, 1526,  409, 1567, 2822, 2807,  614,
659      1591, 1615, 1622, 1646, 2798, 1653, 1677, 1700, 2797, 2796,
660 
661      2795, 1723, 1108, 1747, 1770, 2793,    0, 1235,    0,  442,
662      2792, 1242, 1794, 1817, 2791,    0,  739,  766, 2783,  466,
663       786,  817, 1841, 2774, 1865,  433, 2773, 2780,  386, 2744,
664      2748, 2745,    0,    0, 2750, 2738, 2724, 2724, 2736, 2719,
665      2717, 2724, 2716, 2702, 2713, 2712,    0, 2703, 2697,    0,
666         0,    0, 2709, 2705, 2710, 2683,    0,    0,    0, 2687,
667         0,    0,    0, 2676, 1905, 2711, 1928, 1952, 2709, 1959,
668       467, 1983, 2007, 2014, 2038, 2699, 2698, 2046,  457, 2697,
669      2087,  493, 2681, 2680, 2679, 2678, 2128,  494, 2677,  879,
670       899, 2169, 2674, 2193,  498, 2673, 2666, 1128, 1130, 2665,
671 
672      2664, 1251, 1317, 2234, 2655, 2258,  499, 2654, 2660, 1331,
673         0, 1338,    0,  532, 2651, 1371, 2299, 2322, 2650,    0,
674      2345,  479,  225,  370,  531,  622,  241,  129, 2606,  260,
675       272,  433,  591, 2605, 2604, 1129, 2603, 2601, 1247,  854,
676       532, 2599, 2583, 2383, 2420, 2456, 2492,  523, 2516,  593,
677      2524, 2548, 2610, 2555, 2579, 2602, 2609, 2626, 2649, 2608,
678      2607, 2605, 2672, 1378, 2696, 2719, 2604,    0, 1436,    0,
679       587, 2603, 1443, 2743, 2766, 2587,    0, 1549,    0, 1556,
680         0,  680, 2586, 1888, 2790, 2813, 2585,    0,  551, 1895,
681      2592, 1386, 1451, 2590, 2589, 1471, 1502, 2837, 2580, 2861,
682 
683       641, 2564, 2571,  571,  633,  572,  617,  768, 1251, 2056,
684      1388,  687,  690,  808, 2083,  688,  810,  618,  766, 2081,
685      2085, 2903,  833, 2926,  834, 2949, 2114, 2973, 2997, 2562,
686      2561, 3005,  642, 2560, 3046,  671, 2558, 3087,  742, 2557,
687      2556, 2555, 2533, 3128,  878, 2532, 1564, 1694, 3169, 2531,
688      3193,  881, 2530, 2537, 1904, 2056, 2535, 2534, 2057, 2063,
689      3234, 2525, 3258,  882, 2524, 2509,  900, 2151, 2508, 2123,
690      2124, 2507, 2506, 2125, 2145, 3299, 2497, 3323,  902, 2495,
691      2502,    0, 2216,    0, 2223,    0,  737, 2493, 2281, 3364,
692      3387, 2492,    0,  898,  921,  975,  976, 1904,  977, 1453,
693 
694      1001, 1022, 2276, 1023, 1566, 1046, 3412, 3435, 3459,  930,
695      3499, 3523, 3547, 2445, 3554, 3578, 3601, 2444, 3625, 3648,
696      2443, 3672, 3695, 2429, 2428, 2427, 3718, 2368, 3742, 3765,
697      2426,    0, 2406,    0,  937, 2375, 2443, 3789, 3812, 2348,
698         0, 2463,    0, 2470,    0,  969, 2347, 2477, 3836, 3859,
699      2346,    0,    0, 2484,    0, 2884,    0, 1016, 2345, 2891,
700      3883, 3906, 2331,    0,    0, 1006, 3028, 2338, 2166, 2231,
701      2337, 2333, 2295, 2296, 3930, 2324, 3954, 1027, 2323, 2316,
702      2298, 2359, 2360, 2127, 1048, 2233, 2361, 1071, 2362, 1070,
703      1072, 1126, 1128, 3996, 4020, 4029, 1149, 2306, 2305, 4047,
704 
705      1077, 2286, 4088, 1080, 2283, 4129, 1107, 2282, 4170, 1110,
706      2281, 2265, 2261, 4210, 4234, 1157, 2259, 2414, 2415, 4275,
707      2241, 4299, 1158, 2240, 2247, 2596, 2643, 2244, 2243, 2899,
708      2900, 4340, 2202, 4364, 1159, 2201, 2208, 1182, 3035, 2204,
709      2903, 3043, 2203, 2202, 3056, 3062, 4405, 2176, 4429, 1187,
710      2175, 2182,    0, 1188, 3110, 2179, 3063, 3084, 2167, 2162,
711      3104, 3123, 4470, 2135, 4494, 1189, 2105, 2083,    0, 3151,
712         0, 3216,    0, 1284, 2073, 3223, 4535, 4558, 2071,    0,
713      3268, 3269, 3333, 1150, 2399, 2105, 1407, 2400, 2275, 1469,
714      1493, 1206, 4583, 4607, 4616, 2070, 4633, 4657, 4680, 2068,
715 
716      4704, 4727, 2067, 4751, 4774, 2066, 4798, 4821, 2064, 2054,
717      4845, 1246, 2053, 2051, 3286, 4886, 2023, 2022,    0, 3350,
718         0, 1316, 2021, 3482, 4910, 2020, 2019,    0, 3489,    0,
719      3977,    0, 1535, 2017, 3984, 4934, 2016, 2015,    0,    0,
720      4036,    0, 4070,    0, 1576, 2014, 4077, 4958, 1991, 1990,
721         0,    0, 4111,    0, 4118,    0, 1599, 1989, 4152, 4982,
722      1988, 1985,    0,    0, 1248, 4159, 1976, 3125, 3145, 1972,
723      1970, 3164, 3166, 5006, 1911, 5030, 1249, 1872, 1876, 1495,
724      1669, 1670, 1520, 1347, 1671, 4168, 1583, 1715, 2401, 5072,
725      1867, 5089, 5113, 1389, 1824, 5154, 1390, 1802, 5195, 1453,
726 
727      1800, 5236, 1561, 1779, 5277, 1566, 1777, 1756, 4196, 5318,
728      1752, 1729,    0, 1728, 3231, 3269, 5342, 1708, 1705, 1633,
729      3294, 3333, 1632, 1608, 3360, 3381, 5366, 1573, 1569, 1541,
730      1621, 4257, 1534, 3412, 3498, 1518, 1517, 3595, 3642, 5390,
731      1505, 1480, 1469,    0, 1622, 4264, 1464, 3689, 4180, 1463,
732      1423, 4181, 4205, 5414, 1394, 1391, 1398,    0, 1623, 4322,
733      1365, 4209, 4272, 1363, 1361, 4316, 4335, 5438, 1351, 1350,
734      1323,    0, 4387,    0, 4394,    0, 1630, 1314, 4452, 5462,
735         0, 1312,    0, 1716, 1739, 1740, 1741, 1762, 1974, 4488,
736      4504, 5486, 1650,    0, 1310, 5527,    0, 1282, 5551,    0,
737 
738      1259, 5575,    0, 1258, 5599,    0, 1253, 5623,    0, 1217,
739      4337, 4402, 5647, 1213, 1212, 1196, 1174, 1114, 4459,    0,
740      1631, 1108, 1056, 4521,    0, 4623,    0, 1803, 1009,  988,
741         0, 4868,    0, 4875,    0, 1826,  965,  963,    0, 5053,
742         0, 5060,    0, 1850,  960,  938,    0, 5079,    0, 5136,
743         0, 1874,  890,  883,    0, 1652, 5143,  858, 4467, 4531,
744        67,  111, 4552, 4632, 5671,  200,    0,  224, 2363, 1763,
745      1787, 1764, 5695,  249,  320,    0,    0,    0,    0,    0,
746         0, 5177,    0, 1914,  322,  345,    0, 4674, 4721,  360,
747       403,    0, 1653, 5184,  420, 4768, 4815,  424,  444,    0,
748 
749         0, 1677, 5218,  475, 4883, 5088,  509,  516,    0,    0,
750      1814, 5225,  610, 5233, 5246,  611,  633,    0,    0, 1816,
751      5260,  683, 5274, 5287,  712,  713,    0,    0, 5301,    0,
752      5509,    0, 1937,  733,    0, 3083, 2964, 2161, 1810,    0,
753      7401,    0,    0,    0,    0,    0,    0, 5315, 5503,  744,
754       778,    0, 7401, 5517,    0, 7401,    0, 5718,    0, 7401,
755         0, 5725,    0, 7401,    0, 5732,    0, 7401,    0, 5739,
756         0, 7401,    0, 1817, 5746,  784, 5754, 5755,  801, 1967,
757         0, 1834, 3341, 1921,    0, 5755,    0, 1838, 5769,  803,
758         0, 1841, 5776,  805,    0, 1899, 5783,  808,    0, 1901,
759 
760      5795,  849,    0, 1902, 5802,  852,    0, 5809,    0, 7401,
761      1975, 1929, 5816,  854,    0,    0,    0,    0,    0,    0,
762      1954, 5823,  856,    0,    0,    0,    0,    0,    0,    0,
763         0,    0, 7401, 5841, 5849, 5853, 5856, 5859, 5862, 5865,
764      5868, 5871, 5874, 5877, 5880, 5883, 5886, 5889, 5892, 5895,
765      5898, 5901, 5905, 5909, 5912, 5915, 5918, 5921, 5924, 5927,
766      5930, 5933, 5937, 5941, 5944, 5947, 5951, 5953, 5956, 5959,
767      5962, 5965, 5968, 5971, 5974, 5977, 5981, 5983, 5986, 5990,
768      5995, 5999, 6002, 6006, 6009, 6012, 6015, 6018, 6021, 6024,
769      6027, 6031, 6035, 6038, 6042, 6046, 6051, 6055, 6057, 6061,
770 
771      6064, 6068, 6071, 6074, 6078, 6080, 6083, 6086, 6089, 6092,
772      6095, 6098, 6101, 6104, 6107, 6111, 6113, 6116, 6119, 6122,
773      6126, 6128, 6131, 6134, 6139, 6143, 6148, 6152, 6154, 6158,
774      6161, 6165, 6170, 6174, 6177, 6180, 6183, 6186, 6189, 6192,
775      6195, 6199, 6203, 6206, 6210, 6214, 6219, 6223, 6225, 6229,
776      6232, 6236, 6239, 6244, 6248, 6253, 6257, 6259, 6263, 6266,
777      6270, 6273, 6276, 6279, 6283, 6285, 6288, 6293, 6297, 6300,
778      6303, 6306, 6309, 6312, 6315, 6318, 6321, 6325, 6327, 6330,
779      6333, 6336, 6340, 6342, 6345, 6348, 6351, 6354, 6358, 6360,
780      6363, 6366, 6369, 6374, 6378, 6383, 6387, 6389, 6393, 6396,
781 
782      6400, 6405, 6409, 6412, 6415, 6418, 6421, 6424, 6427, 6430,
783      6434, 6438, 6441, 6445, 6449, 6454, 6458, 6460, 6464, 6467,
784      6471, 6474, 6479, 6483, 6488, 6492, 6494, 6498, 6501, 6505,
785      6508, 6511, 6516, 6520, 6525, 6529, 6531, 6535, 6538, 6542,
786      6545, 6548, 6551, 6555, 6557, 6560, 6565, 6569, 6572, 6575,
787      6578, 6581, 6584, 6587, 6590, 6593, 6596, 6599, 6602, 6606,
788      6608, 6611, 6614, 6617, 6620, 6624, 6626, 6629, 6632, 6635,
789      6638, 6641, 6645, 6647, 6650, 6653, 6656, 6659, 6662, 6666,
790      6668, 6671, 6674, 6677, 6680, 6685, 6689, 6694, 6698, 6700,
791      6704, 6707, 6711, 6716, 6720, 6723, 6726, 6729, 6732, 6735,
792 
793      6738, 6741, 6744, 6747, 6751, 6755, 6758, 6762, 6766, 6771,
794      6775, 6777, 6781, 6784, 6788, 6791, 6796, 6800, 6805, 6809,
795      6811, 6815, 6818, 6822, 6825, 6828, 6833, 6837, 6842, 6846,
796      6848, 6852, 6855, 6859, 6862, 6865, 6870, 6874, 6879, 6883,
797      6885, 6889, 6892, 6896, 6899, 6902, 6905, 6909, 6911, 6914,
798      6917, 6922, 6926, 6929, 6932, 6935, 6938, 6941, 6944, 6947,
799      6950, 6953, 6956, 6959, 6963, 6967, 6970, 6973, 6977, 6980,
800      6983, 6987, 6989, 6992, 6995, 6999, 7001, 7004, 7007, 7010,
801      7014, 7016, 7019, 7022, 7025, 7029, 7031, 7034, 7037, 7040,
802      7044, 7046, 7049, 7052, 7057, 7061, 7066, 7070, 7072, 7076,
803 
804      7079, 7083, 7088, 7092, 7095, 7098, 7101, 7104, 7107, 7110,
805      7113, 7116, 7120, 7122, 7125, 7129, 7134, 7138, 7139, 7142,
806      7147, 7151, 7156, 7160, 7161, 7164, 7167, 7172, 7176, 7181,
807      7185, 7186, 7189, 7192, 7197, 7201, 7206, 7210, 7211, 7214,
808      7217, 7222, 7226, 7231, 7235, 7236, 7239, 7242, 7245, 7249,
809      7251, 7256, 7260, 7263, 7266, 7269, 7272, 7275, 7278, 7282,
810      7287, 7291, 7292, 7295, 7298, 7301, 7304, 7307, 7310, 7313,
811      7316, 7319, 7322, 7327, 7331, 7334, 7337, 7340, 7344, 7348,
812      7352, 7356, 7360, 7363, 7366, 7370, 7373, 7376, 7379, 7382,
813      7385, 7389, 7392
814 
815     } ;
816 
817 static yyconst flex_int16_t yy_def[1894] =
818     {   0,
819      1433,    1, 1433, 1433, 1433, 1433, 1433, 1433, 1434, 1433,
820      1433, 1433, 1433, 1433,   14, 1433, 1433, 1433, 1433,   14,
821        20, 1435,   20,   20,   20,   20,   20,   20,   21,   21,
822        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
823        21,   21, 1433, 1433, 1433, 1436, 1433,   21,   21,   20,
824      1437,   50,   21,   21,   21, 1433, 1433, 1433, 1433, 1433,
825      1433,   49, 1435, 1435,   52,   52,   52,   21,   21,   21,
826        21,   52,   21,   21,   21,   21,   21,   52,   21,   21,
827        21,   21,   21,   52,   21,   21,   21,   21,   21,   21,
828        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
829 
830        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
831        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
832        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
833        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
834        21,   21, 1433, 1433,   21,   21,  146,   21,   21,  149,
835      1438, 1433,   54, 1433,  154, 1439,   21,   21,  150,   21,
836        21,   21,  150,   21,   21,   21,   21,   21,  150,   21,
837        21,   21,   21,   21,   21,   21,  150,   21,   21,   21,
838        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
839        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
840 
841        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
842        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
843        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
844        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
845        21,   21,   21,   21,   21,   21,   21,   21,  245,  246,
846       150, 1440,  251, 1441, 1442, 1433,  256, 1443, 1444, 1433,
847      1433, 1433, 1445, 1446,   21,   21,   21,   21,   21,   21,
848        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
849        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
850        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
851 
852        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
853        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
854        21,   21,   21,   21,  324,   21,  246,  248,  246,  248,
855       248,  331, 1447, 1433,  330, 1448, 1449, 1433, 1433, 1433,
856      1433, 1450, 1451, 1452, 1453, 1453, 1433, 1454, 1433,  349,
857      1455, 1446,   21,   21,   21,   21,   21,   21,   21,   21,
858        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
859        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
860        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
861        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
862 
863        21,   21,   21,   21,  401,  402,  402,  407,  401,  331,
864       410, 1456, 1457, 1433,  414, 1458, 1433, 1459, 1460, 1433,
865       420, 1461, 1462, 1463, 1463, 1433, 1464, 1433,  428, 1465,
866      1451, 1433, 1433, 1466, 1467, 1433, 1433, 1433, 1433, 1468,
867      1469,   21,   21,   21,   21,   21,   21,   21,   21,   21,
868        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
869        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
870        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
871        21,   21,   21,   21,   21,  485,   21,  402,  404,  402,
872       402,  491,  410,  493, 1470, 1433, 1433, 1433, 1471, 1472,
873 
874      1473, 1433, 1433, 1433, 1433, 1474, 1475, 1433, 1476, 1477,
875      1433, 1433, 1433, 1433, 1478, 1479, 1480, 1480, 1466, 1467,
876      1481, 1481, 1433, 1482, 1433,  525, 1483, 1484,   21,   21,
877        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
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       568,  568,  572,  493,  574, 1485, 1486, 1433,  578, 1487,
882      1433,  581, 1488, 1433, 1489, 1490, 1433,  587, 1491, 1492,
883      1492, 1433, 1493, 1433,  594, 1494, 1495, 1496, 1496, 1497,
884 
885      1498, 1499, 1499, 1433, 1500, 1433,  606, 1501, 1502, 1433,
886      1503, 1433, 1504, 1505, 1433, 1433, 1433, 1433, 1506, 1507,
887       575,  621,  621,  621,  621,  621,  621,  621,  621,  621,
888       621,  621,  621,  621,  621,  621,  621,  621,  621,  621,
889       621,  621,  621,  621,  621,  621,  646,  646,  646,  621,
890       646,  651, 1508, 1433, 1433, 1433, 1509, 1433, 1433, 1510,
891      1511, 1512, 1433, 1433, 1433, 1433, 1513, 1514, 1433, 1515,
892      1516, 1433, 1433, 1433, 1433, 1517, 1518, 1433, 1519, 1433,
893      1520, 1521, 1433, 1433, 1433, 1433, 1522, 1523, 1524, 1433,
894      1525, 1526, 1526, 1527, 1528, 1529, 1529, 1433, 1530, 1433,
895 
896       700, 1531, 1532, 1533, 1533, 1533, 1533, 1533, 1533, 1533,
897      1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533, 1533,
898      1533, 1533, 1533,  722, 1533,  722,  726,  726,  728, 1534,
899      1535, 1433,  732, 1536, 1433,  735, 1537, 1433,  738, 1538,
900      1433, 1539, 1540, 1433,  744, 1541, 1542, 1542, 1433, 1543,
901      1433,  751, 1544, 1545, 1546, 1546, 1547, 1548, 1549, 1549,
902      1433, 1550, 1433,  763, 1551, 1552, 1553, 1433, 1554, 1555,
903      1555, 1556, 1557, 1558, 1558, 1433, 1559, 1433,  778, 1560,
904      1561, 1562, 1433, 1563, 1433, 1564, 1565, 1433, 1433, 1433,
905      1433, 1566, 1567, 1568, 1568, 1568, 1568, 1568, 1568, 1568,
906 
907      1568, 1568, 1568, 1568, 1568, 1568, 1568,  807,  807,  809,
908       807,  807,  812, 1569, 1433, 1433, 1433, 1570, 1433, 1433,
909      1571, 1433, 1433, 1572, 1573, 1574, 1433, 1433, 1433, 1433,
910      1575, 1576, 1433, 1577, 1578, 1433, 1433, 1433, 1433, 1579,
911      1580, 1433, 1581, 1433, 1582, 1583, 1433, 1433, 1433, 1433,
912      1584, 1585, 1586, 1433, 1587, 1433, 1588, 1589, 1433, 1433,
913      1433, 1433, 1590, 1591, 1592, 1593, 1433, 1594, 1595, 1595,
914      1596, 1597, 1598, 1598, 1433, 1599, 1433,  877, 1600, 1601,
915      1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602,
916      1602, 1602, 1602, 1602,  894, 1602, 1602, 1603, 1604, 1433,
917 
918       900, 1605, 1433,  903, 1606, 1433,  906, 1607, 1433,  909,
919      1608, 1433, 1609, 1433, 1433,  915, 1610, 1611, 1611, 1433,
920      1612, 1433,  922, 1613, 1614, 1615, 1615, 1616, 1617, 1618,
921      1618, 1433, 1619, 1433,  934, 1620, 1621, 1622, 1433, 1623,
922      1624, 1624, 1625, 1626, 1627, 1627, 1433, 1628, 1433,  949,
923      1629, 1630, 1631, 1632, 1433, 1633, 1634, 1634, 1635, 1636,
924      1637, 1637, 1433, 1638, 1433,  965, 1639, 1640, 1641, 1433,
925      1642, 1433, 1643, 1644, 1433, 1433, 1433, 1433, 1645, 1646,
926      1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647,
927      1647, 1647, 1647,  993, 1647, 1648, 1433, 1433, 1433, 1649,
928 
929      1433, 1433, 1650, 1433, 1433, 1651, 1433, 1433, 1652, 1653,
930      1433, 1011, 1654, 1655, 1433, 1433, 1656, 1657, 1658, 1433,
931      1659, 1660, 1433, 1433, 1433, 1661, 1662, 1663, 1433, 1664,
932      1433, 1665, 1666, 1433, 1433, 1433, 1667, 1668, 1669, 1670,
933      1433, 1671, 1433, 1672, 1673, 1433, 1433, 1433, 1674, 1675,
934      1676, 1677, 1433, 1678, 1433, 1679, 1680, 1433, 1433, 1433,
935      1681, 1682, 1683, 1684, 1685, 1433, 1686, 1687, 1687, 1688,
936      1689, 1690, 1690, 1433, 1691, 1433, 1076, 1692, 1693, 1694,
937      1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694, 1694,
938      1695, 1433, 1433, 1093, 1696, 1433, 1096, 1697, 1433, 1099,
939 
940      1698, 1433, 1102, 1699, 1433, 1105, 1700, 1433, 1433, 1433,
941      1701, 1702, 1703, 1704, 1705, 1705, 1433, 1706, 1707, 1708,
942      1709, 1709, 1710, 1711, 1712, 1712, 1433, 1713, 1714, 1715,
943      1716, 1433, 1717, 1718, 1718, 1719, 1720, 1721, 1721, 1433,
944      1722, 1723, 1724, 1725, 1726, 1433, 1727, 1728, 1728, 1729,
945      1730, 1731, 1731, 1433, 1732, 1733, 1734, 1735, 1736, 1433,
946      1737, 1738, 1738, 1739, 1740, 1741, 1741, 1433, 1742, 1743,
947      1744, 1745, 1433, 1746, 1433, 1747, 1748, 1433, 1433, 1433,
948      1749, 1750, 1751, 1752, 1752, 1752, 1752, 1752, 1752, 1752,
949      1752, 1433, 1192, 1753, 1754, 1433, 1755, 1756, 1433, 1757,
950 
951      1758, 1433, 1759, 1760, 1433, 1761, 1762, 1433, 1763, 1764,
952      1765, 1765, 1433, 1766, 1767, 1768, 1769, 1770, 1433, 1771,
953      1772, 1433, 1773, 1433, 1774, 1433, 1775, 1776, 1433, 1777,
954      1778, 1433, 1779, 1433, 1780, 1781, 1433, 1782, 1783, 1433,
955      1784, 1433, 1785, 1786, 1433, 1787, 1788, 1433, 1789, 1433,
956      1790, 1791, 1433, 1792, 1793, 1794, 1433, 1795, 1796, 1796,
957      1797, 1798, 1799, 1799, 1433, 1800, 1801, 1802, 1803, 1803,
958      1803, 1803, 1433, 1804, 1805, 1806, 1807, 1808, 1809, 1810,
959      1811, 1433, 1812, 1813, 1433, 1814, 1815, 1816, 1816, 1817,
960      1818, 1819, 1820, 1433, 1821, 1822, 1822, 1823, 1824, 1825,
961 
962      1826, 1827, 1433, 1828, 1829, 1829, 1830, 1831, 1832, 1833,
963      1834, 1433, 1835, 1836, 1836, 1837, 1838, 1839, 1840, 1841,
964      1433, 1842, 1843, 1843, 1844, 1845, 1846, 1847, 1433, 1848,
965      1433, 1849, 1850, 1433, 1851, 1852, 1852, 1852, 1852, 1853,
966      1433, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1860, 1861,
967      1862, 1863, 1433, 1433, 1864, 1433, 1865, 1433, 1866, 1433,
968      1867, 1433, 1868, 1433, 1869, 1433, 1870, 1433, 1871, 1433,
969      1872, 1433, 1847, 1873, 1433, 1848, 1874, 1874, 1849, 1850,
970      1875, 1852, 1852, 1852, 1876, 1433, 1877, 1878, 1433, 1864,
971      1865, 1879, 1433, 1866, 1867, 1880, 1433, 1868, 1869, 1881,
972 
973      1433, 1870, 1871, 1882, 1433, 1872, 1883, 1433, 1884, 1433,
974      1852, 1885, 1433, 1877, 1886, 1887, 1888, 1889, 1890, 1883,
975      1891, 1433, 1884, 1892, 1886, 1887, 1888, 1889, 1890, 1893,
976      1892, 1893,    0, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
977      1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
978      1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
979      1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
980      1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
981      1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
982      1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
983 
984      1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
985      1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
986      1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
987      1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
988      1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
989      1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
990      1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
991      1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
992      1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
993      1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
994 
995      1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
996      1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
997      1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
998      1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
999      1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
1000      1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
1001      1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
1002      1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
1003      1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
1004      1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
1005 
1006      1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
1007      1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
1008      1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
1009      1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
1010      1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
1011      1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
1012      1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
1013      1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
1014      1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
1015      1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
1016 
1017      1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
1018      1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
1019      1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
1020      1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
1021      1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
1022      1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
1023      1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
1024      1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
1025      1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
1026      1433, 1433, 1433
1027 
1028     } ;
1029 
1030 static yyconst flex_int16_t yy_nxt[7455] =
1031     {   0,
1032         4,    5,    6,    7,    8,    9,   10,   11,   12,   11,
1033        13,   14,   15,   15,   15,   15,   15,   15,   16,   17,
1034        18,   19,   20,   21,   21,   11,   22,   13,   23,   24,
1035        25,   26,   27,   28,   29,   30,   31,   21,   32,   33,
1036        34,   35,   36,   21,   37,   38,   39,   40,   41,   42,
1037        21,   21,   43,   44,   44,   53,   44,   44,   44,   44,
1038        44,   44,   44,   44,  110,   44,   57,   58,   44,   60,
1039        61,   44,   44,  111,   72,   82,   83, 1175,   44,   44,
1040        44,   53,   44,  134,  231,   44,   44,   44,   73,   65,
1041        44,   66,   67,   84,  232,   74,   68,  135,   85,   75,
1042 
1043        44,   69,   76,   86,  136,   70,   77,   71,   44,   48,
1044        49,   50,   50,   50,   50,   50,   50,   50,   51,   87,
1045       184,  976,   52,   53,   54,  185,  173,   55,   52,   52,
1046        52,   52,   52,   52,   53,   53,   53,   53,   53,   53,
1047        53,   53,   53,   53,   53,   53,   53,   53,   53,   53,
1048        54,   53,   44,  174,   78,   44,  189,   44,   79,  175,
1049        44,  196,  194,  219,   80,  711,  197,   81,  195,   63,
1050        56,  316,   63,  317,   63,   53,  220,   63,   44,   62,
1051        52,   52,   52,   52,   52,   52,   52,   63,  104,  190,
1052       469,  117,  105,   53,  112,   63,  118,  119,  225,  120,
1053 
1054       121,  106,  107,  138,  470,  108,  113,  109,  114,  200,
1055       115,  139,  201,  116,  202,  140,  226,  141, 1181,   53,
1056        55,   53,   53,   53,   53,   53,   53,   53,   53, 1433,
1057        97,   98,  191,   53, 1179,   53,   53,  329,  228,   53,
1058        53,   53,   53,   53,   53,   89,   99,  229,   90,   91,
1059       100,   92, 1433,   93,  101,   94,  102,   95,  122,  192,
1060        96,   53,  123,  103,  193,  706,  127, 1341,  388,  710,
1061       124,   53,  128,  389,  129,  125,  130,  126, 1433,  318,
1062       131,   44,  132,  133,   44,  298,   44,   53,  465,   44,
1063       148,  148,  148,  148,  148,  148,  148,   63,  299,   44,
1064 
1065        63,  466,   63,  319,  713,   63,   53,   44,  145,  145,
1066       145,  145,  145,  145,  145,   63,  260, 1433,   53,  145,
1067        53,  490,  714,   63,  262,  145,  145,  145,  145,  145,
1068       145,  146,  147,  147,  147,  147,  147,  147, 1274,   53,
1069      1274, 1433,  148, 1433,  354,  355,  356,  357,  148,  148,
1070       148,  148,  148,  148,   49,  149,  149,  149,  149,  149,
1071       149,  149,  539,  422,  358,   53,  150, 1433,   53, 1433,
1072      1219,  540,  150,  150,  150,  150,  150,  150,   62,  150,
1073       150,  150,  150,  150,  150,  150,  153,  153,  153,  153,
1074       153,  153,  153, 1433,   53, 1433,  406,  153,  354,  355,
1075 
1076       356,  357, 1433,  153,  153,  153,  153,  153,  153,   44,
1077       248,  707,   44, 1015,   44,  433,   53,   44,  433, 1433,
1078       154,  155,  155,  155,  155,  155,  155,   44, 1433,  434,
1079      1224,  156, 1433,   53, 1226,   44,  248,  156,  156,  156,
1080       156,  156,  156,  243,  542,  244,  244,  244,  244,  244,
1081       244,  244,  339,  543, 1024,  434,  244, 1433, 1433,   53,
1082       498,  715,  244,  244,  244,  244,  244,  244,  245,  246,
1083       246,  246,  246,  246,  246,  246,  260,   53,  648,   53,
1084       247, 1433,  248, 1433, 1433, 1232,  247,  247,  247,  247,
1085       247,  247,  326,  326,  326,  326,  326,  326,  326,  345,
1086 
1087       346,  346,  346,  346,  346,  346,  508, 1433,  248,  249,
1088       247,  247,  247,  247,  247,  247,  247, 1433, 1433, 1234,
1089       509,  247, 1433, 1433,  705,   53, 1035,  247,  247,  247,
1090       247,  247,  247,  250,  251,  251,  251,  251,  251,  251,
1091       251,  252,  437, 1433, 1433,  253,  509,  570, 1433, 1433,
1092       439,  253,  253,  253,  253,  253,  253,   53,  253,  253,
1093       253,  253,  253,  253,  253,  256,  257,  257,  257,  257,
1094       257,  257,  258,  570,  708,  782,  259,   53,   53,  721,
1095        55,   55,  259,  259,  259,  259,  259,  259,  260,  261,
1096       261,  261,  261,  261,  261,  261,  262,  503,   55,   55,
1097 
1098       263,  782,  264,  727,  367,  656,  263,  263,  263,  263,
1099       263,  263,  368,  409,  409,  409,  409,  409,  409,  409,
1100      1240, 1242,  508,  716,  571,  369,   55,   55,  264,  323,
1101       323,  323,  323,  323,  323,  323, 1433,   53,  404,   53,
1102       323,  370,   55, 1047,   55,   55,  323,  323,  323,  323,
1103       323,  323,  324,  325,  325,  325,  325,  325,  325,  709,
1104        55,  795, 1433,  326,  404, 1433, 1433,  794,   53,  326,
1105       326,  326,  326,  326,  326,  245,  327,  327,  327,  327,
1106       327,  327,  327,  328,  328,  328,  328,  328,  328,  328,
1107       512, 1433, 1433, 1248,  328, 1433,   55,   55,  659,   55,
1108 
1109       328,  328,  328,  328,  328,  328,  330,  331,  331,  331,
1110       331,  331,  331,  331,   55,   55,  804,   55,  332,  800,
1111       801, 1433, 1250, 1059,  332,  332,  332,  332,  332,  332,
1112       335,  332,  332,  332,  332,  332,  332,  332,  339,  340,
1113       340,  340,  340,  340,  340,  340,  341,  616,  392,  610,
1114       342, 1181,  343,  393, 1282,  618,  342,  342,  342,  342,
1115       342,  342,  394,  611,  395,  396, 1433,  397,  424,  425,
1116       425,  425,  425,  425,  425,   55,  610,   55,  343,  260,
1117       347,  347,  347,  347,  347,  347,  347,  262, 1109,  611,
1118      1433,  348, 1433,   55, 1329,   55,  612,  348,  348,  348,
1119 
1120       348,  348,  348,  349,  350,  350,  350,  350,  350,  350,
1121       613, 1331,  796, 1354,  351, 1358, 1433,   55, 1362,   55,
1122       351,  351,  351,  351,  351,  351,  399,  612,  400,  400,
1123       400,  400,  400,  400,  400,   55,  613,   55,  802,  400,
1124       805, 1433,  722,   55,  724,  400,  400,  400,  400,  400,
1125       400,  401,  402,  402,  402,  402,  402,  402,  402, 1366,
1126        55,   55, 1370,  403, 1386,  404, 1408, 1433, 1173,  403,
1127       403,  403,  403,  403,  403,  487,  487,  487,  487,  487,
1128       487,  487,  517,  518,  518,  518,  518,  518,  518,  669,
1129       720,  404,  405,  403,  403,  403,  403,  403,  403,  403,
1130 
1131        53,  422, 1433,  670,  403, 1433, 1433,   55, 1209,  669,
1132       403,  403,  403,  403,  403,  403,  407,  408,  408,  408,
1133       408,  408,  408, 1433,  853,   55, 1433,  409, 1433,  670,
1134        55, 1433, 1433,  409,  409,  409,  409,  409,  409,  250,
1135       410,  410,  410,  410,  410,  410,  410,  664,   55, 1433,
1136       853,  411, 1433,  881,   53,  817,  422,  411,  411,  411,
1137       411,  411,  411,   53,  411,  411,  411,  411,  411,  411,
1138       411,  414,  415,  415,  415,  415,  415,  415, 1206,  673,
1139        53,  422,  416, 1203,   55,   55,   55,  820,  416,  416,
1140       416,  416,  416,  416,  420,  421,  421,  421,  421,  421,
1141 
1142       421,  422,   55,   55,   55,  423,  422,  882,  883,  885,
1143        55,  423,  423,  423,  423,  423,  423,  339,  426,  426,
1144       426,  426,  426,  426,  426,  341,  684, 1200,   55,  427,
1145       969,   55,   55,  887,  823,  427,  427,  427,  427,  427,
1146       427,  428,  429,  429,  429,  429,  429,  429,  422,   55,
1147        55, 1433,  430,  890,  888,   55,  969,   55,  430,  430,
1148       430,  430,  430,  430,  260,  435,  435,  435,  435,  435,
1149       435,  435,  262,   55,  422,   55,  436, 1433,  986,   55,
1150        55,   55,  436,  436,  436,  436,  436,  436,  437,  438,
1151       438,  438,  438,  438,  438,  438,  439,   55,   55,   55,
1152 
1153       440, 1433,  441,  990, 1433,  992,  440,  440,  440,  440,
1154       440,  440,  521,  522,  522,  522,  522,  522,  522,  590,
1155       591,  591,  591,  591,  591,  591, 1197, 1433,  441,  450,
1156      1433, 1433,  422,  451, 1433,   55,  452,   55,  678,  453,
1157       678,  454,  455,  456,  457,  484,  484,  484,  484,  484,
1158       484,  484,  679,   55, 1433,   55,  484, 1433,   55,   55,
1159      1433,  717,  484,  484,  484,  484,  484,  484,  485,  486,
1160       486,  486,  486,  486,  486,   53,   55,   55,  679,  487,
1161      1433, 1433, 1433, 1433, 1109,  487,  487,  487,  487,  487,
1162       487,  401,  488,  488,  488,  488,  488,  488,  488,  489,
1163 
1164       489,  489,  489,  489,  489,  489, 1040, 1433, 1433, 1433,
1165       489, 1433, 1052, 1433,  422,   55,  489,  489,  489,  489,
1166       489,  489,  406,  491,  491,  491,  491,  491,  491,  491,
1167       422, 1274, 1040,   55,  492, 1209,  248, 1433, 1052, 1433,
1168       492,  492,  492,  492,  492,  492,  598,  599,  599,  599,
1169       599,  599,  599,  602,  603,  603,  603,  603,  603,  603,
1170        55,  680,  248,  492,  492,  492,  492,  492,  492,  492,
1171      1433, 1206, 1172, 1433,  492,  681, 1203, 1200,   55,  719,
1172       492,  492,  492,  492,  492,  492,  493,  493,  493,  493,
1173       493,  493,  493,   53,  789,  797, 1433,  494, 1172, 1433,
1174 
1175      1197,  681,  791,  494,  494,  494,  494,  494,  494,   53,
1176       494,  494,  494,  494,  494,  494,  494,  339,  497,  497,
1177       497,  497,  497,  497,  497,  498,  828,  680, 1274,  499,
1178      1181,  343,  978, 1059,  999,  499,  499,  499,  499,  499,
1179       499, 1433,  689,  690,  690,  690,  690,  690,  690,  692,
1180       693,  693,  693,  693,  693,  693,   55,  343,  503,  504,
1181       504,  504,  504,  504,  504,  504,  505, 1433,  422, 1209,
1182       506,  860,  507, 1055,   55, 1053,  506,  506,  506,  506,
1183       506,  506,  696,  697,  697,  697,  697,  697,  697,  747,
1184       748,  748,  748,  748,  748,  748,  783,   55,  507,  339,
1185 
1186       510,  510,  510,  510,  510,  510,  510,  498, 1047,  422,
1187       784,  511, 1206, 1433, 1433,   55,   55,  511,  511,  511,
1188       511,  511,  511,  512,  513,  513,  513,  513,  513,  513,
1189       513,  514,  799,  848,   55,  515,  784,  516, 1085, 1433,
1190      1433,  515,  515,  515,  515,  515,  515,  755,  756,  756,
1191       756,  756,  756,  756,  759,  760,  760,  760,  760,  760,
1192       760,  783,   55,  516,  437,  523,  523,  523,  523,  523,
1193       523,  523,  439, 1043, 1041, 1433,  524, 1433,   55, 1035,
1194        55,  785,  524,  524,  524,  524,  524,  524,  525,  526,
1195       526,  526,  526,  526,  526,  786,   55,  886,  422,  527,
1196 
1197      1088, 1433,   55, 1433,   55,  527,  527,  527,  527,  527,
1198       527,  565,  785,  566,  566,  566,  566,  566,  566,  566,
1199        55,  786,   55, 1203,  566, 1089, 1433,  837, 1031,   55,
1200       566,  566,  566,  566,  566,  566,  567,  568,  568,  568,
1201       568,  568,  568,  568, 1029,  837, 1184,   55,  569, 1187,
1202       570, 1024, 1433, 1002,  569,  569,  569,  569,  569,  569,
1203       767,  768,  768,  768,  768,  768,  768,  770,  771,  771,
1204       771,  771,  771,  771,  833,   55,  570,  567,  569,  569,
1205       569,  569,  569,  569,  569, 1433,  848,  422,  834,  569,
1206      1433, 1200,   55,   55, 1005,  569,  569,  569,  569,  569,
1207 
1208       569,  406,  572,  572,  572,  572,  572,  572,  572,  860,
1209        55, 1433,  891,  573,  834, 1190, 1433, 1008,  828,  573,
1210       573,  573,  573,  573,  573,   53,  573,  573,  573,  573,
1211       573,  573,  573,  574,  574,  574,  574,  574,  574,  574,
1212       976, 1015, 1020, 1015,  575, 1231, 1239, 1247,  978, 1197,
1213       575,  575,  575,  575,  575,  575,   53,  575,  575,  575,
1214       575,  575,  575,  575,  578,  579,  579,  579,  579,  579,
1215       579, 1231, 1239, 1247, 1433,  580, 1328, 1357,   55,   55,
1216        55,  580,  580,  580,  580,  580,  580,  339,  426,  426,
1217       426,  426,  426,  426,  426,  498,   55,   55,   55,  427,
1218 
1219      1433, 1361, 1328, 1357,  833,  427,  427,  427,  427,  427,
1220       427,  581,  582,  582,  582,  582,  582,  582, 1433, 1188,
1221      1185, 1186,  583,  422,   55,   55, 1197, 1361,  583,  583,
1222       583,  583,  583,  583,  587,  588,  588,  588,  588,  588,
1223       588,  422,   55,   55, 1433,  589,  422, 1111,   55,   55,
1224        55,  589,  589,  589,  589,  589,  589,  503,  592,  592,
1225       592,  592,  592,  592,  592,  505,   55,   55,   55,  593,
1226      1216,   55,   55,   55, 1092,  593,  593,  593,  593,  593,
1227       593,  594,  595,  595,  595,  595,  595,  595,  422,   55,
1228        55,   55,  596, 1337, 1269, 1209,   55, 1206,  596,  596,
1229 
1230       596,  596,  596,  596,  512,  604,  604,  604,  604,  604,
1231       604,  604,  514, 1024,   55, 1339,  605, 1338, 1203,   55,
1232      1200, 1200,  605,  605,  605,  605,  605,  605,  606,  607,
1233       607,  607,  607,  607,  607,  422, 1035,   55, 1365,  608,
1234      1369, 1407, 1197,   55, 1203,  608,  608,  608,  608,  608,
1235       608,  437,  614,  614,  614,  614,  614,  614,  614,  439,
1236      1047,   55, 1415,  615, 1365, 1416, 1369, 1407, 1206,  615,
1237       615,  615,  615,  615,  615,  616,  617,  617,  617,  617,
1238       617,  617,  617,  618, 1059, 1092,  976,  619, 1415,  620,
1239      1181, 1416, 1209,  619,  619,  619,  619,  619,  619,  774,
1240 
1241       775,  775,  775,  775,  775,  775,  690,  690,  690,  690,
1242       690,  690,  690,   55,  842,  620,  644,  644,  644,  644,
1243       644,  644,  644, 1417, 1109, 1418, 1419,  644,  843,  978,
1244        55,   55, 1274,  644,  644,  644,  644,  644,  644,  645,
1245       645,  645,  645,  645,  645,  645,  884, 1179,   55, 1417,
1246       645, 1418, 1419, 1424,  843, 1181,  645,  645,  645,  645,
1247       645,  645,  567,  646,  646,  646,  646,  646,  646,  646,
1248       647,  647,  647,  647,  647,  647,  647, 1179, 1430, 1424,
1249       789,  647,  972,   55,   55, 1433,  970,  647,  647,  647,
1250       647,  647,  647,  406,  649,  649,  649,  649,  649,  649,
1251 
1252       649,   55,   55, 1061, 1430,  650,  422, 1008, 1049,  422,
1253      1270,  650,  650,  650,  650,  650,  650,   53,  650,  650,
1254       650,  650,  650,  650,  650,  651,  651,  651,  651,  651,
1255       651,  651, 1005, 1037,  422, 1002,  652, 1026,  422,  999,
1256      1017,  422,  652,  652,  652,  652,  652,  652,   53,  652,
1257       652,  652,  652,  652,  652,  652,  503,  655,  655,  655,
1258       655,  655,  655,  655,  656,   55,  842,  844,  657, 1111,
1259       507,  422, 1092,  844,  657,  657,  657,  657,  657,  657,
1260      1433,  845, 1008,   55, 1005, 1002,  999, 1433, 1092,  978,
1261        55,  791,   55,  860,   55,  798,  507,  512,  658,  658,
1262 
1263       658,  658,  658,  658,  658,  659, 1433,  845,   55,  660,
1264        55,  516,   55, 1433,   55,  660,  660,  660,  660,  660,
1265       660,  806,  803, 1061,  315,  811,  811,  811,  811,  811,
1266       811,  811,   55,  854,  854,  856,   55,  516,  664,  665,
1267       665,  665,  665,  665,  665,  665,  666,  855, 1433,  857,
1268       667, 1084,  668, 1008,   55,  856,  667,  667,  667,  667,
1269       667,  667,  768,  768,  768,  768,  768,  768,  768, 1433,
1270        55,  985,  684,  855, 1433,  857,  970,  856,  668,  503,
1271       671,  671,  671,  671,  671,  671,  671,  656,   55,  854,
1272       971,  672,  848, 1049, 1005, 1433, 1384,  672,  672,  672,
1273 
1274       672,  672,  672,  673,  674,  674,  674,  674,  674,  674,
1275       674,  675,  673,  844,  842,  676,  971,  677,  837, 1037,
1276      1002,  676,  676,  676,  676,  676,  676,  866,  867,  867,
1277       867,  867,  867,  867,  869,  870,  870,  870,  870,  870,
1278       870,  970,   55,  677,  512,  682,  682,  682,  682,  682,
1279       682,  682,  659,  664,  833, 1433,  683,  828, 1026,  999,
1280        55,  987,  683,  683,  683,  683,  683,  683,  684,  685,
1281       685,  685,  685,  685,  685,  685,  686, 1017,  988,  914,
1282       687, 1433,  688,  899,   55,   55,  687,  687,  687,  687,
1283       687,  687,  873,  874,  874,  874,  874,  874,  874, 1008,
1284 
1285      1005, 1002,   55,   55,  999,  972,  972,   55,  688,  616,
1286       698,  698,  698,  698,  698,  698,  698,  618,  889,  973,
1287      1433,  699, 1087,  997,  899,   55,  789,  699,  699,  699,
1288       699,  699,  699,  700,  701,  701,  701,  701,  701,  701,
1289       981,  978,  791,  616,  702,  973, 1433,  785,  783,  862,
1290       702,  702,  702,  702,  702,  702,   53,   53,   53,   53,
1291        53,   53,   53,  823,  850,  820,  839,   53,   55,   55,
1292        55,   55,   55,   53,   53,   53,   53,   53,   53,  918,
1293       919,  919,  919,  919,  919,  919,   55,   55,   55,   55,
1294        55,  704,  722,  817,  723,  723,  723,  723,  723,  723,
1295 
1296       723,  982,  983,  984,  989,  723,  991, 1336,   55,   55,
1297        55,  723,  723,  723,  723,  723,  723,  926,  927,  927,
1298       927,  927,  927,  927, 1020, 1020,   55,   55,   55,   53,
1299       724,  725,  725,  725,  725,  725,  725,  725, 1021, 1433,
1300      1083, 1086,  725, 1191,  830,  914,  899,  823,  725,  725,
1301       725,  725,  725,  725,  930,  931,  931,  931,  931,  931,
1302       931,  820,  817,  899, 1021, 1433,   53,  646,  646,  646,
1303       646,  646,  646,  646,  938,  939,  939,  939,  939,  939,
1304       939,  941,  942,  942,  942,  942,  942,  942,  945,  946,
1305       946,  946,  946,  946,  946,  954,  955,  955,  955,  955,
1306 
1307       955,  955,   53,  647,  647,  647,  647,  647,  647,  647,
1308       791,  618,  684,  862,  647,  823,  512,  680,  678,  673,
1309       647,  647,  647,  647,  647,  647,  726,  327,  327,  327,
1310       327,  327,  327,  327,  250,  728,  728,  728,  728,  728,
1311       728,  728,  850,  820,  503,  669,  729,  664,  839,  817,
1312       830,  827,  729,  729,  729,  729,  729,  729,   53,  729,
1313       729,  729,  729,  729,  729,  729,  732,  733,  733,  733,
1314       733,  733,  733,  743,  731,  823,  820,  734,  817,  815,
1315       731,  616,  791,  734,  734,  734,  734,  734,  734,  503,
1316       592,  592,  592,  592,  592,  592,  592,  656,  618,  437,
1317 
1318       612,  593,  610,  686,  659,  675, 1029,  593,  593,  593,
1319       593,  593,  593,  735,  736,  736,  736,  736,  736,  736,
1320      1030,  656,  666,  743,  737,  731,  659,  656,  731,   53,
1321       737,  737,  737,  737,  737,  737,  512,  604,  604,  604,
1322       604,  604,  604,  604,  659,   53, 1030,   53,  605,  718,
1323        53,   53,  712, 1029,  605,  605,  605,  605,  605,  605,
1324       738,  739,  739,  739,  739,  739,  739, 1433,  618,  439,
1325       512,  740,  686,  659,  339,  508,  503,  740,  740,  740,
1326       740,  740,  740,  744,  745,  745,  745,  745,  745,  745,
1327       422,  675,  656, 1433,  746,  666,  663,  586,  577,  659,
1328 
1329       746,  746,  746,  746,  746,  746,  664,  749,  749,  749,
1330       749,  749,  749,  749,  666,  656,  654,  577,  750,  567,
1331       565,  643,  642,  641,  750,  750,  750,  750,  750,  750,
1332       751,  752,  752,  752,  752,  752,  752,  422,  640,  639,
1333       638,  753,  637,  636,  635,  634,  633,  753,  753,  753,
1334       753,  753,  753,  673,  761,  761,  761,  761,  761,  761,
1335       761,  675,  632,  631,  630,  762,  629,  628,  627,  626,
1336       625,  762,  762,  762,  762,  762,  762,  763,  764,  764,
1337       764,  764,  764,  764,  422,  624,  623,  622,  765,  621,
1338       437,  618,  439,  433,  765,  765,  765,  765,  765,  765,
1339 
1340       684,  776,  776,  776,  776,  776,  776,  776,  686,  514,
1341       498,  505,  777,  586,  577,  498,  577,  571,  777,  777,
1342       777,  777,  777,  777,  778,  779,  779,  779,  779,  779,
1343       779,  422,  571,  564,  563,  780,  562,  561,  560,  559,
1344       558,  780,  780,  780,  780,  780,  780,  616,  787,  787,
1345       787,  787,  787,  787,  787,  618,  557,  556,  312,  788,
1346       222,  555,  554,  553,  552,  788,  788,  788,  788,  788,
1347       788,  789,  790,  790,  790,  790,  790,  790,  790,  791,
1348       551,  550,  549,  792,  548,  793,  547,  546,  545,  792,
1349       792,  792,  792,  792,  792,  957,  958,  958,  958,  958,
1350 
1351       958,  958,  961,  962,  962,  962,  962,  962,  962, 1031,
1352      1031,  793,   55, 1041,  807,  807,  807,  807,  807,  807,
1353       807,  544,  541, 1032, 1433,  807,  538, 1042,  537,  536,
1354        55,  807,  807,  807,  807,  807,  807,  808,  808,  808,
1355       808,  808,  808,  808,  535,  534,  533,  532,  808, 1032,
1356      1433,  531,  530, 1042,  808,  808,  808,  808,  808,  808,
1357       809,  810,  810,  810,  810,  810,  810,  529,  439,  262,
1358       422,  811,  339,   55,  514,  498,  505,  811,  811,  811,
1359       811,  811,  811,  250,  812,  812,  812,  812,  812,  812,
1360       812,   55,  422,  502,  419,  813,  413,  498,  496,  413,
1361 
1362      1383,  813,  813,  813,  813,  813,  813,   53,  813,  813,
1363       813,  813,  813,  813,  813,  664,  816,  816,  816,  816,
1364       816,  816,  816,  817,  405,  399,  483,  818,  482,  668,
1365       481,  480,  479,  818,  818,  818,  818,  818,  818,  867,
1366       867,  867,  867,  867,  867,  867,  939,  939,  939,  939,
1367       939,  939,  939, 1041,  478,  668,  673,  819,  819,  819,
1368       819,  819,  819,  819,  820,  477, 1043, 1433,  821,  476,
1369       677,  475, 1043, 1053,  821,  821,  821,  821,  821,  821,
1370      1044,  474,  473,  472,  471,  468, 1433, 1054,  467,  464,
1371       463,  462,   55, 1433, 1053,  461,  677,  684,  822,  822,
1372 
1373       822,  822,  822,  822,  822,  823, 1044,  460, 1433,  824,
1374        55,  688, 1433, 1054, 1055,  824,  824,  824,  824,  824,
1375       824,  955,  955,  955,  955,  955,  955,  955, 1056, 1382,
1376       113,  459,  458, 1055, 1433, 1173,  449,  688,  828,  829,
1377       829,  829,  829,  829,  829,  829,  830, 1433,  448, 1174,
1378       831,  447,  832,  446, 1056, 1173,  831,  831,  831,  831,
1379       831,  831, 1065, 1066, 1066, 1066, 1066, 1066, 1066, 1433,
1380       445,  444,  443, 1433, 1175, 1174, 1175,  442,  832,  664,
1381       835,  835,  835,  835,  835,  835,  835,  817, 1176,  260,
1382      1433,  836,  439,  262,  422, 1433,  341,  836,  836,  836,
1383 
1384       836,  836,  836,  837,  838,  838,  838,  838,  838,  838,
1385       838,  839,  419,  413, 1176,  840, 1433,  841,  413,  406,
1386       406,  840,  840,  840,  840,  840,  840, 1068, 1069, 1069,
1387      1069, 1069, 1069, 1069, 1072, 1073, 1073, 1073, 1073, 1073,
1388      1073, 1219,  398,  841,  673,  846,  846,  846,  846,  846,
1389       846,  846,  820,  391,  390, 1220,  847,  387,  386,  385,
1390       384,  383,  847,  847,  847,  847,  847,  847,  848,  849,
1391       849,  849,  849,  849,  849,  849,  850,   55,   55, 1219,
1392       851, 1220,  852,  382,  381,  380,  851,  851,  851,  851,
1393       851,  851,  379, 1433,  378,   55,   55, 1115, 1116, 1116,
1394 
1395      1116, 1116, 1116, 1116, 1224,  377, 1080, 1081,  852,  684,
1396       858,  858,  858,  858,  858,  858,  858,  823, 1225, 1433,
1397       376,  859,  375,  374,  373,  372,  371,  859,  859,  859,
1398       859,  859,  859,  860,  861,  861,  861,  861,  861,  861,
1399       861,  862,   55, 1224, 1225,  863,  366,  864,  365,  294,
1400        55,  863,  863,  863,  863,  863,  863, 1433,  364,  363,
1401        55, 1121, 1122, 1122, 1122, 1122, 1122, 1122,   55,  362,
1402      1226, 1082,  361,  864,  789,  875,  875,  875,  875,  875,
1403       875,  875,  791, 1433, 1227,  360,  876, 1411,  359,  353,
1404       262, 1226,  876,  876,  876,  876,  876,  876,  877,  878,
1405 
1406       878,  878,  878,  878,  878, 1433,  341,  258,  338,  879,
1407      1227,  255,  334,  249,  243,  879,  879,  879,  879,  879,
1408       879,   55, 1232,  892,  892,  892,  892,  892,  892,  892,
1409       135, 1433,  322,  321,  892,  320, 1233,  315,  294,   55,
1410       892,  892,  892,  892,  892,  892,  893,  893,  893,  893,
1411       893,  893,  893,  314,  313,  312,  311,  893,  310,  309,
1412       308,  307, 1233,  893,  893,  893,  893,  893,  893,  571,
1413       894,  894,  894,  894,  894,  894,  894,  306,  305,  304,
1414       303,  895,  302,  404,  301,  300,  297,  895,  895,  895,
1415       895,  895,  895, 1125, 1126, 1126, 1126, 1126, 1126, 1126,
1416 
1417      1131, 1132, 1132, 1132, 1132, 1132, 1132,  296, 1232,  404,
1418       895,  895,  895,  895,  895,  895,  895,  295,  294,  293,
1419       292,  895, 1433,  291,  290,  289,  288,  895,  895,  895,
1420       895,  895,  895,  250,  896,  896,  896,  896,  896,  896,
1421       896,  287,  286,  285,  284,  897,  283,  282, 1433,  281,
1422       280,  897,  897,  897,  897,  897,  897,   53,  897,  897,
1423       897,  897,  897,  897,  897,  900,  901,  901,  901,  901,
1424       901,  901,  279,  135,  278,  277,  902,  276,  275,  274,
1425       273,  272,  902,  902,  902,  902,  902,  902,  664,  749,
1426       749,  749,  749,  749,  749,  749,  817,  271,  270,  269,
1427 
1428       750,  268,  267,  266,  265, 1234,  750,  750,  750,  750,
1429       750,  750,  903,  904,  904,  904,  904,  904,  904, 1235,
1430       262,  250,  255,  905,  242,  241,  240,  239,  238,  905,
1431       905,  905,  905,  905,  905,  673,  761,  761,  761,  761,
1432       761,  761,  761,  820,  237, 1235,  236,  762,  235,  234,
1433       233,  230, 1234,  762,  762,  762,  762,  762,  762,  906,
1434       907,  907,  907,  907,  907,  907, 1433,  227,  224,  223,
1435       908,  222,  221,  218,  217,  216,  908,  908,  908,  908,
1436       908,  908,  684,  776,  776,  776,  776,  776,  776,  776,
1437       823,  215, 1433,  214,  777,  213,  212,  211,  210, 1240,
1438 
1439       777,  777,  777,  777,  777,  777,  909,  910,  910,  910,
1440       910,  910,  910, 1241,  209,  208,  207,  911,  206,  205,
1441       204,  203,  199,  911,  911,  911,  911,  911,  911,  915,
1442       916,  916,  916,  916,  916,  916,  422,  198,  188, 1241,
1443       917,  187,  186,  183,  182,  181,  917,  917,  917,  917,
1444       917,  917,  828,  920,  920,  920,  920,  920,  920,  920,
1445       830,  180,  179,  178,  921,  177,  176,  172,  171,  170,
1446       921,  921,  921,  921,  921,  921,  922,  923,  923,  923,
1447       923,  923,  923,  422,  169,  168,  167,  924,  166,  165,
1448       164,  163,  162,  924,  924,  924,  924,  924,  924,  837,
1449 
1450       932,  932,  932,  932,  932,  932,  932,  839,  161,  160,
1451       159,  933,  158,  157,  152,  143,  142,  933,  933,  933,
1452       933,  933,  933,  934,  935,  935,  935,  935,  935,  935,
1453       422,  137,   88,   59,  936,   47,   45, 1433, 1433, 1433,
1454       936,  936,  936,  936,  936,  936,  848,  947,  947,  947,
1455       947,  947,  947,  947,  850, 1433, 1433, 1433,  948, 1433,
1456      1433, 1433, 1433, 1433,  948,  948,  948,  948,  948,  948,
1457       949,  950,  950,  950,  950,  950,  950,  422, 1433, 1433,
1458      1433,  951, 1433, 1433, 1433, 1433, 1433,  951,  951,  951,
1459       951,  951,  951,  860,  963,  963,  963,  963,  963,  963,
1460 
1461       963,  862, 1433, 1433, 1433,  964, 1433, 1433, 1433, 1433,
1462      1433,  964,  964,  964,  964,  964,  964,  965,  966,  966,
1463       966,  966,  966,  966,  422, 1433, 1433, 1433,  967, 1433,
1464      1433, 1433, 1433, 1433,  967,  967,  967,  967,  967,  967,
1465       789,  974,  974,  974,  974,  974,  974,  974,  791, 1433,
1466      1433, 1433,  975, 1433, 1433, 1433, 1433, 1433,  975,  975,
1467       975,  975,  975,  975,  976,  977,  977,  977,  977,  977,
1468       977,  977,  978, 1433, 1433, 1433,  979, 1433,  980, 1433,
1469      1433, 1433,  979,  979,  979,  979,  979,  979, 1134, 1135,
1470      1135, 1135, 1135, 1135, 1135, 1138, 1139, 1139, 1139, 1139,
1471 
1472      1139, 1139, 1433, 1433,  980,   55,  571,  993,  993,  993,
1473       993,  993,  993,  993, 1433, 1433, 1433, 1433,  994, 1433,
1474      1433, 1433, 1433,   55,  994,  994,  994,  994,  994,  994,
1475        53,  994,  994,  994,  994,  994,  994,  994,   55,  250,
1476       995,  995,  995,  995,  995,  995,  995, 1145, 1146, 1146,
1477      1146, 1146, 1146, 1146, 1433, 1433,   55,  828,  998,  998,
1478       998,  998,  998,  998,  998,  999, 1433, 1433, 1433, 1000,
1479      1433,  832, 1433, 1433, 1433, 1000, 1000, 1000, 1000, 1000,
1480      1000, 1148, 1149, 1149, 1149, 1149, 1149, 1149, 1152, 1153,
1481      1153, 1153, 1153, 1153, 1153, 1433, 1433,  832,  837, 1001,
1482 
1483      1001, 1001, 1001, 1001, 1001, 1001, 1002, 1433, 1433, 1433,
1484      1003, 1433,  841, 1433, 1433, 1433, 1003, 1003, 1003, 1003,
1485      1003, 1003, 1159, 1160, 1160, 1160, 1160, 1160, 1160, 1162,
1486      1163, 1163, 1163, 1163, 1163, 1163, 1433, 1433,  841,  848,
1487      1004, 1004, 1004, 1004, 1004, 1004, 1004, 1005, 1433, 1433,
1488      1433, 1006, 1433,  852, 1433, 1433, 1433, 1006, 1006, 1006,
1489      1006, 1006, 1006, 1166, 1167, 1167, 1167, 1167, 1167, 1167,
1490      1066, 1066, 1066, 1066, 1066, 1066, 1066,   55, 1433,  852,
1491       860, 1007, 1007, 1007, 1007, 1007, 1007, 1007, 1008, 1433,
1492      1240, 1242, 1009, 1433,  864,   55, 1433, 1433, 1009, 1009,
1493 
1494      1009, 1009, 1009, 1009, 1433, 1243, 1189, 1211, 1212, 1212,
1495      1212, 1212, 1212, 1212, 1433, 1242, 1433, 1433, 1433, 1248,
1496       864, 1011, 1012, 1012, 1012, 1012, 1012, 1012, 1013, 1433,
1497      1433, 1243, 1014, 1249, 1433, 1433, 1433, 1433, 1014, 1014,
1498      1014, 1014, 1014, 1014, 1015, 1016, 1016, 1016, 1016, 1016,
1499      1016, 1016, 1017, 1433, 1433, 1433, 1018, 1433, 1019, 1249,
1500      1433, 1433, 1018, 1018, 1018, 1018, 1018, 1018, 1132, 1132,
1501      1132, 1132, 1132, 1132, 1132, 1146, 1146, 1146, 1146, 1146,
1502      1146, 1146, 1248, 1433, 1019,  828, 1022, 1022, 1022, 1022,
1503      1022, 1022, 1022,  999, 1433, 1433, 1433, 1023, 1433, 1433,
1504 
1505      1433, 1433, 1433, 1023, 1023, 1023, 1023, 1023, 1023, 1024,
1506      1025, 1025, 1025, 1025, 1025, 1025, 1025, 1026, 1433, 1433,
1507      1433, 1027, 1433, 1028, 1433, 1433, 1250, 1027, 1027, 1027,
1508      1027, 1027, 1027, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
1509      1251, 1433, 1433, 1433, 1433, 1250, 1433, 1282, 1433, 1028,
1510       837, 1033, 1033, 1033, 1033, 1033, 1033, 1033, 1002, 1433,
1511      1433, 1283, 1034, 1433, 1433, 1433, 1251, 1433, 1034, 1034,
1512      1034, 1034, 1034, 1034, 1035, 1036, 1036, 1036, 1036, 1036,
1513      1036, 1036, 1037, 1433, 1433, 1433, 1038, 1283, 1039, 1433,
1514      1433, 1433, 1038, 1038, 1038, 1038, 1038, 1038, 1256, 1257,
1515 
1516      1257, 1257, 1257, 1257, 1257, 1259, 1260, 1260, 1260, 1260,
1517      1260, 1260, 1282, 1433, 1039,  848, 1045, 1045, 1045, 1045,
1518      1045, 1045, 1045, 1005, 1433, 1433, 1433, 1046, 1433, 1433,
1519      1433, 1433, 1433, 1046, 1046, 1046, 1046, 1046, 1046, 1047,
1520      1048, 1048, 1048, 1048, 1048, 1048, 1048, 1049, 1433, 1433,
1521      1433, 1050, 1433, 1051, 1433, 1433, 1433, 1050, 1050, 1050,
1522      1050, 1050, 1050, 1263, 1264, 1264, 1264, 1264, 1264, 1264,
1523      1288, 1289, 1289, 1289, 1289, 1289, 1289, 1329, 1433, 1051,
1524       860, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1008, 1433,
1525      1433, 1330, 1058, 1433, 1433, 1433, 1433,   55, 1058, 1058,
1526 
1527      1058, 1058, 1058, 1058, 1059, 1060, 1060, 1060, 1060, 1060,
1528      1060, 1060, 1061,   55, 1433,   55, 1062, 1330, 1063, 1433,
1529      1433, 1433, 1062, 1062, 1062, 1062, 1062, 1062, 1271, 1433,
1530      1433,   55, 1293, 1294, 1294, 1294, 1294, 1294, 1294, 1433,
1531      1433, 1329, 1272, 1433, 1063,  976, 1074, 1074, 1074, 1074,
1532      1074, 1074, 1074,  978, 1433, 1433, 1433, 1075, 1433, 1433,
1533      1433, 1433, 1331, 1075, 1075, 1075, 1075, 1075, 1075, 1076,
1534      1077, 1077, 1077, 1077, 1077, 1077, 1332, 1433, 1433, 1433,
1535      1078, 1433, 1433, 1433, 1433, 1433, 1078, 1078, 1078, 1078,
1536      1078, 1078,   55,  571, 1090, 1090, 1090, 1090, 1090, 1090,
1537 
1538      1090, 1433, 1332, 1433, 1433,  897, 1433, 1433, 1433, 1433,
1539        55,  897,  897,  897,  897,  897,  897,   53,  897,  897,
1540       897,  897,  897,  897,  897,   55,  250,  995,  995,  995,
1541       995,  995,  995,  995, 1296, 1297, 1297, 1297, 1297, 1297,
1542      1297, 1433, 1331,   55, 1093, 1094, 1094, 1094, 1094, 1094,
1543      1094, 1433, 1433, 1433, 1433, 1095, 1433, 1433, 1433, 1433,
1544      1433, 1095, 1095, 1095, 1095, 1095, 1095,  828,  920,  920,
1545       920,  920,  920,  920,  920,  999, 1433, 1433, 1433,  921,
1546      1433, 1433, 1433, 1433, 1354,  921,  921,  921,  921,  921,
1547       921, 1096, 1097, 1097, 1097, 1097, 1097, 1097, 1355, 1433,
1548 
1549      1433, 1433, 1098, 1433, 1433, 1433, 1433, 1433, 1098, 1098,
1550      1098, 1098, 1098, 1098,  837,  932,  932,  932,  932,  932,
1551       932,  932, 1002, 1433, 1355, 1433,  933, 1433, 1433, 1433,
1552      1433, 1354,  933,  933,  933,  933,  933,  933, 1099, 1100,
1553      1100, 1100, 1100, 1100, 1100, 1433, 1433, 1433, 1433, 1101,
1554      1433, 1433, 1433, 1433, 1433, 1101, 1101, 1101, 1101, 1101,
1555      1101,  848,  947,  947,  947,  947,  947,  947,  947, 1005,
1556      1433, 1433, 1433,  948, 1433, 1433, 1433, 1433, 1358,  948,
1557       948,  948,  948,  948,  948, 1102, 1103, 1103, 1103, 1103,
1558      1103, 1103, 1359, 1433, 1433, 1433, 1104, 1433, 1433, 1433,
1559 
1560      1433, 1433, 1104, 1104, 1104, 1104, 1104, 1104,  860,  963,
1561       963,  963,  963,  963,  963,  963, 1008, 1433, 1359, 1433,
1562       964, 1433, 1433, 1433, 1433, 1358,  964,  964,  964,  964,
1563       964,  964, 1105, 1106, 1106, 1106, 1106, 1106, 1106, 1433,
1564      1433, 1433, 1433, 1107, 1433, 1433, 1433, 1433, 1433, 1107,
1565      1107, 1107, 1107, 1107, 1107, 1109, 1110, 1110, 1110, 1110,
1566      1110, 1110, 1110, 1111, 1433, 1433, 1433, 1112, 1433, 1113,
1567      1433, 1433, 1433, 1112, 1112, 1112, 1112, 1112, 1112, 1302,
1568      1303, 1303, 1303, 1303, 1303, 1303, 1305, 1306, 1306, 1306,
1569      1306, 1306, 1306, 1362, 1433, 1113, 1015, 1117, 1117, 1117,
1570 
1571      1117, 1117, 1117, 1117, 1017, 1433, 1433, 1363, 1118, 1433,
1572      1433, 1433, 1433, 1433, 1118, 1118, 1118, 1118, 1118, 1118,
1573      1024, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1026, 1433,
1574      1433, 1433, 1128, 1363, 1433, 1433, 1433, 1433, 1128, 1128,
1575      1128, 1128, 1128, 1128, 1035, 1140, 1140, 1140, 1140, 1140,
1576      1140, 1140, 1037, 1433, 1433, 1433, 1141, 1433, 1433, 1433,
1577      1433, 1433, 1141, 1141, 1141, 1141, 1141, 1141, 1047, 1154,
1578      1154, 1154, 1154, 1154, 1154, 1154, 1049, 1433, 1433, 1433,
1579      1155, 1433, 1433, 1433, 1433, 1433, 1155, 1155, 1155, 1155,
1580      1155, 1155, 1059, 1168, 1168, 1168, 1168, 1168, 1168, 1168,
1581 
1582      1061, 1433, 1433, 1433, 1169, 1433, 1433, 1433, 1433, 1433,
1583      1169, 1169, 1169, 1169, 1169, 1169,  976, 1177, 1177, 1177,
1584      1177, 1177, 1177, 1177,  978, 1433, 1433, 1433, 1178, 1433,
1585      1433, 1433, 1433, 1433, 1178, 1178, 1178, 1178, 1178, 1178,
1586      1179, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1181, 1433,
1587      1433, 1433, 1182, 1433, 1183, 1433, 1433, 1433, 1182, 1182,
1588      1182, 1182, 1182, 1182, 1311, 1312, 1312, 1312, 1312, 1312,
1589      1312, 1314, 1315, 1315, 1315, 1315, 1315, 1315, 1433, 1433,
1590      1183,   55,  571,  488,  488,  488,  488,  488,  488,  488,
1591      1320, 1321, 1321, 1321, 1321, 1321, 1321, 1433, 1362,   55,
1592 
1593      1192, 1193, 1193, 1193, 1193, 1193, 1193, 1194, 1433, 1433,
1594      1433, 1195, 1433, 1433, 1433, 1433, 1433, 1195, 1195, 1195,
1595      1195, 1195, 1195, 1015, 1196, 1196, 1196, 1196, 1196, 1196,
1596      1196, 1197, 1433, 1433, 1433, 1198, 1433, 1019, 1433, 1433,
1597      1433, 1198, 1198, 1198, 1198, 1198, 1198, 1323, 1324, 1324,
1598      1324, 1324, 1324, 1324, 1257, 1257, 1257, 1257, 1257, 1257,
1599      1257, 1433, 1433, 1019, 1024, 1199, 1199, 1199, 1199, 1199,
1600      1199, 1199, 1200, 1433, 1433, 1433, 1201, 1433, 1028, 1433,
1601      1433, 1433, 1201, 1201, 1201, 1201, 1201, 1201, 1348, 1349,
1602      1349, 1349, 1349, 1349, 1349, 1294, 1294, 1294, 1294, 1294,
1603 
1604      1294, 1294, 1433, 1433, 1028, 1035, 1202, 1202, 1202, 1202,
1605      1202, 1202, 1202, 1203, 1433, 1433, 1433, 1204, 1433, 1039,
1606      1433, 1433, 1433, 1204, 1204, 1204, 1204, 1204, 1204, 1303,
1607      1303, 1303, 1303, 1303, 1303, 1303, 1312, 1312, 1312, 1312,
1608      1312, 1312, 1312, 1366, 1433, 1039, 1047, 1205, 1205, 1205,
1609      1205, 1205, 1205, 1205, 1206, 1433, 1366, 1367, 1207, 1433,
1610      1051, 1433, 1433, 1433, 1207, 1207, 1207, 1207, 1207, 1207,
1611      1433, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1433, 1433,
1612      1433, 1433, 1433, 1367, 1370, 1433, 1051, 1059, 1208, 1208,
1613      1208, 1208, 1208, 1208, 1208, 1209, 1433, 1370, 1371, 1210,
1614 
1615      1433, 1063, 1433, 1433, 1433, 1210, 1210, 1210, 1210, 1210,
1616      1210, 1433, 1374, 1375, 1375, 1375, 1375, 1375, 1375, 1433,
1617      1433, 1433, 1433, 1433, 1371, 1386, 1433, 1063, 1109, 1213,
1618      1213, 1213, 1213, 1213, 1213, 1213, 1111, 1433, 1433, 1387,
1619      1214, 1433, 1433, 1433, 1433, 1433, 1214, 1214, 1214, 1214,
1620      1214, 1214, 1015, 1221, 1221, 1221, 1221, 1221, 1221, 1221,
1621      1197, 1433, 1433, 1433, 1222, 1387, 1433, 1433, 1433, 1433,
1622      1222, 1222, 1222, 1222, 1222, 1222, 1024, 1228, 1228, 1228,
1623      1228, 1228, 1228, 1228, 1200, 1433, 1433, 1433, 1229, 1433,
1624      1433, 1433, 1433, 1433, 1229, 1229, 1229, 1229, 1229, 1229,
1625 
1626      1035, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1203, 1433,
1627      1433, 1433, 1237, 1433, 1433, 1433, 1433, 1433, 1237, 1237,
1628      1237, 1237, 1237, 1237, 1047, 1244, 1244, 1244, 1244, 1244,
1629      1244, 1244, 1206, 1433, 1433, 1433, 1245, 1433, 1433, 1433,
1630      1433, 1433, 1245, 1245, 1245, 1245, 1245, 1245, 1059, 1252,
1631      1252, 1252, 1252, 1252, 1252, 1252, 1209, 1433, 1433, 1433,
1632      1253, 1433, 1433, 1433, 1433, 1433, 1253, 1253, 1253, 1253,
1633      1253, 1253, 1179, 1265, 1265, 1265, 1265, 1265, 1265, 1265,
1634      1181, 1433, 1433, 1433, 1266, 1433, 1433, 1433, 1433, 1433,
1635      1266, 1266, 1266, 1266, 1266, 1266, 1109, 1273, 1273, 1273,
1636 
1637      1273, 1273, 1273, 1273, 1274, 1433, 1433, 1433, 1275, 1433,
1638      1113, 1433, 1433, 1386, 1275, 1275, 1275, 1275, 1275, 1275,
1639      1377, 1378, 1378, 1378, 1378, 1378, 1378, 1433, 1388, 1389,
1640      1389, 1389, 1389, 1389, 1389, 1433, 1113, 1015, 1117, 1117,
1641      1117, 1117, 1117, 1117, 1117, 1197, 1433, 1433, 1433, 1118,
1642      1433, 1433, 1433, 1433, 1433, 1118, 1118, 1118, 1118, 1118,
1643      1118, 1024, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1200,
1644      1433, 1433, 1433, 1128, 1433, 1433, 1433, 1433, 1433, 1128,
1645      1128, 1128, 1128, 1128, 1128, 1035, 1140, 1140, 1140, 1140,
1646      1140, 1140, 1140, 1203, 1433, 1433, 1433, 1141, 1433, 1433,
1647 
1648      1433, 1433, 1433, 1141, 1141, 1141, 1141, 1141, 1141, 1047,
1649      1154, 1154, 1154, 1154, 1154, 1154, 1154, 1206, 1433, 1433,
1650      1433, 1155, 1433, 1433, 1433, 1433, 1433, 1155, 1155, 1155,
1651      1155, 1155, 1155, 1059, 1168, 1168, 1168, 1168, 1168, 1168,
1652      1168, 1209, 1433, 1433, 1433, 1169, 1433, 1433, 1433, 1433,
1653      1433, 1169, 1169, 1169, 1169, 1169, 1169, 1109, 1284, 1284,
1654      1284, 1284, 1284, 1284, 1284, 1274, 1433, 1433, 1433, 1285,
1655      1433, 1433, 1433, 1433, 1433, 1285, 1285, 1285, 1285, 1285,
1656      1285, 1179, 1333, 1333, 1333, 1333, 1333, 1333, 1333, 1181,
1657      1433, 1433, 1433, 1334, 1433, 1433, 1433, 1433, 1433, 1334,
1658 
1659      1334, 1334, 1334, 1334, 1334, 1109, 1213, 1213, 1213, 1213,
1660      1213, 1213, 1213, 1274, 1433, 1433, 1433, 1214, 1433, 1433,
1661      1433, 1433, 1433, 1214, 1214, 1214, 1214, 1214, 1214, 1392,
1662      1393, 1393, 1393, 1393, 1393, 1393, 1396, 1397, 1397, 1397,
1663      1397, 1397, 1397, 1400, 1401, 1401, 1401, 1401, 1401, 1401,
1664      1404, 1405, 1405, 1405, 1405, 1405, 1405, 1375, 1375, 1375,
1665      1375, 1375, 1375, 1375, 1408, 1408, 1412, 1413, 1413, 1413,
1666      1413, 1413, 1413, 1433, 1433, 1433, 1433, 1433, 1409, 1433,
1667      1389, 1389, 1389, 1389, 1389, 1389, 1389, 1393, 1393, 1393,
1668      1393, 1393, 1393, 1393, 1397, 1397, 1397, 1397, 1397, 1397,
1669 
1670      1397, 1433, 1433, 1433, 1409, 1433, 1401, 1401, 1401, 1401,
1671      1401, 1401, 1401, 1405, 1405, 1405, 1405, 1405, 1405, 1405,
1672      1421, 1422, 1422, 1422, 1422, 1422, 1422, 1413, 1413, 1413,
1673      1413, 1413, 1413, 1413, 1422, 1422, 1422, 1422, 1422, 1422,
1674      1422,   46, 1433, 1433, 1433, 1433,   46,   46,   46,   64,
1675      1433,   64,   64,   64,   64,   64,   64,   64,  144, 1433,
1676       144,  151,  151,  151,  254,  254,  254,  263,  263,  263,
1677       333,  333,  333,  336,  336,  336,  337,  337,  337,  344,
1678       344,  344,  342,  342,  342,  348,  348,  348,  352, 1433,
1679       352,  412,  412,  412,  417,  417,  417,  418,  418,  418,
1680 
1681       427,  427,  427,  431, 1433,  431,  432,  432,  432,  346,
1682       346, 1433, 1433,  346,  436,  436,  436,  440,  440,  440,
1683       336,  336,  336,  495,  495,  495,  499,  499,  499,  500,
1684       500,  500,  501,  501,  501,  344,  344,  344,  506,  506,
1685       506,  425,  425, 1433, 1433,  425,  511,  511,  511,  515,
1686       515,  515,  519, 1433,  519,  520,  520,  520,  524,  524,
1687       524,  528, 1433,  528,  576,  576,  576,  427,  427,  427,
1688       584,  584,  584,  585,  585,  585,  593,  593,  593,  597,
1689      1433,  597,  600, 1433,  600,  601,  601,  601,  605,  605,
1690       605,  609, 1433,  609,  518,  518, 1433, 1433,  518,  522,
1691 
1692       522, 1433, 1433,  522,  615,  615,  615,  619,  619,  619,
1693       528,  528, 1433,  528,  500,  500,  500,  653,  653,  653,
1694       657,  657,  657,  660,  660,  660,  661,  661,  661,  662,
1695       662,  662,  667,  667,  667,  591,  591, 1433, 1433,  591,
1696       672,  672,  672,  676,  676,  676,  597,  597, 1433,  597,
1697       599,  599, 1433, 1433,  599,  600,  600, 1433,  600,  601,
1698       601,  603,  603, 1433, 1433,  603,  683,  683,  683,  687,
1699       687,  687,  609,  609, 1433,  609,  691, 1433,  691,  694,
1700      1433,  694,  695,  695,  695,  699,  699,  699,  703, 1433,
1701       703,  730,  730,  730,  593,  593,  593,  605,  605,  605,
1702 
1703       741,  741,  741,  742,  742,  742,  750,  750,  750,  754,
1704      1433,  754,  757, 1433,  757,  758,  758,  758,  762,  762,
1705       762,  766, 1433,  766,  769, 1433,  769,  772, 1433,  772,
1706       773,  773,  773,  777,  777,  777,  781, 1433,  781,  690,
1707      1433, 1433,  690,  691,  691, 1433,  691,  693,  693, 1433,
1708      1433,  693,  694,  694, 1433,  694,  695,  695,  697,  697,
1709      1433, 1433,  697,  788,  788,  788,  792,  792,  792,  703,
1710       703, 1433,  703,   53,   53,   53, 1433,   53,   53,  661,
1711       661,  661,  814,  814,  814,  818,  818,  818,  821,  821,
1712       821,  824,  824,  824,  825,  825,  825,  826,  826,  826,
1713 
1714       831,  831,  831,  748,  748, 1433, 1433,  748,  836,  836,
1715       836,  840,  840,  840,  754,  754, 1433,  754,  756,  756,
1716      1433, 1433,  756,  757,  757, 1433,  757,  758,  758,  760,
1717       760, 1433, 1433,  760,  847,  847,  847,  851,  851,  851,
1718       766,  766, 1433,  766,  768, 1433, 1433,  768,  769,  769,
1719      1433,  769,  771,  771, 1433, 1433,  771,  772,  772, 1433,
1720       772,  773,  773,  775,  775, 1433, 1433,  775,  859,  859,
1721       859,  863,  863,  863,  781,  781, 1433,  781,  865, 1433,
1722       865,  868, 1433,  868,  871, 1433,  871,  872,  872,  872,
1723       876,  876,  876,  880, 1433,  880,   53,   53,   53, 1433,
1724 
1725        53,   53,  898,  898,  898,  750,  750,  750,  762,  762,
1726       762,  777,  777,  777,  912,  912,  912,  913,  913,  913,
1727       921,  921,  921,  925, 1433,  925,  928, 1433,  928,  929,
1728       929,  929,  933,  933,  933,  937, 1433,  937,  940, 1433,
1729       940,  943, 1433,  943,  944,  944,  944,  948,  948,  948,
1730       952, 1433,  952,  953, 1433,  953,  956, 1433,  956,  959,
1731      1433,  959,  960,  960,  960,  964,  964,  964,  968, 1433,
1732       968,  865, 1433,  865,  867, 1433, 1433,  867,  868,  868,
1733      1433,  868,  870,  870, 1433, 1433,  870,  871,  871, 1433,
1734       871,  872,  872,  874,  874, 1433, 1433,  874,  975,  975,
1735 
1736       975,  979,  979,  979,  880,  880, 1433,  880,   53,   53,
1737        53, 1433,   53,   53,  825,  825,  825,  996,  996,  996,
1738      1000, 1000, 1000, 1003, 1003, 1003, 1006, 1006, 1006, 1009,
1739      1009, 1009, 1010, 1010, 1010, 1018, 1018, 1018,  919,  919,
1740      1433, 1433,  919, 1023, 1023, 1023, 1027, 1027, 1027,  925,
1741       925, 1433,  925,  927,  927, 1433, 1433,  927,  928,  928,
1742      1433,  928,  929,  929,  931,  931, 1433, 1433,  931, 1034,
1743      1034, 1034, 1038, 1038, 1038,  937,  937, 1433,  937,  939,
1744      1433, 1433,  939,  940,  940, 1433,  940,  942,  942, 1433,
1745      1433,  942,  943,  943, 1433,  943,  944,  944,  946,  946,
1746 
1747      1433, 1433,  946, 1046, 1046, 1046, 1050, 1050, 1050,  952,
1748       952, 1433,  952,  953, 1433,  953,  955, 1433, 1433,  955,
1749       956,  956, 1433,  956,  958,  958, 1433, 1433,  958,  959,
1750       959, 1433,  959,  960,  960,  962,  962, 1433, 1433,  962,
1751      1058, 1058, 1058, 1062, 1062, 1062,  968,  968, 1433,  968,
1752      1064, 1433, 1064, 1067, 1433, 1067, 1070, 1433, 1070, 1071,
1753      1071, 1071, 1075, 1075, 1075, 1079, 1433, 1079,   53,   53,
1754        53, 1433,   53,   53, 1091, 1091, 1091,  921,  921,  921,
1755       933,  933,  933,  948,  948,  948,  964,  964,  964, 1108,
1756      1108, 1108, 1114, 1114, 1114, 1112, 1112, 1112, 1119, 1119,
1757 
1758      1119, 1118, 1118, 1118, 1120, 1433, 1120, 1123, 1433, 1123,
1759      1124, 1124, 1124, 1129, 1129, 1129, 1128, 1128, 1128, 1130,
1760      1433, 1130, 1133, 1433, 1133, 1136, 1433, 1136, 1137, 1137,
1761      1137, 1142, 1142, 1142, 1141, 1141, 1141, 1143, 1433, 1143,
1762      1144, 1433, 1144, 1147, 1433, 1147, 1150, 1433, 1150, 1151,
1763      1151, 1151, 1156, 1156, 1156, 1155, 1155, 1155, 1157, 1433,
1764      1157, 1158, 1433, 1158, 1161, 1433, 1161, 1164, 1433, 1164,
1765      1165, 1165, 1165, 1170, 1170, 1170, 1169, 1169, 1169, 1171,
1766      1433, 1171, 1064, 1433, 1064, 1066, 1433, 1433, 1066, 1067,
1767      1067, 1433, 1067, 1069, 1069, 1433, 1433, 1069, 1070, 1070,
1768 
1769      1433, 1070, 1071, 1071, 1073, 1073, 1433, 1433, 1073, 1178,
1770      1178, 1178, 1182, 1182, 1182, 1079, 1079, 1433, 1079,   53,
1771        53,   53, 1433,   53,   53, 1010, 1010, 1010, 1198, 1198,
1772      1198, 1201, 1201, 1201, 1204, 1204, 1204, 1207, 1207, 1207,
1773      1210, 1210, 1210, 1215, 1215, 1215, 1214, 1214, 1214, 1217,
1774      1433, 1217, 1218, 1218, 1218, 1116, 1116, 1433, 1433, 1116,
1775      1222, 1222, 1222, 1223, 1223, 1223, 1120, 1120, 1433, 1120,
1776      1122, 1122, 1433, 1433, 1122, 1123, 1123, 1433, 1123, 1124,
1777      1124, 1126, 1126, 1433, 1433, 1126, 1229, 1229, 1229, 1230,
1778      1230, 1230, 1130, 1130, 1433, 1130, 1132, 1433, 1433, 1132,
1779 
1780      1133, 1133, 1433, 1133, 1135, 1135, 1433, 1433, 1135, 1136,
1781      1136, 1433, 1136, 1137, 1137, 1139, 1139, 1433, 1433, 1139,
1782      1237, 1237, 1237, 1238, 1238, 1238, 1143, 1143, 1433, 1143,
1783      1144, 1433, 1144, 1146, 1433, 1433, 1146, 1147, 1147, 1433,
1784      1147, 1149, 1149, 1433, 1433, 1149, 1150, 1150, 1433, 1150,
1785      1151, 1151, 1153, 1153, 1433, 1433, 1153, 1245, 1245, 1245,
1786      1246, 1246, 1246, 1157, 1157, 1433, 1157, 1158, 1433, 1158,
1787      1160, 1433, 1433, 1160, 1161, 1161, 1433, 1161, 1163, 1163,
1788      1433, 1433, 1163, 1164, 1164, 1433, 1164, 1165, 1165, 1167,
1789      1167, 1433, 1433, 1167, 1253, 1253, 1253, 1254, 1254, 1254,
1790 
1791      1171, 1171, 1433, 1171, 1255, 1433, 1255, 1258, 1433, 1258,
1792      1261, 1433, 1261, 1262, 1262, 1262, 1267, 1433, 1267, 1266,
1793      1266, 1266, 1268, 1433, 1268,   53,   53,   53, 1433,   53,
1794        53, 1276, 1433, 1276, 1275, 1275, 1275, 1277, 1433, 1277,
1795      1118, 1118, 1118, 1278, 1433, 1278, 1128, 1128, 1128, 1279,
1796      1433, 1279, 1141, 1141, 1141, 1280, 1433, 1280, 1155, 1155,
1797      1155, 1281, 1433, 1281, 1169, 1169, 1169, 1212, 1212, 1433,
1798      1433, 1212, 1285, 1285, 1285, 1286, 1286, 1286,  344,  344,
1799       344, 1217, 1217, 1433, 1217, 1287, 1287, 1287, 1290, 1433,
1800      1290, 1291, 1291, 1291, 1292, 1292, 1292, 1295, 1433, 1295,
1801 
1802      1298, 1433, 1298, 1299, 1299, 1299, 1300, 1300, 1300, 1301,
1803      1433, 1301, 1304, 1433, 1304, 1307, 1433, 1307, 1308, 1308,
1804      1308, 1309, 1309, 1309, 1310, 1433, 1310, 1313, 1433, 1313,
1805      1316, 1433, 1316, 1317, 1317, 1317, 1318, 1318, 1318, 1319,
1806      1433, 1319, 1322, 1433, 1322, 1325, 1433, 1325, 1326, 1326,
1807      1326, 1327, 1327, 1327, 1255, 1433, 1255, 1257, 1433, 1433,
1808      1257, 1258, 1258, 1433, 1258, 1260, 1260, 1433, 1433, 1260,
1809      1261, 1261, 1433, 1261, 1262, 1262, 1264, 1264, 1433, 1433,
1810      1264, 1334, 1334, 1334, 1335, 1433, 1335, 1268, 1268, 1433,
1811      1268,   53,   53,   53, 1433,   53,   53, 1340, 1340, 1340,
1812 
1813      1214, 1214, 1214, 1342, 1433, 1342, 1343, 1433, 1343, 1344,
1814      1433, 1344, 1345, 1433, 1345, 1346, 1433, 1346, 1347, 1433,
1815      1347, 1350, 1433, 1350, 1351, 1351, 1351, 1352, 1352, 1352,
1816      1353, 1433, 1353, 1289, 1289, 1433, 1433, 1289, 1290, 1290,
1817      1433, 1290, 1291, 1291, 1356, 1433, 1356, 1294, 1433, 1433,
1818      1294, 1295, 1295, 1433, 1295, 1297, 1297, 1433, 1433, 1297,
1819      1298, 1298, 1433, 1298, 1299, 1299, 1360, 1433, 1360, 1301,
1820      1433, 1301, 1303, 1433, 1433, 1303, 1304, 1304, 1433, 1304,
1821      1306, 1306, 1433, 1433, 1306, 1307, 1307, 1433, 1307, 1308,
1822      1308, 1364, 1433, 1364, 1310, 1433, 1310, 1312, 1433, 1433,
1823 
1824      1312, 1313, 1313, 1433, 1313, 1315, 1315, 1433, 1433, 1315,
1825      1316, 1316, 1433, 1316, 1317, 1317, 1368, 1433, 1368, 1319,
1826      1433, 1319, 1321, 1433, 1433, 1321, 1322, 1322, 1433, 1322,
1827      1324, 1324, 1433, 1433, 1324, 1325, 1325, 1433, 1325, 1326,
1828      1326, 1372, 1433, 1372, 1373, 1433, 1373, 1376, 1433, 1376,
1829      1379, 1433, 1379, 1380, 1380, 1380, 1381, 1433, 1381,   53,
1830        53,   53, 1433,   53,   53, 1385, 1433, 1385, 1287, 1433,
1831      1287, 1292, 1433, 1292, 1300, 1433, 1300, 1309, 1433, 1309,
1832      1318, 1433, 1318, 1327, 1433, 1327, 1349, 1349, 1433, 1433,
1833      1349, 1350, 1350, 1433, 1350, 1351, 1351, 1341, 1433, 1341,
1834 
1835      1390, 1433, 1390, 1391, 1433, 1391, 1394, 1433, 1394, 1395,
1836      1433, 1395, 1398, 1433, 1398, 1399, 1433, 1399, 1402, 1433,
1837      1402, 1403, 1433, 1403, 1406, 1433, 1406, 1375, 1433, 1433,
1838      1375, 1378, 1378, 1433, 1433, 1378, 1410, 1433, 1410, 1352,
1839      1433, 1352, 1414, 1433, 1414, 1389, 1433, 1433, 1389, 1393,
1840      1433, 1433, 1393, 1397, 1433, 1433, 1397, 1401, 1433, 1433,
1841      1401, 1405, 1433, 1433, 1405, 1420, 1433, 1420, 1423, 1433,
1842      1423, 1413, 1433, 1433, 1413, 1425, 1433, 1425, 1426, 1433,
1843      1426, 1427, 1433, 1427, 1428, 1433, 1428, 1429, 1433, 1429,
1844      1422, 1433, 1433, 1422, 1431, 1433, 1431, 1432, 1433, 1432,
1845 
1846         3, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
1847      1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
1848      1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
1849      1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
1850      1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
1851      1433, 1433, 1433, 1433
1852     } ;
1853 
1854 static yyconst flex_int16_t yy_chk[7455] =
1855     {   0,
1856         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1857         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1858         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1859         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1860         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1861         1,    1,    1,    4,    7,   15,    4,    7,    4,    7,
1862         9,    4,    7,    9,   34,    9,   17,   17,    9,   19,
1863        19,    4,    7,   34,   24,   27,   27, 1261,    9,    4,
1864         7,   15,   12,   39,  131,   12,    9,   12,   24,   23,
1865        12,   23,   23,   28,  131,   24,   23,   39,   28,   25,
1866 
1867        12,   23,   25,   29,   39,   23,   25,   23,   12,   14,
1868        14,   14,   14,   14,   14,   14,   14,   14,   14,   29,
1869        91, 1262,   14,   14,   14,   91,   82,   14,   14,   14,
1870        14,   14,   14,   14,   14,   14,   14,   14,   14,   14,
1871        14,   14,   14,   14,   14,   14,   14,   14,   14,   14,
1872        14,   14,   16,   82,   26,   16,   95,   16,   26,   82,
1873        16,  100,   99,  122,   26,  628,  100,   26,   99,   22,
1874        16,  234,   22,  234,   22,  628,  122,   22,   16,   20,
1875        20,   20,   20,   20,   20,   20,   20,   22,   33,   95,
1876       384,   36,   33,   20,   35,   22,   36,   36,  127,   36,
1877 
1878        36,   33,   33,   41,  384,   33,   35,   33,   35,  103,
1879        35,   41,  103,   35,  103,   41,  127,   41, 1266,   20,
1880        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
1881        32,   32,   96,   21, 1268,  147,  250,  250,  129,   21,
1882        21,   21,   21,   21,   21,   31,   32,  129,   31,   31,
1883        32,   31,  155,   31,   32,   31,   32,   31,   37,   96,
1884        31,  147,   37,   32,   96,  623,   38, 1274,  313,  627,
1885        37,  623,   38,  313,   38,   37,   38,   37,  155,  235,
1886        38,   44,   38,   38,   44,  205,   44,  627,  381,   44,
1887        62,   62,   62,   62,   62,   62,   62,   63,  205,   44,
1888 
1889        63,  381,   63,  235,  630,   63,  630,   44,   48,   48,
1890        48,   48,   48,   48,   48,   63,  435,  257,  631,   48,
1891       406,  406,  631,   63,  435,   48,   48,   48,   48,   48,
1892        48,   49,   49,   49,   49,   49,   49,   49, 1275,  325,
1893      1285,  350,   49,  257,  267,  267,  267,  267,   49,   49,
1894        49,   49,   49,   49,   50,   50,   50,   50,   50,   50,
1895        50,   50,  454, 1286,  267,  325,   50,  350,  408,  415,
1896      1290,  454,   50,   50,   50,   50,   50,   50,   52,   52,
1897        52,   52,   52,   52,   52,   52,   54,   54,   54,   54,
1898        54,   54,   54,  421,  408,  415,  329,   54,  529,  529,
1899 
1900       529,  529,  429,   54,   54,   54,   54,   54,   54,   56,
1901       329,  624,   56, 1291,   56,  345,  624,   56,  346,  421,
1902        56,   56,   56,   56,   56,   56,   56,   56,  429,  345,
1903      1295,   56,  346,  486, 1298,   56,  329,   56,   56,   56,
1904        56,   56,   56,  145,  456,  145,  145,  145,  145,  145,
1905       145,  145,  510,  456, 1299,  345,  145,  526,  346,  486,
1906       510,  632,  145,  145,  145,  145,  145,  145,  146,  146,
1907       146,  146,  146,  146,  146,  146,  520,  571,  571,  632,
1908       146,  579,  146,  526,  520, 1304,  146,  146,  146,  146,
1909       146,  146,  249,  249,  249,  249,  249,  249,  249,  260,
1910 
1911       260,  260,  260,  260,  260,  260,  424,  579,  146,  148,
1912       148,  148,  148,  148,  148,  148,  148,  582,  588, 1307,
1913       424,  148,  595,  607,  622,  622, 1308,  148,  148,  148,
1914       148,  148,  148,  149,  149,  149,  149,  149,  149,  149,
1915       149,  149,  614,  582,  588,  149,  424,  648,  595,  607,
1916       614,  149,  149,  149,  149,  149,  149,  150,  150,  150,
1917       150,  150,  150,  150,  150,  152,  152,  152,  152,  152,
1918       152,  152,  152,  648,  625,  689,  152,  625,  641,  641,
1919       704,  706,  152,  152,  152,  152,  152,  152,  154,  154,
1920       154,  154,  154,  154,  154,  154,  154,  671,  704,  706,
1921 
1922       154,  689,  154,  650,  283,  671,  154,  154,  154,  154,
1923       154,  154,  283,  335,  335,  335,  335,  335,  335,  335,
1924      1313, 1316,  425,  633,  490,  283,  707,  718,  154,  243,
1925       243,  243,  243,  243,  243,  243,  425,  633,  490,  650,
1926       243,  283,  705, 1317,  707,  718,  243,  243,  243,  243,
1927       243,  243,  245,  245,  245,  245,  245,  245,  245,  626,
1928       705,  707,  425,  245,  490,  701,  733,  705,  626,  245,
1929       245,  245,  245,  245,  245,  246,  246,  246,  246,  246,
1930       246,  246,  246,  248,  248,  248,  248,  248,  248,  248,
1931       682,  701,  733, 1322,  248,  736,  712,  716,  682,  713,
1932 
1933       248,  248,  248,  248,  248,  248,  251,  251,  251,  251,
1934       251,  251,  251,  251,  712,  716,  716,  713,  251,  712,
1935       713,  736, 1325, 1326,  251,  251,  251,  251,  251,  251,
1936       253,  253,  253,  253,  253,  253,  253,  253,  256,  256,
1937       256,  256,  256,  256,  256,  256,  256,  787,  318,  517,
1938       256, 1334,  256,  318, 1350,  787,  256,  256,  256,  256,
1939       256,  256,  318,  517,  318,  318,  739,  318,  339,  339,
1940       339,  339,  339,  339,  339,  719,  518,  708,  256,  261,
1941       261,  261,  261,  261,  261,  261,  261,  261, 1351,  517,
1942       518,  261,  739,  719, 1376,  708,  521,  261,  261,  261,
1943 
1944       261,  261,  261,  262,  262,  262,  262,  262,  262,  262,
1945       521, 1379,  708, 1390,  262, 1394,  518,  714, 1398,  717,
1946       262,  262,  262,  262,  262,  262,  323,  522,  323,  323,
1947       323,  323,  323,  323,  323,  714,  521,  717,  714,  323,
1948       717,  522,  723,  725,  725,  323,  323,  323,  323,  323,
1949       323,  324,  324,  324,  324,  324,  324,  324,  324, 1402,
1950       723,  725, 1406,  324, 1414,  324, 1423,  522, 1258,  324,
1951       324,  324,  324,  324,  324,  405,  405,  405,  405,  405,
1952       405,  405,  433,  433,  433,  433,  433,  433,  433,  590,
1953       640,  324,  326,  326,  326,  326,  326,  326,  326,  326,
1954 
1955       640, 1254,  745,  590,  326,  752,  764,  794, 1253,  591,
1956       326,  326,  326,  326,  326,  326,  330,  330,  330,  330,
1957       330,  330,  330,  591,  767,  794,  779,  330,  745,  590,
1958       795,  752,  764,  330,  330,  330,  330,  330,  330,  331,
1959       331,  331,  331,  331,  331,  331,  331,  835,  795,  591,
1960       767,  331,  779,  795,  810,  835, 1246,  331,  331,  331,
1961       331,  331,  331,  332,  332,  332,  332,  332,  332,  332,
1962       332,  334,  334,  334,  334,  334,  334,  334, 1245,  846,
1963       810, 1238,  334, 1237,  796,  797,  799,  846,  334,  334,
1964       334,  334,  334,  334,  338,  338,  338,  338,  338,  338,
1965 
1966       338,  338,  796,  797,  799,  338, 1230,  796,  797,  799,
1967       801,  338,  338,  338,  338,  338,  338,  340,  340,  340,
1968       340,  340,  340,  340,  340,  340,  858, 1229,  801,  340,
1969       866,  802,  804,  801,  858,  340,  340,  340,  340,  340,
1970       340,  341,  341,  341,  341,  341,  341,  341,  341,  802,
1971       804,  878,  341,  804,  802,  806,  866,  885,  341,  341,
1972       341,  341,  341,  341,  347,  347,  347,  347,  347,  347,
1973       347,  347,  347,  806, 1223,  885,  347,  878,  885,  890,
1974       888,  891,  347,  347,  347,  347,  347,  347,  349,  349,
1975       349,  349,  349,  349,  349,  349,  349,  890,  888,  891,
1976 
1977       349,  901,  349,  888,  904,  890,  349,  349,  349,  349,
1978       349,  349,  437,  437,  437,  437,  437,  437,  437,  503,
1979       503,  503,  503,  503,  503,  503, 1222,  901,  349,  367,
1980       904,  907, 1218,  367,  910,  892,  367,  893,  598,  367,
1981       599,  367,  367,  367,  367,  399,  399,  399,  399,  399,
1982       399,  399,  598,  892,  599,  893,  399,  907,  897,  984,
1983       910,  636,  399,  399,  399,  399,  399,  399,  401,  401,
1984       401,  401,  401,  401,  401,  636,  897,  984,  598,  401,
1985       599,  916,  923,  935, 1217,  401,  401,  401,  401,  401,
1986       401,  402,  402,  402,  402,  402,  402,  402,  402,  404,
1987 
1988       404,  404,  404,  404,  404,  404,  938,  916,  923,  935,
1989       404,  950,  954,  966, 1216,  992,  404,  404,  404,  404,
1990       404,  404,  407,  407,  407,  407,  407,  407,  407,  407,
1991      1215, 1214,  938,  992,  407, 1210,  407,  950,  954,  966,
1992       407,  407,  407,  407,  407,  407,  508,  508,  508,  508,
1993       508,  508,  508,  512,  512,  512,  512,  512,  512,  512,
1994       709,  602,  407,  409,  409,  409,  409,  409,  409,  409,
1995      1012, 1207, 1065, 1077,  409,  602, 1204, 1201,  709,  639,
1996       409,  409,  409,  409,  409,  409,  410,  410,  410,  410,
1997       410,  410,  410,  639,  974,  709, 1012,  410, 1065, 1077,
1998 
1999      1198,  602,  974,  410,  410,  410,  410,  410,  410,  411,
2000       411,  411,  411,  411,  411,  411,  411,  414,  414,  414,
2001       414,  414,  414,  414,  414,  414, 1022,  603, 1195,  414,
2002      1182,  414, 1178, 1171, 1022,  414,  414,  414,  414,  414,
2003       414,  603,  610,  610,  610,  610,  610,  610,  610,  612,
2004       612,  612,  612,  612,  612,  612, 1084,  414,  420,  420,
2005       420,  420,  420,  420,  420,  420,  420,  603, 1170, 1169,
2006       420, 1165,  420, 1164, 1084, 1161,  420,  420,  420,  420,
2007       420,  420,  616,  616,  616,  616,  616,  616,  616,  664,
2008       664,  664,  664,  664,  664,  664,  692,  711,  420,  426,
2009 
2010       426,  426,  426,  426,  426,  426,  426,  426, 1157, 1156,
2011       692,  426, 1155, 1094, 1097,  711,  987,  426,  426,  426,
2012       426,  426,  426,  428,  428,  428,  428,  428,  428,  428,
2013       428,  428,  711, 1151,  987,  428,  692,  428,  987, 1094,
2014      1097,  428,  428,  428,  428,  428,  428,  669,  669,  669,
2015       669,  669,  669,  669,  673,  673,  673,  673,  673,  673,
2016       673,  693,  800,  428,  438,  438,  438,  438,  438,  438,
2017       438,  438,  438, 1150, 1147,  693,  438, 1100,  990, 1143,
2018       800,  696,  438,  438,  438,  438,  438,  438,  439,  439,
2019       439,  439,  439,  439,  439,  696,  990,  800, 1142,  439,
2020 
2021       990,  693,  991, 1100, 1080,  439,  439,  439,  439,  439,
2022       439,  484,  697,  484,  484,  484,  484,  484,  484,  484,
2023       991,  696, 1080, 1141,  484,  991,  697, 1137, 1136, 1083,
2024       484,  484,  484,  484,  484,  484,  485,  485,  485,  485,
2025       485,  485,  485,  485, 1133, 1033, 1080, 1083,  485, 1083,
2026       485, 1130,  697, 1033,  485,  485,  485,  485,  485,  485,
2027       678,  678,  678,  678,  678,  678,  678,  680,  680,  680,
2028       680,  680,  680,  680,  747,  805,  485,  487,  487,  487,
2029       487,  487,  487,  487,  487, 1103, 1045, 1129,  747,  487,
2030      1106, 1128, 1087,  805, 1045,  487,  487,  487,  487,  487,
2031 
2032       487,  491,  491,  491,  491,  491,  491,  491,  491, 1057,
2033      1087, 1103,  805,  491,  747, 1087, 1106, 1057, 1124,  491,
2034       491,  491,  491,  491,  491,  492,  492,  492,  492,  492,
2035       492,  492,  492,  493,  493,  493,  493,  493,  493,  493,
2036      1177, 1221, 1123, 1120,  493, 1131, 1145, 1159, 1177, 1221,
2037       493,  493,  493,  493,  493,  493,  494,  494,  494,  494,
2038       494,  494,  494,  494,  496,  496,  496,  496,  496,  496,
2039       496, 1131, 1145, 1159, 1193,  496, 1256, 1293, 1081, 1082,
2040      1085,  496,  496,  496,  496,  496,  496,  497,  497,  497,
2041       497,  497,  497,  497,  497,  497, 1081, 1082, 1085,  497,
2042 
2043      1193, 1302, 1256, 1293,  748,  497,  497,  497,  497,  497,
2044       497,  498,  498,  498,  498,  498,  498,  498,  748, 1085,
2045      1081, 1082,  498, 1119, 1088, 1184, 1118, 1302,  498,  498,
2046       498,  498,  498,  498,  502,  502,  502,  502,  502,  502,
2047       502,  502, 1088, 1184,  748,  502, 1114, 1112, 1185, 1186,
2048      1187,  502,  502,  502,  502,  502,  502,  504,  504,  504,
2049       504,  504,  504,  504,  504,  504, 1185, 1186, 1187,  504,
2050      1111, 1188, 1270, 1272, 1108,  504,  504,  504,  504,  504,
2051       504,  505,  505,  505,  505,  505,  505,  505,  505, 1188,
2052      1270, 1272,  505, 1270, 1188, 1107, 1271, 1104,  505,  505,
2053 
2054       505,  505,  505,  505,  513,  513,  513,  513,  513,  513,
2055       513,  513,  513, 1228, 1271, 1272,  513, 1271, 1101, 1339,
2056      1098, 1228,  513,  513,  513,  513,  513,  513,  514,  514,
2057       514,  514,  514,  514,  514,  514, 1236, 1339, 1311,  514,
2058      1320, 1374, 1095, 1382, 1236,  514,  514,  514,  514,  514,
2059       514,  523,  523,  523,  523,  523,  523,  523,  523,  523,
2060      1244, 1382, 1388,  523, 1311, 1392, 1320, 1374, 1244,  523,
2061       523,  523,  523,  523,  523,  525,  525,  525,  525,  525,
2062       525,  525,  525,  525, 1252, 1091, 1079,  525, 1388,  525,
2063      1078, 1392, 1252,  525,  525,  525,  525,  525,  525,  684,
2064 
2065       684,  684,  684,  684,  684,  684,  690,  690,  690,  690,
2066       690,  690,  690,  798,  755,  525,  565,  565,  565,  565,
2067       565,  565,  565, 1396, 1284, 1400, 1404,  565,  755, 1075,
2068      1384,  798, 1284,  565,  565,  565,  565,  565,  565,  567,
2069       567,  567,  567,  567,  567,  567,  798, 1333, 1384, 1396,
2070       567, 1400, 1404, 1412,  755, 1333,  567,  567,  567,  567,
2071       567,  567,  568,  568,  568,  568,  568,  568,  568,  568,
2072       570,  570,  570,  570,  570,  570,  570, 1380, 1421, 1412,
2073      1071,  570, 1070, 1189, 1411, 1380, 1067,  570,  570,  570,
2074       570,  570,  570,  572,  572,  572,  572,  572,  572,  572,
2075 
2076       572, 1189, 1411, 1062, 1421,  572, 1061, 1058, 1050, 1049,
2077      1189,  572,  572,  572,  572,  572,  572,  573,  573,  573,
2078       573,  573,  573,  573,  573,  574,  574,  574,  574,  574,
2079       574,  574, 1046, 1038, 1037, 1034,  574, 1027, 1026, 1023,
2080      1018, 1017,  574,  574,  574,  574,  574,  574,  575,  575,
2081       575,  575,  575,  575,  575,  575,  578,  578,  578,  578,
2082       578,  578,  578,  578,  578,  710,  756,  759,  578, 1014,
2083       578, 1013, 1010,  760,  578,  578,  578,  578,  578,  578,
2084       756,  759, 1009,  710, 1006, 1003, 1000,  760,  996,  979,
2085       720,  975,  715,  968,  721,  710,  578,  581,  581,  581,
2086 
2087       581,  581,  581,  581,  581,  581,  756,  759,  720,  581,
2088       715,  581,  721,  760,  986,  581,  581,  581,  581,  581,
2089       581,  720,  715,  967,  721,  727,  727,  727,  727,  727,
2090       727,  727,  986,  770,  771,  774,  884,  581,  587,  587,
2091       587,  587,  587,  587,  587,  587,  587,  770,  771,  774,
2092       587,  986,  587,  964,  884,  775,  587,  587,  587,  587,
2093       587,  587,  768,  768,  768,  768,  768,  768,  768,  775,
2094      1338,  884,  960,  770,  771,  774,  869,  959,  587,  592,
2095       592,  592,  592,  592,  592,  592,  592,  592, 1338,  956,
2096       869,  592,  952,  951,  948,  775, 1338,  592,  592,  592,
2097 
2098       592,  592,  592,  594,  594,  594,  594,  594,  594,  594,
2099       594,  594,  944,  943,  940,  594,  869,  594,  937,  936,
2100       933,  594,  594,  594,  594,  594,  594,  783,  783,  783,
2101       783,  783,  783,  783,  785,  785,  785,  785,  785,  785,
2102       785,  870,  886,  594,  604,  604,  604,  604,  604,  604,
2103       604,  604,  604,  929,  928,  870,  604,  925,  924,  921,
2104       886,  886,  604,  604,  604,  604,  604,  604,  606,  606,
2105       606,  606,  606,  606,  606,  606,  606,  917,  886,  913,
2106       606,  870,  606,  912,  989,  803,  606,  606,  606,  606,
2107       606,  606,  789,  789,  789,  789,  789,  789,  789,  911,
2108 
2109       908,  905,  989,  803,  902,  873,  874,  881,  606,  617,
2110       617,  617,  617,  617,  617,  617,  617,  617,  803,  873,
2111       874,  617,  989,  899,  898,  881,  880,  617,  617,  617,
2112       617,  617,  617,  618,  618,  618,  618,  618,  618,  618,
2113       881,  879,  876,  872,  618,  873,  874,  871,  868,  863,
2114       618,  618,  618,  618,  618,  618,  621,  621,  621,  621,
2115       621,  621,  621,  859,  851,  847,  840,  621,  882,  883,
2116       887,  889, 1269,  621,  621,  621,  621,  621,  621,  828,
2117       828,  828,  828,  828,  828,  828,  882,  883,  887,  889,
2118      1269,  621,  644,  836,  644,  644,  644,  644,  644,  644,
2119 
2120       644,  882,  883,  883,  887,  644,  889, 1269,  985,  988,
2121      1089,  644,  644,  644,  644,  644,  644,  833,  833,  833,
2122       833,  833,  833,  833,  918,  919,  985,  988, 1089,  644,
2123       645,  645,  645,  645,  645,  645,  645,  645,  918,  919,
2124       985,  988,  645, 1089,  831,  826,  825,  824,  645,  645,
2125       645,  645,  645,  645,  837,  837,  837,  837,  837,  837,
2126       837,  821,  818,  814,  918,  919,  645,  646,  646,  646,
2127       646,  646,  646,  646,  842,  842,  842,  842,  842,  842,
2128       842,  844,  844,  844,  844,  844,  844,  844,  848,  848,
2129       848,  848,  848,  848,  848,  854,  854,  854,  854,  854,
2130 
2131       854,  854,  646,  647,  647,  647,  647,  647,  647,  647,
2132       792,  788,  781,  780,  647,  777,  773,  772,  769,  766,
2133       647,  647,  647,  647,  647,  647,  649,  649,  649,  649,
2134       649,  649,  649,  649,  651,  651,  651,  651,  651,  651,
2135       651,  651,  765,  762,  758,  757,  651,  754,  753,  750,
2136       746,  743,  651,  651,  651,  651,  651,  651,  652,  652,
2137       652,  652,  652,  652,  652,  652,  654,  654,  654,  654,
2138       654,  654,  654,  742,  741,  740,  737,  654,  734,  731,
2139       730,  703,  702,  654,  654,  654,  654,  654,  654,  655,
2140       655,  655,  655,  655,  655,  655,  655,  655,  699,  695,
2141 
2142       694,  655,  691,  687,  683,  676,  926,  655,  655,  655,
2143       655,  655,  655,  656,  656,  656,  656,  656,  656,  656,
2144       926,  672,  667,  662,  656,  661,  660,  657,  653,  643,
2145       656,  656,  656,  656,  656,  656,  658,  658,  658,  658,
2146       658,  658,  658,  658,  658,  642,  926,  638,  658,  637,
2147       635,  634,  629,  927,  658,  658,  658,  658,  658,  658,
2148       659,  659,  659,  659,  659,  659,  659,  927,  619,  615,
2149       609,  659,  608,  605,  601,  600,  597,  659,  659,  659,
2150       659,  659,  659,  663,  663,  663,  663,  663,  663,  663,
2151       663,  596,  593,  927,  663,  589,  586,  585,  584,  583,
2152 
2153       663,  663,  663,  663,  663,  663,  665,  665,  665,  665,
2154       665,  665,  665,  665,  665,  580,  577,  576,  665,  569,
2155       566,  564,  560,  556,  665,  665,  665,  665,  665,  665,
2156       666,  666,  666,  666,  666,  666,  666,  666,  555,  554,
2157       553,  666,  549,  548,  546,  545,  544,  666,  666,  666,
2158       666,  666,  666,  674,  674,  674,  674,  674,  674,  674,
2159       674,  674,  543,  542,  541,  674,  540,  539,  538,  537,
2160       536,  674,  674,  674,  674,  674,  674,  675,  675,  675,
2161       675,  675,  675,  675,  675,  535,  532,  531,  675,  530,
2162       528,  527,  524,  519,  675,  675,  675,  675,  675,  675,
2163 
2164       685,  685,  685,  685,  685,  685,  685,  685,  685,  515,
2165       511,  506,  685,  501,  500,  499,  495,  489,  685,  685,
2166       685,  685,  685,  685,  686,  686,  686,  686,  686,  686,
2167       686,  686,  488,  483,  482,  686,  481,  480,  479,  478,
2168       477,  686,  686,  686,  686,  686,  686,  698,  698,  698,
2169       698,  698,  698,  698,  698,  698,  476,  475,  474,  698,
2170       473,  471,  468,  467,  466,  698,  698,  698,  698,  698,
2171       698,  700,  700,  700,  700,  700,  700,  700,  700,  700,
2172       465,  464,  463,  700,  462,  700,  460,  459,  458,  700,
2173       700,  700,  700,  700,  700,  856,  856,  856,  856,  856,
2174 
2175       856,  856,  860,  860,  860,  860,  860,  860,  860,  930,
2176       931,  700,  722,  941,  722,  722,  722,  722,  722,  722,
2177       722,  457,  455,  930,  931,  722,  453,  941,  452,  451,
2178       722,  722,  722,  722,  722,  722,  722,  724,  724,  724,
2179       724,  724,  724,  724,  450,  449,  448,  447,  724,  930,
2180       931,  445,  444,  941,  724,  724,  724,  724,  724,  724,
2181       726,  726,  726,  726,  726,  726,  726,  443,  440,  436,
2182       432,  726,  431, 1337,  430,  427,  423,  726,  726,  726,
2183       726,  726,  726,  728,  728,  728,  728,  728,  728,  728,
2184       728, 1337,  422,  419,  418,  728,  417,  416,  413,  412,
2185 
2186      1337,  728,  728,  728,  728,  728,  728,  729,  729,  729,
2187       729,  729,  729,  729,  729,  732,  732,  732,  732,  732,
2188       732,  732,  732,  732,  403,  400,  398,  732,  397,  732,
2189       396,  395,  394,  732,  732,  732,  732,  732,  732,  867,
2190       867,  867,  867,  867,  867,  867,  939,  939,  939,  939,
2191       939,  939,  939,  942,  393,  732,  735,  735,  735,  735,
2192       735,  735,  735,  735,  735,  392,  945,  942,  735,  391,
2193       735,  390,  946,  957,  735,  735,  735,  735,  735,  735,
2194       945,  389,  388,  387,  385,  383,  946,  957,  382,  380,
2195       379,  376, 1336,  942,  958,  375,  735,  738,  738,  738,
2196 
2197       738,  738,  738,  738,  738,  738,  945,  373,  958,  738,
2198      1336,  738,  946,  957,  961,  738,  738,  738,  738,  738,
2199       738,  955,  955,  955,  955,  955,  955,  955,  961, 1336,
2200       371,  370,  369,  962,  958, 1068,  366,  738,  744,  744,
2201       744,  744,  744,  744,  744,  744,  744,  962,  365, 1068,
2202       744,  363,  744,  362,  961, 1069,  744,  744,  744,  744,
2203       744,  744,  970,  970,  970,  970,  970,  970,  970, 1069,
2204       361,  360,  358,  962, 1072, 1068, 1073,  353,  744,  749,
2205       749,  749,  749,  749,  749,  749,  749,  749, 1072,  352,
2206      1073,  749,  351,  348,  344, 1069,  342,  749,  749,  749,
2207 
2208       749,  749,  749,  751,  751,  751,  751,  751,  751,  751,
2209       751,  751,  337,  336, 1072,  751, 1073,  751,  333,  328,
2210       327,  751,  751,  751,  751,  751,  751,  972,  972,  972,
2211       972,  972,  972,  972,  976,  976,  976,  976,  976,  976,
2212       976, 1115,  319,  751,  761,  761,  761,  761,  761,  761,
2213       761,  761,  761,  317,  316, 1115,  761,  311,  309,  307,
2214       306,  305,  761,  761,  761,  761,  761,  761,  763,  763,
2215       763,  763,  763,  763,  763,  763,  763,  981,  982, 1116,
2216       763, 1115,  763,  304,  303,  302,  763,  763,  763,  763,
2217       763,  763,  301, 1116,  299,  981,  982, 1015, 1015, 1015,
2218 
2219      1015, 1015, 1015, 1015, 1121,  298,  981,  982,  763,  776,
2220       776,  776,  776,  776,  776,  776,  776,  776, 1121, 1116,
2221       297,  776,  292,  289,  288,  287,  284,  776,  776,  776,
2222       776,  776,  776,  778,  778,  778,  778,  778,  778,  778,
2223       778,  778,  983, 1122, 1121,  778,  281,  778,  280,  278,
2224      1383,  778,  778,  778,  778,  778,  778, 1122,  276,  275,
2225       983, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1383,  274,
2226      1125,  983,  272,  778,  790,  790,  790,  790,  790,  790,
2227       790,  790,  790, 1122, 1125,  269,  790, 1383,  268,  266,
2228       263, 1126,  790,  790,  790,  790,  790,  790,  791,  791,
2229 
2230       791,  791,  791,  791,  791, 1126,  259,  258,  255,  791,
2231      1125,  254,  252,  247,  244,  791,  791,  791,  791,  791,
2232       791,  807, 1134,  807,  807,  807,  807,  807,  807,  807,
2233       242, 1126,  241,  239,  807,  236, 1134,  232,  228,  807,
2234       807,  807,  807,  807,  807,  807,  808,  808,  808,  808,
2235       808,  808,  808,  226,  224,  223,  221,  808,  220,  219,
2236       218,  217, 1134,  808,  808,  808,  808,  808,  808,  809,
2237       809,  809,  809,  809,  809,  809,  809,  216,  215,  213,
2238       211,  809,  209,  809,  208,  206,  204,  809,  809,  809,
2239       809,  809,  809, 1024, 1024, 1024, 1024, 1024, 1024, 1024,
2240 
2241      1029, 1029, 1029, 1029, 1029, 1029, 1029,  203, 1135,  809,
2242       811,  811,  811,  811,  811,  811,  811,  201,  198,  197,
2243       196,  811, 1135,  194,  192,  191,  188,  811,  811,  811,
2244       811,  811,  811,  812,  812,  812,  812,  812,  812,  812,
2245       812,  187,  185,  184,  183,  812,  182,  181, 1135,  180,
2246       179,  812,  812,  812,  812,  812,  812,  813,  813,  813,
2247       813,  813,  813,  813,  813,  815,  815,  815,  815,  815,
2248       815,  815,  178,  177,  176,  174,  815,  173,  170,  169,
2249       168,  167,  815,  815,  815,  815,  815,  815,  816,  816,
2250       816,  816,  816,  816,  816,  816,  816,  166,  165,  164,
2251 
2252       816,  162,  159,  158,  157, 1138,  816,  816,  816,  816,
2253       816,  816,  817,  817,  817,  817,  817,  817,  817, 1138,
2254       156,  153,  151,  817,  142,  141,  140,  139,  138,  817,
2255       817,  817,  817,  817,  817,  819,  819,  819,  819,  819,
2256       819,  819,  819,  819,  137, 1138,  136,  819,  134,  133,
2257       132,  130, 1139,  819,  819,  819,  819,  819,  819,  820,
2258       820,  820,  820,  820,  820,  820, 1139,  128,  126,  125,
2259       820,  124,  123,  121,  120,  119,  820,  820,  820,  820,
2260       820,  820,  822,  822,  822,  822,  822,  822,  822,  822,
2261       822,  118, 1139,  117,  822,  116,  114,  112,  111, 1148,
2262 
2263       822,  822,  822,  822,  822,  822,  823,  823,  823,  823,
2264       823,  823,  823, 1148,  110,  109,  108,  823,  107,  106,
2265       105,  104,  102,  823,  823,  823,  823,  823,  823,  827,
2266       827,  827,  827,  827,  827,  827,  827,  101,   94, 1148,
2267       827,   93,   92,   90,   89,   88,  827,  827,  827,  827,
2268       827,  827,  829,  829,  829,  829,  829,  829,  829,  829,
2269       829,   87,   86,   85,  829,   84,   83,   81,   80,   79,
2270       829,  829,  829,  829,  829,  829,  830,  830,  830,  830,
2271       830,  830,  830,  830,   78,   77,   76,  830,   75,   74,
2272        73,   72,   71,  830,  830,  830,  830,  830,  830,  838,
2273 
2274       838,  838,  838,  838,  838,  838,  838,  838,   70,   69,
2275        67,  838,   66,   65,   51,   43,   42,  838,  838,  838,
2276       838,  838,  838,  839,  839,  839,  839,  839,  839,  839,
2277       839,   40,   30,   18,  839,   10,    8,    3,    0,    0,
2278       839,  839,  839,  839,  839,  839,  849,  849,  849,  849,
2279       849,  849,  849,  849,  849,    0,    0,    0,  849,    0,
2280         0,    0,    0,    0,  849,  849,  849,  849,  849,  849,
2281       850,  850,  850,  850,  850,  850,  850,  850,    0,    0,
2282         0,  850,    0,    0,    0,    0,    0,  850,  850,  850,
2283       850,  850,  850,  861,  861,  861,  861,  861,  861,  861,
2284 
2285       861,  861,    0,    0,    0,  861,    0,    0,    0,    0,
2286         0,  861,  861,  861,  861,  861,  861,  862,  862,  862,
2287       862,  862,  862,  862,  862,    0,    0,    0,  862,    0,
2288         0,    0,    0,    0,  862,  862,  862,  862,  862,  862,
2289       875,  875,  875,  875,  875,  875,  875,  875,  875,    0,
2290         0,    0,  875,    0,    0,    0,    0,    0,  875,  875,
2291       875,  875,  875,  875,  877,  877,  877,  877,  877,  877,
2292       877,  877,  877,    0,    0,    0,  877,    0,  877,    0,
2293         0,    0,  877,  877,  877,  877,  877,  877, 1031, 1031,
2294      1031, 1031, 1031, 1031, 1031, 1035, 1035, 1035, 1035, 1035,
2295 
2296      1035, 1035,    0,    0,  877,  894,  894,  894,  894,  894,
2297       894,  894,  894,  894,    0,    0,    0,    0,  894,    0,
2298         0,    0,    0,  894,  894,  894,  894,  894,  894,  894,
2299       895,  895,  895,  895,  895,  895,  895,  895,  896,  896,
2300       896,  896,  896,  896,  896,  896,  896, 1041, 1041, 1041,
2301      1041, 1041, 1041, 1041,    0,    0,  896,  900,  900,  900,
2302       900,  900,  900,  900,  900,  900,    0,    0,    0,  900,
2303         0,  900,    0,    0,    0,  900,  900,  900,  900,  900,
2304       900, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1047, 1047,
2305      1047, 1047, 1047, 1047, 1047,    0,    0,  900,  903,  903,
2306 
2307       903,  903,  903,  903,  903,  903,  903,    0,    0,    0,
2308       903,    0,  903,    0,    0,    0,  903,  903,  903,  903,
2309       903,  903, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1055,
2310      1055, 1055, 1055, 1055, 1055, 1055,    0,    0,  903,  906,
2311       906,  906,  906,  906,  906,  906,  906,  906,    0,    0,
2312         0,  906,    0,  906,    0,    0,    0,  906,  906,  906,
2313       906,  906,  906, 1059, 1059, 1059, 1059, 1059, 1059, 1059,
2314      1066, 1066, 1066, 1066, 1066, 1066, 1066, 1086,    0,  906,
2315       909,  909,  909,  909,  909,  909,  909,  909,  909,    0,
2316      1149, 1152,  909,    0,  909, 1086,    0,    0,  909,  909,
2317 
2318       909,  909,  909,  909, 1149, 1152, 1086, 1109, 1109, 1109,
2319      1109, 1109, 1109, 1109,    0, 1153,    0,    0,    0, 1162,
2320       909,  914,  914,  914,  914,  914,  914,  914,  914, 1153,
2321      1149, 1152,  914, 1162,    0,    0,    0,    0,  914,  914,
2322       914,  914,  914,  914,  915,  915,  915,  915,  915,  915,
2323       915,  915,  915,    0,    0, 1153,  915,    0,  915, 1162,
2324         0,    0,  915,  915,  915,  915,  915,  915, 1132, 1132,
2325      1132, 1132, 1132, 1132, 1132, 1146, 1146, 1146, 1146, 1146,
2326      1146, 1146, 1163,    0,  915,  920,  920,  920,  920,  920,
2327       920,  920,  920,  920,    0,    0, 1163,  920,    0,    0,
2328 
2329         0,    0,    0,  920,  920,  920,  920,  920,  920,  922,
2330       922,  922,  922,  922,  922,  922,  922,  922,    0,    0,
2331         0,  922, 1163,  922,    0,    0, 1166,  922,  922,  922,
2332       922,  922,  922, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
2333      1166,    0,    0,    0,    0, 1167,    0, 1211,    0,  922,
2334       932,  932,  932,  932,  932,  932,  932,  932,  932, 1167,
2335         0, 1211,  932,    0,    0,    0, 1166,    0,  932,  932,
2336       932,  932,  932,  932,  934,  934,  934,  934,  934,  934,
2337       934,  934,  934,    0,    0, 1167,  934, 1211,  934,    0,
2338         0,    0,  934,  934,  934,  934,  934,  934, 1173, 1173,
2339 
2340      1173, 1173, 1173, 1173, 1173, 1175, 1175, 1175, 1175, 1175,
2341      1175, 1175, 1212,    0,  934,  947,  947,  947,  947,  947,
2342       947,  947,  947,  947,    0,    0, 1212,  947,    0,    0,
2343         0,    0,    0,  947,  947,  947,  947,  947,  947,  949,
2344       949,  949,  949,  949,  949,  949,  949,  949,    0,    0,
2345         0,  949, 1212,  949,    0,    0,    0,  949,  949,  949,
2346       949,  949,  949, 1179, 1179, 1179, 1179, 1179, 1179, 1179,
2347      1219, 1219, 1219, 1219, 1219, 1219, 1219, 1259,    0,  949,
2348       963,  963,  963,  963,  963,  963,  963,  963,  963,    0,
2349         0, 1259,  963,    0,    0,    0,    0, 1190,  963,  963,
2350 
2351       963,  963,  963,  963,  965,  965,  965,  965,  965,  965,
2352       965,  965,  965, 1191,    0, 1190,  965, 1259,  965,    0,
2353         0,    0,  965,  965,  965,  965,  965,  965, 1190,    0,
2354         0, 1191, 1224, 1224, 1224, 1224, 1224, 1224, 1224,    0,
2355         0, 1260, 1191,    0,  965,  977,  977,  977,  977,  977,
2356       977,  977,  977,  977,    0, 1260,    0,  977,    0,    0,
2357         0,    0, 1263,  977,  977,  977,  977,  977,  977,  978,
2358       978,  978,  978,  978,  978,  978, 1263,    0,    0,    0,
2359       978, 1260,    0,    0,    0,    0,  978,  978,  978,  978,
2360       978,  978,  993,  993,  993,  993,  993,  993,  993,  993,
2361 
2362       993,    0, 1263,    0,    0,  993,    0,    0,    0,    0,
2363       993,  993,  993,  993,  993,  993,  993,  994,  994,  994,
2364       994,  994,  994,  994,  994,  995,  995,  995,  995,  995,
2365       995,  995,  995,  995, 1226, 1226, 1226, 1226, 1226, 1226,
2366      1226,    0, 1264,  995,  997,  997,  997,  997,  997,  997,
2367       997,    0,    0,    0,    0,  997, 1264,    0,    0,    0,
2368         0,  997,  997,  997,  997,  997,  997,  998,  998,  998,
2369       998,  998,  998,  998,  998,  998,    0,    0,    0,  998,
2370         0,    0, 1264,    0, 1288,  998,  998,  998,  998,  998,
2371       998,  999,  999,  999,  999,  999,  999,  999, 1288,    0,
2372 
2373         0,    0,  999,    0,    0,    0,    0,    0,  999,  999,
2374       999,  999,  999,  999, 1001, 1001, 1001, 1001, 1001, 1001,
2375      1001, 1001, 1001,    0, 1288,    0, 1001,    0,    0,    0,
2376         0, 1289, 1001, 1001, 1001, 1001, 1001, 1001, 1002, 1002,
2377      1002, 1002, 1002, 1002, 1002, 1289,    0,    0,    0, 1002,
2378         0,    0,    0,    0,    0, 1002, 1002, 1002, 1002, 1002,
2379      1002, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004,
2380         0, 1289,    0, 1004,    0,    0,    0,    0, 1296, 1004,
2381      1004, 1004, 1004, 1004, 1004, 1005, 1005, 1005, 1005, 1005,
2382      1005, 1005, 1296,    0,    0,    0, 1005,    0,    0,    0,
2383 
2384         0,    0, 1005, 1005, 1005, 1005, 1005, 1005, 1007, 1007,
2385      1007, 1007, 1007, 1007, 1007, 1007, 1007,    0, 1296,    0,
2386      1007,    0,    0,    0,    0, 1297, 1007, 1007, 1007, 1007,
2387      1007, 1007, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1297,
2388         0,    0,    0, 1008,    0,    0,    0,    0,    0, 1008,
2389      1008, 1008, 1008, 1008, 1008, 1011, 1011, 1011, 1011, 1011,
2390      1011, 1011, 1011, 1011,    0, 1297,    0, 1011,    0, 1011,
2391         0,    0,    0, 1011, 1011, 1011, 1011, 1011, 1011, 1232,
2392      1232, 1232, 1232, 1232, 1232, 1232, 1234, 1234, 1234, 1234,
2393      1234, 1234, 1234, 1305,    0, 1011, 1016, 1016, 1016, 1016,
2394 
2395      1016, 1016, 1016, 1016, 1016,    0,    0, 1305, 1016,    0,
2396         0,    0,    0,    0, 1016, 1016, 1016, 1016, 1016, 1016,
2397      1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025,    0,
2398         0,    0, 1025, 1305,    0,    0,    0,    0, 1025, 1025,
2399      1025, 1025, 1025, 1025, 1036, 1036, 1036, 1036, 1036, 1036,
2400      1036, 1036, 1036,    0,    0,    0, 1036,    0,    0,    0,
2401         0,    0, 1036, 1036, 1036, 1036, 1036, 1036, 1048, 1048,
2402      1048, 1048, 1048, 1048, 1048, 1048, 1048,    0,    0,    0,
2403      1048,    0,    0,    0,    0,    0, 1048, 1048, 1048, 1048,
2404      1048, 1048, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060,
2405 
2406      1060,    0,    0,    0, 1060,    0,    0,    0,    0,    0,
2407      1060, 1060, 1060, 1060, 1060, 1060, 1074, 1074, 1074, 1074,
2408      1074, 1074, 1074, 1074, 1074,    0,    0,    0, 1074,    0,
2409         0,    0,    0,    0, 1074, 1074, 1074, 1074, 1074, 1074,
2410      1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076,    0,
2411         0,    0, 1076,    0, 1076,    0,    0,    0, 1076, 1076,
2412      1076, 1076, 1076, 1076, 1240, 1240, 1240, 1240, 1240, 1240,
2413      1240, 1242, 1242, 1242, 1242, 1242, 1242, 1242,    0,    0,
2414      1076, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090,
2415      1248, 1248, 1248, 1248, 1248, 1248, 1248,    0, 1306, 1090,
2416 
2417      1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092,    0,    0,
2418         0, 1092, 1306,    0,    0,    0,    0, 1092, 1092, 1092,
2419      1092, 1092, 1092, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
2420      1093, 1093,    0,    0,    0, 1093,    0, 1093, 1306,    0,
2421         0, 1093, 1093, 1093, 1093, 1093, 1093, 1250, 1250, 1250,
2422      1250, 1250, 1250, 1250, 1257, 1257, 1257, 1257, 1257, 1257,
2423      1257,    0,    0, 1093, 1096, 1096, 1096, 1096, 1096, 1096,
2424      1096, 1096, 1096,    0,    0,    0, 1096,    0, 1096,    0,
2425         0,    0, 1096, 1096, 1096, 1096, 1096, 1096, 1282, 1282,
2426      1282, 1282, 1282, 1282, 1282, 1294, 1294, 1294, 1294, 1294,
2427 
2428      1294, 1294,    0,    0, 1096, 1099, 1099, 1099, 1099, 1099,
2429      1099, 1099, 1099, 1099,    0,    0,    0, 1099,    0, 1099,
2430         0,    0,    0, 1099, 1099, 1099, 1099, 1099, 1099, 1303,
2431      1303, 1303, 1303, 1303, 1303, 1303, 1312, 1312, 1312, 1312,
2432      1312, 1312, 1312, 1314,    0, 1099, 1102, 1102, 1102, 1102,
2433      1102, 1102, 1102, 1102, 1102,    0, 1315, 1314, 1102,    0,
2434      1102,    0,    0,    0, 1102, 1102, 1102, 1102, 1102, 1102,
2435      1315, 1321, 1321, 1321, 1321, 1321, 1321, 1321,    0,    0,
2436         0,    0,    0, 1314, 1323,    0, 1102, 1105, 1105, 1105,
2437      1105, 1105, 1105, 1105, 1105, 1105, 1315, 1324, 1323, 1105,
2438 
2439         0, 1105,    0,    0,    0, 1105, 1105, 1105, 1105, 1105,
2440      1105, 1324, 1329, 1329, 1329, 1329, 1329, 1329, 1329,    0,
2441         0,    0,    0,    0, 1323, 1348,    0, 1105, 1110, 1110,
2442      1110, 1110, 1110, 1110, 1110, 1110, 1110, 1324,    0, 1348,
2443      1110,    0,    0,    0,    0,    0, 1110, 1110, 1110, 1110,
2444      1110, 1110, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117,
2445      1117,    0,    0,    0, 1117, 1348,    0,    0,    0,    0,
2446      1117, 1117, 1117, 1117, 1117, 1117, 1127, 1127, 1127, 1127,
2447      1127, 1127, 1127, 1127, 1127,    0,    0,    0, 1127,    0,
2448         0,    0,    0,    0, 1127, 1127, 1127, 1127, 1127, 1127,
2449 
2450      1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140,    0,
2451         0,    0, 1140,    0,    0,    0,    0,    0, 1140, 1140,
2452      1140, 1140, 1140, 1140, 1154, 1154, 1154, 1154, 1154, 1154,
2453      1154, 1154, 1154,    0,    0,    0, 1154,    0,    0,    0,
2454         0,    0, 1154, 1154, 1154, 1154, 1154, 1154, 1168, 1168,
2455      1168, 1168, 1168, 1168, 1168, 1168, 1168,    0,    0,    0,
2456      1168,    0,    0,    0,    0,    0, 1168, 1168, 1168, 1168,
2457      1168, 1168, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180,
2458      1180,    0,    0,    0, 1180,    0,    0,    0,    0,    0,
2459      1180, 1180, 1180, 1180, 1180, 1180, 1192, 1192, 1192, 1192,
2460 
2461      1192, 1192, 1192, 1192, 1192,    0,    0,    0, 1192,    0,
2462      1192,    0,    0, 1349, 1192, 1192, 1192, 1192, 1192, 1192,
2463      1331, 1331, 1331, 1331, 1331, 1331, 1331, 1349, 1354, 1354,
2464      1354, 1354, 1354, 1354, 1354,    0, 1192, 1196, 1196, 1196,
2465      1196, 1196, 1196, 1196, 1196, 1196,    0,    0,    0, 1196,
2466         0,    0,    0, 1349,    0, 1196, 1196, 1196, 1196, 1196,
2467      1196, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199,
2468         0,    0,    0, 1199,    0,    0,    0,    0,    0, 1199,
2469      1199, 1199, 1199, 1199, 1199, 1202, 1202, 1202, 1202, 1202,
2470      1202, 1202, 1202, 1202,    0,    0,    0, 1202,    0,    0,
2471 
2472         0,    0,    0, 1202, 1202, 1202, 1202, 1202, 1202, 1205,
2473      1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205,    0,    0,
2474         0, 1205,    0,    0,    0,    0,    0, 1205, 1205, 1205,
2475      1205, 1205, 1205, 1208, 1208, 1208, 1208, 1208, 1208, 1208,
2476      1208, 1208,    0,    0,    0, 1208,    0,    0,    0,    0,
2477         0, 1208, 1208, 1208, 1208, 1208, 1208, 1213, 1213, 1213,
2478      1213, 1213, 1213, 1213, 1213, 1213,    0,    0,    0, 1213,
2479         0,    0,    0,    0,    0, 1213, 1213, 1213, 1213, 1213,
2480      1213, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265,
2481         0,    0,    0, 1265,    0,    0,    0,    0,    0, 1265,
2482 
2483      1265, 1265, 1265, 1265, 1265, 1273, 1273, 1273, 1273, 1273,
2484      1273, 1273, 1273, 1273,    0,    0,    0, 1273,    0,    0,
2485         0,    0,    0, 1273, 1273, 1273, 1273, 1273, 1273, 1358,
2486      1358, 1358, 1358, 1358, 1358, 1358, 1362, 1362, 1362, 1362,
2487      1362, 1362, 1362, 1366, 1366, 1366, 1366, 1366, 1366, 1366,
2488      1370, 1370, 1370, 1370, 1370, 1370, 1370, 1375, 1375, 1375,
2489      1375, 1375, 1375, 1375, 1377, 1378, 1386, 1386, 1386, 1386,
2490      1386, 1386, 1386,    0,    0,    0,    0,    0, 1377, 1378,
2491      1389, 1389, 1389, 1389, 1389, 1389, 1389, 1393, 1393, 1393,
2492      1393, 1393, 1393, 1393, 1397, 1397, 1397, 1397, 1397, 1397,
2493 
2494      1397,    0,    0,    0, 1377, 1378, 1401, 1401, 1401, 1401,
2495      1401, 1401, 1401, 1405, 1405, 1405, 1405, 1405, 1405, 1405,
2496      1408, 1408, 1408, 1408, 1408, 1408, 1408, 1413, 1413, 1413,
2497      1413, 1413, 1413, 1413, 1422, 1422, 1422, 1422, 1422, 1422,
2498      1422, 1434,    0,    0,    0,    0, 1434, 1434, 1434, 1435,
2499         0, 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1436,    0,
2500      1436, 1437, 1437, 1437, 1438, 1438, 1438, 1439, 1439, 1439,
2501      1440, 1440, 1440, 1441, 1441, 1441, 1442, 1442, 1442, 1443,
2502      1443, 1443, 1444, 1444, 1444, 1445, 1445, 1445, 1446,    0,
2503      1446, 1447, 1447, 1447, 1448, 1448, 1448, 1449, 1449, 1449,
2504 
2505      1450, 1450, 1450, 1451,    0, 1451, 1452, 1452, 1452, 1453,
2506      1453,    0,    0, 1453, 1454, 1454, 1454, 1455, 1455, 1455,
2507      1456, 1456, 1456, 1457, 1457, 1457, 1458, 1458, 1458, 1459,
2508      1459, 1459, 1460, 1460, 1460, 1461, 1461, 1461, 1462, 1462,
2509      1462, 1463, 1463,    0,    0, 1463, 1464, 1464, 1464, 1465,
2510      1465, 1465, 1466,    0, 1466, 1467, 1467, 1467, 1468, 1468,
2511      1468, 1469,    0, 1469, 1470, 1470, 1470, 1471, 1471, 1471,
2512      1472, 1472, 1472, 1473, 1473, 1473, 1474, 1474, 1474, 1475,
2513         0, 1475, 1476,    0, 1476, 1477, 1477, 1477, 1478, 1478,
2514      1478, 1479,    0, 1479, 1480, 1480,    0,    0, 1480, 1481,
2515 
2516      1481,    0,    0, 1481, 1482, 1482, 1482, 1483, 1483, 1483,
2517      1484, 1484,    0, 1484, 1485, 1485, 1485, 1486, 1486, 1486,
2518      1487, 1487, 1487, 1488, 1488, 1488, 1489, 1489, 1489, 1490,
2519      1490, 1490, 1491, 1491, 1491, 1492, 1492,    0,    0, 1492,
2520      1493, 1493, 1493, 1494, 1494, 1494, 1495, 1495,    0, 1495,
2521      1496, 1496,    0,    0, 1496, 1497, 1497,    0, 1497, 1498,
2522      1498, 1499, 1499,    0,    0, 1499, 1500, 1500, 1500, 1501,
2523      1501, 1501, 1502, 1502,    0, 1502, 1503,    0, 1503, 1504,
2524         0, 1504, 1505, 1505, 1505, 1506, 1506, 1506, 1507,    0,
2525      1507, 1508, 1508, 1508, 1509, 1509, 1509, 1510, 1510, 1510,
2526 
2527      1511, 1511, 1511, 1512, 1512, 1512, 1513, 1513, 1513, 1514,
2528         0, 1514, 1515,    0, 1515, 1516, 1516, 1516, 1517, 1517,
2529      1517, 1518,    0, 1518, 1519,    0, 1519, 1520,    0, 1520,
2530      1521, 1521, 1521, 1522, 1522, 1522, 1523,    0, 1523, 1524,
2531         0,    0, 1524, 1525, 1525,    0, 1525, 1526, 1526,    0,
2532         0, 1526, 1527, 1527,    0, 1527, 1528, 1528, 1529, 1529,
2533         0,    0, 1529, 1530, 1530, 1530, 1531, 1531, 1531, 1532,
2534      1532,    0, 1532, 1533, 1533, 1533,    0, 1533, 1533, 1534,
2535      1534, 1534, 1535, 1535, 1535, 1536, 1536, 1536, 1537, 1537,
2536      1537, 1538, 1538, 1538, 1539, 1539, 1539, 1540, 1540, 1540,
2537 
2538      1541, 1541, 1541, 1542, 1542,    0,    0, 1542, 1543, 1543,
2539      1543, 1544, 1544, 1544, 1545, 1545,    0, 1545, 1546, 1546,
2540         0,    0, 1546, 1547, 1547,    0, 1547, 1548, 1548, 1549,
2541      1549,    0,    0, 1549, 1550, 1550, 1550, 1551, 1551, 1551,
2542      1552, 1552,    0, 1552, 1553,    0,    0, 1553, 1554, 1554,
2543         0, 1554, 1555, 1555,    0,    0, 1555, 1556, 1556,    0,
2544      1556, 1557, 1557, 1558, 1558,    0,    0, 1558, 1559, 1559,
2545      1559, 1560, 1560, 1560, 1561, 1561,    0, 1561, 1562,    0,
2546      1562, 1563,    0, 1563, 1564,    0, 1564, 1565, 1565, 1565,
2547      1566, 1566, 1566, 1567,    0, 1567, 1568, 1568, 1568,    0,
2548 
2549      1568, 1568, 1569, 1569, 1569, 1570, 1570, 1570, 1571, 1571,
2550      1571, 1572, 1572, 1572, 1573, 1573, 1573, 1574, 1574, 1574,
2551      1575, 1575, 1575, 1576,    0, 1576, 1577,    0, 1577, 1578,
2552      1578, 1578, 1579, 1579, 1579, 1580,    0, 1580, 1581,    0,
2553      1581, 1582,    0, 1582, 1583, 1583, 1583, 1584, 1584, 1584,
2554      1585,    0, 1585, 1586,    0, 1586, 1587,    0, 1587, 1588,
2555         0, 1588, 1589, 1589, 1589, 1590, 1590, 1590, 1591,    0,
2556      1591, 1592,    0, 1592, 1593,    0,    0, 1593, 1594, 1594,
2557         0, 1594, 1595, 1595,    0,    0, 1595, 1596, 1596,    0,
2558      1596, 1597, 1597, 1598, 1598,    0,    0, 1598, 1599, 1599,
2559 
2560      1599, 1600, 1600, 1600, 1601, 1601,    0, 1601, 1602, 1602,
2561      1602,    0, 1602, 1602, 1603, 1603, 1603, 1604, 1604, 1604,
2562      1605, 1605, 1605, 1606, 1606, 1606, 1607, 1607, 1607, 1608,
2563      1608, 1608, 1609, 1609, 1609, 1610, 1610, 1610, 1611, 1611,
2564         0,    0, 1611, 1612, 1612, 1612, 1613, 1613, 1613, 1614,
2565      1614,    0, 1614, 1615, 1615,    0,    0, 1615, 1616, 1616,
2566         0, 1616, 1617, 1617, 1618, 1618,    0,    0, 1618, 1619,
2567      1619, 1619, 1620, 1620, 1620, 1621, 1621,    0, 1621, 1622,
2568         0,    0, 1622, 1623, 1623,    0, 1623, 1624, 1624,    0,
2569         0, 1624, 1625, 1625,    0, 1625, 1626, 1626, 1627, 1627,
2570 
2571         0,    0, 1627, 1628, 1628, 1628, 1629, 1629, 1629, 1630,
2572      1630,    0, 1630, 1631,    0, 1631, 1632,    0,    0, 1632,
2573      1633, 1633,    0, 1633, 1634, 1634,    0,    0, 1634, 1635,
2574      1635,    0, 1635, 1636, 1636, 1637, 1637,    0,    0, 1637,
2575      1638, 1638, 1638, 1639, 1639, 1639, 1640, 1640,    0, 1640,
2576      1641,    0, 1641, 1642,    0, 1642, 1643,    0, 1643, 1644,
2577      1644, 1644, 1645, 1645, 1645, 1646,    0, 1646, 1647, 1647,
2578      1647,    0, 1647, 1647, 1648, 1648, 1648, 1649, 1649, 1649,
2579      1650, 1650, 1650, 1651, 1651, 1651, 1652, 1652, 1652, 1653,
2580      1653, 1653, 1654, 1654, 1654, 1655, 1655, 1655, 1656, 1656,
2581 
2582      1656, 1657, 1657, 1657, 1658,    0, 1658, 1659,    0, 1659,
2583      1660, 1660, 1660, 1661, 1661, 1661, 1662, 1662, 1662, 1663,
2584         0, 1663, 1664,    0, 1664, 1665,    0, 1665, 1666, 1666,
2585      1666, 1667, 1667, 1667, 1668, 1668, 1668, 1669,    0, 1669,
2586      1670,    0, 1670, 1671,    0, 1671, 1672,    0, 1672, 1673,
2587      1673, 1673, 1674, 1674, 1674, 1675, 1675, 1675, 1676,    0,
2588      1676, 1677,    0, 1677, 1678,    0, 1678, 1679,    0, 1679,
2589      1680, 1680, 1680, 1681, 1681, 1681, 1682, 1682, 1682, 1683,
2590         0, 1683, 1684,    0, 1684, 1685,    0,    0, 1685, 1686,
2591      1686,    0, 1686, 1687, 1687,    0,    0, 1687, 1688, 1688,
2592 
2593         0, 1688, 1689, 1689, 1690, 1690,    0,    0, 1690, 1691,
2594      1691, 1691, 1692, 1692, 1692, 1693, 1693,    0, 1693, 1694,
2595      1694, 1694,    0, 1694, 1694, 1695, 1695, 1695, 1696, 1696,
2596      1696, 1697, 1697, 1697, 1698, 1698, 1698, 1699, 1699, 1699,
2597      1700, 1700, 1700, 1701, 1701, 1701, 1702, 1702, 1702, 1703,
2598         0, 1703, 1704, 1704, 1704, 1705, 1705,    0,    0, 1705,
2599      1706, 1706, 1706, 1707, 1707, 1707, 1708, 1708,    0, 1708,
2600      1709, 1709,    0,    0, 1709, 1710, 1710,    0, 1710, 1711,
2601      1711, 1712, 1712,    0,    0, 1712, 1713, 1713, 1713, 1714,
2602      1714, 1714, 1715, 1715,    0, 1715, 1716,    0,    0, 1716,
2603 
2604      1717, 1717,    0, 1717, 1718, 1718,    0,    0, 1718, 1719,
2605      1719,    0, 1719, 1720, 1720, 1721, 1721,    0,    0, 1721,
2606      1722, 1722, 1722, 1723, 1723, 1723, 1724, 1724,    0, 1724,
2607      1725,    0, 1725, 1726,    0,    0, 1726, 1727, 1727,    0,
2608      1727, 1728, 1728,    0,    0, 1728, 1729, 1729,    0, 1729,
2609      1730, 1730, 1731, 1731,    0,    0, 1731, 1732, 1732, 1732,
2610      1733, 1733, 1733, 1734, 1734,    0, 1734, 1735,    0, 1735,
2611      1736,    0,    0, 1736, 1737, 1737,    0, 1737, 1738, 1738,
2612         0,    0, 1738, 1739, 1739,    0, 1739, 1740, 1740, 1741,
2613      1741,    0,    0, 1741, 1742, 1742, 1742, 1743, 1743, 1743,
2614 
2615      1744, 1744,    0, 1744, 1745,    0, 1745, 1746,    0, 1746,
2616      1747,    0, 1747, 1748, 1748, 1748, 1749,    0, 1749, 1750,
2617      1750, 1750, 1751,    0, 1751, 1752, 1752, 1752,    0, 1752,
2618      1752, 1753,    0, 1753, 1754, 1754, 1754, 1755,    0, 1755,
2619      1756, 1756, 1756, 1757,    0, 1757, 1758, 1758, 1758, 1759,
2620         0, 1759, 1760, 1760, 1760, 1761,    0, 1761, 1762, 1762,
2621      1762, 1763,    0, 1763, 1764, 1764, 1764, 1765, 1765,    0,
2622         0, 1765, 1766, 1766, 1766, 1767, 1767, 1767, 1768, 1768,
2623      1768, 1769, 1769,    0, 1769, 1770, 1770, 1770, 1771,    0,
2624      1771, 1772, 1772, 1772, 1773, 1773, 1773, 1774,    0, 1774,
2625 
2626      1775,    0, 1775, 1776, 1776, 1776, 1777, 1777, 1777, 1778,
2627         0, 1778, 1779,    0, 1779, 1780,    0, 1780, 1781, 1781,
2628      1781, 1782, 1782, 1782, 1783,    0, 1783, 1784,    0, 1784,
2629      1785,    0, 1785, 1786, 1786, 1786, 1787, 1787, 1787, 1788,
2630         0, 1788, 1789,    0, 1789, 1790,    0, 1790, 1791, 1791,
2631      1791, 1792, 1792, 1792, 1793,    0, 1793, 1794,    0,    0,
2632      1794, 1795, 1795,    0, 1795, 1796, 1796,    0,    0, 1796,
2633      1797, 1797,    0, 1797, 1798, 1798, 1799, 1799,    0,    0,
2634      1799, 1800, 1800, 1800, 1801,    0, 1801, 1802, 1802,    0,
2635      1802, 1803, 1803, 1803,    0, 1803, 1803, 1804, 1804, 1804,
2636 
2637      1805, 1805, 1805, 1806,    0, 1806, 1807,    0, 1807, 1808,
2638         0, 1808, 1809,    0, 1809, 1810,    0, 1810, 1811,    0,
2639      1811, 1812,    0, 1812, 1813, 1813, 1813, 1814, 1814, 1814,
2640      1815,    0, 1815, 1816, 1816,    0,    0, 1816, 1817, 1817,
2641         0, 1817, 1818, 1818, 1819,    0, 1819, 1820,    0,    0,
2642      1820, 1821, 1821,    0, 1821, 1822, 1822,    0,    0, 1822,
2643      1823, 1823,    0, 1823, 1824, 1824, 1825,    0, 1825, 1826,
2644         0, 1826, 1827,    0,    0, 1827, 1828, 1828,    0, 1828,
2645      1829, 1829,    0,    0, 1829, 1830, 1830,    0, 1830, 1831,
2646      1831, 1832,    0, 1832, 1833,    0, 1833, 1834,    0,    0,
2647 
2648      1834, 1835, 1835,    0, 1835, 1836, 1836,    0,    0, 1836,
2649      1837, 1837,    0, 1837, 1838, 1838, 1839,    0, 1839, 1840,
2650         0, 1840, 1841,    0,    0, 1841, 1842, 1842,    0, 1842,
2651      1843, 1843,    0,    0, 1843, 1844, 1844,    0, 1844, 1845,
2652      1845, 1846,    0, 1846, 1847,    0, 1847, 1848,    0, 1848,
2653      1849,    0, 1849, 1850, 1850, 1850, 1851,    0, 1851, 1852,
2654      1852, 1852,    0, 1852, 1852, 1853,    0, 1853, 1854,    0,
2655      1854, 1855,    0, 1855, 1856,    0, 1856, 1857,    0, 1857,
2656      1858,    0, 1858, 1859,    0, 1859, 1860, 1860,    0,    0,
2657      1860, 1861, 1861,    0, 1861, 1862, 1862, 1863,    0, 1863,
2658 
2659      1864,    0, 1864, 1865,    0, 1865, 1866,    0, 1866, 1867,
2660         0, 1867, 1868,    0, 1868, 1869,    0, 1869, 1870,    0,
2661      1870, 1871,    0, 1871, 1872,    0, 1872, 1873,    0,    0,
2662      1873, 1874, 1874,    0,    0, 1874, 1875,    0, 1875, 1876,
2663         0, 1876, 1877,    0, 1877, 1878,    0,    0, 1878, 1879,
2664         0,    0, 1879, 1880,    0,    0, 1880, 1881,    0,    0,
2665      1881, 1882,    0,    0, 1882, 1883,    0, 1883, 1884,    0,
2666      1884, 1885,    0,    0, 1885, 1886,    0, 1886, 1887,    0,
2667      1887, 1888,    0, 1888, 1889,    0, 1889, 1890,    0, 1890,
2668      1891,    0,    0, 1891, 1892,    0, 1892, 1893,    0, 1893,
2669 
2670      1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
2671      1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
2672      1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
2673      1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
2674      1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
2675      1433, 1433, 1433, 1433
2676     } ;
2677 
2678 static __thread yy_state_type yy_last_accepting_state;
2679 static char *yy_last_accepting_cpos;
2680 
2681 extern __thread int sfbpf__flex_debug;
2682 __thread int sfbpf__flex_debug = 0;
2683 
2684 /* The intent behind this definition is that it'll catch
2685  * any uses of REJECT which flex missed.
2686  */
2687 #define REJECT reject_used_but_not_detected
2688 #define yymore() yymore_used_but_not_detected
2689 #define YY_MORE_ADJ 0
2690 #define YY_RESTORE_YY_MORE_OFFSET
2691 __thread char *sfbpf_text;
2692 #line 1 "./scanner.l"
2693 #line 2 "./scanner.l"
2694 /*
2695  * Copyright (c) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997
2696  *	The Regents of the University of California.  All rights reserved.
2697  *
2698  * Redistribution and use in source and binary forms, with or without
2699  * modification, are permitted provided that: (1) source code distributions
2700  * retain the above copyright notice and this paragraph in its entirety, (2)
2701  * distributions including binary code include the above copyright notice and
2702  * this paragraph in its entirety in the documentation or other materials
2703  * provided with the distribution, and (3) all advertising materials mentioning
2704  * features or use of this software display the following acknowledgement:
2705  * ``This product includes software developed by the University of California,
2706  * Lawrence Berkeley Laboratory and its contributors.'' Neither the name of
2707  * the University nor the names of its contributors may be used to endorse
2708  * or promote products derived from this software without specific prior
2709  * written permission.
2710  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
2711  * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
2712  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
2713  */
2714 
2715 #ifndef lint
2716 static const char __attribute__ ((unused)) rcsid[] =
2717     "@(#) $Header: /usr/cvsroot/sfeng/ims/src/libraries/daq/daq/sfbpf/scanner.l,v 1.2 2010/05/06 19:13:25 maltizer Exp $ (LBL)";
2718 #endif
2719 
2720 #ifdef HAVE_CONFIG_H
2721 #include "config.h"
2722 #endif
2723 
2724 #ifdef WIN32
2725 #include "win32-stdinc.h"
2726 #else /* WIN32 */
2727 #if HAVE_INTTYPES_H
2728 #include <inttypes.h>
2729 #elif HAVE_STDINT_H
2730 #include <stdint.h>
2731 #endif
2732 #ifdef HAVE_SYS_BITYPES_H
2733 #include <sys/bitypes.h>
2734 #endif
2735 #include <sys/types.h>
2736 #endif /* WIN32 */
2737 
2738 #include <ctype.h>
2739 #include <string.h>
2740 
2741 #include "sfbpf-int.h"
2742 
2743 #include "gencode.h"
2744 #ifdef INET6
2745 #ifdef WIN32
2746 #include "win32-stdinc.h"
2747 
2748 #ifdef __MINGW32__
2749 #include "IP6_misc.h"
2750 #endif
2751 #else /* WIN32 */
2752 #include <sys/socket.h>	/* for "struct sockaddr" in "struct addrinfo" */
2753 #include <netdb.h>	/* for "struct addrinfo" */
2754 #endif /* WIN32 */
2755 
2756 /* Workaround for AIX 4.3 */
2757 #if !defined(AI_NUMERICHOST)
2758 #define AI_NUMERICHOST 0x04
2759 #endif
2760 #endif /*INET6*/
2761 #include "namedb.h"
2762 #include "tokdefs.h"
2763 
2764 static int stoi(char *);
2765 static inline int xdtoi(int);
2766 
2767 #ifdef FLEX_SCANNER
2768 #define YY_NO_UNPUT
2769 static __thread YY_BUFFER_STATE in_buffer;
2770 #else
2771 static __thread const char *in_buffer;
2772 
2773 #undef getc
2774 #define getc(fp)  (*in_buffer == 0 ? EOF : *in_buffer++)
2775 #endif
2776 
2777 #define yylval pcap_lval
2778 extern __thread YYSTYPE yylval;
2779 
2780 #line 2781 "sf_scanner.c"
2781 
2782 #define INITIAL 0
2783 
2784 #ifndef YY_NO_UNISTD_H
2785 /* Special case for "unistd.h", since it is non-ANSI. We include it way
2786  * down here because we want the user's section 1 to have been scanned first.
2787  * The user has a chance to override it with an option.
2788  */
2789 #include <unistd.h>
2790 #endif
2791 
2792 #ifndef YY_EXTRA_TYPE
2793 #define YY_EXTRA_TYPE void *
2794 #endif
2795 
2796 static int yy_init_globals (void );
2797 
2798 /* Accessor methods to globals.
2799    These are made visible to non-reentrant scanners for convenience. */
2800 
2801 int sfbpf_lex_destroy (void );
2802 
2803 int sfbpf_get_debug (void );
2804 
2805 void sfbpf_set_debug (int debug_flag  );
2806 
2807 YY_EXTRA_TYPE sfbpf_get_extra (void );
2808 
2809 void sfbpf_set_extra (YY_EXTRA_TYPE user_defined  );
2810 
2811 /* Macros after this point can all be overridden by user definitions in
2812  * section 1.
2813  */
2814 
2815 #ifndef YY_SKIP_YYWRAP
2816 #ifdef __cplusplus
2817 extern "C" int sfbpf_wrap (void );
2818 #else
2819 extern int sfbpf_wrap (void );
2820 #endif
2821 #endif
2822 
2823 #ifndef yytext_ptr
2824 static void yy_flex_strncpy (char *,yyconst char *,int );
2825 #endif
2826 
2827 #ifdef YY_NEED_STRLEN
2828 static int yy_flex_strlen (yyconst char * );
2829 #endif
2830 
2831 #ifndef YY_NO_INPUT
2832 
2833 #ifdef __cplusplus
2834 static int yyinput (void );
2835 #else
2836 static int input (void );
2837 #endif
2838 
2839 #endif
2840 
2841 /* Amount of stuff to slurp up with each read. */
2842 #ifndef YY_READ_BUF_SIZE
2843 #ifdef __ia64__
2844 /* On IA-64, the buffer size is 16k, not 8k */
2845 #define YY_READ_BUF_SIZE 16384
2846 #else
2847 #define YY_READ_BUF_SIZE 8192
2848 #endif /* __ia64__ */
2849 #endif
2850 
2851 /* Copy whatever the last rule matched to the standard output. */
2852 #ifndef ECHO
2853 /* This used to be an fputs(), but since the string might contain NUL's,
2854  * we now use fwrite().
2855  */
2856 #define ECHO do { if (fwrite( sfbpf_text, sfbpf_leng, 1, sfbpf_out )) {} } while (0)
2857 #endif
2858 
2859 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
2860  * is returned in "result".
2861  */
2862 #ifndef YY_INPUT
2863 #define YY_INPUT(buf,result,max_size) \
2864 	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
2865 		{ \
2866 		int c = '*'; \
2867 		size_t n; \
2868 		for ( n = 0; n < max_size && \
2869 			     (c = getc( sfbpf_in )) != EOF && c != '\n'; ++n ) \
2870 			buf[n] = (char) c; \
2871 		if ( c == '\n' ) \
2872 			buf[n++] = (char) c; \
2873 		if ( c == EOF && ferror( sfbpf_in ) ) \
2874 			YY_FATAL_ERROR( "input in flex scanner failed" ); \
2875 		result = n; \
2876 		} \
2877 	else \
2878 		{ \
2879 		errno=0; \
2880 		while ( (result = fread(buf, 1, max_size, sfbpf_in))==0 && ferror(sfbpf_in)) \
2881 			{ \
2882 			if( errno != EINTR) \
2883 				{ \
2884 				YY_FATAL_ERROR( "input in flex scanner failed" ); \
2885 				break; \
2886 				} \
2887 			errno=0; \
2888 			clearerr(sfbpf_in); \
2889 			} \
2890 		}\
2891 \
2892 
2893 #endif
2894 
2895 /* No semi-colon after return; correct usage is to write "yyterminate();" -
2896  * we don't want an extra ';' after the "return" because that will cause
2897  * some compilers to complain about unreachable statements.
2898  */
2899 #ifndef yyterminate
2900 #define yyterminate() return YY_NULL
2901 #endif
2902 
2903 /* Number of entries by which start-condition stack grows. */
2904 #ifndef YY_START_STACK_INCR
2905 #define YY_START_STACK_INCR 25
2906 #endif
2907 
2908 /* Report a fatal error. */
2909 #ifndef YY_FATAL_ERROR
2910 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
2911 #endif
2912 
2913 /* end tables serialization structures and prototypes */
2914 
2915 /* Default declaration of generated scanner - a define so the user can
2916  * easily add parameters.
2917  */
2918 #ifndef YY_DECL
2919 #define YY_DECL_IS_OURS 1
2920 
2921 extern int sfbpf_lex (void);
2922 
2923 #define YY_DECL int sfbpf_lex (void)
2924 #endif /* !YY_DECL */
2925 
2926 /* Code executed at the beginning of each rule, after sfbpf_text and sfbpf_leng
2927  * have been set up.
2928  */
2929 #ifndef YY_USER_ACTION
2930 #define YY_USER_ACTION
2931 #endif
2932 
2933 /* Code executed at the end of each rule. */
2934 #ifndef YY_BREAK
2935 #define YY_BREAK break;
2936 #endif
2937 
2938 #define YY_RULE_SETUP \
2939 	YY_USER_ACTION
2940 
2941 /** The main scanner function which does all the work.
2942  */
2943 YY_DECL
2944 {
2945 	register yy_state_type yy_current_state;
2946 	register char *yy_cp, *yy_bp;
2947 	register int yy_act;
2948 
2949 #line 184 "./scanner.l"
2950 
2951 #line 2952 "sf_scanner.c"
2952 
2953 	if ( !(yy_init) )
2954 		{
2955 		(yy_init) = 1;
2956 
2957 #ifdef YY_USER_INIT
2958 		YY_USER_INIT;
2959 #endif
2960 
2961 		if ( ! (yy_start) )
2962 			(yy_start) = 1;	/* first start state */
2963 
2964 		if ( ! sfbpf_in )
2965 			sfbpf_in = stdin;
2966 
2967 		if ( ! sfbpf_out )
2968 			sfbpf_out = stdout;
2969 
2970 		if ( ! YY_CURRENT_BUFFER ) {
2971 			sfbpf_ensure_buffer_stack ();
2972 			YY_CURRENT_BUFFER_LVALUE =
2973 				sfbpf__create_buffer(sfbpf_in,YY_BUF_SIZE );
2974 		}
2975 
2976 		sfbpf__load_buffer_state( );
2977 		}
2978 
2979 	while ( 1 )		/* loops until end-of-file is reached */
2980 		{
2981 		yy_cp = (yy_c_buf_p);
2982 
2983 		/* Support of sfbpf_text. */
2984 		*yy_cp = (yy_hold_char);
2985 
2986 		/* yy_bp points to the position in yy_ch_buf of the start of
2987 		 * the current run.
2988 		 */
2989 		yy_bp = yy_cp;
2990 
2991 		yy_current_state = (yy_start);
2992 yy_match:
2993 		do
2994 			{
2995 			register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
2996 			if ( yy_accept[yy_current_state] )
2997 				{
2998 				(yy_last_accepting_state) = yy_current_state;
2999 				(yy_last_accepting_cpos) = yy_cp;
3000 				}
3001 			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3002 				{
3003 				yy_current_state = (int) yy_def[yy_current_state];
3004 				if ( yy_current_state >= 1434 )
3005 					yy_c = yy_meta[(unsigned int) yy_c];
3006 				}
3007 			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3008 			++yy_cp;
3009 			}
3010 		while ( yy_base[yy_current_state] != 7401 );
3011 
3012 yy_find_action:
3013 		yy_act = yy_accept[yy_current_state];
3014 		if ( yy_act == 0 )
3015 			{ /* have to back up */
3016 			yy_cp = (yy_last_accepting_cpos);
3017 			yy_current_state = (yy_last_accepting_state);
3018 			yy_act = yy_accept[yy_current_state];
3019 			}
3020 
3021 		YY_DO_BEFORE_ACTION;
3022 
3023 do_action:	/* This label is used only to access EOF actions. */
3024 
3025 		switch ( yy_act )
3026 	{ /* beginning of action switch */
3027 			case 0: /* must back up */
3028 			/* undo the effects of YY_DO_BEFORE_ACTION */
3029 			*yy_cp = (yy_hold_char);
3030 			yy_cp = (yy_last_accepting_cpos);
3031 			yy_current_state = (yy_last_accepting_state);
3032 			goto yy_find_action;
3033 
3034 case 1:
3035 YY_RULE_SETUP
3036 #line 185 "./scanner.l"
3037 return DST;
3038 	YY_BREAK
3039 case 2:
3040 YY_RULE_SETUP
3041 #line 186 "./scanner.l"
3042 return SRC;
3043 	YY_BREAK
3044 case 3:
3045 YY_RULE_SETUP
3046 #line 188 "./scanner.l"
3047 return LINK;
3048 	YY_BREAK
3049 case 4:
3050 YY_RULE_SETUP
3051 #line 189 "./scanner.l"
3052 return LINK;
3053 	YY_BREAK
3054 case 5:
3055 YY_RULE_SETUP
3056 #line 190 "./scanner.l"
3057 return ARP;
3058 	YY_BREAK
3059 case 6:
3060 YY_RULE_SETUP
3061 #line 191 "./scanner.l"
3062 return RARP;
3063 	YY_BREAK
3064 case 7:
3065 YY_RULE_SETUP
3066 #line 192 "./scanner.l"
3067 return IP;
3068 	YY_BREAK
3069 case 8:
3070 YY_RULE_SETUP
3071 #line 193 "./scanner.l"
3072 return SCTP;
3073 	YY_BREAK
3074 case 9:
3075 YY_RULE_SETUP
3076 #line 194 "./scanner.l"
3077 return TCP;
3078 	YY_BREAK
3079 case 10:
3080 YY_RULE_SETUP
3081 #line 195 "./scanner.l"
3082 return UDP;
3083 	YY_BREAK
3084 case 11:
3085 YY_RULE_SETUP
3086 #line 196 "./scanner.l"
3087 return ICMP;
3088 	YY_BREAK
3089 case 12:
3090 YY_RULE_SETUP
3091 #line 197 "./scanner.l"
3092 return IGMP;
3093 	YY_BREAK
3094 case 13:
3095 YY_RULE_SETUP
3096 #line 198 "./scanner.l"
3097 return IGRP;
3098 	YY_BREAK
3099 case 14:
3100 YY_RULE_SETUP
3101 #line 199 "./scanner.l"
3102 return PIM;
3103 	YY_BREAK
3104 case 15:
3105 YY_RULE_SETUP
3106 #line 200 "./scanner.l"
3107 return VRRP;
3108 	YY_BREAK
3109 case 16:
3110 YY_RULE_SETUP
3111 #line 201 "./scanner.l"
3112 return RADIO;
3113 	YY_BREAK
3114 case 17:
3115 YY_RULE_SETUP
3116 #line 203 "./scanner.l"
3117 {
3118 #ifdef INET6
3119 		return IPV6;
3120 #else
3121 		bpf_error("%s not supported", sfbpf_text);
3122 #endif
3123 		}
3124 	YY_BREAK
3125 case 18:
3126 YY_RULE_SETUP
3127 #line 210 "./scanner.l"
3128 {
3129 #ifdef INET6
3130 		return ICMPV6;
3131 #else
3132 		bpf_error("%s not supported", sfbpf_text);
3133 #endif
3134 		}
3135 	YY_BREAK
3136 case 19:
3137 YY_RULE_SETUP
3138 #line 217 "./scanner.l"
3139 return AH;
3140 	YY_BREAK
3141 case 20:
3142 YY_RULE_SETUP
3143 #line 218 "./scanner.l"
3144 return ESP;
3145 	YY_BREAK
3146 case 21:
3147 YY_RULE_SETUP
3148 #line 220 "./scanner.l"
3149 return ATALK;
3150 	YY_BREAK
3151 case 22:
3152 YY_RULE_SETUP
3153 #line 221 "./scanner.l"
3154 return AARP;
3155 	YY_BREAK
3156 case 23:
3157 YY_RULE_SETUP
3158 #line 222 "./scanner.l"
3159 return DECNET;
3160 	YY_BREAK
3161 case 24:
3162 YY_RULE_SETUP
3163 #line 223 "./scanner.l"
3164 return LAT;
3165 	YY_BREAK
3166 case 25:
3167 YY_RULE_SETUP
3168 #line 224 "./scanner.l"
3169 return SCA;
3170 	YY_BREAK
3171 case 26:
3172 YY_RULE_SETUP
3173 #line 225 "./scanner.l"
3174 return MOPRC;
3175 	YY_BREAK
3176 case 27:
3177 YY_RULE_SETUP
3178 #line 226 "./scanner.l"
3179 return MOPDL;
3180 	YY_BREAK
3181 case 28:
3182 YY_RULE_SETUP
3183 #line 228 "./scanner.l"
3184 return ISO;
3185 	YY_BREAK
3186 case 29:
3187 YY_RULE_SETUP
3188 #line 229 "./scanner.l"
3189 return ESIS;
3190 	YY_BREAK
3191 case 30:
3192 YY_RULE_SETUP
3193 #line 230 "./scanner.l"
3194 return ESIS;
3195 	YY_BREAK
3196 case 31:
3197 YY_RULE_SETUP
3198 #line 231 "./scanner.l"
3199 return ISIS;
3200 	YY_BREAK
3201 case 32:
3202 YY_RULE_SETUP
3203 #line 232 "./scanner.l"
3204 return ISIS;
3205 	YY_BREAK
3206 case 33:
3207 YY_RULE_SETUP
3208 #line 233 "./scanner.l"
3209 return L1;
3210 	YY_BREAK
3211 case 34:
3212 YY_RULE_SETUP
3213 #line 234 "./scanner.l"
3214 return L2;
3215 	YY_BREAK
3216 case 35:
3217 YY_RULE_SETUP
3218 #line 235 "./scanner.l"
3219 return IIH;
3220 	YY_BREAK
3221 case 36:
3222 YY_RULE_SETUP
3223 #line 236 "./scanner.l"
3224 return LSP;
3225 	YY_BREAK
3226 case 37:
3227 YY_RULE_SETUP
3228 #line 237 "./scanner.l"
3229 return SNP;
3230 	YY_BREAK
3231 case 38:
3232 YY_RULE_SETUP
3233 #line 238 "./scanner.l"
3234 return CSNP;
3235 	YY_BREAK
3236 case 39:
3237 YY_RULE_SETUP
3238 #line 239 "./scanner.l"
3239 return PSNP;
3240 	YY_BREAK
3241 case 40:
3242 YY_RULE_SETUP
3243 #line 241 "./scanner.l"
3244 return CLNP;
3245 	YY_BREAK
3246 case 41:
3247 YY_RULE_SETUP
3248 #line 243 "./scanner.l"
3249 return STP;
3250 	YY_BREAK
3251 case 42:
3252 YY_RULE_SETUP
3253 #line 245 "./scanner.l"
3254 return IPX;
3255 	YY_BREAK
3256 case 43:
3257 YY_RULE_SETUP
3258 #line 247 "./scanner.l"
3259 return NETBEUI;
3260 	YY_BREAK
3261 case 44:
3262 YY_RULE_SETUP
3263 #line 249 "./scanner.l"
3264 return HOST;
3265 	YY_BREAK
3266 case 45:
3267 YY_RULE_SETUP
3268 #line 250 "./scanner.l"
3269 return NET;
3270 	YY_BREAK
3271 case 46:
3272 YY_RULE_SETUP
3273 #line 251 "./scanner.l"
3274 return NETMASK;
3275 	YY_BREAK
3276 case 47:
3277 YY_RULE_SETUP
3278 #line 252 "./scanner.l"
3279 return PORT;
3280 	YY_BREAK
3281 case 48:
3282 YY_RULE_SETUP
3283 #line 253 "./scanner.l"
3284 return PORTRANGE;
3285 	YY_BREAK
3286 case 49:
3287 YY_RULE_SETUP
3288 #line 254 "./scanner.l"
3289 return PROTO;
3290 	YY_BREAK
3291 case 50:
3292 YY_RULE_SETUP
3293 #line 255 "./scanner.l"
3294 {
3295 #ifdef NO_PROTOCHAIN
3296 		  bpf_error("%s not supported", sfbpf_text);
3297 #else
3298 		  return PROTOCHAIN;
3299 #endif
3300 		}
3301 	YY_BREAK
3302 case 51:
3303 YY_RULE_SETUP
3304 #line 263 "./scanner.l"
3305 return GATEWAY;
3306 	YY_BREAK
3307 case 52:
3308 YY_RULE_SETUP
3309 #line 265 "./scanner.l"
3310 return TYPE;
3311 	YY_BREAK
3312 case 53:
3313 YY_RULE_SETUP
3314 #line 266 "./scanner.l"
3315 return SUBTYPE;
3316 	YY_BREAK
3317 case 54:
3318 YY_RULE_SETUP
3319 #line 267 "./scanner.l"
3320 return DIR;
3321 	YY_BREAK
3322 case 55:
3323 YY_RULE_SETUP
3324 #line 268 "./scanner.l"
3325 return ADDR1;
3326 	YY_BREAK
3327 case 56:
3328 YY_RULE_SETUP
3329 #line 269 "./scanner.l"
3330 return ADDR2;
3331 	YY_BREAK
3332 case 57:
3333 YY_RULE_SETUP
3334 #line 270 "./scanner.l"
3335 return ADDR3;
3336 	YY_BREAK
3337 case 58:
3338 YY_RULE_SETUP
3339 #line 271 "./scanner.l"
3340 return ADDR4;
3341 	YY_BREAK
3342 case 59:
3343 YY_RULE_SETUP
3344 #line 273 "./scanner.l"
3345 return LESS;
3346 	YY_BREAK
3347 case 60:
3348 YY_RULE_SETUP
3349 #line 274 "./scanner.l"
3350 return GREATER;
3351 	YY_BREAK
3352 case 61:
3353 YY_RULE_SETUP
3354 #line 275 "./scanner.l"
3355 return CBYTE;
3356 	YY_BREAK
3357 case 62:
3358 YY_RULE_SETUP
3359 #line 276 "./scanner.l"
3360 return TK_BROADCAST;
3361 	YY_BREAK
3362 case 63:
3363 YY_RULE_SETUP
3364 #line 277 "./scanner.l"
3365 return TK_MULTICAST;
3366 	YY_BREAK
3367 case 64:
3368 YY_RULE_SETUP
3369 #line 279 "./scanner.l"
3370 return AND;
3371 	YY_BREAK
3372 case 65:
3373 YY_RULE_SETUP
3374 #line 280 "./scanner.l"
3375 return OR;
3376 	YY_BREAK
3377 case 66:
3378 YY_RULE_SETUP
3379 #line 281 "./scanner.l"
3380 return '!';
3381 	YY_BREAK
3382 case 67:
3383 YY_RULE_SETUP
3384 #line 283 "./scanner.l"
3385 return LEN;
3386 	YY_BREAK
3387 case 68:
3388 YY_RULE_SETUP
3389 #line 284 "./scanner.l"
3390 return INBOUND;
3391 	YY_BREAK
3392 case 69:
3393 YY_RULE_SETUP
3394 #line 285 "./scanner.l"
3395 return OUTBOUND;
3396 	YY_BREAK
3397 case 70:
3398 YY_RULE_SETUP
3399 #line 287 "./scanner.l"
3400 return VLAN;
3401 	YY_BREAK
3402 case 71:
3403 YY_RULE_SETUP
3404 #line 288 "./scanner.l"
3405 return MPLS;
3406 	YY_BREAK
3407 case 72:
3408 YY_RULE_SETUP
3409 #line 289 "./scanner.l"
3410 return PPPOED;
3411 	YY_BREAK
3412 case 73:
3413 YY_RULE_SETUP
3414 #line 290 "./scanner.l"
3415 return PPPOES;
3416 	YY_BREAK
3417 case 74:
3418 YY_RULE_SETUP
3419 #line 292 "./scanner.l"
3420 return LANE;
3421 	YY_BREAK
3422 case 75:
3423 YY_RULE_SETUP
3424 #line 293 "./scanner.l"
3425 return LLC;
3426 	YY_BREAK
3427 case 76:
3428 YY_RULE_SETUP
3429 #line 294 "./scanner.l"
3430 return METAC;
3431 	YY_BREAK
3432 case 77:
3433 YY_RULE_SETUP
3434 #line 295 "./scanner.l"
3435 return BCC;
3436 	YY_BREAK
3437 case 78:
3438 YY_RULE_SETUP
3439 #line 296 "./scanner.l"
3440 return OAM;
3441 	YY_BREAK
3442 case 79:
3443 YY_RULE_SETUP
3444 #line 297 "./scanner.l"
3445 return OAMF4;
3446 	YY_BREAK
3447 case 80:
3448 YY_RULE_SETUP
3449 #line 298 "./scanner.l"
3450 return OAMF4EC;
3451 	YY_BREAK
3452 case 81:
3453 YY_RULE_SETUP
3454 #line 299 "./scanner.l"
3455 return OAMF4SC;
3456 	YY_BREAK
3457 case 82:
3458 YY_RULE_SETUP
3459 #line 300 "./scanner.l"
3460 return SC;
3461 	YY_BREAK
3462 case 83:
3463 YY_RULE_SETUP
3464 #line 301 "./scanner.l"
3465 return ILMIC;
3466 	YY_BREAK
3467 case 84:
3468 YY_RULE_SETUP
3469 #line 302 "./scanner.l"
3470 return VPI;
3471 	YY_BREAK
3472 case 85:
3473 YY_RULE_SETUP
3474 #line 303 "./scanner.l"
3475 return VCI;
3476 	YY_BREAK
3477 case 86:
3478 YY_RULE_SETUP
3479 #line 304 "./scanner.l"
3480 return CONNECTMSG;
3481 	YY_BREAK
3482 case 87:
3483 YY_RULE_SETUP
3484 #line 305 "./scanner.l"
3485 return METACONNECT;
3486 	YY_BREAK
3487 case 88:
3488 YY_RULE_SETUP
3489 #line 307 "./scanner.l"
3490 return PF_IFNAME;
3491 	YY_BREAK
3492 case 89:
3493 YY_RULE_SETUP
3494 #line 308 "./scanner.l"
3495 return PF_RSET;
3496 	YY_BREAK
3497 case 90:
3498 YY_RULE_SETUP
3499 #line 309 "./scanner.l"
3500 return PF_RNR;
3501 	YY_BREAK
3502 case 91:
3503 YY_RULE_SETUP
3504 #line 310 "./scanner.l"
3505 return PF_SRNR;
3506 	YY_BREAK
3507 case 92:
3508 YY_RULE_SETUP
3509 #line 311 "./scanner.l"
3510 return PF_REASON;
3511 	YY_BREAK
3512 case 93:
3513 YY_RULE_SETUP
3514 #line 312 "./scanner.l"
3515 return PF_ACTION;
3516 	YY_BREAK
3517 case 94:
3518 YY_RULE_SETUP
3519 #line 314 "./scanner.l"
3520 return FISU;
3521 	YY_BREAK
3522 case 95:
3523 YY_RULE_SETUP
3524 #line 315 "./scanner.l"
3525 return LSSU;
3526 	YY_BREAK
3527 case 96:
3528 YY_RULE_SETUP
3529 #line 316 "./scanner.l"
3530 return LSSU;
3531 	YY_BREAK
3532 case 97:
3533 YY_RULE_SETUP
3534 #line 317 "./scanner.l"
3535 return MSU;
3536 	YY_BREAK
3537 case 98:
3538 YY_RULE_SETUP
3539 #line 318 "./scanner.l"
3540 return SIO;
3541 	YY_BREAK
3542 case 99:
3543 YY_RULE_SETUP
3544 #line 319 "./scanner.l"
3545 return OPC;
3546 	YY_BREAK
3547 case 100:
3548 YY_RULE_SETUP
3549 #line 320 "./scanner.l"
3550 return DPC;
3551 	YY_BREAK
3552 case 101:
3553 YY_RULE_SETUP
3554 #line 321 "./scanner.l"
3555 return SLS;
3556 	YY_BREAK
3557 case 102:
3558 /* rule 102 can match eol */
3559 YY_RULE_SETUP
3560 #line 323 "./scanner.l"
3561 ;
3562 	YY_BREAK
3563 case 103:
3564 YY_RULE_SETUP
3565 #line 324 "./scanner.l"
3566 return sfbpf_text[0];
3567 	YY_BREAK
3568 case 104:
3569 YY_RULE_SETUP
3570 #line 325 "./scanner.l"
3571 return GEQ;
3572 	YY_BREAK
3573 case 105:
3574 YY_RULE_SETUP
3575 #line 326 "./scanner.l"
3576 return LEQ;
3577 	YY_BREAK
3578 case 106:
3579 YY_RULE_SETUP
3580 #line 327 "./scanner.l"
3581 return NEQ;
3582 	YY_BREAK
3583 case 107:
3584 YY_RULE_SETUP
3585 #line 328 "./scanner.l"
3586 return '=';
3587 	YY_BREAK
3588 case 108:
3589 YY_RULE_SETUP
3590 #line 329 "./scanner.l"
3591 return LSH;
3592 	YY_BREAK
3593 case 109:
3594 YY_RULE_SETUP
3595 #line 330 "./scanner.l"
3596 return RSH;
3597 	YY_BREAK
3598 case 110:
3599 YY_RULE_SETUP
3600 #line 331 "./scanner.l"
3601 { yylval.e = pcap_ether_aton(((char *)sfbpf_text)+1);
3602 			  return AID; }
3603 	YY_BREAK
3604 case 111:
3605 YY_RULE_SETUP
3606 #line 333 "./scanner.l"
3607 { yylval.e = pcap_ether_aton((char *)sfbpf_text);
3608 			  return EID; }
3609 	YY_BREAK
3610 case 112:
3611 YY_RULE_SETUP
3612 #line 335 "./scanner.l"
3613 { yylval.i = stoi((char *)sfbpf_text); return NUM; }
3614 	YY_BREAK
3615 case 113:
3616 YY_RULE_SETUP
3617 #line 336 "./scanner.l"
3618 {
3619 			yylval.s = sdup((char *)sfbpf_text); return HID; }
3620 	YY_BREAK
3621 case 114:
3622 YY_RULE_SETUP
3623 #line 338 "./scanner.l"
3624 {
3625 #ifdef INET6
3626 			  struct addrinfo hints, *res;
3627 			  memset(&hints, 0, sizeof(hints));
3628 			  hints.ai_family = AF_INET6;
3629 			  hints.ai_flags = AI_NUMERICHOST;
3630 			  if (getaddrinfo(sfbpf_text, NULL, &hints, &res))
3631 				bpf_error("bogus IPv6 address %s", sfbpf_text);
3632 			  else {
3633 				freeaddrinfo(res);
3634 				yylval.s = sdup((char *)sfbpf_text); return HID6;
3635 			  }
3636 #else
3637 			  bpf_error("IPv6 address %s not supported", sfbpf_text);
3638 #endif /*INET6*/
3639 			}
3640 	YY_BREAK
3641 case 115:
3642 YY_RULE_SETUP
3643 #line 354 "./scanner.l"
3644 { bpf_error("bogus ethernet address %s", sfbpf_text); }
3645 	YY_BREAK
3646 case 116:
3647 YY_RULE_SETUP
3648 #line 355 "./scanner.l"
3649 { yylval.i = 0; return NUM; }
3650 	YY_BREAK
3651 case 117:
3652 YY_RULE_SETUP
3653 #line 356 "./scanner.l"
3654 { yylval.i = 1; return NUM; }
3655 	YY_BREAK
3656 case 118:
3657 YY_RULE_SETUP
3658 #line 357 "./scanner.l"
3659 { yylval.i = 0; return NUM; }
3660 	YY_BREAK
3661 case 119:
3662 YY_RULE_SETUP
3663 #line 358 "./scanner.l"
3664 { yylval.i = 3; return NUM; }
3665 	YY_BREAK
3666 case 120:
3667 YY_RULE_SETUP
3668 #line 359 "./scanner.l"
3669 { yylval.i = 4; return NUM; }
3670 	YY_BREAK
3671 case 121:
3672 YY_RULE_SETUP
3673 #line 360 "./scanner.l"
3674 { yylval.i = 5; return NUM; }
3675 	YY_BREAK
3676 case 122:
3677 YY_RULE_SETUP
3678 #line 361 "./scanner.l"
3679 { yylval.i = 8; return NUM; }
3680 	YY_BREAK
3681 case 123:
3682 YY_RULE_SETUP
3683 #line 362 "./scanner.l"
3684 { yylval.i = 9; return NUM; }
3685 	YY_BREAK
3686 case 124:
3687 YY_RULE_SETUP
3688 #line 363 "./scanner.l"
3689 { yylval.i = 10; return NUM; }
3690 	YY_BREAK
3691 case 125:
3692 YY_RULE_SETUP
3693 #line 364 "./scanner.l"
3694 { yylval.i = 11; return NUM; }
3695 	YY_BREAK
3696 case 126:
3697 YY_RULE_SETUP
3698 #line 365 "./scanner.l"
3699 { yylval.i = 12; return NUM; }
3700 	YY_BREAK
3701 case 127:
3702 YY_RULE_SETUP
3703 #line 366 "./scanner.l"
3704 { yylval.i = 13; return NUM; }
3705 	YY_BREAK
3706 case 128:
3707 YY_RULE_SETUP
3708 #line 367 "./scanner.l"
3709 { yylval.i = 14; return NUM; }
3710 	YY_BREAK
3711 case 129:
3712 YY_RULE_SETUP
3713 #line 368 "./scanner.l"
3714 { yylval.i = 15; return NUM; }
3715 	YY_BREAK
3716 case 130:
3717 YY_RULE_SETUP
3718 #line 369 "./scanner.l"
3719 { yylval.i = 16; return NUM; }
3720 	YY_BREAK
3721 case 131:
3722 YY_RULE_SETUP
3723 #line 370 "./scanner.l"
3724 { yylval.i = 17; return NUM; }
3725 	YY_BREAK
3726 case 132:
3727 YY_RULE_SETUP
3728 #line 371 "./scanner.l"
3729 { yylval.i = 18; return NUM; }
3730 	YY_BREAK
3731 case 133:
3732 YY_RULE_SETUP
3733 #line 372 "./scanner.l"
3734 { yylval.i = 13; return NUM; }
3735 	YY_BREAK
3736 case 134:
3737 YY_RULE_SETUP
3738 #line 373 "./scanner.l"
3739 { yylval.i = 0x01; return NUM; }
3740 	YY_BREAK
3741 case 135:
3742 YY_RULE_SETUP
3743 #line 374 "./scanner.l"
3744 { yylval.i = 0x02; return NUM; }
3745 	YY_BREAK
3746 case 136:
3747 YY_RULE_SETUP
3748 #line 375 "./scanner.l"
3749 { yylval.i = 0x04; return NUM; }
3750 	YY_BREAK
3751 case 137:
3752 YY_RULE_SETUP
3753 #line 376 "./scanner.l"
3754 { yylval.i = 0x08; return NUM; }
3755 	YY_BREAK
3756 case 138:
3757 YY_RULE_SETUP
3758 #line 377 "./scanner.l"
3759 { yylval.i = 0x10; return NUM; }
3760 	YY_BREAK
3761 case 139:
3762 YY_RULE_SETUP
3763 #line 378 "./scanner.l"
3764 { yylval.i = 0x20; return NUM; }
3765 	YY_BREAK
3766 case 140:
3767 YY_RULE_SETUP
3768 #line 379 "./scanner.l"
3769 {
3770 			 yylval.s = sdup((char *)sfbpf_text); return ID; }
3771 	YY_BREAK
3772 case 141:
3773 YY_RULE_SETUP
3774 #line 381 "./scanner.l"
3775 { yylval.s = sdup((char *)sfbpf_text + 1); return ID; }
3776 	YY_BREAK
3777 case 142:
3778 YY_RULE_SETUP
3779 #line 382 "./scanner.l"
3780 {
3781 			bpf_error("illegal token: %s", sfbpf_text); }
3782 	YY_BREAK
3783 case 143:
3784 YY_RULE_SETUP
3785 #line 384 "./scanner.l"
3786 { bpf_error("illegal char '%c'", *sfbpf_text); }
3787 	YY_BREAK
3788 case 144:
3789 YY_RULE_SETUP
3790 #line 385 "./scanner.l"
3791 ECHO;
3792 	YY_BREAK
3793 #line 3794 "sf_scanner.c"
3794 case YY_STATE_EOF(INITIAL):
3795 	yyterminate();
3796 
3797 	case YY_END_OF_BUFFER:
3798 		{
3799 		/* Amount of text matched not including the EOB char. */
3800 		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
3801 
3802 		/* Undo the effects of YY_DO_BEFORE_ACTION. */
3803 		*yy_cp = (yy_hold_char);
3804 		YY_RESTORE_YY_MORE_OFFSET
3805 
3806 		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
3807 			{
3808 			/* We're scanning a new file or input source.  It's
3809 			 * possible that this happened because the user
3810 			 * just pointed sfbpf_in at a new source and called
3811 			 * sfbpf_lex().  If so, then we have to assure
3812 			 * consistency between YY_CURRENT_BUFFER and our
3813 			 * globals.  Here is the right place to do so, because
3814 			 * this is the first action (other than possibly a
3815 			 * back-up) that will match for the new input source.
3816 			 */
3817 			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
3818 			YY_CURRENT_BUFFER_LVALUE->yy_input_file = sfbpf_in;
3819 			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
3820 			}
3821 
3822 		/* Note that here we test for yy_c_buf_p "<=" to the position
3823 		 * of the first EOB in the buffer, since yy_c_buf_p will
3824 		 * already have been incremented past the NUL character
3825 		 * (since all states make transitions on EOB to the
3826 		 * end-of-buffer state).  Contrast this with the test
3827 		 * in input().
3828 		 */
3829 		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
3830 			{ /* This was really a NUL. */
3831 			yy_state_type yy_next_state;
3832 
3833 			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
3834 
3835 			yy_current_state = yy_get_previous_state(  );
3836 
3837 			/* Okay, we're now positioned to make the NUL
3838 			 * transition.  We couldn't have
3839 			 * yy_get_previous_state() go ahead and do it
3840 			 * for us because it doesn't know how to deal
3841 			 * with the possibility of jamming (and we don't
3842 			 * want to build jamming into it because then it
3843 			 * will run more slowly).
3844 			 */
3845 
3846 			yy_next_state = yy_try_NUL_trans( yy_current_state );
3847 
3848 			yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3849 
3850 			if ( yy_next_state )
3851 				{
3852 				/* Consume the NUL. */
3853 				yy_cp = ++(yy_c_buf_p);
3854 				yy_current_state = yy_next_state;
3855 				goto yy_match;
3856 				}
3857 
3858 			else
3859 				{
3860 				yy_cp = (yy_c_buf_p);
3861 				goto yy_find_action;
3862 				}
3863 			}
3864 
3865 		else switch ( yy_get_next_buffer(  ) )
3866 			{
3867 			case EOB_ACT_END_OF_FILE:
3868 				{
3869 				(yy_did_buffer_switch_on_eof) = 0;
3870 
3871 				if ( sfbpf_wrap( ) )
3872 					{
3873 					/* Note: because we've taken care in
3874 					 * yy_get_next_buffer() to have set up
3875 					 * sfbpf_text, we can now set up
3876 					 * yy_c_buf_p so that if some total
3877 					 * hoser (like flex itself) wants to
3878 					 * call the scanner after we return the
3879 					 * YY_NULL, it'll still work - another
3880 					 * YY_NULL will get returned.
3881 					 */
3882 					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
3883 
3884 					yy_act = YY_STATE_EOF(YY_START);
3885 					goto do_action;
3886 					}
3887 
3888 				else
3889 					{
3890 					if ( ! (yy_did_buffer_switch_on_eof) )
3891 						YY_NEW_FILE;
3892 					}
3893 				break;
3894 				}
3895 
3896 			case EOB_ACT_CONTINUE_SCAN:
3897 				(yy_c_buf_p) =
3898 					(yytext_ptr) + yy_amount_of_matched_text;
3899 
3900 				yy_current_state = yy_get_previous_state(  );
3901 
3902 				yy_cp = (yy_c_buf_p);
3903 				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3904 				goto yy_match;
3905 
3906 			case EOB_ACT_LAST_MATCH:
3907 				(yy_c_buf_p) =
3908 				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
3909 
3910 				yy_current_state = yy_get_previous_state(  );
3911 
3912 				yy_cp = (yy_c_buf_p);
3913 				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3914 				goto yy_find_action;
3915 			}
3916 		break;
3917 		}
3918 
3919 	default:
3920 		YY_FATAL_ERROR(
3921 			"fatal flex scanner internal error--no action found" );
3922 	} /* end of action switch */
3923 		} /* end of scanning one token */
3924 } /* end of sfbpf_lex */
3925 
3926 /* yy_get_next_buffer - try to read in a new buffer
3927  *
3928  * Returns a code representing an action:
3929  *	EOB_ACT_LAST_MATCH -
3930  *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
3931  *	EOB_ACT_END_OF_FILE - end of file
3932  */
yy_get_next_buffer(void)3933 static int yy_get_next_buffer (void)
3934 {
3935     	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
3936 	register char *source = (yytext_ptr);
3937 	register int number_to_move, i;
3938 	int ret_val;
3939 
3940 	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
3941 		YY_FATAL_ERROR(
3942 		"fatal flex scanner internal error--end of buffer missed" );
3943 
3944 	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
3945 		{ /* Don't try to fill the buffer, so this is an EOF. */
3946 		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
3947 			{
3948 			/* We matched a single character, the EOB, so
3949 			 * treat this as a final EOF.
3950 			 */
3951 			return EOB_ACT_END_OF_FILE;
3952 			}
3953 
3954 		else
3955 			{
3956 			/* We matched some text prior to the EOB, first
3957 			 * process it.
3958 			 */
3959 			return EOB_ACT_LAST_MATCH;
3960 			}
3961 		}
3962 
3963 	/* Try to read more data. */
3964 
3965 	/* First move last chars to start of buffer. */
3966 	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
3967 
3968 	for ( i = 0; i < number_to_move; ++i )
3969 		*(dest++) = *(source++);
3970 
3971 	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
3972 		/* don't do the read, it's not guaranteed to return an EOF,
3973 		 * just force an EOF
3974 		 */
3975 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
3976 
3977 	else
3978 		{
3979 			int num_to_read =
3980 			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
3981 
3982 		while ( num_to_read <= 0 )
3983 			{ /* Not enough room in the buffer - grow it. */
3984 
3985 			/* just a shorter name for the current buffer */
3986 			YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
3987 
3988 			int yy_c_buf_p_offset =
3989 				(int) ((yy_c_buf_p) - b->yy_ch_buf);
3990 
3991 			if ( b->yy_is_our_buffer )
3992 				{
3993 				int new_size = b->yy_buf_size * 2;
3994 
3995 				if ( new_size <= 0 )
3996 					b->yy_buf_size += b->yy_buf_size / 8;
3997 				else
3998 					b->yy_buf_size *= 2;
3999 
4000 				b->yy_ch_buf = (char *)
4001 					/* Include room in for 2 EOB chars. */
4002 					sfbpf_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
4003 				}
4004 			else
4005 				/* Can't grow it, we don't own it. */
4006 				b->yy_ch_buf = 0;
4007 
4008 			if ( ! b->yy_ch_buf )
4009 				YY_FATAL_ERROR(
4010 				"fatal error - scanner input buffer overflow" );
4011 
4012 			(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
4013 
4014 			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
4015 						number_to_move - 1;
4016 
4017 			}
4018 
4019 		if ( num_to_read > YY_READ_BUF_SIZE )
4020 			num_to_read = YY_READ_BUF_SIZE;
4021 
4022 		/* Read in more data. */
4023 		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
4024 			(yy_n_chars), (size_t) num_to_read );
4025 
4026 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
4027 		}
4028 
4029 	if ( (yy_n_chars) == 0 )
4030 		{
4031 		if ( number_to_move == YY_MORE_ADJ )
4032 			{
4033 			ret_val = EOB_ACT_END_OF_FILE;
4034 			sfbpf_restart(sfbpf_in  );
4035 			}
4036 
4037 		else
4038 			{
4039 			ret_val = EOB_ACT_LAST_MATCH;
4040 			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
4041 				YY_BUFFER_EOF_PENDING;
4042 			}
4043 		}
4044 
4045 	else
4046 		ret_val = EOB_ACT_CONTINUE_SCAN;
4047 
4048 	if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
4049 		/* Extend the array by 50%, plus the number we really need. */
4050 		yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
4051 		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) sfbpf_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
4052 		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
4053 			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
4054 	}
4055 
4056 	(yy_n_chars) += number_to_move;
4057 	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
4058 	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
4059 
4060 	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
4061 
4062 	return ret_val;
4063 }
4064 
4065 /* yy_get_previous_state - get the state just before the EOB char was reached */
4066 
yy_get_previous_state(void)4067     static yy_state_type yy_get_previous_state (void)
4068 {
4069 	register yy_state_type yy_current_state;
4070 	register char *yy_cp;
4071 
4072 	yy_current_state = (yy_start);
4073 
4074 	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
4075 		{
4076 		register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
4077 		if ( yy_accept[yy_current_state] )
4078 			{
4079 			(yy_last_accepting_state) = yy_current_state;
4080 			(yy_last_accepting_cpos) = yy_cp;
4081 			}
4082 		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
4083 			{
4084 			yy_current_state = (int) yy_def[yy_current_state];
4085 			if ( yy_current_state >= 1434 )
4086 				yy_c = yy_meta[(unsigned int) yy_c];
4087 			}
4088 		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
4089 		}
4090 
4091 	return yy_current_state;
4092 }
4093 
4094 /* yy_try_NUL_trans - try to make a transition on the NUL character
4095  *
4096  * synopsis
4097  *	next_state = yy_try_NUL_trans( current_state );
4098  */
yy_try_NUL_trans(yy_state_type yy_current_state)4099     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
4100 {
4101 	register int yy_is_jam;
4102     	register char *yy_cp = (yy_c_buf_p);
4103 
4104 	register YY_CHAR yy_c = 1;
4105 	if ( yy_accept[yy_current_state] )
4106 		{
4107 		(yy_last_accepting_state) = yy_current_state;
4108 		(yy_last_accepting_cpos) = yy_cp;
4109 		}
4110 	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
4111 		{
4112 		yy_current_state = (int) yy_def[yy_current_state];
4113 		if ( yy_current_state >= 1434 )
4114 			yy_c = yy_meta[(unsigned int) yy_c];
4115 		}
4116 	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
4117 	yy_is_jam = (yy_current_state == 1433);
4118 
4119 	return yy_is_jam ? 0 : yy_current_state;
4120 }
4121 
4122 #ifndef YY_NO_INPUT
4123 #ifdef __cplusplus
yyinput(void)4124 	static int __attribute__((unused)) yyinput (void)
4125 #else
4126 	static int __attribute__((unused)) input  (void)
4127 #endif
4128 
4129 {
4130 	int c;
4131 
4132 	*(yy_c_buf_p) = (yy_hold_char);
4133 
4134 	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
4135 		{
4136 		/* yy_c_buf_p now points to the character we want to return.
4137 		 * If this occurs *before* the EOB characters, then it's a
4138 		 * valid NUL; if not, then we've hit the end of the buffer.
4139 		 */
4140 		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
4141 			/* This was really a NUL. */
4142 			*(yy_c_buf_p) = '\0';
4143 
4144 		else
4145 			{ /* need more input */
4146 			int offset = (yy_c_buf_p) - (yytext_ptr);
4147 			++(yy_c_buf_p);
4148 
4149 			switch ( yy_get_next_buffer(  ) )
4150 				{
4151 				case EOB_ACT_LAST_MATCH:
4152 					/* This happens because yy_g_n_b()
4153 					 * sees that we've accumulated a
4154 					 * token and flags that we need to
4155 					 * try matching the token before
4156 					 * proceeding.  But for input(),
4157 					 * there's no matching to consider.
4158 					 * So convert the EOB_ACT_LAST_MATCH
4159 					 * to EOB_ACT_END_OF_FILE.
4160 					 */
4161 
4162 					/* Reset buffer status. */
4163 					sfbpf_restart(sfbpf_in );
4164 
4165 					/*FALLTHROUGH*/
4166 
4167 				case EOB_ACT_END_OF_FILE:
4168 					{
4169 					if ( sfbpf_wrap( ) )
4170 						return EOF;
4171 
4172 					if ( ! (yy_did_buffer_switch_on_eof) )
4173 						YY_NEW_FILE;
4174 #ifdef __cplusplus
4175 					return yyinput();
4176 #else
4177 					return input();
4178 #endif
4179 					}
4180 
4181 				case EOB_ACT_CONTINUE_SCAN:
4182 					(yy_c_buf_p) = (yytext_ptr) + offset;
4183 					break;
4184 				}
4185 			}
4186 		}
4187 
4188 	c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */
4189 	*(yy_c_buf_p) = '\0';	/* preserve sfbpf_text */
4190 	(yy_hold_char) = *++(yy_c_buf_p);
4191 
4192 	return c;
4193 }
4194 #endif	/* ifndef YY_NO_INPUT */
4195 
4196 /** Immediately switch to a different input stream.
4197  * @param input_file A readable stream.
4198  *
4199  * @note This function does not reset the start condition to @c INITIAL .
4200  */
sfbpf_restart(FILE * input_file)4201     void sfbpf_restart  (FILE * input_file )
4202 {
4203 
4204 	if ( ! YY_CURRENT_BUFFER ){
4205         sfbpf_ensure_buffer_stack ();
4206 		YY_CURRENT_BUFFER_LVALUE =
4207             sfbpf__create_buffer(sfbpf_in,YY_BUF_SIZE );
4208 	}
4209 
4210 	sfbpf__init_buffer(YY_CURRENT_BUFFER,input_file );
4211 	sfbpf__load_buffer_state( );
4212 }
4213 
4214 /** Switch to a different input buffer.
4215  * @param new_buffer The new input buffer.
4216  *
4217  */
sfbpf__switch_to_buffer(YY_BUFFER_STATE new_buffer)4218     void sfbpf__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
4219 {
4220 
4221 	/* We should be able to replace this entire function body
4222 	 * with
4223 	 *		sfbpf_pop_buffer_state();
4224 	 *		sfbpf_push_buffer_state(new_buffer);
4225      */
4226 	sfbpf_ensure_buffer_stack ();
4227 	if ( YY_CURRENT_BUFFER == new_buffer )
4228 		return;
4229 
4230 	if ( YY_CURRENT_BUFFER )
4231 		{
4232 		/* Flush out information for old buffer. */
4233 		*(yy_c_buf_p) = (yy_hold_char);
4234 		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
4235 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
4236 		}
4237 
4238 	YY_CURRENT_BUFFER_LVALUE = new_buffer;
4239 	sfbpf__load_buffer_state( );
4240 
4241 	/* We don't actually know whether we did this switch during
4242 	 * EOF (sfbpf_wrap()) processing, but the only time this flag
4243 	 * is looked at is after sfbpf_wrap() is called, so it's safe
4244 	 * to go ahead and always set it.
4245 	 */
4246 	(yy_did_buffer_switch_on_eof) = 1;
4247 }
4248 
sfbpf__load_buffer_state(void)4249 static void sfbpf__load_buffer_state  (void)
4250 {
4251     	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
4252 	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
4253 	sfbpf_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
4254 	(yy_hold_char) = *(yy_c_buf_p);
4255 }
4256 
4257 /** Allocate and initialize an input buffer state.
4258  * @param file A readable stream.
4259  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
4260  *
4261  * @return the allocated buffer state.
4262  */
sfbpf__create_buffer(FILE * file,int size)4263     YY_BUFFER_STATE sfbpf__create_buffer  (FILE * file, int  size )
4264 {
4265 	YY_BUFFER_STATE b;
4266 
4267 	b = (YY_BUFFER_STATE) sfbpf_alloc(sizeof( struct yy_buffer_state )  );
4268 	if ( ! b )
4269 		YY_FATAL_ERROR( "out of dynamic memory in sfbpf__create_buffer()" );
4270 
4271 	b->yy_buf_size = size;
4272 
4273 	/* yy_ch_buf has to be 2 characters longer than the size given because
4274 	 * we need to put in 2 end-of-buffer characters.
4275 	 */
4276 	b->yy_ch_buf = (char *) sfbpf_alloc(b->yy_buf_size + 2  );
4277 	if ( ! b->yy_ch_buf )
4278 		YY_FATAL_ERROR( "out of dynamic memory in sfbpf__create_buffer()" );
4279 
4280 	b->yy_is_our_buffer = 1;
4281 
4282 	sfbpf__init_buffer(b,file );
4283 
4284 	return b;
4285 }
4286 
4287 /** Destroy the buffer.
4288  * @param b a buffer created with sfbpf__create_buffer()
4289  *
4290  */
sfbpf__delete_buffer(YY_BUFFER_STATE b)4291     void sfbpf__delete_buffer (YY_BUFFER_STATE  b )
4292 {
4293 
4294 	if ( ! b )
4295 		return;
4296 
4297 	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
4298 		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
4299 
4300 	if ( b->yy_is_our_buffer )
4301 		sfbpf_free((void *) b->yy_ch_buf  );
4302 
4303 	sfbpf_free((void *) b  );
4304 }
4305 
4306 #ifndef __cplusplus
4307 extern int isatty (int );
4308 #endif /* __cplusplus */
4309 
4310 /* Initializes or reinitializes a buffer.
4311  * This function is sometimes called more than once on the same buffer,
4312  * such as during a sfbpf_restart() or at EOF.
4313  */
sfbpf__init_buffer(YY_BUFFER_STATE b,FILE * file)4314     static void sfbpf__init_buffer  (YY_BUFFER_STATE  b, FILE * file )
4315 
4316 {
4317 	int oerrno = errno;
4318 
4319 	sfbpf__flush_buffer(b );
4320 
4321 	b->yy_input_file = file;
4322 	b->yy_fill_buffer = 1;
4323 
4324     /* If b is the current buffer, then sfbpf__init_buffer was _probably_
4325      * called from sfbpf_restart() or through yy_get_next_buffer.
4326      * In that case, we don't want to reset the lineno or column.
4327      */
4328     if (b != YY_CURRENT_BUFFER){
4329         b->yy_bs_lineno = 1;
4330         b->yy_bs_column = 0;
4331     }
4332 
4333         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
4334 
4335 	errno = oerrno;
4336 }
4337 
4338 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
4339  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
4340  *
4341  */
sfbpf__flush_buffer(YY_BUFFER_STATE b)4342     void sfbpf__flush_buffer (YY_BUFFER_STATE  b )
4343 {
4344     	if ( ! b )
4345 		return;
4346 
4347 	b->yy_n_chars = 0;
4348 
4349 	/* We always need two end-of-buffer characters.  The first causes
4350 	 * a transition to the end-of-buffer state.  The second causes
4351 	 * a jam in that state.
4352 	 */
4353 	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
4354 	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
4355 
4356 	b->yy_buf_pos = &b->yy_ch_buf[0];
4357 
4358 	b->yy_at_bol = 1;
4359 	b->yy_buffer_status = YY_BUFFER_NEW;
4360 
4361 	if ( b == YY_CURRENT_BUFFER )
4362 		sfbpf__load_buffer_state( );
4363 }
4364 
4365 /** Pushes the new state onto the stack. The new state becomes
4366  *  the current state. This function will allocate the stack
4367  *  if necessary.
4368  *  @param new_buffer The new state.
4369  *
4370  */
sfbpf_push_buffer_state(YY_BUFFER_STATE new_buffer)4371 void sfbpf_push_buffer_state (YY_BUFFER_STATE new_buffer )
4372 {
4373     	if (new_buffer == NULL)
4374 		return;
4375 
4376 	sfbpf_ensure_buffer_stack();
4377 
4378 	/* This block is copied from sfbpf__switch_to_buffer. */
4379 	if ( YY_CURRENT_BUFFER )
4380 		{
4381 		/* Flush out information for old buffer. */
4382 		*(yy_c_buf_p) = (yy_hold_char);
4383 		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
4384 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
4385 		}
4386 
4387 	/* Only push if top exists. Otherwise, replace top. */
4388 	if (YY_CURRENT_BUFFER)
4389 		(yy_buffer_stack_top)++;
4390 	YY_CURRENT_BUFFER_LVALUE = new_buffer;
4391 
4392 	/* copied from sfbpf__switch_to_buffer. */
4393 	sfbpf__load_buffer_state( );
4394 	(yy_did_buffer_switch_on_eof) = 1;
4395 }
4396 
4397 /** Removes and deletes the top of the stack, if present.
4398  *  The next element becomes the new top.
4399  *
4400  */
sfbpf_pop_buffer_state(void)4401 void sfbpf_pop_buffer_state (void)
4402 {
4403     	if (!YY_CURRENT_BUFFER)
4404 		return;
4405 
4406 	sfbpf__delete_buffer(YY_CURRENT_BUFFER );
4407 	YY_CURRENT_BUFFER_LVALUE = NULL;
4408 	if ((yy_buffer_stack_top) > 0)
4409 		--(yy_buffer_stack_top);
4410 
4411 	if (YY_CURRENT_BUFFER) {
4412 		sfbpf__load_buffer_state( );
4413 		(yy_did_buffer_switch_on_eof) = 1;
4414 	}
4415 }
4416 
4417 /* Allocates the stack if it does not exist.
4418  *  Guarantees space for at least one push.
4419  */
sfbpf_ensure_buffer_stack(void)4420 static void sfbpf_ensure_buffer_stack (void)
4421 {
4422 	int num_to_alloc;
4423 
4424 	if (!(yy_buffer_stack)) {
4425 
4426 		/* First allocation is just for 2 elements, since we don't know if this
4427 		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
4428 		 * immediate realloc on the next call.
4429          */
4430 		num_to_alloc = 1;
4431 		(yy_buffer_stack) = (struct yy_buffer_state**)sfbpf_alloc
4432 								(num_to_alloc * sizeof(struct yy_buffer_state*)
4433 								);
4434 		if ( ! (yy_buffer_stack) )
4435 			YY_FATAL_ERROR( "out of dynamic memory in sfbpf_ensure_buffer_stack()" );
4436 
4437 		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
4438 
4439 		(yy_buffer_stack_max) = num_to_alloc;
4440 		(yy_buffer_stack_top) = 0;
4441 		return;
4442 	}
4443 
4444 	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
4445 
4446 		/* Increase the buffer to prepare for a possible push. */
4447 		int grow_size = 8 /* arbitrary grow size */;
4448 
4449 		num_to_alloc = (yy_buffer_stack_max) + grow_size;
4450 		(yy_buffer_stack) = (struct yy_buffer_state**)sfbpf_realloc
4451 								((yy_buffer_stack),
4452 								num_to_alloc * sizeof(struct yy_buffer_state*)
4453 								);
4454 		if ( ! (yy_buffer_stack) )
4455 			YY_FATAL_ERROR( "out of dynamic memory in sfbpf_ensure_buffer_stack()" );
4456 
4457 		/* zero only the new slots.*/
4458 		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
4459 		(yy_buffer_stack_max) = num_to_alloc;
4460 	}
4461 }
4462 
4463 /** Setup the input buffer state to scan directly from a user-specified character buffer.
4464  * @param base the character buffer
4465  * @param size the size in bytes of the character buffer
4466  *
4467  * @return the newly allocated buffer state object.
4468  */
sfbpf__scan_buffer(char * base,yy_size_t size)4469 YY_BUFFER_STATE sfbpf__scan_buffer  (char * base, yy_size_t  size )
4470 {
4471 	YY_BUFFER_STATE b;
4472 
4473 	if ( size < 2 ||
4474 	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
4475 	     base[size-1] != YY_END_OF_BUFFER_CHAR )
4476 		/* They forgot to leave room for the EOB's. */
4477 		return 0;
4478 
4479 	b = (YY_BUFFER_STATE) sfbpf_alloc(sizeof( struct yy_buffer_state )  );
4480 	if ( ! b )
4481 		YY_FATAL_ERROR( "out of dynamic memory in sfbpf__scan_buffer()" );
4482 
4483 	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
4484 	b->yy_buf_pos = b->yy_ch_buf = base;
4485 	b->yy_is_our_buffer = 0;
4486 	b->yy_input_file = 0;
4487 	b->yy_n_chars = b->yy_buf_size;
4488 	b->yy_is_interactive = 0;
4489 	b->yy_at_bol = 1;
4490 	b->yy_fill_buffer = 0;
4491 	b->yy_buffer_status = YY_BUFFER_NEW;
4492 
4493 	sfbpf__switch_to_buffer(b  );
4494 
4495 	return b;
4496 }
4497 
4498 /** Setup the input buffer state to scan a string. The next call to sfbpf_lex() will
4499  * scan from a @e copy of @a str.
4500  * @param yystr a NUL-terminated string to scan
4501  *
4502  * @return the newly allocated buffer state object.
4503  * @note If you want to scan bytes that may contain NUL values, then use
4504  *       sfbpf__scan_bytes() instead.
4505  */
sfbpf__scan_string(yyconst char * yystr)4506 YY_BUFFER_STATE sfbpf__scan_string (yyconst char * yystr )
4507 {
4508 
4509 	return sfbpf__scan_bytes(yystr,strlen(yystr) );
4510 }
4511 
4512 /** Setup the input buffer state to scan the given bytes. The next call to sfbpf_lex() will
4513  * scan from a @e copy of @a bytes.
4514  * @param yybytes the byte buffer to scan
4515  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
4516  *
4517  * @return the newly allocated buffer state object.
4518  */
sfbpf__scan_bytes(yyconst char * yybytes,int _yybytes_len)4519 YY_BUFFER_STATE sfbpf__scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
4520 {
4521 	YY_BUFFER_STATE b;
4522 	char *buf;
4523 	yy_size_t n;
4524 	int i;
4525 
4526 	/* Get memory for full buffer, including space for trailing EOB's. */
4527 	n = _yybytes_len + 2;
4528 	buf = (char *) sfbpf_alloc(n  );
4529 	if ( ! buf )
4530 		YY_FATAL_ERROR( "out of dynamic memory in sfbpf__scan_bytes()" );
4531 
4532 	for ( i = 0; i < _yybytes_len; ++i )
4533 		buf[i] = yybytes[i];
4534 
4535 	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
4536 
4537 	b = sfbpf__scan_buffer(buf,n );
4538 	if ( ! b )
4539 		YY_FATAL_ERROR( "bad buffer in sfbpf__scan_bytes()" );
4540 
4541 	/* It's okay to grow etc. this buffer, and we should throw it
4542 	 * away when we're done.
4543 	 */
4544 	b->yy_is_our_buffer = 1;
4545 
4546 	return b;
4547 }
4548 
4549 #ifndef YY_EXIT_FAILURE
4550 #define YY_EXIT_FAILURE 2
4551 #endif
4552 
yy_fatal_error(yyconst char * msg)4553 static void yy_fatal_error (yyconst char* msg )
4554 {
4555     	(void) fprintf( stderr, "%s\n", msg );
4556 	exit( YY_EXIT_FAILURE );
4557 }
4558 
4559 /* Redefine yyless() so it works in section 3 code. */
4560 
4561 #undef yyless
4562 #define yyless(n) \
4563 	do \
4564 		{ \
4565 		/* Undo effects of setting up sfbpf_text. */ \
4566         int yyless_macro_arg = (n); \
4567         YY_LESS_LINENO(yyless_macro_arg);\
4568 		sfbpf_text[sfbpf_leng] = (yy_hold_char); \
4569 		(yy_c_buf_p) = sfbpf_text + yyless_macro_arg; \
4570 		(yy_hold_char) = *(yy_c_buf_p); \
4571 		*(yy_c_buf_p) = '\0'; \
4572 		sfbpf_leng = yyless_macro_arg; \
4573 		} \
4574 	while ( 0 )
4575 
4576 /* Accessor  methods (get/set functions) to struct members. */
4577 
4578 /** Get the current token.
4579  *
4580  */
4581 
sfbpf_get_debug(void)4582 int sfbpf_get_debug  (void)
4583 {
4584         return sfbpf__flex_debug;
4585 }
4586 
sfbpf_set_debug(int bdebug)4587 void sfbpf_set_debug (int  bdebug )
4588 {
4589         sfbpf__flex_debug = bdebug ;
4590 }
4591 
yy_init_globals(void)4592 static int yy_init_globals (void)
4593 {
4594         /* Initialization is the same as for the non-reentrant scanner.
4595      * This function is called from sfbpf_lex_destroy(), so don't allocate here.
4596      */
4597 
4598     (yy_buffer_stack) = 0;
4599     (yy_buffer_stack_top) = 0;
4600     (yy_buffer_stack_max) = 0;
4601     (yy_c_buf_p) = (char *) 0;
4602     (yy_init) = 0;
4603     (yy_start) = 0;
4604 
4605 /* Defined in main.c */
4606 #ifdef YY_STDINIT
4607     sfbpf_in = stdin;
4608     sfbpf_out = stdout;
4609 #else
4610     sfbpf_in = (FILE *) 0;
4611     sfbpf_out = (FILE *) 0;
4612 #endif
4613 
4614     /* For future reference: Set errno on error, since we are called by
4615      * sfbpf_lex_init()
4616      */
4617     return 0;
4618 }
4619 
4620 /* sfbpf_lex_destroy is for both reentrant and non-reentrant scanners. */
sfbpf_lex_destroy(void)4621 int sfbpf_lex_destroy  (void)
4622 {
4623 
4624     /* Pop the buffer stack, destroying each element. */
4625 	while(YY_CURRENT_BUFFER){
4626 		sfbpf__delete_buffer(YY_CURRENT_BUFFER  );
4627 		YY_CURRENT_BUFFER_LVALUE = NULL;
4628 		sfbpf_pop_buffer_state();
4629 	}
4630 
4631 	/* Destroy the stack itself. */
4632 	sfbpf_free((yy_buffer_stack) );
4633 	(yy_buffer_stack) = NULL;
4634 
4635     /* Reset the globals. This is important in a non-reentrant scanner so the next time
4636      * sfbpf_lex() is called, initialization will occur. */
4637     yy_init_globals( );
4638 
4639     return 0;
4640 }
4641 
4642 /*
4643  * Internal utility routines.
4644  */
4645 
4646 #ifndef yytext_ptr
yy_flex_strncpy(char * s1,yyconst char * s2,int n)4647 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
4648 {
4649 	register int i;
4650 	for ( i = 0; i < n; ++i )
4651 		s1[i] = s2[i];
4652 }
4653 #endif
4654 
4655 #ifdef YY_NEED_STRLEN
yy_flex_strlen(yyconst char * s)4656 static int yy_flex_strlen (yyconst char * s )
4657 {
4658 	register int n;
4659 	for ( n = 0; s[n]; ++n )
4660 		;
4661 
4662 	return n;
4663 }
4664 #endif
4665 
sfbpf_alloc(yy_size_t size)4666 void *sfbpf_alloc (yy_size_t  size )
4667 {
4668 	return (void *) malloc( size );
4669 }
4670 
sfbpf_realloc(void * ptr,yy_size_t size)4671 void *sfbpf_realloc  (void * ptr, yy_size_t  size )
4672 {
4673 	/* The cast to (char *) in the following accommodates both
4674 	 * implementations that use char* generic pointers, and those
4675 	 * that use void* generic pointers.  It works with the latter
4676 	 * because both ANSI C and C++ allow castless assignment from
4677 	 * any pointer type to void*, and deal with argument conversions
4678 	 * as though doing an assignment.
4679 	 */
4680 	return (void *) realloc( (char *) ptr, size );
4681 }
4682 
sfbpf_free(void * ptr)4683 void sfbpf_free (void * ptr )
4684 {
4685 	free( (char *) ptr );	/* see sfbpf_realloc() for (char *) cast */
4686 }
4687 
4688 #define YYTABLES_NAME "yytables"
4689 
4690 #line 385 "./scanner.l"
4691 
4692 
4693 void
lex_init(buf)4694 lex_init(buf)
4695 	const char *buf;
4696 {
4697 #ifdef FLEX_SCANNER
4698 	in_buffer = sfbpf__scan_string(buf);
4699 #else
4700 	in_buffer = buf;
4701 #endif
4702 }
4703 
4704 /*
4705  * Do any cleanup necessary after parsing.
4706  */
4707 void
lex_cleanup()4708 lex_cleanup()
4709 {
4710 #ifdef FLEX_SCANNER
4711 	if (in_buffer != NULL)
4712 		sfbpf__delete_buffer(in_buffer);
4713 	in_buffer = NULL;
4714 #endif
4715 }
4716 
4717 /*
4718  * Also define a sfbpf_wrap.  Note that if we're using flex, it will
4719  * define a macro to map this identifier to pcap_wrap.
4720  */
4721 int
sfbpf_wrap()4722 sfbpf_wrap()
4723 {
4724 	return 1;
4725 }
4726 
4727 /* Hex digit to integer. */
4728 static inline int
xdtoi(c)4729 xdtoi(c)
4730 	register int c;
4731 {
4732 	if (isdigit(c))
4733 		return c - '0';
4734 	else if (islower(c))
4735 		return c - 'a' + 10;
4736 	else
4737 		return c - 'A' + 10;
4738 }
4739 
4740 /*
4741  * Convert string to integer.  Just like atoi(), but checks for
4742  * preceding 0x or 0 and uses hex or octal instead of decimal.
4743  */
4744 static int
stoi(s)4745 stoi(s)
4746 	char *s;
4747 {
4748 	int base = 10;
4749 	int n = 0;
4750 
4751 	if (*s == '0') {
4752 		if (s[1] == 'x' || s[1] == 'X') {
4753 			s += 2;
4754 			base = 16;
4755 		}
4756 		else {
4757 			base = 8;
4758 			s += 1;
4759 		}
4760 	}
4761 	while (*s)
4762 		n = n * base + xdtoi(*s++);
4763 
4764 	return n;
4765 }
4766 
4767