Code

configure gbp's debian-branch
[pkg-collectd.git] / src / liboconfig / scanner.c
2 #line 3 "scanner.c"
4 #define  YY_INT_ALIGNED short int
6 /* A lexical scanner generated by flex */
8 #define FLEX_SCANNER
9 #define YY_FLEX_MAJOR_VERSION 2
10 #define YY_FLEX_MINOR_VERSION 5
11 #define YY_FLEX_SUBMINOR_VERSION 39
12 #if YY_FLEX_SUBMINOR_VERSION > 0
13 #define FLEX_BETA
14 #endif
16 /* First, we deal with  platform-specific or compiler-specific issues. */
18 /* begin standard C headers. */
19 #include <stdio.h>
20 #include <string.h>
21 #include <errno.h>
22 #include <stdlib.h>
24 /* end standard C headers. */
26 /* flex integer type definitions */
28 #ifndef FLEXINT_H
29 #define FLEXINT_H
31 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
33 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
35 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
36  * if you want the limit (max/min) macros for int types. 
37  */
38 #ifndef __STDC_LIMIT_MACROS
39 #define __STDC_LIMIT_MACROS 1
40 #endif
42 #include <inttypes.h>
43 typedef int8_t flex_int8_t;
44 typedef uint8_t flex_uint8_t;
45 typedef int16_t flex_int16_t;
46 typedef uint16_t flex_uint16_t;
47 typedef int32_t flex_int32_t;
48 typedef uint32_t flex_uint32_t;
49 #else
50 typedef signed char flex_int8_t;
51 typedef short int flex_int16_t;
52 typedef int flex_int32_t;
53 typedef unsigned char flex_uint8_t; 
54 typedef unsigned short int flex_uint16_t;
55 typedef unsigned int flex_uint32_t;
57 /* Limits of integral types. */
58 #ifndef INT8_MIN
59 #define INT8_MIN               (-128)
60 #endif
61 #ifndef INT16_MIN
62 #define INT16_MIN              (-32767-1)
63 #endif
64 #ifndef INT32_MIN
65 #define INT32_MIN              (-2147483647-1)
66 #endif
67 #ifndef INT8_MAX
68 #define INT8_MAX               (127)
69 #endif
70 #ifndef INT16_MAX
71 #define INT16_MAX              (32767)
72 #endif
73 #ifndef INT32_MAX
74 #define INT32_MAX              (2147483647)
75 #endif
76 #ifndef UINT8_MAX
77 #define UINT8_MAX              (255U)
78 #endif
79 #ifndef UINT16_MAX
80 #define UINT16_MAX             (65535U)
81 #endif
82 #ifndef UINT32_MAX
83 #define UINT32_MAX             (4294967295U)
84 #endif
86 #endif /* ! C99 */
88 #endif /* ! FLEXINT_H */
90 #ifdef __cplusplus
92 /* The "const" storage-class-modifier is valid. */
93 #define YY_USE_CONST
95 #else   /* ! __cplusplus */
97 /* C99 requires __STDC__ to be defined as 1. */
98 #if defined (__STDC__)
100 #define YY_USE_CONST
102 #endif  /* defined (__STDC__) */
103 #endif  /* ! __cplusplus */
105 #ifdef YY_USE_CONST
106 #define yyconst const
107 #else
108 #define yyconst
109 #endif
111 /* Returned upon end-of-file. */
112 #define YY_NULL 0
114 /* Promotes a possibly negative, possibly signed char to an unsigned
115  * integer for use as an array index.  If the signed char is negative,
116  * we want to instead treat it as an 8-bit unsigned char, hence the
117  * double cast.
118  */
119 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
121 /* Enter a start condition.  This macro really ought to take a parameter,
122  * but we do it the disgusting crufty way forced on us by the ()-less
123  * definition of BEGIN.
124  */
125 #define BEGIN (yy_start) = 1 + 2 *
127 /* Translate the current start state into a value that can be later handed
128  * to BEGIN to return to the state.  The YYSTATE alias is for lex
129  * compatibility.
130  */
131 #define YY_START (((yy_start) - 1) / 2)
132 #define YYSTATE YY_START
134 /* Action number for EOF rule of a given start state. */
135 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
137 /* Special action meaning "start processing a new file". */
138 #define YY_NEW_FILE yyrestart(yyin  )
140 #define YY_END_OF_BUFFER_CHAR 0
142 /* Size of default input buffer. */
143 #ifndef YY_BUF_SIZE
144 #ifdef __ia64__
145 /* On IA-64, the buffer size is 16k, not 8k.
146  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
147  * Ditto for the __ia64__ case accordingly.
148  */
149 #define YY_BUF_SIZE 32768
150 #else
151 #define YY_BUF_SIZE 16384
152 #endif /* __ia64__ */
153 #endif
155 /* The state buf must be large enough to hold one state per character in the main buffer.
156  */
157 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
159 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
160 #define YY_TYPEDEF_YY_BUFFER_STATE
161 typedef struct yy_buffer_state *YY_BUFFER_STATE;
162 #endif
164 #ifndef YY_TYPEDEF_YY_SIZE_T
165 #define YY_TYPEDEF_YY_SIZE_T
166 typedef size_t yy_size_t;
167 #endif
169 extern yy_size_t yyleng;
171 extern FILE *yyin, *yyout;
173 #define EOB_ACT_CONTINUE_SCAN 0
174 #define EOB_ACT_END_OF_FILE 1
175 #define EOB_ACT_LAST_MATCH 2
177     /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
178      *       access to the local variable yy_act. Since yyless() is a macro, it would break
179      *       existing scanners that call yyless() from OUTSIDE yylex. 
180      *       One obvious solution it to make yy_act a global. I tried that, and saw
181      *       a 5% performance hit in a non-yylineno scanner, because yy_act is
182      *       normally declared as a register variable-- so it is not worth it.
183      */
184     #define  YY_LESS_LINENO(n) \
185             do { \
186                 int yyl;\
187                 for ( yyl = n; yyl < yyleng; ++yyl )\
188                     if ( yytext[yyl] == '\n' )\
189                         --yylineno;\
190             }while(0)
191     #define YY_LINENO_REWIND_TO(dst) \
192             do {\
193                 const char *p;\
194                 for ( p = yy_cp-1; p >= (dst); --p)\
195                     if ( *p == '\n' )\
196                         --yylineno;\
197             }while(0)
198     
199 /* Return all but the first "n" matched characters back to the input stream. */
200 #define yyless(n) \
201         do \
202                 { \
203                 /* Undo effects of setting up yytext. */ \
204         int yyless_macro_arg = (n); \
205         YY_LESS_LINENO(yyless_macro_arg);\
206                 *yy_cp = (yy_hold_char); \
207                 YY_RESTORE_YY_MORE_OFFSET \
208                 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
209                 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
210                 } \
211         while ( 0 )
213 #define unput(c) yyunput( c, (yytext_ptr)  )
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;
221         char *yy_ch_buf;                /* input buffer */
222         char *yy_buf_pos;               /* current position in input buffer */
224         /* Size of input buffer in bytes, not including room for EOB
225          * characters.
226          */
227         yy_size_t yy_buf_size;
229         /* Number of characters read into yy_ch_buf, not including EOB
230          * characters.
231          */
232         yy_size_t yy_n_chars;
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;
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;
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;
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;
261         int yy_buffer_status;
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 yyrestart()), so that the user can continue scanning by
273          * just pointing yyin at a new input file.
274          */
275 #define YY_BUFFER_EOF_PENDING 2
277         };
278 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
280 /* Stack of input buffers. */
281 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
282 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
283 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
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)
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)]
300 /* yy_hold_char holds the character lost when yytext is formed. */
301 static char yy_hold_char;
302 static yy_size_t yy_n_chars;            /* number of characters read into yy_ch_buf */
303 yy_size_t yyleng;
305 /* Points to current character in buffer. */
306 static char *yy_c_buf_p = (char *) 0;
307 static int yy_init = 0;         /* whether we need to initialize */
308 static int yy_start = 0;        /* start state number */
310 /* Flag which is used to allow yywrap()'s to do buffer switches
311  * instead of setting up a fresh yyin.  A bit of a hack ...
312  */
313 static int yy_did_buffer_switch_on_eof;
315 void yyrestart (FILE *input_file  );
316 void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
317 YY_BUFFER_STATE yy_create_buffer (FILE *file,int size  );
318 void yy_delete_buffer (YY_BUFFER_STATE b  );
319 void yy_flush_buffer (YY_BUFFER_STATE b  );
320 void yypush_buffer_state (YY_BUFFER_STATE new_buffer  );
321 void yypop_buffer_state (void );
323 static void yyensure_buffer_stack (void );
324 static void yy_load_buffer_state (void );
325 static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file  );
327 #define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
329 YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size  );
330 YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str  );
331 YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len  );
333 void *yyalloc (yy_size_t  );
334 void *yyrealloc (void *,yy_size_t  );
335 void yyfree (void *  );
337 #define yy_new_buffer yy_create_buffer
339 #define yy_set_interactive(is_interactive) \
340         { \
341         if ( ! YY_CURRENT_BUFFER ){ \
342         yyensure_buffer_stack (); \
343                 YY_CURRENT_BUFFER_LVALUE =    \
344             yy_create_buffer(yyin,YY_BUF_SIZE ); \
345         } \
346         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
347         }
349 #define yy_set_bol(at_bol) \
350         { \
351         if ( ! YY_CURRENT_BUFFER ){\
352         yyensure_buffer_stack (); \
353                 YY_CURRENT_BUFFER_LVALUE =    \
354             yy_create_buffer(yyin,YY_BUF_SIZE ); \
355         } \
356         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
357         }
359 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
361 /* Begin user sect3 */
363 #define yywrap() 1
364 #define YY_SKIP_YYWRAP
366 typedef unsigned char YY_CHAR;
368 FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
370 typedef int yy_state_type;
372 extern int yylineno;
374 int yylineno = 1;
376 extern char *yytext;
377 #define yytext_ptr yytext
379 static yy_state_type yy_get_previous_state (void );
380 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
381 static int yy_get_next_buffer (void );
382 static void yy_fatal_error (yyconst char msg[]  );
384 /* Done after the current pattern has been matched and before the
385  * corresponding action - sets up yytext.
386  */
387 #define YY_DO_BEFORE_ACTION \
388         (yytext_ptr) = yy_bp; \
389         yyleng = (size_t) (yy_cp - yy_bp); \
390         (yy_hold_char) = *yy_cp; \
391         *yy_cp = '\0'; \
392         (yy_c_buf_p) = yy_cp;
394 #define YY_NUM_RULES 19
395 #define YY_END_OF_BUFFER 20
396 /* This struct is not used in this scanner,
397    but its presence is necessary. */
398 struct yy_trans_info
399         {
400         flex_int32_t yy_verify;
401         flex_int32_t yy_nxt;
402         };
403 static yyconst flex_int16_t yy_accept[1519] =
404     {   0,
405         0,    0,    0,    0,   20,   19,    1,    4,   19,   19,
406         2,   19,   19,    5,   12,   12,   12,   12,   19,    6,
407         7,   14,   14,   19,   19,   14,   14,   14,   14,   14,
408        19,   16,    4,    0,   13,    0,    2,    0,   12,   12,
409         0,   12,   12,    0,   14,   14,   14,   12,   12,   12,
410        12,   11,    0,    0,    3,    0,   14,    9,   14,    8,
411        14,   14,    0,   18,    0,   16,    0,   15,    0,    0,
412        12,   12,   12,   12,   12,   12,   14,    0,   11,   12,
413        12,   11,   11,   11,   11,   11,    0,    0,    0,   14,
414        14,    0,   17,    0,   15,    0,    0,   12,   12,   12,
416        12,   12,   14,    0,    0,   11,   11,   11,   11,   11,
417         0,   11,    0,   11,   11,   11,   11,    0,    0,    0,
418         0,    0,    0,    0,    0,   11,   14,   17,   12,    0,
419         0,    0,    0,   12,   12,    0,    0,   11,   11,    0,
420        11,   11,   11,   11,    0,    0,    0,    0,   11,   11,
421        11,   11,   11,   11,   11,    0,    0,    0,    0,    0,
422         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
423         0,    0,    0,    0,    0,    0,    0,    0,   11,   11,
424        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
425         0,    0,    0,    0,   11,    0,   11,    0,   11,   11,
427        11,   11,    0,    0,    0,    0,    0,    0,    0,    0,
428         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
429         0,    0,   11,   11,   11,   10,   10,   10,   10,    0,
430         0,   11,   11,    0,   11,   11,   11,   11,   11,   11,
431         0,   11,   11,   11,   11,    0,    0,    0,    0,    0,
432         0,    0,    0,   11,   11,   11,   11,   11,   11,   11,
433         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
434         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
435         0,    0,    0,    0,    0,    0,    0,   11,   11,   11,
436        11,    0,   10,   10,   10,    0,    0,    0,   11,   11,
438        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
439        11,   11,   11,   11,   11,   11,   11,    0,    0,    0,
440         0,    0,    0,    0,    0,   11,    0,   11,    0,   11,
441        11,   11,   11,    0,    0,    0,    0,    0,    0,    0,
442         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
443         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
444         0,    0,    0,    0,   11,   11,   11,   11,   11,   10,
445        10,   10,    0,    0,   11,   11,    0,   11,   11,   11,
446        11,   11,   11,    0,   11,   11,   11,   11,   11,   11,
447         0,   11,   11,   11,   11,   11,   11,   11,   11,    0,
449         0,    0,    0,    0,    0,    0,    0,   11,   11,   11,
450        11,   11,   11,   11,    0,    0,    0,    0,    0,    0,
451         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
452         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
453         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
454         0,    0,   11,   11,   11,   11,   11,   11,   10,   10,
455        10,   10,    0,    0,    0,   11,   11,   11,   11,   11,
456        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
457        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
458        11,    0,   11,   11,   11,    0,    0,    0,    0,    0,
460         0,    0,    0,   11,    0,   11,    0,   11,   11,   11,
461        11,    0,    0,    0,    0,    0,    0,    0,    0,    0,
462         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
463         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
464         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
465         0,    0,    0,   11,   10,   10,   10,   10,   10,    0,
466         0,   11,   11,    0,   11,   11,   11,   11,   11,   11,
467         0,   11,   11,   11,   11,   11,   11,    0,   11,   11,
468        11,   11,   11,   11,    0,   11,   11,   11,   11,   11,
469        11,   11,   11,   11,   11,   11,    0,    0,    0,    0,
471         0,    0,    0,    0,   11,   11,   11,   11,   11,   11,
472        11,    0,    0,    0,    0,    0,    0,    0,    0,    0,
473         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
474         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
475         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
476         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
477        10,   10,   10,   10,   10,   10,    0,    0,    0,   11,
478        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
479        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
480        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
482        11,   11,   11,   11,   11,   11,    0,   11,   11,   11,
483         0,    0,    0,    0,    0,    0,    0,    0,   11,    0,
484        11,    0,   11,   11,   11,   11,    0,    0,    0,    0,
485         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
486         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
487         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
488         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
489         0,    0,    0,    0,    0,    0,    0,    0,   10,    0,
490         0,    0,    0,    0,   11,    0,   11,    0,   11,   11,
491        11,   11,   11,   11,    0,   11,   11,   11,   11,   11,
493        11,    0,   11,   11,   11,   11,   11,   11,    0,   11,
494        11,   11,   11,   11,   11,    0,   11,   11,   11,   11,
495        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
496        11,   11,    0,    0,    0,    0,    0,    0,    0,    0,
497        11,   11,   11,   11,   11,   11,   11,    0,    0,    0,
498         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
499         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
500         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
501         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
502         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
504         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
505         0,    0,    0,    0,    0,   11,   11,   11,   11,   11,
506        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
507        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
508        11,    0,   11,   11,   11,    0,    0,    0,    0,    0,
509         0,    0,    0,   11,    0,   11,    0,   11,   11,   11,
510        11,    0,    0,    0,    0,    0,    0,    0,    0,    0,
511         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
512         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
513         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
515         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
516         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
517         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
518         0,    0,    0,    0,   11,   11,    0,   11,   11,   11,
519        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
520        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
521        11,    0,    0,    0,    0,    0,    0,    0,    0,   11,
522        11,   11,    0,    0,    0,    0,    0,    0,    0,    0,
523         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
524         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
526         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
527         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
528         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
529         0,   11,   11,   11,   11,   11,   11,   11,   11,   11,
530        11,   11,   11,   11,   11,   11,   11,   11,    0,   11,
531        11,   11,    0,    0,    0,    0,    0,    0,    0,    0,
532        11,   11,    0,    0,    0,    0,    0,    0,    0,    0,
533         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
534         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
535         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
537         0,    0,    0,    0,    0,    0,    0,    0,    0,   11,
538        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
539        11,   11,   11,   11,   11,   11,   11,   11,   11,    0,
540         0,    0,    0,   11,    0,    0,    0,    0,    0,    0,
541         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
542         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
543         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
544         0,    0,    0,    0,   11,   11,   11,   11,   11,   11,
545        11,   11,   11,   11,    0,   11,   11,   11,    0,    0,
546         0,    0,   11,    0,    0,    0,    0,    0,    0,    0,
548         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
549         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
550         0,    0,   11,   11,   11,   11,   11,   11,   11,   11,
551        11,   11,   11,   11,   11,   11,   11,   11,   11,    0,
552         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
553         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
554         0,    0,    0,   11,   11,   11,   11,   11,   11,   11,
555        11,   11,   11,   11,   11,   11,    0,   11,   11,   11,
556         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
557         0,    0,    0,    0,    0,    0,    0,   11,   11,   11,
559        11,   11,   11,   11,   11,   11,   11,   11,   11,    0,
560         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
561         0,    0,    0,    0,    0,    0,    0,   11,   11,   11,
562        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
563        11,    0,    0,    0,    0,    0,    0,    0,    0,    0,
564         0,    0,    0,   11,   11,   11,   11,   11,   11,   11,
565        11,   11,   11,   11,    0,    0,    0,    0,    0,    0,
566         0,    0,    0,    0,    0,    0,    0,    0,   11,   11,
567        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
568         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
570         0,   11,   11,    0,    0,    0,    0,    0,    0,    0,
571         0,    0,    0,    0,    0,    0,    0,    0
572     } ;
574 static yyconst flex_int32_t yy_ec[256] =
575     {   0,
576         1,    1,    1,    1,    1,    1,    1,    2,    2,    3,
577         1,    1,    4,    1,    1,    1,    1,    1,    1,    1,
578         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
579         1,    2,    1,    5,    6,    1,    1,    1,    1,    1,
580         1,    1,    7,    1,    7,    8,    9,   10,   11,   12,
581        13,   14,   15,   16,   17,   18,   18,   19,    1,   20,
582         1,   21,    1,    1,   22,   22,   22,   22,   23,   22,
583        24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
584        24,   24,   24,   24,   24,   24,   24,   25,   24,   24,
585        26,   27,   28,    1,   24,    1,   29,   22,   22,   22,
587        30,   31,   24,   24,   24,   24,   24,   32,   24,   33,
588        34,   24,   24,   35,   36,   37,   38,   24,   24,   25,
589        39,   24,    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,    1,    1,    1,    1,    1,
592         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
593         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
594         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
595         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
596         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
598         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
599         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
600         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
601         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
602         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
603         1,    1,    1,    1,    1
604     } ;
606 static yyconst flex_int32_t yy_meta[40] =
607     {   0,
608         1,    1,    2,    1,    1,    1,    1,    3,    1,    4,
609         5,    5,    5,    5,    5,    6,    6,    6,    7,    1,
610         1,    8,    9,   10,   10,    1,    1,   11,    8,    9,
611         8,   10,   10,   10,   10,   10,   10,   10,   10
612     } ;
614 static yyconst flex_int16_t yy_base[2140] =
615     {   0,
616         0,    0, 4302, 4301, 4302, 9978, 9978, 9978, 4298,   35,
617         0, 4292,    0, 9978,   55,   85,  101,  110, 4280, 9978,
618      9978,  118,    0, 4279,   38, 4263, 4257,   12, 4255, 4259,
619        48, 4283, 9978,   49, 9978,   43,    0,    0, 4266,   21,
620        38,  129,  159, 4250,  169,    0,  178,  210,    0,   39,
621      4260,  219, 4248, 4247, 9978, 4262, 4230,    0, 4230,    0,
622      4222, 4210,   54, 9978,   57, 4243,   77, 9978,  235, 4237,
623       231,  235,  258,  279,  287,  317,  327, 4224,  336,    0,
624      4232,  119,  360,  384,  406,  236, 4220, 4219,  412, 4189,
625      4194,   78, 9978,  280,  151,    0,   96,    0,    0,  181,
627       436,  446, 4204, 4203, 4202,  237,  456,  480,  502,  238,
628       194, 4199,  508,  532,    0,  235,  259, 4198, 4187,  554,
629       567,  588,  612,  634,  631, 4182, 4170,  255,    0, 4191,
630      4190,  652, 4189, 4175, 4174, 4173, 4145,  661, 4144,  683,
631       707,    0,  297,  361, 4154, 4153,  731, 4152, 4138,  385,
632       742,  766,  788,  457,  481, 4137, 4126, 4121,  785,  806,
633       830,  852,  849,  345,  258,  868,  892,    0,  344,  868,
634       368,  398, 4131, 4130, 4129, 4117, 4114, 4113,  533,  916,
635       940,  962,  570, 4102,  571,  970,  994, 1016,  572,  573,
636       421, 4102, 4101, 4100, 4088,  426, 4087, 1022, 1046,    0,
638       464,  589, 4084, 4083, 1068,  268, 1090, 1114,    0,  488,
639      1127, 4083, 4078, 1148, 4077,  508, 1149, 1170, 1194, 1216,
640      1213, 1225,    0, 1244,    0, 4065, 4064, 1253, 4063, 4060,
641      4059, 1263, 4048, 1285, 1309,    0,  516,  613, 4037, 4036,
642      1331, 1355,    0,  540,  708, 4046, 4045, 1379, 4044, 4041,
643      4040, 1390, 4029, 4013,  732, 1401, 1425, 1447,  767,  786,
644      4012, 4011, 4010, 1444, 1465, 1489, 1511, 1508,  633, 1520,
645      1541, 1565, 1587, 1522, 1584,  602, 4020, 4017, 4016,  661,
646       626,  683, 1603, 1627,    0,  637, 1603,    0,    0, 1649,
647         0,  640, 3994, 3983, 3982, 3981, 3980, 3979,  807, 1660,
649      1684, 1706,  831, 3976,  893, 1714, 1738, 1760,  917,  941,
650      3975,  960, 1768, 1792, 1814,  995, 1047,  675, 3975, 3970,
651      3969,  697, 3968, 3967, 3966, 3952,  721, 3951, 1820, 1844,
652         0,  750, 1115, 3940, 3929, 1866, 1022, 1888, 1912,    0,
653       774, 1925, 1090, 1119, 1944, 1968,    0,  790, 1944, 3939,
654      3938, 1992, 3937, 3936, 3933, 2003, 3932, 1120, 2004, 2025,
655      2049, 2071, 2068, 2080,    0,    0,    0, 2099,  799,    0,
656      2108,    0, 3905, 3904, 2117, 3903, 2139, 2163,    0,  814,
657      1132, 3902, 3898, 2185, 2209,    0,  838, 1133, 3897, 3881,
658      2231, 2255,    0,  853, 1171, 3880, 3879, 2277, 3878, 3885,
660      3884, 2289, 3869, 3868, 3867, 2300, 3866, 3852, 1195, 2311,
661      2335, 2357, 1226, 1227, 3851, 3834, 3833, 2354, 2375, 2399,
662      2421, 2418, 1148, 2430, 2451, 2475, 2497, 2432, 2494, 1219,
663      2506, 2527, 2551, 2573, 2508, 2570,  862, 3843, 3839, 3838,
664       882, 3825, 3824, 3823, 1220,  906, 1221, 2589, 2613,    0,
665       924, 2589,    0,    0,    0,    0,  948, 9978,    0,    0,
666      2635,    0, 3811, 3810, 3809, 1310, 2646, 2670, 2692, 1356,
667      3808, 1380, 2700, 2724, 2746, 1402, 1426, 3795, 1445, 2754,
668      2778, 2800, 1466, 1490, 3794, 1521, 2808, 2832, 2854, 1523,
669      1524,  978, 3793, 3790, 3789, 1008, 3783, 3782, 3781, 1036,
671      3777, 3776, 3762, 3749, 1060, 3736, 2860, 2884,    0, 1071,
672      1525, 3719, 3718, 2906, 1223, 2928, 2952,    0, 1076, 2965,
673      1224, 1263, 2984, 3008,    0, 1098, 2984, 1285, 1331, 3030,
674      3054,    0, 1153, 3067, 1518, 1519, 3086, 1546, 3728, 3725,
675      3107, 3724, 3707, 3706, 3118, 3705, 1608, 3119, 3140, 3164,
676      3186, 3183, 3195, 9978,    0,    0,    0, 3214, 1162, 3690,
677      3689, 3223, 3675, 3245, 3269,    0, 1178, 1526, 3673, 3660,
678      3291, 3315,    0, 1202, 1661, 3643, 3642, 3337, 3361,    0,
679      1271, 1685, 3641, 3638, 3383, 3407,    0, 1293, 1704,    0,
680      3429,    0, 3637, 3620, 3438, 3619, 3629, 3625, 3450, 3624,
682      3610, 3608, 3461, 3595, 3567, 1739, 3472, 3496, 3518, 1758,
683      1793, 3566, 3565, 3562, 3515, 3536, 3560, 3582, 3579, 1820,
684      3591, 3612, 3636, 3658, 3593, 3655, 1825, 3667, 3688, 3712,
685      3734, 3669, 3731, 1888, 3743, 3764, 3788, 3810, 3745, 3807,
686      1317, 1893, 1917, 1918, 1345, 3572, 3555, 3554, 1369, 3553,
687      3549, 3548, 1919, 1415, 1920, 3826, 3850,    0, 1433, 3826,
688         0,    0,    0,    0, 1449, 9978, 3523, 3522, 3872, 1969,
689      3896, 3920, 3942, 2026, 3521, 2050, 3950, 3974, 3996, 2081,
690      2082, 3520, 2083, 4004, 4028, 4050, 2084, 2085, 3519, 2086,
691      4058, 4082, 4104, 2087, 2164, 3518, 2210, 4112, 4136, 4158,
693      2256, 2290,    0,    0, 4164,    0, 1452, 3516, 3505, 3503,
694      1479, 3513, 3512, 3509, 1503, 3508, 3492, 3491, 3479, 1556,
695      3478, 4173, 4197,    0, 1573, 2312, 3474, 3473, 4219, 1973,
696      4241, 4265,    0, 1588, 4278, 2003, 2079, 4297, 4321,    0,
697      1591, 4297, 2117, 2139, 4343, 4367,    0, 1612, 4380, 2185,
698      2231, 4399, 4423,    0, 1635, 4399, 3453, 4445, 3442, 2316,
699      2356, 4464, 2380, 3451, 3427, 4485, 3420, 3419, 3402, 4496,
700      3401, 2420, 4497, 4518, 4542, 4564, 4561, 4573, 9978, 3389,
701      2355, 4594, 4618, 4640,    0, 2433, 3385,    0, 4648,    0,
702      1668, 2434, 3384, 3370,    0, 4672,    0, 1692, 2435, 3363,
704      3362,    0, 4696,    0, 1722, 2436, 3339, 3338,    0, 4720,
705         0, 1746, 2437, 3324, 3317,    0, 4744,    0, 1776, 2476,
706         0,    0,    0, 4766, 1806,    0, 4775,    0, 3293, 3292,
707      4784, 3278, 3282, 3281, 4796, 3258, 3257, 3242, 4807, 3236,
708      3224, 2507, 4818, 4842, 4864, 2509, 2510, 3201, 3187, 4870,
709      4575, 4894, 4918, 4940, 4937, 2502, 4949, 4970, 4994, 5016,
710      4951, 5013, 2504, 5025, 5046, 5070, 5092, 5027, 5089, 2505,
711      5101, 5122, 5146, 5168, 5103, 5165, 2532, 5177, 5198, 5222,
712      5244, 5179, 5241, 3177, 3157, 5260, 3156, 1829, 2594, 2651,
713      2705, 1858, 3153, 3152, 3137, 1875, 3131, 3105, 3104, 2759,
715      1880, 2813, 5279, 5303,    0, 1897, 5279, 3087, 1939, 3075,
716      3055, 5327,    0, 1952, 2512,    0, 3032,    0, 2647, 3031,
717         0, 2690, 3016,    0, 2744, 3010,    0, 2798, 3009,    0,
718      2885,    0,    0,    0,    0, 1977, 9978,    0,    0, 5349,
719         0, 2008, 2986, 2985, 2972, 2017, 2978, 2977, 2947, 2039,
720      2941, 2940, 2904, 2886, 2063, 2868,    0, 5360,    0, 2125,
721      2953, 2862, 2968, 5384, 5408, 5430, 2852, 2969, 2860,    0,
722      5438,    0, 2147, 5451, 2928, 2989,    0, 5472,    0, 2171,
723      5485, 3030, 3035,    0, 5506,    0, 2193, 5519, 3059, 3060,
724         0, 5540,    0, 2217, 5553, 3061, 3062,    0, 5574,    0,
726      2239, 5587, 2832, 2831, 2825, 5606, 2269, 2824, 5625, 2808,
727      3088, 3118, 5644, 3121, 2821, 2820, 5665, 2797, 2791, 2790,
728      5676, 2774, 3145, 5677, 5698, 5722, 5744, 5741, 5753, 2767,
729      2766, 5774, 2743, 2726,    0, 9978, 2970,    0, 2725,    0,
730      2709,    0, 2702,    0, 2701,    0, 2678,    0, 9978,    0,
731         0,    0, 5783, 2326,    0, 5792,    0, 2672, 2671, 5801,
732      2648, 2626, 2625, 5813, 2602, 2601, 2588, 5824, 2564, 2552,
733         0, 2971, 2529, 2349, 2528, 2500, 5835,    0, 2360, 3196,
734      2468, 3188, 2450, 5755, 3189, 2444, 5848, 3190, 2443, 5851,
735      3191, 2429, 5852, 3193, 2422, 5853, 2419, 2392, 2391, 2368,
737      2367, 2328, 2327, 2304, 5872, 2255, 2363, 3194, 3223, 3245,
738      2390, 2268, 2250, 2244, 2413, 2243, 2229, 2228, 3250, 2465,
739      3291,    0, 5893,    0, 2483, 5906, 2542, 2222, 2204, 2198,
740      2186,    0,    0,    0,    0,    0,    0,    0,    0,    0,
741         0,    0, 2559, 9978,    0,    0, 5925,    0, 2574, 2172,
742      2171, 2165, 2583, 2158, 2152, 2151, 2604, 2136, 2130, 2129,
743      2078,    0, 2062, 2044, 5936, 2038, 2011, 1961, 1943, 3316,
744      1937, 3337, 1936, 3342, 1904, 3383, 1881, 3388, 1880, 3477,
745      1865, 1844, 1843, 1837, 1836, 5945, 2627, 1813, 5964, 1812,
746      3517, 3541, 5983, 3581, 1812, 1805, 6004, 1788, 1787, 1781,
748      6015, 1780, 3583, 1737, 6016, 1751, 1734, 6037, 1733,    0,
749      9978, 9978, 9978, 9978, 9978, 9978, 9978,    0,    0,    0,
750      6046, 2661,    0, 6055,    0, 1716, 1715, 6064, 1692, 1697,
751      1680, 6076, 1679,    0, 2684, 1673, 1646, 1640, 1628, 1596,
752      1595, 1582, 1558, 1557, 1534, 1533, 1507, 1482, 1464, 1458,
753      1443, 1418, 1401, 1400, 6085, 1394, 2709, 3585, 3586, 3587,
754      2738, 1375, 1374, 1368, 2769, 1350, 1344, 1343, 3589, 1309,
755      2792, 1328, 1322, 1304,    0,    0,    0,    0, 2817, 9978,
756         0,    0, 6104,    0, 2840, 1287, 1286, 1271, 2874, 1276,
757      1275, 1242, 9978, 1229, 1228, 6115, 1207, 1169, 1163, 1126,
759      1125, 1122, 1121, 1089, 1083, 1082, 1067, 1046, 6124, 2898,
760      1045, 6143, 1039, 3617, 3657, 6162, 3659, 1041, 1035, 6183,
761      1034,  994, 1002,  996, 6192,  979, 9978,    0,    0,    0,
762      6202, 2920,    0, 6211,    0,  978,  972, 6220,  971, 2915,
763       959,  953,  936,  915,  909,  891,  885,  867,  861,  860,
764       847, 6230,  823, 2936, 3661, 3662, 3663, 2999,  825,  819,
765       779,  742, 3016,  750,  744,  743,    0,    0,    0,    0,
766      3039, 9978,    0,    0, 6249,    0, 3075,  716,  715,  709,
767      3665, 3693, 6258, 3733,  682,  676,  675,  660, 6277, 3098,
768       654, 6296,  653, 3735, 3737, 6315, 3738,    0, 6334,    0,
770      9978,    0,    0,    0, 6343, 3131,    0, 6352,    0, 3149,
771      3739, 3741, 3769,  623,  605,  587,  581,  566,  565,  560,
772       559, 6361,  546, 3172, 3831, 3877, 3901,    0,    0, 6380,
773         0,    0,    0,    0,    0, 3231, 9978,    0,    0, 6389,
774         0,  545, 6398,  532,  531,  525,  507,  501, 6417, 3283,
775       500, 6436,  480,    0,    0,    0, 6455, 3305, 9978,    0,
776         0,    0, 6464, 3329,  479,  473, 6473,  456,  455,  449,
777       417,  411,  384,  383,  377,  360, 6492,  359,    0,    0,
778         0,    0, 3254, 9978,    0,    0,    0,    0, 3346, 9978,
779       353,  336,  335, 6511, 3375,  308,  280,   24,   30, 6530,
781      3421, 9978, 9978,   36,   81,  121,  122,  127,  129,  191,
782       219,  231,  235,  236,  251,  252,  256, 9978, 6558, 6569,
783      6580, 6589, 6592, 6595, 6602, 6611, 6622, 6630, 6633, 6639,
784      6648, 6657, 6663, 6670, 6676, 6682, 6688, 6691, 6694, 6700,
785      6707, 6713, 6716, 6722, 6728, 6735, 6744, 6748, 6751, 6757,
786      6763, 6770, 6774, 6777, 6784, 6790, 6796, 6803, 6811, 6814,
787      6821, 6824, 6828, 6830, 6836, 6843, 6849, 6856, 6862, 6866,
788      6868, 6871, 6877, 6883, 6889, 6898, 6902, 6905, 6914, 6922,
789      6925, 6928, 6932, 6936, 6942, 6948, 6954, 6961, 6965, 6969,
790      6973, 6976, 6983, 6989, 6995, 7002, 7010, 7019, 7027, 7031,
792      7033, 7036, 7044, 7047, 7050, 7052, 7055, 7059, 7065, 7072,
793      7078, 7085, 7091, 7098, 7104, 7108, 7112, 7114, 7118, 7122,
794      7124, 7127, 7133, 7139, 7145, 7153, 7162, 7166, 7170, 7174,
795      7177, 7186, 7194, 7197, 7200, 7203, 7206, 7209, 7215, 7221,
796      7227, 7233, 7239, 7243, 7248, 7252, 7256, 7260, 7263, 7270,
797      7276, 7282, 7289, 7297, 7306, 7314, 7323, 7331, 7335, 7339,
798      7341, 7345, 7349, 7351, 7354, 7362, 7365, 7368, 7371, 7374,
799      7380, 7387, 7393, 7400, 7406, 7413, 7419, 7426, 7431, 7434,
800      7438, 7442, 7446, 7450, 7452, 7456, 7460, 7462, 7465, 7471,
801      7477, 7483, 7491, 7499, 7507, 7515, 7524, 7528, 7532, 7536,
803      7539, 7548, 7556, 7559, 7562, 7565, 7571, 7577, 7583, 7589,
804      7595, 7601, 7604, 7607, 7611, 7616, 7620, 7624, 7628, 7631,
805      7638, 7644, 7650, 7657, 7665, 7674, 7682, 7691, 7699, 7708,
806      7715, 7718, 7726, 7734, 7738, 7742, 7744, 7748, 7752, 7754,
807      7757, 7765, 7768, 7775, 7781, 7788, 7794, 7801, 7807, 7814,
808      7820, 7827, 7833, 7836, 7839, 7841, 7844, 7848, 7852, 7856,
809      7860, 7862, 7866, 7870, 7872, 7875, 7881, 7887, 7893, 7901,
810      7909, 7917, 7925, 7933, 7941, 7949, 7958, 7962, 7966, 7970,
811      7973, 7982, 7990, 7997, 8003, 8009, 8015, 8021, 8027, 8033,
812      8039, 8045, 8051, 8057, 8063, 8069, 8072, 8075, 8078, 8081,
814      8084, 8088, 8093, 8097, 8101, 8105, 8108, 8115, 8121, 8128,
815      8136, 8145, 8153, 8162, 8170, 8179, 8187, 8196, 8204, 8212,
816      8220, 8227, 8230, 8238, 8246, 8250, 8254, 8256, 8260, 8264,
817      8266, 8269, 8277, 8280, 8286, 8292, 8298, 8304, 8310, 8316,
818      8322, 8328, 8334, 8340, 8346, 8352, 8358, 8361, 8364, 8367,
819      8369, 8372, 8376, 8380, 8384, 8388, 8390, 8394, 8398, 8400,
820      8403, 8409, 8415, 8422, 8428, 8436, 8444, 8450, 8458, 8464,
821      8472, 8478, 8486, 8492, 8500, 8506, 8514, 8522, 8530, 8538,
822      8546, 8554, 8563, 8567, 8571, 8575, 8578, 8587, 8596, 8600,
823      8603, 8609, 8615, 8621, 8627, 8633, 8639, 8645, 8651, 8654,
825      8657, 8660, 8663, 8666, 8670, 8675, 8679, 8683, 8687, 8690,
826      8696, 8702, 8705, 8711, 8717, 8725, 8733, 8741, 8749, 8757,
827      8765, 8773, 8781, 8789, 8797, 8805, 8813, 8821, 8829, 8837,
828      8844, 8847, 8855, 8863, 8867, 8871, 8873, 8877, 8881, 8883,
829      8886, 8894, 8900, 8904, 8908, 8910, 8916, 8922, 8928, 8934,
830      8940, 8946, 8952, 8955, 8958, 8961, 8963, 8966, 8970, 8974,
831      8978, 8982, 8984, 8988, 8992, 8994, 9001, 9005, 9008, 9014,
832      9022, 9030, 9038, 9046, 9054, 9062, 9070, 9078, 9086, 9094,
833      9102, 9110, 9118, 9127, 9131, 9135, 9139, 9142, 9150, 9159,
834      9163, 9166, 9172, 9175, 9178, 9181, 9184, 9187, 9191, 9196,
836      9200, 9203, 9209, 9213, 9215, 9223, 9231, 9239, 9247, 9255,
837      9263, 9271, 9279, 9287, 9295, 9303, 9310, 9313, 9321, 9325,
838      9327, 9331, 9333, 9341, 9345, 9347, 9350, 9353, 9356, 9358,
839      9361, 9365, 9369, 9372, 9376, 9379, 9387, 9395, 9403, 9411,
840      9419, 9427, 9435, 9444, 9448, 9451, 9459, 9463, 9467, 9470,
841      9473, 9476, 9479, 9482, 9486, 9490, 9494, 9496, 9504, 9512,
842      9520, 9528, 9535, 9538, 9546, 9550, 9551, 9554, 9558, 9561,
843      9564, 9567, 9569, 9572, 9576, 9584, 9592, 9600, 9608, 9616,
844      9624, 9632, 9640, 9648, 9651, 9654, 9657, 9660, 9663, 9666,
845      9668, 9671, 9679, 9687, 9695, 9703, 9711, 9718, 9721, 9729,
847      9732, 9735, 9738, 9741, 9744, 9747, 9750, 9758, 9766, 9774,
848      9782, 9790, 9798, 9806, 9809, 9812, 9815, 9818, 9821, 9824,
849      9832, 9840, 9848, 9856, 9864, 9872, 9880, 9888, 9891, 9894,
850      9902, 9910, 9918, 9926, 9934, 9942, 9950, 9958, 9966
851     } ;
853 static yyconst flex_int16_t yy_def[2140] =
854     {   0,
855      1518,    1, 1519, 1519, 1518, 1518, 1518, 1518, 1518, 1520,
856      1521, 1522, 1523, 1518, 1518,   15,   16,   17, 1518, 1518,
857      1518,   17, 1524, 1525, 1518,   22, 1524, 1524, 1524, 1524,
858      1526, 1518, 1518, 1520, 1518, 1527, 1521, 1523, 1522, 1523,
859      1528, 1518,   42, 1529,   42, 1524, 1518,   42,   48,   48,
860        43, 1518, 1530, 1518, 1518, 1518,   45, 1524, 1524, 1524,
861      1524, 1524, 1526, 1518, 1531, 1518, 1520, 1518, 1520, 1518,
862      1523, 1532, 1518,   73, 1518,   75,   75, 1533, 1518,   47,
863        76, 1534, 1518, 1518,   84, 1534, 1535, 1536, 1518, 1524,
864      1524, 1526, 1518, 1526, 1520, 1537, 1538,   74,   74,   74,
866      1524,  101, 1524, 1539, 1540, 1541, 1518, 1518,  108, 1541,
867      1542, 1543, 1518, 1518,  114,  114, 1543, 1544, 1545, 1518,
868      1546, 1518, 1518,  123, 1546, 1518, 1524, 1526, 1537, 1518,
869      1547, 1518, 1548,  101,  102, 1549, 1550, 1518, 1551, 1518,
870      1518,  141,  141, 1551, 1518, 1552, 1518, 1553, 1554, 1555,
871      1518, 1518,  152, 1555, 1554, 1518, 1556, 1557, 1558, 1518,
872      1518,  161, 1558, 1559, 1560, 1518, 1518,  167,  167, 1560,
873      1561, 1562, 1548, 1548, 1563, 1518, 1564, 1565, 1566, 1518,
874      1518,  181, 1566, 1567, 1568, 1518, 1518,  187, 1568, 1567,
875      1569, 1553, 1553, 1570, 1518, 1571, 1572, 1518, 1518,  199,
877       199, 1572, 1573, 1574, 1518, 1575, 1518, 1518,  208,  208,
878      1575, 1518, 1576, 1518, 1577, 1578, 1579, 1518, 1518,  219,
879      1579, 1578, 1580, 1518, 1581, 1518, 1582, 1518, 1583, 1584,
880      1585, 1518, 1586, 1518, 1518,  235,  235, 1586, 1518, 1587,
881      1518, 1518,  242,  242, 1587, 1518, 1588, 1518, 1589, 1518,
882      1590, 1518, 1591, 1592, 1593, 1518, 1518,  257, 1593, 1592,
883      1518, 1594, 1595, 1596, 1518, 1518,  266, 1596, 1597, 1598,
884      1518, 1518,  272, 1598, 1597, 1599, 1577, 1577, 1600, 1518,
885      1601, 1602, 1518, 1518,  284,  284, 1602, 1603, 1604, 1518,
886      1605, 1606, 1583, 1583, 1607, 1518, 1608, 1609, 1610, 1518,
888      1518,  301, 1610, 1611, 1612, 1518, 1518,  307, 1612, 1611,
889      1613, 1614, 1518, 1518,  314, 1614, 1613, 1615, 1616, 1616,
890      1617, 1618, 1619, 1619, 1620, 1518, 1621, 1622, 1518, 1518,
891       330,  330, 1622, 1623, 1624, 1518, 1625, 1518, 1518,  339,
892       339, 1625, 1518, 1626, 1518, 1518,  346,  346, 1626, 1518,
893      1627, 1518, 1628, 1518, 1629, 1518, 1630, 1631, 1632, 1518,
894      1518,  361, 1632, 1631, 1633, 1634, 1635, 1518,  368, 1636,
895      1518, 1637, 1638, 1639, 1518, 1640, 1518, 1518,  378,  378,
896      1640, 1518, 1641, 1518, 1518,  385,  385, 1641, 1518, 1642,
897      1518, 1518,  392,  392, 1642, 1518, 1643, 1518, 1644, 1518,
899      1645, 1518, 1646, 1518, 1647, 1518, 1648, 1649, 1650, 1518,
900      1518,  411, 1650, 1649, 1518, 1651, 1652, 1653, 1518, 1518,
901       420, 1653, 1654, 1655, 1518, 1518,  426, 1655, 1654, 1656,
902      1657, 1518, 1518,  433, 1657, 1656, 1658, 1659, 1659, 1660,
903      1661, 1662, 1662, 1663, 1518, 1664, 1665, 1518, 1518,  449,
904       449, 1665, 1666, 1666, 1666, 1666, 1666, 1518, 1667, 1668,
905      1518, 1669, 1518, 1670, 1671, 1672, 1518, 1518,  468, 1672,
906      1673, 1674, 1518, 1518,  474, 1674, 1673, 1675, 1676, 1518,
907      1518,  481, 1676, 1675, 1677, 1678, 1518, 1518,  488, 1678,
908      1677, 1679, 1680, 1680, 1681, 1682, 1683, 1683, 1684, 1685,
910      1686, 1686, 1687, 1518, 1688, 1689, 1518, 1518,  508,  508,
911      1689, 1690, 1691, 1518, 1692, 1518, 1518,  517,  517, 1692,
912      1518, 1693, 1518, 1518,  524,  524, 1693, 1518, 1694, 1518,
913      1518,  531,  531, 1694, 1518, 1695, 1518, 1696, 1518, 1697,
914      1518, 1698, 1518, 1699, 1518, 1700, 1701, 1702, 1518, 1518,
915       550, 1702, 1701, 1518, 1703, 1704, 1705, 1518,  558, 1706,
916      1707, 1518, 1708, 1518, 1518,  565,  565, 1708, 1518, 1709,
917      1518, 1518,  572,  572, 1709, 1518, 1710, 1518, 1518,  579,
918       579, 1710, 1518, 1711, 1518, 1518,  586,  586, 1711, 1712,
919      1518, 1713, 1518, 1714, 1518, 1715, 1518, 1716, 1518, 1717,
921      1518, 1718, 1518, 1719, 1720, 1721, 1518, 1518,  608, 1721,
922      1720, 1518, 1722, 1723, 1724, 1518, 1518,  617, 1724, 1725,
923      1726, 1518, 1518,  623, 1726, 1725, 1727, 1728, 1518, 1518,
924       630, 1728, 1727, 1729, 1730, 1518, 1518,  637, 1730, 1729,
925      1731, 1732, 1732, 1733, 1734, 1735, 1735, 1736, 1737, 1738,
926      1738, 1739, 1518, 1740, 1741, 1518, 1518,  657,  657, 1741,
927      1742, 1742, 1742, 1742, 1742, 1518, 1518, 1743, 1518, 1744,
928      1518, 1518,  672, 1744, 1745, 1746, 1518, 1518,  678, 1746,
929      1745, 1747, 1748, 1518, 1518,  685, 1748, 1747, 1749, 1750,
930      1518, 1518,  692, 1750, 1749, 1751, 1752, 1518, 1518,  699,
932      1752, 1751, 1753, 1754, 1518, 1755, 1756, 1757, 1757, 1758,
933      1759, 1760, 1760, 1761, 1762, 1763, 1763, 1764, 1518, 1765,
934      1766, 1518, 1518,  723,  723, 1766, 1767, 1768, 1518, 1769,
935      1518, 1518,  732,  732, 1769, 1518, 1770, 1518, 1518,  739,
936       739, 1770, 1518, 1771, 1518, 1518,  746,  746, 1771, 1518,
937      1772, 1518, 1518,  753,  753, 1772, 1773, 1518, 1774, 1518,
938      1775, 1518, 1776, 1518, 1777, 1518, 1778, 1518, 1779, 1518,
939      1780, 1781, 1782, 1518, 1518,  775, 1782, 1781, 1518, 1783,
940      1784, 1518, 1518,  783, 1785, 1784, 1786, 1787, 1518,  789,
941       789, 1786, 1518, 1788, 1789, 1518,  796,  796, 1788, 1518,
943      1790, 1791, 1518,  803,  803, 1790, 1518, 1792, 1793, 1518,
944       810,  810, 1792, 1518, 1794, 1795, 1518,  817,  817, 1794,
945      1796, 1797, 1798, 1518,  824, 1799, 1518, 1800, 1518, 1801,
946      1518, 1802, 1518, 1803, 1518, 1804, 1518, 1805, 1518, 1806,
947      1807, 1808, 1518, 1518,  844, 1808, 1807, 1518, 1809, 1518,
948      1810, 1518, 1518,  853, 1810, 1811, 1812, 1518, 1518,  859,
949      1812, 1811, 1813, 1814, 1518, 1518,  866, 1814, 1813, 1815,
950      1816, 1518, 1518,  873, 1816, 1815, 1817, 1818, 1518, 1518,
951       880, 1818, 1817, 1819, 1820, 1518, 1821, 1822, 1823, 1823,
952      1824, 1825, 1826, 1826, 1827, 1828, 1829, 1829, 1830, 1518,
954      1831, 1832, 1518, 1518,  904,  904, 1832, 1518, 1833, 1834,
955      1835, 1518,  912,  912, 1834, 1836, 1837, 1838, 1837, 1839,
956      1840, 1839, 1841, 1842, 1841, 1843, 1844, 1843, 1845, 1846,
957      1845, 1847, 1847, 1847, 1847, 1847, 1518, 1848, 1849, 1518,
958      1850, 1851, 1852, 1852, 1853, 1854, 1855, 1855, 1856, 1857,
959      1858, 1858, 1859, 1518, 1860, 1861, 1862, 1518,  958,  958,
960      1861, 1863, 1864, 1518, 1518,  965, 1865, 1864, 1866, 1867,
961      1518,  971,  971, 1866, 1518, 1868, 1869, 1518,  978,  978,
962      1868, 1518, 1870, 1871, 1518,  985,  985, 1870, 1518, 1872,
963      1873, 1518,  992,  992, 1872, 1518, 1874, 1875, 1518,  999,
965       999, 1874, 1876, 1877, 1878, 1518, 1006, 1879, 1518, 1880,
966      1518, 1881, 1518, 1882, 1518, 1883, 1518, 1884, 1518, 1885,
967      1518, 1886, 1887, 1888, 1518, 1518, 1026, 1888, 1887, 1518,
968      1889, 1518, 1890, 1891, 1892, 1518, 1891, 1893, 1518, 1894,
969      1518, 1895, 1518, 1896, 1518, 1897, 1518, 1898, 1518, 1899,
970      1900, 1901, 1518, 1053, 1902, 1518, 1903, 1518, 1904, 1518,
971      1905, 1518, 1906, 1518, 1907, 1518, 1908, 1518, 1909, 1910,
972      1911, 1910, 1518, 1912, 1913, 1914, 1518, 1077, 1077, 1913,
973      1915, 1916, 1917, 1916, 1918, 1919, 1918, 1920, 1921, 1920,
974      1922, 1923, 1922, 1924, 1925, 1924, 1926, 1926, 1926, 1926,
976      1927, 1518, 1928, 1929, 1518, 1930, 1931, 1932, 1932, 1933,
977      1934, 1935, 1935, 1936, 1937, 1938, 1938, 1939, 1518, 1940,
978      1941, 1942, 1518, 1123, 1123, 1941, 1943, 1944, 1944, 1945,
979      1518, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1953,
980      1953, 1953, 1953, 1518, 1954, 1955, 1518, 1956, 1957, 1958,
981      1958, 1959, 1960, 1961, 1961, 1962, 1963, 1964, 1964, 1965,
982      1518, 1966, 1518, 1967, 1518, 1968, 1969, 1970, 1518, 1969,
983      1971, 1518, 1972, 1518, 1973, 1518, 1974, 1518, 1975, 1518,
984      1976, 1518, 1977, 1978, 1979, 1518, 1186, 1980, 1518, 1981,
985      1518, 1982, 1518, 1983, 1518, 1984, 1518, 1985, 1518, 1986,
987      1518, 1987, 1988, 1989, 1988, 1518, 1990, 1518, 1991, 1992,
988      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1993, 1994, 1995,
989      1518, 1221, 1996, 1518, 1997, 1518, 1998, 1518, 1999, 1518,
990      2000, 1518, 2001, 2002, 2003, 1968, 1968, 2004, 1518, 2005,
991      2006, 2007, 2008, 2009, 2010, 2011, 2012, 2012, 2012, 2012,
992      2013, 1518, 2014, 2015, 1518, 2016, 2017, 1983, 1983, 2018,
993      2019, 1985, 1985, 2020, 2021, 1987, 1987, 2022, 1518, 2023,
994      2024, 1991, 1991, 2025, 2026, 2026, 2026, 2026, 2026, 1518,
995      2027, 2028, 1518, 2029, 2030, 1999, 1999, 2031, 2032, 2001,
996      2001, 2033, 1518, 1518, 2034, 1518, 2035, 2036, 1518, 1518,
998      1518, 1518, 1518, 1518, 1518, 2037, 2038, 2039, 1518, 1309,
999      2040, 1518, 2041, 1518, 2042, 1518, 2043, 1518, 2044, 1518,
1000      2045, 2046, 1518, 2047, 1518, 2048, 1518, 2049, 2050, 2051,
1001      1518, 1331, 2052, 1518, 2053, 1518, 2054, 1518, 2055, 2056,
1002      2035, 2035, 2057, 2058, 2058, 2058, 2058, 2059, 1518, 2060,
1003      2061, 1518, 2062, 2063, 2043, 2043, 2064, 2065, 2045, 2045,
1004      2066, 1518, 2067, 2048, 2048, 2068, 2069, 2069, 2069, 2069,
1005      2069, 1518, 2070, 2071, 1518, 2072, 2073, 2055, 2055, 2074,
1006      1518, 2075, 1518, 2076, 1518, 2077, 2078, 2079, 1518, 1389,
1007      2080, 1518, 2081, 1518, 2082, 1518, 2083, 2084, 1518, 2085,
1009      1518, 2086, 2087, 2088, 1518, 1405, 2089, 1518, 2090, 2091,
1010      2076, 2076, 2092, 2093, 2093, 2093, 2093, 2094, 1518, 2095,
1011      2096, 1518, 2097, 2098, 2083, 2083, 2099, 2100, 2101, 1518,
1012      2102, 2103, 2103, 2103, 2103, 2103, 1518, 2104, 2105, 1518,
1013      2106, 2107, 1518, 2108, 1518, 2109, 2110, 2111, 1518, 1449,
1014      2112, 1518, 2113, 2114, 2115, 2116, 1518, 1457, 1518, 2117,
1015      2118, 2119, 1518, 1463, 2120, 2121, 1518, 2122, 2123, 2123,
1016      2123, 2123, 2124, 1518, 2125, 2126, 1518, 2127, 2128, 2128,
1017      2128, 2128, 2128, 1518, 2129, 2129, 2129, 2129, 2129, 1518,
1018      2130, 2131, 2132, 1518, 1494, 1518, 2133, 2134, 2135, 1518,
1020      1500, 1518, 1518, 2136, 2136, 2136, 2136, 2137, 1518, 2138,
1021      2138, 2138, 2138, 2139, 1518, 1518, 1518,    0, 1518, 1518,
1022      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1023      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1024      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1025      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1026      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1027      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1028      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1029      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1031      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1032      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1033      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1034      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1035      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1036      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1037      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1038      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1039      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1040      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1042      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1043      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1044      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1045      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1046      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1047      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1048      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1049      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1050      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1051      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1053      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1054      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1055      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1056      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1057      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1058      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1059      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1060      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1061      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1062      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1064      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1065      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1066      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1067      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1068      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1069      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1070      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1071      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1072      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1073      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1075      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1076      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1077      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1078      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1079      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1080      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1081      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1082      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1083      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1084      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1086      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1087      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1088      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1089      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518
1090     } ;
1092 static yyconst flex_int16_t yy_nxt[10018] =
1093     {   0,
1094         6,    7,    8,    9,   10,   11,   12,   13,   14,   15,
1095        16,   17,   18,   18,   18,   18,   18,   18,   19,   20,
1096        21,   22,   22,   23,   23,   24,   25,    6,   22,   22,
1097        26,   23,   27,   28,   23,   23,   29,   23,   30,   35,
1098        55,   56,   59,   70,   60,   68,   69,   71,   72,   73,
1099        70,  126,   64,   35,   76,   76,   76,  126,   64,   93,
1100        94,   36,   41,  126,   42,   42,   42,   42,   42,   42,
1101        42,   42,   43,   44,   65,   36,   45,   45,   46,   47,
1102        65,   35,   64,   45,   45,   45,   46,   46,   46,   46,
1103        46,   46,   46,   46,   48,   48,   48,   48,   48,   48,
1105        48,   48,   48,   36,   65,  130,  131,  132,  126,   46,
1106        49,   49,   49,   49,   49,   50,   51,   51,   51,   51,
1107        51,   51,   51,   51,   51, 1518,  111,   45,   45,   45,
1108        45,   45,   45,   45,   45,   45,   38,  113,   75,   75,
1109        75,   75,   75,   75,   75,   75,   76,   44,  126,  126,
1110        77,   77,   46,   46,  126,   35,  126,   77,   77,   77,
1111        46,   46,   46,   46,   46,   46,   46,   46,   76,   76,
1112        76,   76,   76,   76,   76,   76, 1518,   36,   77,   77,
1113        77,   77,   77,   77,   77,   77,   77,   80,   80,   80,
1114        80,   80,   80,   80,   80,   80,   40,   40,   40,   80,
1116        80,   46,   46,  145,  146,  147,   80,   80,   80,   46,
1117        46,   46,   46,   46,   46,   46,   46,   41,  126,   81,
1118        81,   81,   81,   81,   81,   81,   81,   81,   82,   83,
1119        84,   85,   85,   85,   85,   85,   85,   95,   97,   35,
1120        86,   86,   97, 1518,  111, 1518,  126,   86,   86,   86,
1121       149,  149,  149,   70,  113,  140,  140,   70,  126,   64,
1122        70,   36,  126,  126,   70,   97,  111,   99,   99,   99,
1123        99,   99,  100,   71,   71,   71,  166,  113,  126,  126,
1124        70,   65,  128,  126,   64,  126,  207,   70,   71,   71,
1125        71,   71,   71,   71,   38,  126,  101,  101,  101,  101,
1127       101,  101,  101,  101,  102,   44,   65,  126,  103,  103,
1128        46,   46,  184,  184,  184,  103,  103,  103,   46,   46,
1129        46,   46,   46,   46,   46,   46,  102,  102,  102,  102,
1130       102,  102,  102,  102, 1518,  126,  103,  103,  103,  103,
1131       103,  103,  103,  103,  103,  106,  107,  108,  109,  109,
1132       109,  109,  109,  109,  212,  213,  214,  110,  110,  216,
1133       216,  216,  126,  126,  110,  110,  110,  111,  111,  114,
1134       114,  114,  114,  114,  114,  114,  114,  114,  113,  140,
1135       126,  112,  112,  224,  225,  225,  126,  126,  112,  112,
1136       112,  111,  196,  115,  115,  115,  115,  115,  116,  117,
1138       117,  117,  113,  198,  126,  112,  112,  226,  227,  228,
1139       126,  126,  112,  112,  112,  117,  117,  117,  117,  117,
1140       117,  121,  122,  123,  124,  124,  124,  124,  124,  124,
1141       246,  247,  248,  125,  125,  250,  251,  252,  126,  126,
1142       125,  125,  125,   38,  126,  134,  134,  134,  134,  134,
1143       134,  134,  134,  135,   44,  135,  135,  135,  135,  135,
1144       135,  135,  135,  111, 1518,  141,  141,  141,  141,  141,
1145       141,  141,  141,  141,  140,  198,  126,  139,  139,  254,
1146       254,  254,  126,  126,  139,  139,  139,  111,  111,  142,
1147       142,  142,  142,  142,  143,  144,  144,  144,  140,  113,
1149       126,  139,  139,  269,  269,  269,  126,  126,  139,  139,
1150       139,  144,  144,  144,  144,  144,  144,  150,  151,  152,
1151       153,  153,  153,  153,  153,  153,  166,  126,  126,  154,
1152       154,  304,  304,  304,  126,  126,  154,  154,  154,  111,
1153       111,  155,  155,  155,  155,  155,  155,  155,  155,  155,
1154       113,  234,  126,  149,  149,  311,  311,  311,  126,  126,
1155       149,  149,  149,  159,  160,  161,  162,  162,  162,  162,
1156       162,  162,  126,  126,  164,  163,  163, 1518,  196, 1518,
1157       111,  126,  163,  163,  163,  166,  126,  126,  234,  241,
1158       241,  140,  126,  126,  126,  164,  196,  167,  167,  167,
1160       167,  167,  167,  167,  167,  167,  166,  198,  126,  165,
1161       165,  350,  351,  352,  126,  126,  165,  165,  165,  164,
1162       111,  168,  168,  168,  168,  168,  169,  170,  170,  170,
1163       166,  234,  126,  165,  165,  354,  355,  356, 1518,  126,
1164       165,  165,  165,  170,  170,  170,  170,  170,  170,  166,
1165       126,  207,  358,  358,  358,  371,  372,  372,  126,  172,
1166       126,  174,  174,  174,  174,  174,  175,  130,  130,  130,
1167       179,  180,  181,  182,  182,  182,  182,  182,  182,  166,
1168       126,  126,  183,  183,  396,  397,  398,  126,  126,  183,
1169       183,  183,  185,  186,  187,  188,  188,  188,  188,  188,
1171       188,  283,  126,  126,  189,  189,  400,  401,  402,  126,
1172       126,  189,  189,  189,  111,  196,  190,  190,  190,  190,
1173       190,  190,  190,  190,  190,  140,  241, 1377,  184,  184,
1174       404,  405,  406, 1377, 1377,  184,  184,  184,  191,  327,
1175       193,  193,  193,  193,  193,  194,  145,  145,  145,  196,
1176       329,  199,  199,  199,  199,  199,  199,  199,  199,  199,
1177       198, 1363, 1363,  197,  197,  408,  408,  408, 1363,  126,
1178       197,  197,  197,  196, 1518,  200,  200,  200,  200,  200,
1179       201,  202,  202,  202,  198,  329, 1358,  197,  197,  423,
1180       423,  423,  164,  196,  197,  197,  197,  202,  202,  202,
1182       202,  202,  202,  207,  198,  430,  430,  430,  458,  458,
1183       458,  458,  126,  164,  111,  208,  208,  208,  208,  208,
1184       208,  208,  208,  208,  207,  377, 1358,  206,  206,  471,
1185       471,  471, 1358,  126,  206,  206,  206,  164, 1518,  209,
1186       209,  209,  209,  209,  210,  211,  211,  211,  207,  377,
1187       126,  206,  206,  478,  478,  478, 1518,  126,  206,  206,
1188       206,  211,  211,  211,  211,  211,  211,  207,  485,  485,
1189       485,  535,  536,  537,  126,  164,  126,  217,  218,  219,
1190       220,  220,  220,  220,  220,  220,  166,  126,  126,  221,
1191       221,  539,  540,  541,  126,  126,  221,  221,  221,  164,
1193       196,  222,  222,  222,  222,  222,  222,  222,  222,  222,
1194       166,  384,  126,  216,  216,  543,  544,  545,  126,  126,
1195       216,  216,  216,  111, 1518,  235,  235,  235,  235,  235,
1196       235,  235,  235,  235,  234,  384,  126,  233,  233,  547,
1197       547,  547,  126, 1340,  233,  233,  233,  111,  111,  236,
1198       236,  236,  236,  236,  237,  238,  238,  238,  234,  234,
1199      1340,  233,  233, 1518, 1518, 1518, 1340,  327,  233,  233,
1200       233,  238,  238,  238,  238,  238,  238,  196,  391,  242,
1201       242,  242,  242,  242,  242,  242,  242,  242,  241, 1377,
1202      1377,  240,  240,  591,  592,  592, 1377, 1363,  240,  240,
1204       240,  196, 1518,  243,  243,  243,  243,  243,  244,  245,
1205       245,  245,  241,  391, 1363,  240,  240,  593,  594,  595,
1206      1363,  126,  240,  240,  240,  245,  245,  245,  245,  245,
1207       245,  255,  256,  257,  258,  258,  258,  258,  258,  258,
1208       338, 1358, 1358,  259,  259,  597,  598,  599, 1358,  126,
1209       259,  259,  259,  196,  196,  260,  260,  260,  260,  260,
1210       260,  260,  260,  260,  198,  241,  126,  254,  254,  601,
1211       602,  603,  126,  126,  254,  254,  254,  264,  265,  266,
1212       267,  267,  267,  267,  267,  267,  605,  605,  605,  268,
1213       268,  620,  620,  620,  126,  126,  268,  268,  268,  270,
1215       271,  272,  273,  273,  273,  273,  273,  273,  207,  126,
1216       126,  274,  274,  627,  627,  627,  126,  126,  274,  274,
1217       274,  164,  327,  275,  275,  275,  275,  275,  275,  275,
1218       275,  275,  207,  329,  164,  269,  269,  345,  283,  111,
1219       196,  126,  269,  269,  269,  207,  126,  126,  126,  126,
1220       377,  384,  126,  126,  126,  276,  281,  278,  278,  278,
1221       278,  278,  279,  212,  212,  212,  338,  283,  634,  634,
1222       634,  666,  666,  666,  666,  126,  126,  281,  327,  284,
1223       284,  284,  284,  284,  284,  284,  284,  284,  283,  391,
1224       126,  282,  282,  675,  675,  675,  126,  126,  282,  282,
1226       282,  281,  505,  285,  285,  285,  285,  285,  286,  287,
1227       287,  287,  283,  507, 1340,  282,  282,  682,  682,  682,
1228      1518,  126,  282,  282,  282,  287,  287,  287,  287,  287,
1229       287,  283,  164, 1518,  327, 1340, 1340,  345,  283,  448,
1230       126,  516,  338,  166,  507,  329,  126,  126,  126, 1289,
1231       126,  126,  126,  289,  289,  289,  289,  289,  290,  291,
1232       291,  291,  294,  294,  294,  294,  294,  295,  226,  226,
1233       226,  292,  299,  300,  301,  302,  302,  302,  302,  302,
1234       302,  523, 1289, 1289,  303,  303,  689,  689,  689, 1285,
1235       126,  303,  303,  303,  305,  306,  307,  308,  308,  308,
1237       308,  308,  308,  345, 1285, 1285,  309,  309,  696,  696,
1238       696, 1271,  126,  309,  309,  309,  111,  111,  310,  310,
1239       310,  310,  310,  310,  310,  310,  310,  234,  564, 1271,
1240       304,  304,  758,  759,  759, 1271,  126,  304,  304,  304,
1241       312,  313,  314,  315,  315,  315,  315,  315,  315,  530,
1242      1265, 1265,  316,  316,  760,  761,  762, 1265,  126,  316,
1243       316,  316,  196, 1518,  317,  317,  317,  317,  317,  317,
1244       317,  317,  317,  241,  564, 1261,  311,  311,  764,  765,
1245       766, 1261, 1261,  311,  311,  311,  318,  196,  320,  320,
1246       320,  320,  320,  321,  246,  246,  246,  322,  571,  324,
1248       324,  324,  324,  324,  325,  250,  250,  250,  327, 1518,
1249       330,  330,  330,  330,  330,  330,  330,  330,  330,  329,
1250       571,  126,  328,  328,  768,  769,  770,  126,  126,  328,
1251       328,  328,  327,  111,  331,  331,  331,  331,  331,  332,
1252       333,  333,  333,  329,  377,  126,  328,  328,  772,  772,
1253       772,  164,  327,  328,  328,  328,  333,  333,  333,  333,
1254       333,  333,  338,  578, 1518, 1518, 1518,  827,  828,  828,
1255       126,  126,  164, 1518,  339,  339,  339,  339,  339,  339,
1256       339,  339,  339,  338,  578,  126,  337,  337,  829,  830,
1257       831,  126,  126,  337,  337,  337,  164,  196,  340,  340,
1259       340,  340,  340,  341,  342,  342,  342,  338,  384,  126,
1260       337,  337,  833,  834,  835, 1518,  126,  337,  337,  337,
1261       342,  342,  342,  342,  342,  342,  338,  281,  505, 1518,
1262      1518,  327,  505,  111,  126,  126,  641,  641,  345,  585,
1263       345,  585,  391,  507,  564,  126,  126,  126,  281,  126,
1264       346,  346,  346,  346,  346,  346,  346,  346,  346,  345,
1265       126,  126,  344,  344,  641,  837,  838,  839,  126,  344,
1266       344,  344,  281,  126,  347,  347,  347,  347,  347,  348,
1267       349,  349,  349,  345,  126,  126,  344,  344,  841,  841,
1268       841,  164,  126,  344,  344,  344,  349,  349,  349,  349,
1270       349,  349,  207,  856,  856,  856,  863,  863,  863,  126,
1271       281,  126,  359,  360,  361,  362,  362,  362,  362,  362,
1272       362,  283,  126,  126,  363,  363,  448,  870,  870,  870,
1273       126,  363,  363,  363,  281,  126,  364,  364,  364,  364,
1274       364,  364,  364,  364,  364,  283, 1076, 1235,  358,  358,
1275       877,  877,  877, 1235,  126,  358,  358,  358,  367,  367,
1276       367,  367,  367,  368,  369,  369,  369,  111,  196,  378,
1277       378,  378,  378,  378,  378,  378,  378,  378,  377,  571,
1278      1235,  376,  376,  917,  917,  917, 1289, 1289,  376,  376,
1279       376,  111,  327,  379,  379,  379,  379,  379,  380,  381,
1281       381,  381,  377,  578, 1289,  376,  376,  920,  920,  920,
1282      1285,  505,  376,  376,  376,  381,  381,  381,  381,  381,
1283       381,  196,  585,  385,  385,  385,  385,  385,  385,  385,
1284       385,  385,  384, 1285, 1285,  383,  383,  923,  923,  923,
1285      1271, 1271,  383,  383,  383,  196,  720,  386,  386,  386,
1286       386,  386,  387,  388,  388,  388,  384,  722, 1271,  383,
1287       383,  926,  926,  926,  126, 1518,  383,  383,  383,  388,
1288       388,  388,  388,  388,  388,  327,  722,  392,  392,  392,
1289       392,  392,  392,  392,  392,  392,  391, 1265, 1265,  390,
1290       390,  929,  929,  929, 1265, 1261,  390,  390,  390,  327,
1292       505,  393,  393,  393,  393,  393,  394,  395,  395,  395,
1293       391,  507, 1261,  390,  390,  937,  937,  937,  937, 1261,
1294       390,  390,  390,  395,  395,  395,  395,  395,  395,  409,
1295       410,  411,  412,  412,  412,  412,  412,  412,  516,  126,
1296       126,  413,  413,  523, 1009, 1010, 1010,  126,  413,  413,
1297       413,  327,  126,  414,  414,  414,  414,  414,  414,  414,
1298       414,  414,  329,  126,  126,  408,  408, 1011, 1012, 1013,
1299       126,  126,  408,  408,  408,  418,  419,  420,  421,  421,
1300       421,  421,  421,  421, 1015, 1016, 1017,  422,  422, 1019,
1301      1020, 1021,  126,  126,  422,  422,  422,  424,  425,  426,
1303       427,  427,  427,  427,  427,  427,  530,  126,  126,  428,
1304       428,  641, 1023, 1023, 1023,  126,  428,  428,  428,  164,
1305       126,  429,  429,  429,  429,  429,  429,  429,  429,  429,
1306       338,  126,  164,  423,  423,  641,  641,  448,  656,  126,
1307       423,  423,  423,  338,  126,  126,  126,  126, 1030, 1031,
1308      1032,  281,  126,  431,  432,  433,  434,  434,  434,  434,
1309       434,  434,  345,  126,  126,  435,  435, 1034, 1034, 1034,
1310       126,  126,  435,  435,  435,  281,  111,  436,  436,  436,
1311       436,  436,  436,  436,  436,  436,  345,  788,  126,  430,
1312       430,  731, 1518, 1518, 1518,  126,  430,  430,  430,  437,
1314       126,  439,  439,  439,  439,  439,  440,  350,  350,  350,
1315       441,  446,  443,  443,  443,  443,  443,  444,  354,  354,
1316       354,  516,  448, 1056, 1057, 1057, 1058, 1059, 1060, 1076,
1317       126,  126,  446, 1518,  449,  449,  449,  449,  449,  449,
1318       449,  449,  449,  448,  788, 1235,  447,  447, 1062, 1063,
1319      1064, 1235,  126,  447,  447,  447,  446,  196,  450,  450,
1320       450,  450,  450,  451,  452,  452,  452,  448,  795, 1235,
1321       447,  447, 1066, 1067, 1068, 1518,  126,  447,  447,  447,
1322       452,  452,  452,  452,  452,  452,  448,  281, 1518,  111,
1323       327, 1518,  196,  505, 1518,  126,  957,  738,  283,  795,
1325       564,  802,  802,  571,  809,  809,  126,  126,  456,  456,
1326       456,  457,  458,  458,  458,  458,  458,  460,  460,  460,
1327       460,  460,  461,  462,  462,  462,  466,  467,  468,  469,
1328       469,  469,  469,  469,  469,  523, 1157, 1157,  470,  470,
1329      1070, 1070, 1070, 1157,  126,  470,  470,  470,  472,  473,
1330       474,  475,  475,  475,  475,  475,  475,  745, 1153, 1153,
1331       476,  476, 1082, 1082, 1082, 1153,  126,  476,  476,  476,
1332       111,  327,  477,  477,  477,  477,  477,  477,  477,  477,
1333       477,  377,  578, 1149,  471,  471, 1085, 1085, 1085, 1149,
1334      1149,  471,  471,  471,  479,  480,  481,  482,  482,  482,
1336       482,  482,  482,  530,  911, 1127,  483,  483, 1088, 1088,
1337      1088, 1127,  126,  483,  483,  483,  196,  720,  484,  484,
1338       484,  484,  484,  484,  484,  484,  484,  384,  816, 1127,
1339       478,  478, 1091, 1091, 1091, 1115, 1115,  478,  478,  478,
1340       486,  487,  488,  489,  489,  489,  489,  489,  489,  752,
1341      1115, 1111,  490,  490, 1094, 1094, 1094, 1111,  126,  490,
1342       490,  490,  327, 1518,  491,  491,  491,  491,  491,  491,
1343       491,  491,  491,  391,  816, 1111,  485,  485, 1102, 1102,
1344      1102, 1102,  126,  485,  485,  485,  494,  494,  494,  494,
1345       494,  495,  396,  396,  396,  492,  496,  505,  498,  498,
1347       498,  498,  498,  499,  400,  400,  400,  500,  585,  502,
1348       502,  502,  502,  502,  503,  404,  404,  404,  505,  720,
1349       508,  508,  508,  508,  508,  508,  508,  508,  508,  507,
1350       722,  126,  506,  506,  888, 1144, 1144, 1144, 1144,  506,
1351       506,  506,  505,  126,  509,  509,  509,  509,  509,  510,
1352       511,  511,  511,  507,  126,  126,  506,  506, 1163, 1164,
1353      1165,  164,  909,  506,  506,  506,  511,  511,  511,  511,
1354       511,  511,  516,  911,  888, 1167, 1167, 1167, 1189, 1190,
1355      1190,  126,  164,  126,  517,  517,  517,  517,  517,  517,
1356       517,  517,  517,  516,  126,  126,  515,  515,  888, 1191,
1358      1192, 1193,  126,  515,  515,  515,  164,  126,  518,  518,
1359       518,  518,  518,  519,  520,  520,  520,  516,  126,  126,
1360       515,  515, 1195, 1196, 1197, 1518,  126,  515,  515,  515,
1361       520,  520,  520,  520,  520,  520,  516,  281,  656, 1518,
1362      1518,  111,  196,  327,  505,  126,  126,  126,  523,  126,
1363       523,  911,  788,  795,  802,  809,  126,  126,  281,  126,
1364       524,  524,  524,  524,  524,  524,  524,  524,  524,  523,
1365       126,  126,  522,  522, 1199, 1200, 1201,  126,  126,  522,
1366       522,  522,  281,  720,  525,  525,  525,  525,  525,  526,
1367       527,  527,  527,  523,  816,  126,  522,  522, 1203, 1203,
1369      1203,  164,  126,  522,  522,  522,  527,  527,  527,  527,
1370       527,  527,  338,  446,  955, 1518, 1518,  720, 1169,  909,
1371       731,  126,  738,  745,  530,  957,  530,  957,  722,  126,
1372       911,  126,  126,  126,  446,  126,  531,  531,  531,  531,
1373       531,  531,  531,  531,  531,  530, 1076,  850,  529,  529,
1374       752, 1206, 1207, 1208,  126,  529,  529,  529,  446,  126,
1375       532,  532,  532,  532,  532,  533,  534,  534,  534,  530,
1376       957, 1157,  529,  529, 1518, 1518, 1518,  281,  126,  529,
1377       529,  529,  534,  534,  534,  534,  534,  534,  345, 1224,
1378      1225, 1225, 1226, 1227, 1228, 1157,  446,  126,  548,  549,
1380       550,  551,  551,  551,  551,  551,  551,  448, 1157, 1153,
1381       552,  552,  888, 1230, 1231, 1232,  126,  552,  552,  552,
1382       446,  126,  553,  553,  553,  553,  553,  553,  553,  553,
1383       553,  448, 1153, 1153,  547,  547, 1252, 1252, 1252, 1252,
1384       126,  547,  547,  547,  557,  557,  557,  557,  557,  558,
1385       559,  559,  559,  111,  111,  565,  565,  565,  565,  565,
1386       565,  565,  565,  565,  564,  788, 1149,  563,  563,  888,
1387      1280, 1280, 1280, 1280,  563,  563,  563,  111,  126,  566,
1388       566,  566,  566,  566,  567,  568,  568,  568,  564, 1149,
1389      1149,  563,  563, 1294, 1295, 1296,  816,  196,  563,  563,
1391       563,  568,  568,  568,  568,  568,  568,  196,  795,  572,
1392       572,  572,  572,  572,  572,  572,  572,  572,  571,  809,
1393       802,  570,  570,  888, 1312, 1313, 1313,  795,  570,  570,
1394       570,  196,  126,  573,  573,  573,  573,  573,  574,  575,
1395       575,  575,  571,  788,  911,  570,  570, 1314, 1315, 1316,
1396      1127,  327,  570,  570,  570,  575,  575,  575,  575,  575,
1397       575,  327,  802,  579,  579,  579,  579,  579,  579,  579,
1398       579,  579,  578, 1127, 1127,  577,  577,  656, 1318, 1319,
1399      1320, 1115,  577,  577,  577,  327,  126,  580,  580,  580,
1400       580,  580,  581,  582,  582,  582,  578, 1115, 1115,  577,
1402       577, 1323, 1324, 1325, 1111,  505,  577,  577,  577,  582,
1403       582,  582,  582,  582,  582,  505,  809,  586,  586,  586,
1404       586,  586,  586,  586,  586,  586,  585, 1111, 1111,  584,
1405       584,  903, 1518, 1518, 1518,  126,  584,  584,  584,  505,
1406       126,  587,  587,  587,  587,  587,  588,  589,  589,  589,
1407       585,  126,  126,  584,  584, 1334, 1335, 1335,  126,  126,
1408       584,  584,  584,  589,  589,  589,  589,  589,  589,  606,
1409       607,  608,  609,  609,  609,  609,  609,  609,  970,  126,
1410       850,  610,  610, 1336, 1337, 1338,  957,  126,  610,  610,
1411       610,  505,  720,  611,  611,  611,  611,  611,  611,  611,
1413       611,  611,  507,  816,  722,  605,  605, 1349, 1349, 1349,
1414      1349,  950,  605,  605,  605,  615,  616,  617,  618,  618,
1415       618,  618,  618,  618, 1381, 1382, 1383,  619,  619, 1372,
1416      1372, 1372, 1372,  126,  619,  619,  619,  621,  622,  623,
1417       624,  624,  624,  624,  624,  624,  731,  950,  950,  625,
1418       625, 1392, 1393, 1393,  946,  126,  625,  625,  625,  164,
1419       955,  626,  626,  626,  626,  626,  626,  626,  626,  626,
1420       516,  957,  164,  620,  620, 1074, 1518,  909,  955,  126,
1421       620,  620,  620,  516,  946,  946, 1076, 1076,  911,  957,
1422       942,  281,  126,  628,  629,  630,  631,  631,  631,  631,
1424       631,  631,  523,  942,  942,  632,  632,  977, 1394, 1395,
1425      1396,  126,  632,  632,  632,  281,  126,  633,  633,  633,
1426       633,  633,  633,  633,  633,  633,  523,  816,  809,  627,
1427       627, 1399, 1400, 1400,  802,  126,  627,  627,  627,  635,
1428       636,  637,  638,  638,  638,  638,  638,  638,  738,  795,
1429       788,  639,  639,  984, 1518, 1518, 1518,  126,  639,  639,
1430       639,  446,  126,  640,  640,  640,  640,  640,  640,  640,
1431       640,  640,  530, 1036,  446,  634,  634,  745,  991,  752,
1432       998,  126,  634,  634,  634,  530,  126,  126,  126,  126,
1433      1408, 1409, 1409,  911,  126,  643,  643,  643,  643,  643,
1435       644,  535,  535,  535,  641,  669, 1107, 1419, 1419, 1419,
1436      1419,  896,  896,  126,  645,  126,  647,  647,  647,  647,
1437       647,  648,  539,  539,  539,  649,  654,  651,  651,  651,
1438       651,  651,  652,  543,  543,  543, 1107,  656,  896, 1107,
1439      1437, 1437, 1437, 1437,  892,  126,  126,  654,  126,  657,
1440       657,  657,  657,  657,  657,  657,  657,  657,  656,  892,
1441       892,  655,  655,  903, 1443, 1444, 1444,  126,  655,  655,
1442       655,  654,  126,  658,  658,  658,  658,  658,  659,  660,
1443       660,  660,  656,  126,  126,  655,  655, 1452, 1453, 1453,
1444      1518,  126,  655,  655,  655,  660,  660,  660,  660,  660,
1446       660,  656,  446, 1074,  126,  850,  970,  977,  984,  991,
1447       126,  998, 1107,  448, 1076,  126,  126,  126,  126,  614,
1448       126,  126,  126,  664,  664,  664,  665,  666,  666,  666,
1449       666,  666,  670,  671,  672,  673,  673,  673,  673,  673,
1450       673, 1107,  722,  950,  674,  674, 1518, 1518, 1518,  950,
1451       126,  674,  674,  674,  676,  677,  678,  679,  679,  679,
1452       679,  679,  679, 1107,  950,  946,  680,  680,  903, 1518,
1453      1518, 1518,  126,  680,  680,  680,  111,  126,  681,  681,
1454       681,  681,  681,  681,  681,  681,  681,  564,  946,  946,
1455       675,  675, 1474, 1474, 1474, 1474,  942,  675,  675,  675,
1457       683,  684,  685,  686,  686,  686,  686,  686,  686, 1122,
1458       942,  942,  687,  687, 1484, 1484, 1484, 1484,  126,  687,
1459       687,  687,  196, 1074,  688,  688,  688,  688,  688,  688,
1460       688,  688,  688,  571, 1076,  816,  682,  682, 1490, 1490,
1461      1490, 1490,  585,  682,  682,  682,  690,  691,  692,  693,
1462       693,  693,  693,  693,  693,  970,  809,  578,  694,  694,
1463       977, 1518, 1518, 1518,  126,  694,  694,  694,  327,  126,
1464       695,  695,  695,  695,  695,  695,  695,  695,  695,  578,
1465       802,  571,  689,  689, 1509, 1509, 1509, 1509,  795,  689,
1466       689,  689,  697,  698,  699,  700,  700,  700,  700,  700,
1468       700,  984,  564,  788,  701,  701,  991,  669,  896,  896,
1469       126,  701,  701,  701,  505,  126,  702,  702,  702,  702,
1470       702,  702,  702,  702,  702,  585,  896,  892,  696,  696,
1471      1515, 1515, 1515, 1515,  892,  696,  696,  696,  704,  704,
1472       704,  704,  704,  705,  706,  706,  706,  709,  709,  709,
1473       709,  709,  710,  593,  593,  593,  707,  711,  892,  713,
1474       713,  713,  713,  713,  714,  597,  597,  597,  715,  126,
1475       717,  717,  717,  717,  717,  718,  601,  601,  601,  720,
1476       126,  723,  723,  723,  723,  723,  723,  723,  723,  723,
1477       722,  850,  614,  721,  721,  998,  722,  507,  715,  715,
1479       721,  721,  721,  720,  126,  724,  724,  724,  724,  724,
1480       725,  726,  726,  726,  722,  715,  711,  721,  721,  711,
1481       711,  707,  164,  707,  721,  721,  721,  726,  726,  726,
1482       726,  726,  726,  731,  707, 1257,  585,  578,  571,  564,
1483       669,  465,  126,  164,  126,  732,  732,  732,  732,  732,
1484       732,  732,  732,  732,  731,  649,  649,  730,  730, 1257,
1485       649,  645,  645,  126,  730,  730,  730,  164,  126,  733,
1486       733,  733,  733,  733,  734,  735,  735,  735,  731,  645,
1487       729,  730,  730,  614,  417,  507, 1518,  126,  730,  730,
1488       730,  735,  735,  735,  735,  735,  735,  731,  281, 1257,
1490      1518, 1122,  715, 1257, 1257, 1257,  126, 1122,  126,  738,
1491       126,  738,  126,  126,  126,  715,  126,  715,  126,  281,
1492       126,  739,  739,  739,  739,  739,  739,  739,  739,  739,
1493       738,  711,  711,  737,  737, 1354,  711,  707,  707,  126,
1494       737,  737,  737,  281,  126,  740,  740,  740,  740,  740,
1495       741,  742,  742,  742,  738,  707,  585,  737,  737,  391,
1496       578,  384,  164,  126,  737,  737,  737,  742,  742,  742,
1497       742,  742,  742,  516,  446, 1354, 1518, 1354,  571, 1354,
1498      1354, 1354,  126, 1410,  126,  745,  126,  745,  126,  126,
1499       126,  377,  126,  564,  126,  446,  126,  746,  746,  746,
1501       746,  746,  746,  746,  746,  746,  745,  669,  465,  744,
1502       744, 1410,  649,  649,  649,  126,  744,  744,  744,  446,
1503       126,  747,  747,  747,  747,  747,  748,  749,  749,  749,
1504       745,  645,  645,  744,  744,  645,  614,  417,  281,  126,
1505       744,  744,  744,  749,  749,  749,  749,  749,  749,  523,
1506       654, 1410, 1518, 1424,  507, 1424, 1424, 1410,  126, 1410,
1507       126,  752,  126,  752,  126,  126,  126,  329,  126,  500,
1508       126,  654,  126,  753,  753,  753,  753,  753,  753,  753,
1509       753,  753,  752,  500,  500,  751,  751, 1410,  496,  496,
1510       496,  126,  751,  751,  751,  654,  126,  754,  754,  754,
1512       754,  754,  755,  756,  756,  756,  752,  492,  492,  751,
1513       751,  492,  391,  384,  446,  126,  751,  751,  751,  756,
1514       756,  756,  756,  756,  756,  530,  377,  562,  465,  298,
1515       441,  441,  441,  654,  126,  773,  774,  775,  776,  776,
1516       776,  776,  776,  776,  656,  437,  437,  777,  777, 1424,
1517       437,  514,  417,  126,  777,  777,  777,  654,  126,  778,
1518       778,  778,  778,  778,  778,  778,  778,  778,  656,  263,
1519       329,  772,  772,  500,  500,  500,  496,  126,  772,  772,
1520       772,  781,  782,  783,  784,  784,  784,  784,  784,  784,
1521       785,  496,  496,  786,  786, 1424,  492,  492,  492,  391,
1523       786,  786,  786,  111,  126,  789,  789,  789,  789,  789,
1524       789,  789,  789,  789,  788,  241,  384,  787,  787, 1424,
1525       234,  377,  465,  298,  787,  787,  787,  111,  126,  790,
1526       790,  790,  790,  790,  791,  792,  792,  792,  788,  441,
1527       441,  787,  787,  441,  437,  437,  437,  417,  787,  787,
1528       787,  792,  792,  792,  792,  792,  792,  196,  263,  796,
1529       796,  796,  796,  796,  796,  796,  796,  796,  795,  329,
1530       198,  794,  794,  322,  322,  322,  318,  318,  794,  794,
1531       794,  196,  318,  797,  797,  797,  797,  797,  798,  799,
1532       799,  799,  795,  241,  234,  794,  794,  375,  298,  178,
1534       292,  292,  794,  794,  794,  799,  799,  799,  799,  799,
1535       799,  327,  292,  803,  803,  803,  803,  803,  803,  803,
1536       803,  803,  802,  276,  276,  801,  801,  276,  336,  263,
1537       158,  198,  801,  801,  801,  327,  322,  804,  804,  804,
1538       804,  804,  805,  806,  806,  806,  802,  322,  322,  801,
1539       801,  318,  318,  318,  241,  140,  801,  801,  801,  806,
1540       806,  806,  806,  806,  806,  505,  234,  810,  810,  810,
1541       810,  810,  810,  810,  810,  810,  809,  298,  178,  808,
1542       808,  292,  292,  292,  276,  276,  808,  808,  808,  505,
1543       276,  811,  811,  811,  811,  811,  812,  813,  813,  813,
1545       809,  263,  158,  808,  808,  198,  113,  191,  191,  191,
1546       808,  808,  808,  813,  813,  813,  813,  813,  813,  720,
1547       140,  817,  817,  817,  817,  817,  817,  817,  817,  817,
1548       816,  232,  178,  815,  815,  105,  172,  172,  172,  205,
1549       815,  815,  815,  720,  158,  818,  818,  818,  818,  818,
1550       819,  820,  820,  820,  816,   88,  113,  815,  815,  191,
1551       191,  191,  140,  178,  815,  815,  815,  820,  820,  820,
1552       820,  820,  820,  823,  823,  823,  823,  823,  824,  825,
1553       825,  825,  842,  843,  844,  845,  845,  845,  845,  845,
1554       845,  105, 1518, 1518,  846,  846,  172,  172,  172,   58,
1556       171,  846,  846,  846,  720,  158,  847,  847,  847,  847,
1557       847,  847,  847,  847,  847,  722,   88,  113,  841,  841,
1558       138,  105,   44,   60,  127,  841,  841,  841,  851,  852,
1559       853,  854,  854,  854,  854,  854,  854,  120,   88,   41,
1560       855,  855,  105,   96,   66,   60,  126,  855,  855,  855,
1561       857,  858,  859,  860,  860,  860,  860,  860,  860,   91,
1562        58,   90,  861,  861,   55,   89,   88,   41,   79,  861,
1563       861,  861,  164,   38,  862,  862,  862,  862,  862,  862,
1564       862,  862,  862,  731,   66,  164,  856,  856,   62,   61,
1565        58,   57,  126,  856,  856,  856,  731,   54,   52,   38,
1567        33, 1518,   32,    6,  281,  126,  864,  865,  866,  867,
1568       867,  867,  867,  867,  867,  738, 1518, 1518,  868,  868,
1569      1518, 1518, 1518, 1518,  126,  868,  868,  868,  281, 1518,
1570       869,  869,  869,  869,  869,  869,  869,  869,  869,  738,
1571      1518, 1518,  863,  863, 1518, 1518, 1518, 1518,  126,  863,
1572       863,  863,  871,  872,  873,  874,  874,  874,  874,  874,
1573       874, 1518, 1518, 1518,  875,  875, 1518, 1518, 1518, 1518,
1574      1518,  875,  875,  875,  446, 1518,  876,  876,  876,  876,
1575       876,  876,  876,  876,  876,  745, 1518,  446,  870,  870,
1576      1518, 1518, 1518, 1518,  126,  870,  870,  870,  745, 1518,
1578      1518, 1518, 1518, 1518, 1518, 1518,  654,  126,  878,  879,
1579       880,  881,  881,  881,  881,  881,  881,  752, 1518, 1518,
1580       882,  882, 1518, 1518, 1518, 1518,  126,  882,  882,  882,
1581       654, 1518,  883,  883,  883,  883,  883,  883,  883,  883,
1582       883,  752, 1518, 1518,  877,  877, 1518, 1518, 1518, 1518,
1583       126,  877,  877,  877,  885,  885,  885,  885,  885,  886,
1584       887,  887,  887, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1585      1518, 1518,  126,  890,  890,  890,  890,  890,  891,  760,
1586       760,  760,  888, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1587      1518,  126,  892, 1518,  894,  894,  894,  894,  894,  895,
1589       764,  764,  764,  896,  901,  898,  898,  898,  898,  898,
1590       899,  768,  768,  768, 1518,  903, 1518, 1518, 1518, 1518,
1591      1518, 1518, 1518, 1518,  126,  901, 1518,  904,  904,  904,
1592       904,  904,  904,  904,  904,  904,  903, 1518, 1518,  902,
1593       902, 1518, 1518, 1518, 1518,  126,  902,  902,  902,  901,
1594      1518,  905,  905,  905,  905,  905,  906,  907,  907,  907,
1595       903, 1518, 1518,  902,  902, 1518, 1518, 1518, 1518,  126,
1596       902,  902,  902,  907,  907,  907,  907,  907,  907,  903,
1597       654, 1518,  164, 1518, 1518, 1518, 1518, 1518,  126, 1518,
1598      1518,  656, 1518,  970, 1518, 1518, 1518, 1518, 1518, 1518,
1600       126,  909,  126,  912,  912,  912,  912,  912,  912,  912,
1601       912,  912,  911, 1518, 1518,  910,  910, 1518, 1518, 1518,
1602      1518, 1518,  910,  910,  910,  909, 1518,  913,  913,  913,
1603       913,  913,  914,  915,  915,  915,  911, 1518, 1518,  910,
1604       910, 1518, 1518, 1518, 1518, 1518,  910,  910,  910,  915,
1605       915,  915,  915,  915,  915,  111, 1518,  919,  919,  919,
1606       919,  919,  919,  919,  919,  919,  788, 1518, 1518,  917,
1607       917, 1518, 1518, 1518, 1518, 1518,  917,  917,  917,  196,
1608      1518,  922,  922,  922,  922,  922,  922,  922,  922,  922,
1609       795, 1518, 1518,  920,  920, 1518, 1518, 1518, 1518, 1518,
1611       920,  920,  920,  327, 1518,  925,  925,  925,  925,  925,
1612       925,  925,  925,  925,  802, 1518, 1518,  923,  923, 1518,
1613      1518, 1518, 1518, 1518,  923,  923,  923,  505, 1518,  928,
1614       928,  928,  928,  928,  928,  928,  928,  928,  809, 1518,
1615      1518,  926,  926, 1518, 1518, 1518, 1518, 1518,  926,  926,
1616       926,  720, 1518,  931,  931,  931,  931,  931,  931,  931,
1617       931,  931,  816, 1518, 1518,  929,  929, 1518, 1518, 1518,
1618      1518, 1518,  929,  929,  929,  935,  935,  935,  936,  937,
1619       937,  937,  937,  937,  939,  939,  939,  939,  939,  940,
1620       941,  941,  941,  944,  944,  944,  944,  944,  945,  829,
1622       829,  829,  942,  946, 1518,  948,  948,  948,  948,  948,
1623       949,  833,  833,  833,  950, 1518,  952,  952,  952,  952,
1624       952,  953,  837,  837,  837,  955, 1518,  958,  958,  958,
1625       958,  958,  958,  958,  958,  958,  957, 1518, 1518,  956,
1626       956, 1518, 1518, 1518, 1518, 1518,  956,  956,  956,  955,
1627      1518,  959,  959,  959,  959,  959,  960,  961,  961,  961,
1628       957, 1518, 1518,  956,  956, 1518, 1518, 1518, 1518, 1518,
1629       956,  956,  956,  961,  961,  961,  961,  961,  961,  963,
1630       964,  965,  966,  966,  966,  966,  966,  966,  967, 1518,
1631      1518,  968,  968, 1518, 1518, 1518, 1518, 1518,  968,  968,
1633       968,  164, 1518,  971,  971,  971,  971,  971,  971,  971,
1634       971,  971,  970, 1518, 1518,  969,  969, 1518, 1518, 1518,
1635      1518,  126,  969,  969,  969,  164, 1518,  972,  972,  972,
1636       972,  972,  973,  974,  974,  974,  970, 1518, 1518,  969,
1637       969, 1518, 1518, 1518, 1518,  126,  969,  969,  969,  974,
1638       974,  974,  974,  974,  974,  970,  281, 1518, 1518, 1518,
1639      1518, 1518, 1518, 1518,  126, 1518, 1518,  977, 1518,  977,
1640      1518, 1518, 1518, 1518, 1518, 1518,  126,  281,  126,  978,
1641       978,  978,  978,  978,  978,  978,  978,  978,  977, 1518,
1642      1518,  976,  976, 1518, 1518, 1518, 1518,  126,  976,  976,
1644       976,  281, 1518,  979,  979,  979,  979,  979,  980,  981,
1645       981,  981,  977, 1518, 1518,  976,  976, 1518, 1518, 1518,
1646       164,  126,  976,  976,  976,  981,  981,  981,  981,  981,
1647       981,  731,  446, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1648       126, 1518, 1518,  984, 1518,  984, 1518, 1518, 1518, 1518,
1649      1518, 1518,  126,  446,  126,  985,  985,  985,  985,  985,
1650       985,  985,  985,  985,  984, 1518, 1518,  983,  983, 1518,
1651      1518, 1518, 1518,  126,  983,  983,  983,  446, 1518,  986,
1652       986,  986,  986,  986,  987,  988,  988,  988,  984, 1518,
1653      1518,  983,  983, 1518, 1518, 1518,  281,  126,  983,  983,
1655       983,  988,  988,  988,  988,  988,  988,  738,  654, 1518,
1656      1518, 1518, 1518, 1518, 1518, 1518,  126, 1518, 1518,  991,
1657      1518,  991, 1518, 1518, 1518, 1518, 1518, 1518,  126,  654,
1658       126,  992,  992,  992,  992,  992,  992,  992,  992,  992,
1659       991, 1518, 1518,  990,  990, 1518, 1518, 1518, 1518,  126,
1660       990,  990,  990,  654, 1518,  993,  993,  993,  993,  993,
1661       994,  995,  995,  995,  991, 1518, 1518,  990,  990, 1518,
1662      1518, 1518,  446,  126,  990,  990,  990,  995,  995,  995,
1663       995,  995,  995,  745,  901, 1518, 1518, 1518, 1518, 1518,
1664      1518, 1518,  126, 1518, 1518,  998, 1518,  998, 1518, 1518,
1666      1518, 1518, 1518, 1518,  126,  901,  126,  999,  999,  999,
1667       999,  999,  999,  999,  999,  999,  998, 1518, 1518,  997,
1668       997, 1518, 1518, 1518, 1518,  126,  997,  997,  997,  901,
1669      1518, 1000, 1000, 1000, 1000, 1000, 1001, 1002, 1002, 1002,
1670       998, 1518, 1518,  997,  997, 1518, 1518, 1518,  654,  126,
1671       997,  997,  997, 1002, 1002, 1002, 1002, 1002, 1002,  752,
1672      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,  126, 1005,
1673      1005, 1005, 1005, 1005, 1006, 1007, 1007, 1007, 1518, 1518,
1674      1518, 1518, 1518, 1518, 1518, 1518,  901,  126, 1024, 1025,
1675      1026, 1027, 1027, 1027, 1027, 1027, 1027,  903, 1518, 1518,
1677      1028, 1028, 1518, 1518, 1518, 1518,  126, 1028, 1028, 1028,
1678       901, 1518, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029,
1679      1029,  903, 1518, 1518, 1023, 1023, 1518, 1518, 1518, 1518,
1680       126, 1023, 1023, 1023,  909, 1518, 1037, 1037, 1037, 1037,
1681      1037, 1037, 1037, 1037, 1037,  911, 1518, 1518, 1034, 1034,
1682      1518, 1518, 1518, 1518, 1518, 1034, 1034, 1034, 1052, 1052,
1683      1052, 1052, 1052, 1053, 1054, 1054, 1054,  955, 1518, 1072,
1684      1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072,  957, 1518,
1685      1518, 1070, 1070, 1518, 1518, 1518, 1518, 1518, 1070, 1070,
1686      1070, 1074, 1518, 1077, 1077, 1077, 1077, 1077, 1077, 1077,
1688      1077, 1077, 1076, 1518, 1518, 1075, 1075, 1518, 1518, 1518,
1689      1518, 1518, 1075, 1075, 1075, 1074, 1518, 1078, 1078, 1078,
1690      1078, 1078, 1079, 1080, 1080, 1080, 1076, 1518, 1518, 1075,
1691      1075, 1518, 1518, 1518, 1518, 1518, 1075, 1075, 1075, 1080,
1692      1080, 1080, 1080, 1080, 1080,  164, 1518, 1084, 1084, 1084,
1693      1084, 1084, 1084, 1084, 1084, 1084,  970, 1518,  164, 1082,
1694      1082, 1518, 1518, 1518, 1518,  126, 1082, 1082, 1082,  970,
1695      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,  126,  281,
1696      1518, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
1697       977, 1518,  281, 1085, 1085, 1518, 1518, 1518, 1518,  126,
1699      1085, 1085, 1085,  977, 1518, 1518, 1518, 1518, 1518, 1518,
1700      1518, 1518,  126,  446, 1518, 1090, 1090, 1090, 1090, 1090,
1701      1090, 1090, 1090, 1090,  984, 1518,  446, 1088, 1088, 1518,
1702      1518, 1518, 1518,  126, 1088, 1088, 1088,  984, 1518, 1518,
1703      1518, 1518, 1518, 1518, 1518, 1518,  126,  654, 1518, 1093,
1704      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,  991, 1518,
1705       654, 1091, 1091, 1518, 1518, 1518, 1518,  126, 1091, 1091,
1706      1091,  991, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1707       126,  901, 1518, 1096, 1096, 1096, 1096, 1096, 1096, 1096,
1708      1096, 1096,  998, 1518,  901, 1094, 1094, 1518, 1518, 1518,
1710      1518,  126, 1094, 1094, 1094,  998, 1518, 1518, 1518, 1518,
1711      1518, 1518, 1518, 1518,  126, 1100, 1100, 1100, 1101, 1102,
1712      1102, 1102, 1102, 1102, 1518, 1518, 1518, 1518, 1518, 1518,
1713      1518, 1518, 1518,  126, 1104, 1104, 1104, 1104, 1104, 1105,
1714      1106, 1106, 1106, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1715      1518, 1518,  126, 1109, 1109, 1109, 1109, 1109, 1110, 1011,
1716      1011, 1011, 1107, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1717      1518,  126, 1111, 1518, 1113, 1113, 1113, 1113, 1113, 1114,
1718      1015, 1015, 1015, 1115, 1120, 1117, 1117, 1117, 1117, 1117,
1719      1118, 1019, 1019, 1019, 1518, 1122, 1518, 1518, 1518, 1518,
1721      1518, 1518, 1518, 1518,  126, 1120, 1518, 1123, 1123, 1123,
1722      1123, 1123, 1123, 1123, 1123, 1123, 1122, 1518, 1518, 1121,
1723      1121, 1518, 1518, 1518, 1518,  126, 1121, 1121, 1121, 1120,
1724      1518, 1124, 1124, 1124, 1124, 1124, 1125, 1126, 1126, 1126,
1725      1122, 1518, 1518, 1121, 1121, 1518, 1518, 1518, 1518,  126,
1726      1121, 1121, 1121, 1126, 1126, 1126, 1126, 1126, 1126, 1122,
1727       901, 1518,  164, 1518, 1518, 1518, 1518, 1518,  126, 1518,
1728      1518,  903, 1518,  970, 1518, 1518, 1518, 1518, 1518, 1518,
1729       126, 1127,  126, 1129, 1129, 1129, 1129, 1129, 1130, 1030,
1730      1030, 1030, 1142, 1142, 1142, 1143, 1144, 1144, 1144, 1144,
1732      1144, 1146, 1146, 1146, 1146, 1146, 1147, 1148, 1148, 1148,
1733      1151, 1151, 1151, 1151, 1151, 1152, 1058, 1058, 1058, 1149,
1734      1153, 1518, 1155, 1155, 1155, 1155, 1155, 1156, 1062, 1062,
1735      1062, 1157, 1518, 1159, 1159, 1159, 1159, 1159, 1160, 1066,
1736      1066, 1066, 1074, 1518, 1170, 1170, 1170, 1170, 1170, 1170,
1737      1170, 1170, 1170, 1076, 1518,  281, 1167, 1167,  446,  654,
1738       901, 1518, 1518, 1167, 1167, 1167,  977, 1518, 1518,  984,
1739       991,  998, 1518, 1518, 1518,  126, 1518, 1518,  126,  126,
1740       126, 1185, 1185, 1185, 1185, 1185, 1186, 1187, 1187, 1187,
1741      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,  126,
1743      1120, 1518, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205,
1744      1205, 1122, 1518, 1120, 1203, 1203, 1518, 1518, 1518, 1518,
1745       126, 1203, 1203, 1203, 1122, 1518, 1518, 1518, 1518, 1518,
1746      1518, 1518, 1518,  126, 1220, 1220, 1220, 1220, 1220, 1221,
1747      1222, 1222, 1222, 1235, 1518, 1237, 1237, 1237, 1237, 1237,
1748      1238, 1163, 1163, 1163, 1250, 1250, 1250, 1251, 1252, 1252,
1749      1252, 1252, 1252, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1750      1518, 1518,  126, 1254, 1254, 1254, 1254, 1254, 1255, 1256,
1751      1256, 1256, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1752      1518,  126, 1259, 1259, 1259, 1259, 1259, 1260, 1191, 1191,
1754      1191, 1257, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1755       126, 1261, 1518, 1263, 1263, 1263, 1263, 1263, 1264, 1195,
1756      1195, 1195, 1265, 1120, 1267, 1267, 1267, 1267, 1267, 1268,
1757      1199, 1199, 1199, 1518, 1122, 1518, 1518, 1518, 1518, 1518,
1758      1518, 1518, 1518,  126, 1271, 1518, 1273, 1273, 1273, 1273,
1759      1273, 1274, 1206, 1206, 1206, 1278, 1278, 1278, 1279, 1280,
1760      1280, 1280, 1280, 1280, 1282, 1282, 1282, 1282, 1282, 1283,
1761      1284, 1284, 1284, 1287, 1287, 1287, 1287, 1287, 1288, 1226,
1762      1226, 1226, 1285, 1289, 1518, 1291, 1291, 1291, 1291, 1291,
1763      1292, 1230, 1230, 1230, 1308, 1308, 1308, 1308, 1308, 1309,
1765      1310, 1310, 1310, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1766      1518, 1518,  126, 1330, 1330, 1330, 1330, 1330, 1331, 1332,
1767      1332, 1332, 1340, 1518, 1342, 1342, 1342, 1342, 1342, 1343,
1768      1294, 1294, 1294, 1347, 1347, 1347, 1348, 1349, 1349, 1349,
1769      1349, 1349, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1770      1518,  126, 1351, 1351, 1351, 1351, 1351, 1352, 1353, 1353,
1771      1353, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1772       126, 1356, 1356, 1356, 1356, 1356, 1357, 1314, 1314, 1314,
1773      1354, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,  126,
1774      1358, 1518, 1360, 1360, 1360, 1360, 1360, 1361, 1318, 1318,
1776      1318, 1365, 1365, 1365, 1365, 1365, 1366, 1323, 1323, 1323,
1777      1363, 1370, 1370, 1370, 1371, 1372, 1372, 1372, 1372, 1372,
1778      1374, 1374, 1374, 1374, 1374, 1375, 1376, 1376, 1376, 1379,
1779      1379, 1379, 1379, 1379, 1380, 1336, 1336, 1336, 1377, 1388,
1780      1388, 1388, 1388, 1388, 1389, 1390, 1390, 1390, 1518, 1518,
1781      1518, 1518, 1518, 1518, 1518, 1518, 1518,  126, 1404, 1404,
1782      1404, 1404, 1404, 1405, 1406, 1406, 1406, 1412, 1412, 1412,
1783      1412, 1412, 1413, 1381, 1381, 1381, 1410, 1518, 1518, 1518,
1784      1518, 1518, 1518, 1518, 1518,  126, 1417, 1417, 1417, 1418,
1785      1419, 1419, 1419, 1419, 1419, 1518, 1518, 1518, 1518, 1518,
1787      1518, 1518, 1518, 1518,  126, 1421, 1421, 1421, 1421, 1421,
1788      1422, 1423, 1423, 1423, 1518, 1518, 1518, 1518, 1518, 1518,
1789      1518, 1518, 1518,  126, 1426, 1426, 1426, 1426, 1426, 1427,
1790      1394, 1394, 1394, 1424, 1518, 1518, 1518, 1518, 1518, 1518,
1791      1518, 1518,  126, 1429, 1429, 1429, 1429, 1429, 1430, 1431,
1792      1431, 1431, 1435, 1435, 1435, 1436, 1437, 1437, 1437, 1437,
1793      1437, 1439, 1439, 1439, 1439, 1439, 1440, 1441, 1441, 1441,
1794      1448, 1448, 1448, 1448, 1448, 1449, 1450, 1450, 1450, 1518,
1795      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,  126, 1456,
1796      1456, 1456, 1456, 1456, 1457, 1458, 1458, 1458, 1462, 1462,
1798      1462, 1462, 1462, 1463, 1464, 1464, 1464, 1466, 1466, 1466,
1799      1466, 1466, 1467, 1468, 1468, 1468, 1518, 1518, 1518, 1518,
1800      1518, 1518, 1518, 1518, 1518,  126, 1472, 1472, 1472, 1473,
1801      1474, 1474, 1474, 1474, 1474, 1518, 1518, 1518, 1518, 1518,
1802      1518, 1518, 1518, 1518,  126, 1476, 1476, 1476, 1476, 1476,
1803      1477, 1478, 1478, 1478, 1518, 1518, 1518, 1518, 1518, 1518,
1804      1518, 1518, 1518,  126, 1482, 1482, 1482, 1483, 1484, 1484,
1805      1484, 1484, 1484, 1488, 1488, 1488, 1489, 1490, 1490, 1490,
1806      1490, 1490, 1493, 1493, 1493, 1493, 1493, 1494, 1495, 1495,
1807      1495, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
1809       126, 1499, 1499, 1499, 1499, 1499, 1500, 1501, 1501, 1501,
1810      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,  126,
1811      1507, 1507, 1507, 1508, 1509, 1509, 1509, 1509, 1509, 1518,
1812      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,  126, 1513,
1813      1513, 1513, 1514, 1515, 1515, 1515, 1515, 1515, 1518, 1518,
1814      1518, 1518, 1518, 1518, 1518, 1518, 1518,  126,   31,   31,
1815        31,   31,   31,   31,   31,   31,   31,   31,   31,   34,
1816        34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
1817        37, 1518,   37,   37,   37,   37,   37,   37,   37,   37,
1818        37,   39,   39,   39,   39,   40,   40,   40,   46,   46,
1820        46, 1518,   46,   46,   46,   53,   53,   53,   53,   53,
1821        53,   63,   63,   63,   63,   63,   63,   63,   63,   63,
1822        63,   63,   67,   67,   67,   67,   67,   67,   67,   67,
1823        67,   67,   67,   74,   74,   74,   78,   78,   78,   78,
1824        78,   78,   87,   87,   87,   87,   87,   87,   92,   92,
1825        92,   92,   92,   92,   92,   92,   92,   92,   92,   98,
1826        98,   98,   98, 1518, 1518,   98,  104,  104,  104,  104,
1827       104,  104,  112,  112,  112,  112,  112,  112,  112,  118,
1828       118,  118,  118,  118,  118,  119,  119,  119,  119,  119,
1829       119,  129,  129,  129,  133,  133,  133,  136,  136,  136,
1831       136,  136,  136,  137,  137,  137,  137,  137,  137,  139,
1832       139,  139,  139,  139,  139,  139,  148,  148,  148,  149,
1833       149,  149,  149,  149,  149,  156,  156,  156,  156,  156,
1834       156,  157,  157,  157,  157,  157,  157,  165,  165,  165,
1835       165,  165,  165,  165, 1518,  165,  173,  173,  173,  173,
1836       130,  130,  130,  130,  176,  176,  176,  176,  176,  176,
1837       177,  177,  177,  177,  177,  177,  184,  184,  184,  184,
1838       184,  184,  192,  192,  192,  192,  145,  145,  145,  145,
1839       195,  195,  195,  195,  195,  195,  197,  197,  197,  197,
1840       197,  197,  197,  203,  203,  203,  203,  203,  203,  204,
1842       204,  204,  204,  204,  204,  206,  206,  206,  206,  206,
1843       206,  206, 1518,  206,  215,  215,  215,  216,  216,  216,
1844       216,  216,  216, 1518,  216,  223,  223,  229,  229,  229,
1845       130,  130,  130,  230,  230,  230,  230,  230,  230,  231,
1846       231,  231,  231,  231,  231,  233,  233,  233,  233,  233,
1847       233,  233,  239,  239,  239,  239,  239,  239,  240,  240,
1848       240,  240,  240,  240,  240,  249,  249,  249,  145,  145,
1849       145,  253,  253,  253,  254,  254,  254,  254,  254,  254,
1850       261,  261,  261,  261,  261,  261,  262,  262,  262,  262,
1851       262,  262,  269,  269,  269,  269,  269,  269, 1518,  269,
1853       277,  277,  277,  277,  212,  212,  212,  212,  280,  280,
1854       280,  280,  280,  280, 1518,  280,  282,  282,  282,  282,
1855       282,  282,  282, 1518,  282,  288,  288,  288,  291,  291,
1856       291,  293,  293,  293,  293,  226,  226,  226,  226,  296,
1857       296,  296,  296,  296,  296,  297,  297,  297,  297,  297,
1858       297,  304,  304,  304,  304,  304,  304,  311,  311,  311,
1859       311,  311,  311,  319,  319,  319,  319,  246,  246,  246,
1860       246,  323,  323,  323,  323,  250,  250,  250,  250,  326,
1861       326,  326,  326,  326,  326,  328,  328,  328,  328,  328,
1862       328,  328,  334,  334,  334,  334,  334,  334,  335,  335,
1864       335,  335,  335,  335,  337,  337,  337,  337,  337,  337,
1865       337, 1518,  337,  343,  343,  343,  343,  343,  343, 1518,
1866       343,  344,  344,  344,  344,  344,  344,  344, 1518,  344,
1867       353,  353,  353,  212,  212,  212,  357,  357,  357,  358,
1868       358,  358,  358,  358,  358, 1518,  358,  365,  365,  365,
1869       366,  366,  366,  369,  369,  369,  370,  370,  226,  226,
1870      1518,  226,  373,  373,  373,  373,  373,  373,  374,  374,
1871       374,  374,  374,  374,  376,  376,  376,  376,  376,  376,
1872       376,  382,  382,  382,  382,  382,  382,  383,  383,  383,
1873       383,  383,  383,  383,  389,  389,  389,  389,  389,  389,
1875       390,  390,  390,  390,  390,  390,  390,  399,  399,  399,
1876       246,  246,  246,  246,  246,  246,  246,  403,  403,  403,
1877       250,  250,  250,  250,  250,  250,  250,  407,  407,  407,
1878       408,  408,  408,  408,  408,  408,  415,  415,  415,  415,
1879       415,  415,  416,  416,  416,  416,  416,  416,  423,  423,
1880       423,  423,  423,  423, 1518,  423,  430,  430,  430,  430,
1881       430,  430, 1518,  430,  438,  438,  438,  438,  350,  350,
1882       350,  350,  442,  442,  442,  442,  354,  354,  354,  354,
1883       445,  445,  445,  445,  445,  445, 1518,  445,  447,  447,
1884       447,  447,  447,  447,  447, 1518,  447,  453,  453,  453,
1886       454,  454,  454,  455,  455,  455,  459,  459,  459,  462,
1887       462,  462,  463,  463,  463,  463,  463,  463,  464,  464,
1888       464,  464,  464,  464,  471,  471,  471,  471,  471,  471,
1889       478,  478,  478,  478,  478,  478,  485,  485,  485,  485,
1890       485,  485,  493,  493,  493,  493,  396,  396,  396,  396,
1891       497,  497,  497,  497,  400,  400,  400,  400,  501,  501,
1892       501,  501,  404,  404,  404,  404,  504,  504,  504,  504,
1893       504,  504,  506,  506,  506,  506,  506,  506,  506,  512,
1894       512,  512,  512,  512,  512,  513,  513,  513,  513,  513,
1895       513,  515,  515,  515,  515,  515,  515,  515, 1518,  515,
1897       521,  521,  521,  521,  521,  521, 1518,  521,  522,  522,
1898       522,  522,  522,  522,  522, 1518,  522,  528,  528,  528,
1899       528,  528,  528, 1518,  528,  529,  529,  529,  529,  529,
1900       529,  529, 1518,  529,  538,  538,  538,  350,  350,  350,
1901       350,  350,  350,  350,  542,  542,  542,  354,  354,  354,
1902       354,  354,  354,  354,  546,  546,  546,  547,  547,  547,
1903       547,  547,  547, 1518,  547,  554,  554,  554,  555,  555,
1904       555,  556,  556,  556,  559,  559,  559,  560,  560,  560,
1905       560,  560,  560,  561,  561,  561,  561,  561,  561,  563,
1906       563,  563,  563,  563,  563,  563,  569,  569,  569,  569,
1908       569,  569,  570,  570,  570,  570,  570,  570,  570,  576,
1909       576,  576,  576,  576,  576,  577,  577,  577,  577,  577,
1910       577,  577,  583,  583,  583,  583,  583,  583,  584,  584,
1911       584,  584,  584,  584,  584,  590,  590,  396,  396,  396,
1912       396,  396,  396, 1518,  396,  596,  596,  596,  400,  400,
1913       400,  400,  400,  400,  400,  600,  600,  600,  404,  404,
1914       404,  404,  404,  404,  404,  604,  604,  604,  605,  605,
1915       605,  605,  605,  605,  612,  612,  612,  612,  612,  612,
1916       613,  613,  613,  613,  613,  613,  620,  620,  620,  620,
1917       620,  620, 1518,  620,  627,  627,  627,  627,  627,  627,
1919      1518,  627,  634,  634,  634,  634,  634,  634, 1518,  634,
1920       642,  642,  642,  642, 1518, 1518, 1518,  642,  535,  535,
1921       535,  535, 1518, 1518, 1518,  535,  646,  646,  646,  646,
1922       539,  539,  539,  539,  650,  650,  650,  650,  543,  543,
1923       543,  543,  653,  653,  653,  653,  653,  653, 1518,  653,
1924       655,  655,  655,  655,  655,  655,  655, 1518,  655,  661,
1925       661,  661,  662,  662,  662,  663,  663,  663,  667,  667,
1926       667,  667,  667,  667,  668,  668,  668,  668,  668,  668,
1927       675,  675,  675,  675,  675,  675,  682,  682,  682,  682,
1928       682,  682,  689,  689,  689,  689,  689,  689,  696,  696,
1930       696,  696,  696,  696,  703,  703,  703,  706,  706,  706,
1931       708,  708,  708,  708,  593,  593,  593,  593,  712,  712,
1932       712,  712,  597,  597,  597,  597,  716,  716,  716,  716,
1933       601,  601,  601,  601,  719,  719,  719,  719,  719,  719,
1934       721,  721,  721,  721,  721,  721,  721,  727,  727,  727,
1935       727,  727,  727,  728,  728,  728,  728,  728,  728,  730,
1936       730,  730,  730,  730,  730,  730, 1518,  730,  736,  736,
1937       736,  736,  736,  736, 1518,  736,  737,  737,  737,  737,
1938       737,  737,  737, 1518,  737,  743,  743,  743,  743,  743,
1939       743, 1518,  743,  744,  744,  744,  744,  744,  744,  744,
1941      1518,  744,  750,  750,  750,  750,  750,  750, 1518,  750,
1942       751,  751,  751,  751,  751,  751,  751, 1518,  751,  757,
1943       757,  535,  535,  535,  535, 1518, 1518, 1518,  535,  535,
1944       535, 1518,  535, 1518, 1518, 1518,  535,  763,  763,  763,
1945       539,  539,  539,  539,  539,  539,  539,  767,  767,  767,
1946       543,  543,  543,  543,  543,  543,  543,  771,  771,  771,
1947       772,  772,  772,  772,  772,  772, 1518,  772,  779,  779,
1948       779,  780,  780,  780,  780,  780,  780,  787,  787,  787,
1949       787,  787,  787,  787,  793,  793,  793,  793,  793,  793,
1950       794,  794,  794,  794,  794,  794,  794,  800,  800,  800,
1952       800,  800,  800,  801,  801,  801,  801,  801,  801,  801,
1953       807,  807,  807,  807,  807,  807,  808,  808,  808,  808,
1954       808,  808,  808,  814,  814,  814,  814,  814,  814,  815,
1955       815,  815,  815,  815,  815,  815,  821,  821,  821,  822,
1956       822,  822,  825,  825,  825,  826,  826,  593,  593,  593,
1957       593,  593,  593, 1518,  593,  832,  832,  832,  597,  597,
1958       597,  597,  597,  597,  597,  836,  836,  836,  601,  601,
1959       601,  601,  601,  601,  601,  840,  840,  840,  841,  841,
1960       841,  841,  841,  841,  848,  848,  848,  848,  848,  848,
1961       849,  849,  849,  849,  849,  849,  856,  856,  856,  856,
1963       856,  856, 1518,  856,  863,  863,  863,  863,  863,  863,
1964      1518,  863,  870,  870,  870,  870,  870,  870, 1518,  870,
1965       877,  877,  877,  877,  877,  877, 1518,  877,  884,  884,
1966       884, 1518, 1518, 1518, 1518,  884,  887,  887,  887, 1518,
1967      1518, 1518, 1518,  887,  889,  889,  889,  889, 1518, 1518,
1968      1518,  889,  760,  760,  760,  760, 1518, 1518, 1518,  760,
1969       893,  893,  893,  893,  764,  764,  764,  764,  897,  897,
1970       897,  897,  768,  768,  768,  768,  900,  900,  900,  900,
1971       900,  900, 1518,  900,  902,  902,  902,  902,  902,  902,
1972       902, 1518,  902,  908,  908,  908,  908,  908,  908,  910,
1974       910,  910,  910,  910,  910,  910,  916,  916,  916, 1518,
1975       916,  916,  917,  917,  917,  917,  917,  917,  918,  918,
1976       918, 1518,  918,  918,  920,  920,  920,  920,  920,  920,
1977       921,  921,  921, 1518,  921,  921,  923,  923,  923,  923,
1978       923,  923,  924,  924,  924, 1518,  924,  924,  926,  926,
1979       926,  926,  926,  926,  927,  927,  927, 1518,  927,  927,
1980       929,  929,  929,  929,  929,  929,  930,  930,  930, 1518,
1981       930,  930,  932,  932,  932,  933,  933,  933,  934,  934,
1982       934,  938,  938,  938,  941,  941,  941,  943,  943,  943,
1983       943,  829,  829,  829,  829,  947,  947,  947,  947,  833,
1985       833,  833,  833,  951,  951,  951,  951,  837,  837,  837,
1986       837,  954,  954,  954,  954,  954,  954,  956,  956,  956,
1987       956,  956,  956,  956,  962,  962,  962,  962,  962,  962,
1988       969,  969,  969,  969,  969,  969,  969, 1518,  969,  975,
1989       975,  975,  975,  975,  975, 1518,  975,  976,  976,  976,
1990       976,  976,  976,  976, 1518,  976,  982,  982,  982,  982,
1991       982,  982, 1518,  982,  983,  983,  983,  983,  983,  983,
1992       983, 1518,  983,  989,  989,  989,  989,  989,  989, 1518,
1993       989,  990,  990,  990,  990,  990,  990,  990, 1518,  990,
1994       996,  996,  996,  996,  996,  996, 1518,  996,  997,  997,
1996       997,  997,  997,  997,  997, 1518,  997, 1003, 1003, 1003,
1997      1518, 1518, 1518, 1518, 1003, 1004, 1004, 1004, 1518, 1518,
1998      1518, 1518, 1004, 1007, 1007, 1007, 1518, 1518, 1518, 1518,
1999      1007, 1008, 1008,  760,  760,  760,  760, 1518, 1518, 1518,
2000       760,  760,  760, 1518,  760, 1518, 1518, 1518,  760, 1014,
2001      1014, 1014,  764,  764,  764,  764,  764,  764,  764, 1018,
2002      1018, 1018,  768,  768,  768,  768,  768,  768,  768, 1022,
2003      1022, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1518, 1023,
2004      1033, 1033, 1033, 1034, 1034, 1034, 1034, 1034, 1034, 1035,
2005      1035, 1035, 1035, 1035, 1035, 1038, 1038, 1038, 1518, 1038,
2007      1038, 1039, 1039, 1039, 1039, 1039, 1039, 1040, 1040, 1040,
2008      1518, 1040, 1040, 1041, 1041, 1041, 1041, 1041, 1041, 1042,
2009      1042, 1042, 1518, 1042, 1042, 1043, 1043, 1043, 1043, 1043,
2010      1043, 1044, 1044, 1044, 1518, 1044, 1044, 1045, 1045, 1045,
2011      1045, 1045, 1045, 1046, 1046, 1046, 1518, 1046, 1046, 1047,
2012      1047, 1047, 1047, 1047, 1047, 1048, 1048, 1048, 1518, 1048,
2013      1048, 1049, 1049, 1049, 1050, 1050, 1050, 1051, 1051, 1051,
2014      1054, 1054, 1054, 1055, 1055,  829,  829,  829,  829,  829,
2015       829, 1518,  829, 1061, 1061, 1061,  833,  833,  833,  833,
2016       833,  833,  833, 1065, 1065, 1065,  837,  837,  837,  837,
2018       837,  837,  837, 1069, 1069, 1069, 1070, 1070, 1070, 1070,
2019      1070, 1070, 1071, 1071, 1071, 1518, 1071, 1071, 1073, 1073,
2020      1073, 1073, 1073, 1073, 1075, 1075, 1075, 1075, 1075, 1075,
2021      1075, 1081, 1081, 1081, 1518, 1081, 1081, 1518, 1081, 1082,
2022      1082, 1082, 1082, 1082, 1082, 1518, 1082, 1083, 1083, 1083,
2023      1518, 1083, 1083, 1085, 1085, 1085, 1085, 1085, 1085, 1518,
2024      1085, 1086, 1086, 1086, 1518, 1086, 1086, 1088, 1088, 1088,
2025      1088, 1088, 1088, 1518, 1088, 1089, 1089, 1089, 1518, 1089,
2026      1089, 1091, 1091, 1091, 1091, 1091, 1091, 1518, 1091, 1092,
2027      1092, 1092, 1518, 1092, 1092, 1094, 1094, 1094, 1094, 1094,
2029      1094, 1518, 1094, 1095, 1095, 1095, 1518, 1095, 1095, 1097,
2030      1097, 1097, 1518, 1518, 1518, 1518, 1097, 1098, 1098, 1098,
2031      1518, 1518, 1518, 1518, 1098, 1099, 1099, 1099, 1518, 1518,
2032      1518, 1518, 1099, 1103, 1103, 1103, 1518, 1518, 1518, 1518,
2033      1103, 1106, 1106, 1106, 1518, 1518, 1518, 1518, 1106, 1108,
2034      1108, 1108, 1108, 1518, 1518, 1518, 1108, 1011, 1011, 1011,
2035      1011, 1518, 1518, 1518, 1011, 1112, 1112, 1112, 1112, 1015,
2036      1015, 1015, 1015, 1116, 1116, 1116, 1116, 1019, 1019, 1019,
2037      1019, 1119, 1119, 1119, 1119, 1119, 1119, 1518, 1119, 1121,
2038      1121, 1121, 1121, 1121, 1121, 1121, 1518, 1121, 1128, 1128,
2040      1128, 1128, 1030, 1030, 1030, 1030, 1131, 1131, 1131, 1131,
2041      1131, 1131, 1132, 1132, 1132, 1518, 1132, 1132, 1133, 1133,
2042      1133, 1518, 1133, 1133, 1134, 1134, 1134, 1518, 1134, 1134,
2043      1135, 1135, 1135, 1518, 1135, 1135, 1136, 1136, 1136, 1518,
2044      1136, 1136, 1137, 1137, 1137, 1518, 1137, 1137, 1138, 1138,
2045      1138, 1518, 1138, 1138, 1139, 1139, 1139, 1140, 1140, 1140,
2046      1141, 1141, 1141, 1145, 1145, 1145, 1148, 1148, 1148, 1150,
2047      1150, 1150, 1150, 1058, 1058, 1058, 1058, 1154, 1154, 1154,
2048      1154, 1062, 1062, 1062, 1062, 1158, 1158, 1158, 1158, 1066,
2049      1066, 1066, 1066, 1161, 1161, 1161, 1161, 1161, 1161, 1162,
2051      1162, 1162, 1518, 1162, 1162, 1166, 1166, 1166, 1167, 1167,
2052      1167, 1167, 1167, 1167, 1168, 1168, 1168, 1168, 1168, 1168,
2053      1171, 1171, 1171, 1518, 1171, 1171, 1518, 1171, 1172, 1172,
2054      1172, 1172, 1172, 1172, 1518, 1172, 1173, 1173, 1173, 1518,
2055      1173, 1173, 1518, 1173, 1174, 1174, 1174, 1174, 1174, 1174,
2056      1518, 1174, 1175, 1175, 1175, 1518, 1175, 1175, 1518, 1175,
2057      1176, 1176, 1176, 1176, 1176, 1176, 1518, 1176, 1177, 1177,
2058      1177, 1518, 1177, 1177, 1518, 1177, 1178, 1178, 1178, 1178,
2059      1178, 1178, 1518, 1178, 1179, 1179, 1179, 1518, 1179, 1179,
2060      1518, 1179, 1180, 1180, 1180, 1180, 1180, 1180, 1518, 1180,
2062      1181, 1181, 1181, 1518, 1181, 1181, 1518, 1181, 1182, 1182,
2063      1182, 1518, 1518, 1518, 1518, 1182, 1182, 1182, 1518, 1518,
2064      1518, 1518, 1518, 1182, 1183, 1183, 1183, 1518, 1518, 1518,
2065      1518, 1183, 1184, 1184, 1184, 1518, 1518, 1518, 1518, 1184,
2066      1187, 1187, 1187, 1518, 1518, 1518, 1518, 1187, 1188, 1188,
2067      1011, 1011, 1011, 1011, 1518, 1518, 1518, 1011, 1011, 1011,
2068      1518, 1011, 1518, 1518, 1518, 1011, 1194, 1194, 1194, 1015,
2069      1015, 1015, 1015, 1015, 1015, 1015, 1198, 1198, 1198, 1019,
2070      1019, 1019, 1019, 1019, 1019, 1019, 1202, 1202, 1202, 1203,
2071      1203, 1203, 1203, 1203, 1203, 1518, 1203, 1204, 1204, 1204,
2073      1518, 1204, 1204, 1209, 1209, 1209, 1030, 1030, 1030, 1030,
2074      1030, 1030, 1030, 1210, 1210, 1210, 1518, 1210, 1210, 1211,
2075      1211, 1211, 1518, 1211, 1211, 1212, 1212, 1212, 1518, 1212,
2076      1212, 1213, 1213, 1213, 1518, 1213, 1213, 1214, 1214, 1214,
2077      1518, 1214, 1214, 1215, 1215, 1215, 1518, 1215, 1215, 1216,
2078      1216, 1216, 1518, 1216, 1216, 1217, 1217, 1217, 1218, 1218,
2079      1218, 1219, 1219, 1219, 1222, 1222, 1222, 1223, 1223, 1058,
2080      1058, 1058, 1058, 1058, 1058, 1518, 1058, 1229, 1229, 1229,
2081      1062, 1062, 1062, 1062, 1062, 1062, 1062, 1233, 1233, 1233,
2082      1066, 1066, 1066, 1066, 1066, 1066, 1066, 1234, 1234, 1234,
2084      1518, 1234, 1234, 1236, 1236, 1236, 1236, 1163, 1163, 1163,
2085      1163, 1239, 1239, 1239, 1239, 1239, 1239, 1240, 1240, 1240,
2086      1518, 1240, 1240, 1518, 1240, 1241, 1241, 1241, 1518, 1241,
2087      1241, 1518, 1241, 1242, 1242, 1242, 1518, 1242, 1242, 1518,
2088      1242, 1243, 1243, 1243, 1518, 1243, 1243, 1518, 1243, 1244,
2089      1244, 1244, 1518, 1244, 1244, 1518, 1244, 1245, 1245, 1245,
2090      1518, 1245, 1245, 1518, 1245, 1246, 1246, 1246, 1518, 1246,
2091      1246, 1518, 1246, 1247, 1247, 1247, 1518, 1518, 1518, 1518,
2092      1247, 1248, 1248, 1248, 1518, 1518, 1518, 1518, 1248, 1249,
2093      1249, 1249, 1518, 1518, 1518, 1518, 1249, 1253, 1253, 1253,
2095      1518, 1518, 1518, 1518, 1253, 1256, 1256, 1256, 1518, 1518,
2096      1518, 1518, 1256, 1258, 1258, 1258, 1258, 1518, 1518, 1518,
2097      1258, 1191, 1191, 1191, 1191, 1518, 1518, 1518, 1191, 1262,
2098      1262, 1262, 1262, 1195, 1195, 1195, 1195, 1266, 1266, 1266,
2099      1266, 1199, 1199, 1199, 1199, 1269, 1269, 1269, 1269, 1269,
2100      1269, 1518, 1269, 1270, 1270, 1270, 1518, 1270, 1270, 1518,
2101      1270, 1272, 1272, 1272, 1272, 1206, 1206, 1206, 1206, 1036,
2102      1036, 1036, 1518, 1036, 1036, 1275, 1275, 1275, 1276, 1276,
2103      1276, 1277, 1277, 1277, 1281, 1281, 1281, 1284, 1284, 1284,
2104      1286, 1286, 1286, 1286, 1226, 1226, 1226, 1226, 1290, 1290,
2106      1290, 1290, 1230, 1230, 1230, 1230, 1293, 1293, 1293, 1518,
2107      1293, 1293, 1297, 1297, 1297, 1163, 1163, 1163, 1298, 1298,
2108      1298, 1518, 1298, 1298, 1518, 1298, 1299, 1299, 1299, 1518,
2109      1299, 1299, 1518, 1299, 1300, 1300, 1300, 1518, 1300, 1300,
2110      1518, 1300, 1301, 1301, 1301, 1518, 1301, 1301, 1518, 1301,
2111      1302, 1302, 1302, 1518, 1302, 1302, 1518, 1302, 1303, 1303,
2112      1303, 1518, 1303, 1303, 1518, 1303, 1304, 1304, 1304, 1518,
2113      1304, 1304, 1518, 1304, 1305, 1305, 1305, 1518, 1518, 1518,
2114      1518, 1305, 1305, 1305, 1518, 1518, 1518, 1518, 1518, 1305,
2115      1306, 1306, 1306, 1518, 1518, 1518, 1518, 1306, 1307, 1307,
2117      1307, 1518, 1518, 1518, 1518, 1307, 1310, 1310, 1310, 1518,
2118      1518, 1518, 1518, 1310, 1311, 1311, 1191, 1191, 1518, 1191,
2119      1518, 1518, 1518, 1191, 1317, 1317, 1317, 1195, 1195, 1195,
2120      1321, 1321, 1321, 1199, 1199, 1199, 1322, 1322, 1322, 1518,
2121      1322, 1322, 1518, 1322, 1326, 1326, 1326, 1206, 1206, 1206,
2122      1327, 1327, 1327, 1328, 1328, 1328, 1329, 1329, 1329, 1332,
2123      1332, 1332, 1333, 1333, 1226, 1226, 1518, 1226, 1339, 1339,
2124      1339, 1230, 1230, 1230, 1341, 1341, 1341, 1341, 1294, 1294,
2125      1294, 1294, 1169, 1169, 1169, 1518, 1169, 1169, 1518, 1169,
2126      1344, 1344, 1344, 1518, 1518, 1518, 1518, 1344, 1345, 1345,
2128      1345, 1518, 1518, 1518, 1518, 1345, 1346, 1346, 1346, 1518,
2129      1518, 1518, 1518, 1346, 1350, 1350, 1350, 1518, 1518, 1518,
2130      1518, 1350, 1353, 1353, 1353, 1518, 1518, 1518, 1518, 1353,
2131      1355, 1355, 1355, 1355, 1518, 1518, 1518, 1355, 1314, 1314,
2132      1314, 1314, 1518, 1518, 1518, 1314, 1359, 1359, 1359, 1359,
2133      1318, 1318, 1318, 1318, 1362, 1362, 1362, 1518, 1362, 1362,
2134      1518, 1362, 1364, 1364, 1364, 1364, 1323, 1323, 1323, 1323,
2135      1367, 1367, 1367, 1368, 1368, 1368, 1369, 1369, 1369, 1373,
2136      1373, 1373, 1376, 1376, 1376, 1378, 1378, 1378, 1378, 1336,
2137      1336, 1336, 1336, 1384, 1384, 1384, 1294, 1294, 1294, 1385,
2139      1385, 1385, 1518, 1518, 1518, 1518, 1385, 1385, 1385, 1518,
2140      1518, 1518, 1518, 1518, 1385, 1386, 1386, 1386, 1518, 1518,
2141      1518, 1518, 1386, 1387, 1387, 1387, 1518, 1518, 1518, 1518,
2142      1387, 1390, 1390, 1390, 1518, 1518, 1518, 1518, 1390, 1391,
2143      1391, 1314, 1314, 1518, 1314, 1518, 1518, 1518, 1314, 1397,
2144      1397, 1397, 1318, 1318, 1318, 1398, 1398, 1323, 1323, 1518,
2145      1323, 1401, 1401, 1401, 1402, 1402, 1402, 1403, 1403, 1403,
2146      1406, 1406, 1406, 1407, 1407, 1336, 1336, 1518, 1336, 1411,
2147      1411, 1411, 1411, 1518, 1518, 1518, 1411, 1381, 1381, 1381,
2148      1381, 1518, 1518, 1518, 1381, 1414, 1414, 1414, 1518, 1518,
2150      1518, 1518, 1414, 1415, 1415, 1415, 1518, 1518, 1518, 1518,
2151      1415, 1416, 1416, 1416, 1518, 1518, 1518, 1518, 1416, 1420,
2152      1420, 1420, 1518, 1518, 1518, 1518, 1420, 1423, 1423, 1423,
2153      1518, 1518, 1518, 1518, 1423, 1425, 1425, 1425, 1425, 1518,
2154      1518, 1518, 1425, 1394, 1394, 1394, 1394, 1518, 1518, 1518,
2155      1394, 1428, 1428, 1428, 1431, 1431, 1431, 1432, 1432, 1432,
2156      1433, 1433, 1433, 1434, 1434, 1434, 1438, 1438, 1438, 1441,
2157      1441, 1441, 1442, 1442, 1381, 1381, 1518, 1381, 1518, 1518,
2158      1518, 1381, 1445, 1445, 1445, 1518, 1518, 1518, 1518, 1445,
2159      1445, 1445, 1518, 1518, 1518, 1518, 1518, 1445, 1446, 1446,
2161      1446, 1518, 1518, 1518, 1518, 1446, 1447, 1447, 1447, 1518,
2162      1518, 1518, 1518, 1447, 1450, 1450, 1450, 1518, 1518, 1518,
2163      1518, 1450, 1451, 1451, 1394, 1394, 1518, 1394, 1518, 1518,
2164      1518, 1394, 1454, 1454, 1454, 1455, 1455, 1455, 1458, 1458,
2165      1458, 1459, 1459, 1459, 1460, 1460, 1460, 1461, 1461, 1461,
2166      1464, 1464, 1464, 1465, 1465, 1465, 1518, 1518, 1518, 1518,
2167      1465, 1468, 1468, 1468, 1518, 1518, 1518, 1518, 1468, 1469,
2168      1469, 1469, 1518, 1518, 1518, 1518, 1469, 1470, 1470, 1470,
2169      1518, 1518, 1518, 1518, 1470, 1471, 1471, 1471, 1518, 1518,
2170      1518, 1518, 1471, 1475, 1475, 1475, 1518, 1518, 1518, 1518,
2172      1475, 1478, 1478, 1478, 1518, 1518, 1518, 1518, 1478, 1479,
2173      1479, 1479, 1480, 1480, 1480, 1481, 1481, 1481, 1485, 1485,
2174      1485, 1486, 1486, 1486, 1487, 1487, 1487, 1491, 1491, 1491,
2175      1518, 1518, 1518, 1518, 1491, 1492, 1492, 1492, 1518, 1518,
2176      1518, 1518, 1492, 1495, 1495, 1495, 1518, 1518, 1518, 1518,
2177      1495, 1496, 1496, 1496, 1518, 1518, 1518, 1518, 1496, 1496,
2178      1496, 1518, 1518, 1518, 1518, 1518, 1496, 1497, 1497, 1497,
2179      1518, 1518, 1518, 1518, 1497, 1498, 1498, 1498, 1518, 1518,
2180      1518, 1518, 1498, 1501, 1501, 1501, 1518, 1518, 1518, 1518,
2181      1501, 1502, 1502, 1502, 1503, 1503, 1503, 1504, 1504, 1504,
2183      1518, 1518, 1518, 1518, 1504, 1505, 1505, 1505, 1518, 1518,
2184      1518, 1518, 1505, 1506, 1506, 1506, 1518, 1518, 1518, 1518,
2185      1506, 1510, 1510, 1510, 1518, 1518, 1518, 1518, 1510, 1511,
2186      1511, 1511, 1518, 1518, 1518, 1518, 1511, 1512, 1512, 1512,
2187      1518, 1518, 1518, 1518, 1512, 1516, 1516, 1516, 1518, 1518,
2188      1518, 1518, 1516, 1516, 1516, 1518, 1518, 1518, 1518, 1518,
2189      1516, 1517, 1517, 1517, 1518, 1518, 1518, 1518, 1517, 1517,
2190      1517, 1518, 1518, 1518, 1518, 1518, 1517,    5, 1518, 1518,
2191      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
2192      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
2194      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
2195      1518, 1518, 1518, 1518, 1518, 1518, 1518
2196     } ;
2198 static yyconst flex_int16_t yy_chk[10018] =
2199     {   0,
2200         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2201         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2202         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2203         1,    1,    1,    1,    1,    1,    1,    1,    1,   10,
2204        25,   25,   28,   40,   28,   36,   36,   41,   41,   41,
2205        40, 1498,   31,   34,   50,   50,   50, 1499,   63,   65,
2206        65,   10,   15, 1504,   15,   15,   15,   15,   15,   15,
2207        15,   15,   15,   15,   31,   34,   15,   15,   15,   15,
2208        63,   67,   92,   15,   15,   15,   15,   15,   15,   15,
2209        15,   15,   15,   15,   16,   16,   16,   16,   16,   16,
2211        16,   16,   16,   67,   92,   97,   97,   97, 1505,   16,
2212        17,   17,   17,   17,   17,   17,   17,   17,   17,   18,
2213        18,   18,   18,   18,   18,   22,   82,   22,   22,   22,
2214        22,   22,   22,   22,   22,   22,   42,   82,   42,   42,
2215        42,   42,   42,   42,   42,   42,   42,   42, 1506, 1507,
2216        42,   42,   42,   42, 1508,   95, 1509,   42,   42,   42,
2217        42,   42,   42,   42,   42,   42,   42,   42,   43,   43,
2218        43,   43,   43,   43,   43,   43,   45,   95,   45,   45,
2219        45,   45,   45,   45,   45,   45,   45,   47,   47,   47,
2220        47,   47,   47,   47,   47,   47,  100,  100,  100,   47,
2222        47,   47,   47,  111,  111,  111,   47,   47,   47,   47,
2223        47,   47,   47,   47,   47,   47,   47,   48, 1510,   48,
2224        48,   48,   48,   48,   48,   48,   48,   48,   52,   52,
2225        52,   52,   52,   52,   52,   52,   52,   69,   71,   69,
2226        52,   52,   72,   86,  106,  110, 1511,   52,   52,   52,
2227       116,  116,  116,   71,   86,  106,  110,   72, 1512,  128,
2228        71,   69, 1513, 1514,   72,   73,  117,   73,   73,   73,
2229        73,   73,   73,   73,   73,   73,  165,  117, 1515, 1516,
2230        73,  128,   94, 1517,   94,  165,  206,   73,   74,   74,
2231        74,   74,   74,   74,   75,  206,   75,   75,   75,   75,
2233        75,   75,   75,   75,   75,   75,   94, 1497,   75,   75,
2234        75,   75,  143,  143,  143,   75,   75,   75,   75,   75,
2235        75,   75,   75,   75,   75,   75,   76,   76,   76,   76,
2236        76,   76,   76,   76,   77, 1496,   77,   77,   77,   77,
2237        77,   77,   77,   77,   77,   79,   79,   79,   79,   79,
2238        79,   79,   79,   79,  164,  164,  164,   79,   79,  169,
2239       169,  169, 1493, 1492,   79,   79,   79,   83,  144,   83,
2240        83,   83,   83,   83,   83,   83,   83,   83,   83,  144,
2241      1491,   83,   83,  171,  171,  171, 1478, 1476,   83,   83,
2242        83,   84,  150,   84,   84,   84,   84,   84,   84,   84,
2244        84,   84,   84,  150, 1475,   84,   84,  172,  172,  172,
2245      1474, 1473,   84,   84,   84,   85,   85,   85,   85,   85,
2246        85,   89,   89,   89,   89,   89,   89,   89,   89,   89,
2247       191,  191,  191,   89,   89,  196,  196,  196, 1472,   89,
2248        89,   89,   89,  101, 1471,  101,  101,  101,  101,  101,
2249       101,  101,  101,  101,  101,  102,  102,  102,  102,  102,
2250       102,  102,  102,  107,  154,  107,  107,  107,  107,  107,
2251       107,  107,  107,  107,  107,  154, 1470,  107,  107,  201,
2252       201,  201, 1469, 1468,  107,  107,  107,  108,  155,  108,
2253       108,  108,  108,  108,  108,  108,  108,  108,  108,  155,
2255      1466,  108,  108,  210,  210,  210, 1465, 1453,  108,  108,
2256       108,  109,  109,  109,  109,  109,  109,  113,  113,  113,
2257       113,  113,  113,  113,  113,  113,  216, 1451, 1448,  113,
2258       113,  237,  237,  237, 1447,  216,  113,  113,  113,  114,
2259       179,  114,  114,  114,  114,  114,  114,  114,  114,  114,
2260       114,  179, 1446,  114,  114,  244,  244,  244, 1445, 1444,
2261       114,  114,  114,  120,  120,  120,  120,  120,  120,  120,
2262       120,  120, 1442, 1423,  121,  120,  120,  183,  185,  189,
2263       190,  120,  120,  120,  120,  121, 1421, 1420,  183,  185,
2264       189,  190, 1419, 1418,  121,  122,  202,  122,  122,  122,
2266       122,  122,  122,  122,  122,  122,  122,  202, 1417,  122,
2267       122,  276,  276,  276, 1416,  122,  122,  122,  122,  123,
2268       238,  123,  123,  123,  123,  123,  123,  123,  123,  123,
2269       123,  238, 1415,  123,  123,  281,  281,  281,  125,  123,
2270       123,  123,  123,  124,  124,  124,  124,  124,  124,  125,
2271      1414,  269,  286,  286,  286,  292,  292,  292,  125,  132,
2272       269,  132,  132,  132,  132,  132,  132,  132,  132,  132,
2273       138,  138,  138,  138,  138,  138,  138,  138,  138,  280,
2274      1393, 1391,  138,  138,  318,  318,  318, 1388,  280,  138,
2275       138,  138,  140,  140,  140,  140,  140,  140,  140,  140,
2277       140,  282, 1387, 1386,  140,  140,  322,  322,  322, 1385,
2278       282,  140,  140,  140,  141,  245,  141,  141,  141,  141,
2279       141,  141,  141,  141,  141,  141,  245, 1380,  141,  141,
2280       327,  327,  327, 1379, 1378,  141,  141,  141,  147,  255,
2281       147,  147,  147,  147,  147,  147,  147,  147,  147,  151,
2282       255,  151,  151,  151,  151,  151,  151,  151,  151,  151,
2283       151, 1366, 1365,  151,  151,  332,  332,  332, 1364, 1362,
2284       151,  151,  151,  152,  259,  152,  152,  152,  152,  152,
2285       152,  152,  152,  152,  152,  259, 1361,  152,  152,  341,
2286       341,  341,  159,  260,  152,  152,  152,  153,  153,  153,
2288       153,  153,  153,  159,  260,  348,  348,  348,  369,  369,
2289       369,  369,  159,  160,  299,  160,  160,  160,  160,  160,
2290       160,  160,  160,  160,  160,  299, 1360,  160,  160,  380,
2291       380,  380, 1359,  160,  160,  160,  160,  161,  303,  161,
2292       161,  161,  161,  161,  161,  161,  161,  161,  161,  303,
2293      1353,  161,  161,  387,  387,  387,  163,  161,  161,  161,
2294       161,  162,  162,  162,  162,  162,  162,  163,  394,  394,
2295       394,  437,  437,  437, 1351,  170,  163,  166,  166,  166,
2296       166,  166,  166,  166,  166,  166,  170, 1350, 1349,  166,
2297       166,  441,  441,  441, 1348,  170,  166,  166,  166,  167,
2299       305,  167,  167,  167,  167,  167,  167,  167,  167,  167,
2300       167,  305, 1347,  167,  167,  446,  446,  446, 1346,  167,
2301       167,  167,  167,  180,  309,  180,  180,  180,  180,  180,
2302       180,  180,  180,  180,  180,  309, 1345,  180,  180,  451,
2303       451,  451, 1344, 1343,  180,  180,  180,  181,  310,  181,
2304       181,  181,  181,  181,  181,  181,  181,  181,  181,  310,
2305      1342,  181,  181,  457,  457,  457, 1341,  312,  181,  181,
2306       181,  182,  182,  182,  182,  182,  182,  186,  312,  186,
2307       186,  186,  186,  186,  186,  186,  186,  186,  186, 1339,
2308      1337,  186,  186,  492,  492,  492, 1336, 1326,  186,  186,
2310       186,  187,  316,  187,  187,  187,  187,  187,  187,  187,
2311       187,  187,  187,  316, 1324,  187,  187,  496,  496,  496,
2312      1323, 1322,  187,  187,  187,  188,  188,  188,  188,  188,
2313       188,  198,  198,  198,  198,  198,  198,  198,  198,  198,
2314       337, 1321, 1319,  198,  198,  500,  500,  500, 1318,  337,
2315       198,  198,  198,  199,  317,  199,  199,  199,  199,  199,
2316       199,  199,  199,  199,  199,  317, 1313,  199,  199,  505,
2317       505,  505, 1311, 1308,  199,  199,  199,  205,  205,  205,
2318       205,  205,  205,  205,  205,  205,  510,  510,  510,  205,
2319       205,  519,  519,  519, 1307,  205,  205,  205,  205,  207,
2321       207,  207,  207,  207,  207,  207,  207,  207,  343, 1306,
2322      1305,  207,  207,  526,  526,  526, 1304,  343,  207,  207,
2323       207,  208,  333,  208,  208,  208,  208,  208,  208,  208,
2324       208,  208,  208,  333,  211,  208,  208,  344,  358,  381,
2325       388,  208,  208,  208,  208,  211,  344,  358, 1303, 1302,
2326       381,  388, 1301, 1300,  211,  214,  217,  214,  214,  214,
2327       214,  214,  214,  214,  214,  214,  423,  217,  533,  533,
2328       533,  559,  559,  559,  559,  423,  217,  218,  395,  218,
2329       218,  218,  218,  218,  218,  218,  218,  218,  218,  395,
2330      1299,  218,  218,  567,  567,  567, 1298,  218,  218,  218,
2332       218,  219,  409,  219,  219,  219,  219,  219,  219,  219,
2333       219,  219,  219,  409, 1297,  219,  219,  574,  574,  574,
2334       221,  219,  219,  219,  219,  220,  220,  220,  220,  220,
2335       220,  221,  222,  413,  414, 1295, 1294,  430,  445,  447,
2336       221,  515,  521,  222,  413,  414,  430,  445,  447, 1292,
2337       515,  521,  222,  224,  224,  224,  224,  224,  224,  224,
2338       224,  224,  228,  228,  228,  228,  228,  228,  228,  228,
2339       228,  228,  232,  232,  232,  232,  232,  232,  232,  232,
2340       232,  522, 1291, 1290,  232,  232,  581,  581,  581, 1288,
2341       522,  232,  232,  232,  234,  234,  234,  234,  234,  234,
2343       234,  234,  234,  528, 1287, 1286,  234,  234,  588,  588,
2344       588, 1274,  528,  234,  234,  234,  235,  466,  235,  235,
2345       235,  235,  235,  235,  235,  235,  235,  235,  466, 1273,
2346       235,  235,  641,  641,  641, 1272, 1270,  235,  235,  235,
2347       241,  241,  241,  241,  241,  241,  241,  241,  241,  529,
2348      1268, 1267,  241,  241,  645,  645,  645, 1266,  529,  241,
2349       241,  241,  242,  470,  242,  242,  242,  242,  242,  242,
2350       242,  242,  242,  242,  470, 1264,  242,  242,  649,  649,
2351       649, 1263, 1262,  242,  242,  242,  248,  472,  248,  248,
2352       248,  248,  248,  248,  248,  248,  248,  252,  472,  252,
2354       252,  252,  252,  252,  252,  252,  252,  252,  256,  476,
2355       256,  256,  256,  256,  256,  256,  256,  256,  256,  256,
2356       476, 1256,  256,  256,  654,  654,  654, 1254, 1253,  256,
2357       256,  256,  257,  477,  257,  257,  257,  257,  257,  257,
2358       257,  257,  257,  257,  477, 1252,  257,  257,  659,  659,
2359       659,  264,  479,  257,  257,  257,  258,  258,  258,  258,
2360       258,  258,  264,  479,  665,  665,  665,  707,  707,  707,
2361      1251,  264,  265,  483,  265,  265,  265,  265,  265,  265,
2362       265,  265,  265,  265,  483, 1250,  265,  265,  711,  711,
2363       711, 1249,  265,  265,  265,  265,  266,  484,  266,  266,
2365       266,  266,  266,  266,  266,  266,  266,  266,  484, 1248,
2366       266,  266,  715,  715,  715,  268,  266,  266,  266,  266,
2367       267,  267,  267,  267,  267,  267,  268,  270,  486,  274,
2368       490,  491,  511,  568, 1247,  268,  535,  536,  270,  486,
2369       274,  490,  491,  511,  568,  535,  536,  270,  271,  274,
2370       271,  271,  271,  271,  271,  271,  271,  271,  271,  271,
2371      1246, 1245,  271,  271,  538,  720,  720,  720,  271,  271,
2372       271,  271,  272,  538,  272,  272,  272,  272,  272,  272,
2373       272,  272,  272,  272, 1244, 1243,  272,  272,  725,  725,
2374       725,  275,  272,  272,  272,  272,  273,  273,  273,  273,
2376       273,  273,  275,  734,  734,  734,  741,  741,  741, 1242,
2377       287,  275,  283,  283,  283,  283,  283,  283,  283,  283,
2378       283,  287, 1241, 1240,  283,  283,  547,  748,  748,  748,
2379       287,  283,  283,  283,  284,  547,  284,  284,  284,  284,
2380       284,  284,  284,  284,  284,  284, 1239, 1238,  284,  284,
2381       755,  755,  755, 1237,  284,  284,  284,  284,  290,  290,
2382       290,  290,  290,  290,  290,  290,  290,  300,  575,  300,
2383       300,  300,  300,  300,  300,  300,  300,  300,  300,  575,
2384      1236,  300,  300,  791,  791,  791, 1233, 1231,  300,  300,
2385       300,  301,  582,  301,  301,  301,  301,  301,  301,  301,
2387       301,  301,  301,  582, 1230,  301,  301,  798,  798,  798,
2388      1229,  589,  301,  301,  301,  302,  302,  302,  302,  302,
2389       302,  306,  589,  306,  306,  306,  306,  306,  306,  306,
2390       306,  306,  306, 1227, 1226,  306,  306,  805,  805,  805,
2391      1209, 1207,  306,  306,  306,  307,  606,  307,  307,  307,
2392       307,  307,  307,  307,  307,  307,  307,  606, 1206,  307,
2393       307,  812,  812,  812, 1204,  610,  307,  307,  307,  308,
2394       308,  308,  308,  308,  308,  313,  610,  313,  313,  313,
2395       313,  313,  313,  313,  313,  313,  313, 1202, 1200,  313,
2396       313,  819,  819,  819, 1199, 1198,  313,  313,  313,  314,
2398       611,  314,  314,  314,  314,  314,  314,  314,  314,  314,
2399       314,  611, 1196,  314,  314,  825,  825,  825,  825, 1195,
2400       314,  314,  314,  315,  315,  315,  315,  315,  315,  329,
2401       329,  329,  329,  329,  329,  329,  329,  329,  620, 1190,
2402      1188,  329,  329,  627,  888,  888,  888,  620,  329,  329,
2403       329,  330,  627,  330,  330,  330,  330,  330,  330,  330,
2404       330,  330,  330, 1185, 1184,  330,  330,  892,  892,  892,
2405      1183, 1182,  330,  330,  330,  336,  336,  336,  336,  336,
2406       336,  336,  336,  336,  896,  896,  896,  336,  336,  901,
2407       901,  901, 1181,  336,  336,  336,  336,  338,  338,  338,
2409       338,  338,  338,  338,  338,  338,  634, 1179, 1177,  338,
2410       338,  642,  906,  906,  906,  634,  338,  338,  338,  339,
2411       642,  339,  339,  339,  339,  339,  339,  339,  339,  339,
2412       339, 1175,  342,  339,  339,  643,  644,  653,  655,  339,
2413       339,  339,  339,  342,  643,  644,  653,  655,  909,  909,
2414       909,  349,  342,  345,  345,  345,  345,  345,  345,  345,
2415       345,  345,  349, 1173, 1171,  345,  345,  914,  914,  914,
2416      1169,  349,  345,  345,  345,  346,  670,  346,  346,  346,
2417       346,  346,  346,  346,  346,  346,  346,  670, 1168,  346,
2418       346,  730,  936,  936,  936,  346,  346,  346,  346,  352,
2420       730,  352,  352,  352,  352,  352,  352,  352,  352,  352,
2421       356,  359,  356,  356,  356,  356,  356,  356,  356,  356,
2422       356,  736,  359,  942,  942,  942,  946,  946,  946, 1167,
2423       736,  359,  360,  674,  360,  360,  360,  360,  360,  360,
2424       360,  360,  360,  360,  674, 1166,  360,  360,  950,  950,
2425       950, 1164,  360,  360,  360,  360,  361,  676,  361,  361,
2426       361,  361,  361,  361,  361,  361,  361,  361,  676, 1163,
2427       361,  361,  955,  955,  955,  363,  361,  361,  361,  361,
2428       362,  362,  362,  362,  362,  362,  363,  364,  680,  681,
2429       683,  687,  688,  690,  694,  363, 1161,  737,  364,  680,
2431       681,  683,  687,  688,  690,  694,  737,  364,  368,  368,
2432       368,  368,  368,  368,  368,  368,  368,  371,  371,  371,
2433       371,  371,  371,  371,  371,  371,  375,  375,  375,  375,
2434       375,  375,  375,  375,  375,  743, 1160, 1159,  375,  375,
2435       960,  960,  960, 1158,  743,  375,  375,  375,  377,  377,
2436       377,  377,  377,  377,  377,  377,  377,  744, 1156, 1155,
2437       377,  377,  973,  973,  973, 1154,  744,  377,  377,  377,
2438       378,  695,  378,  378,  378,  378,  378,  378,  378,  378,
2439       378,  378,  695, 1152,  378,  378,  980,  980,  980, 1151,
2440      1150,  378,  378,  378,  384,  384,  384,  384,  384,  384,
2442       384,  384,  384,  750, 1131, 1130,  384,  384,  987,  987,
2443       987, 1129,  750,  384,  384,  384,  385,  697,  385,  385,
2444       385,  385,  385,  385,  385,  385,  385,  385,  697, 1128,
2445       385,  385,  994,  994,  994, 1118, 1117,  385,  385,  385,
2446       391,  391,  391,  391,  391,  391,  391,  391,  391,  751,
2447      1116, 1114,  391,  391, 1001, 1001, 1001, 1113,  751,  391,
2448       391,  391,  392,  701,  392,  392,  392,  392,  392,  392,
2449       392,  392,  392,  392,  701, 1112,  392,  392, 1007, 1007,
2450      1007, 1007, 1106,  392,  392,  392,  398,  398,  398,  398,
2451       398,  398,  398,  398,  398,  398,  402,  702,  402,  402,
2453       402,  402,  402,  402,  402,  402,  402,  406,  702,  406,
2454       406,  406,  406,  406,  406,  406,  406,  406,  410,  726,
2455       410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
2456       726, 1104,  410,  410,  760, 1054, 1054, 1054, 1054,  410,
2457       410,  410,  411,  760,  411,  411,  411,  411,  411,  411,
2458       411,  411,  411,  411, 1103, 1102,  411,  411, 1074, 1074,
2459      1074,  418,  781,  411,  411,  411,  412,  412,  412,  412,
2460       412,  412,  418,  781,  761, 1079, 1079, 1079, 1107, 1107,
2461      1107,  418,  419,  761,  419,  419,  419,  419,  419,  419,
2462       419,  419,  419,  419, 1101, 1100,  419,  419,  763, 1111,
2464      1111, 1111,  419,  419,  419,  419,  420,  763,  420,  420,
2465       420,  420,  420,  420,  420,  420,  420,  420, 1099, 1098,
2466       420,  420, 1115, 1115, 1115,  422,  420,  420,  420,  420,
2467       421,  421,  421,  421,  421,  421,  422,  424,  772,  428,
2468       786,  792,  799,  806,  813,  422, 1097,  772,  424, 1095,
2469       428,  786,  792,  799,  806,  813, 1092,  424,  425,  428,
2470       425,  425,  425,  425,  425,  425,  425,  425,  425,  425,
2471      1089, 1086,  425,  425, 1120, 1120, 1120, 1083,  425,  425,
2472       425,  425,  426,  820,  426,  426,  426,  426,  426,  426,
2473       426,  426,  426,  426,  820, 1081,  426,  426, 1125, 1125,
2475      1125,  429,  426,  426,  426,  426,  427,  427,  427,  427,
2476       427,  427,  429,  431,  842,  435,  846,  847, 1076,  915,
2477       856,  429,  863,  870,  431,  842,  435,  846,  847,  856,
2478       915,  863,  870,  431,  432,  435,  432,  432,  432,  432,
2479       432,  432,  432,  432,  432,  432, 1075, 1073,  432,  432,
2480       877, 1127, 1127, 1127,  432,  432,  432,  432,  433,  877,
2481       433,  433,  433,  433,  433,  433,  433,  433,  433,  433,
2482      1070, 1069,  433,  433, 1143, 1143, 1143,  436,  433,  433,
2483       433,  433,  434,  434,  434,  434,  434,  434,  436, 1149,
2484      1149, 1149, 1153, 1153, 1153, 1067,  452,  436,  448,  448,
2486       448,  448,  448,  448,  448,  448,  448,  452, 1066, 1065,
2487       448,  448,  889, 1157, 1157, 1157,  452,  448,  448,  448,
2488       449,  889,  449,  449,  449,  449,  449,  449,  449,  449,
2489       449,  449, 1063, 1062,  449,  449, 1187, 1187, 1187, 1187,
2490       449,  449,  449,  449,  461,  461,  461,  461,  461,  461,
2491       461,  461,  461,  467,  919,  467,  467,  467,  467,  467,
2492       467,  467,  467,  467,  467,  919, 1061,  467,  467,  890,
2493      1222, 1222, 1222, 1222,  467,  467,  467,  468,  890,  468,
2494       468,  468,  468,  468,  468,  468,  468,  468,  468, 1059,
2495      1058,  468,  468, 1235, 1235, 1235, 1047,  922,  468,  468,
2497       468,  469,  469,  469,  469,  469,  469,  473,  922,  473,
2498       473,  473,  473,  473,  473,  473,  473,  473,  473, 1045,
2499      1043,  473,  473,  891, 1257, 1257, 1257, 1041,  473,  473,
2500       473,  474,  891,  474,  474,  474,  474,  474,  474,  474,
2501       474,  474,  474, 1039, 1034,  474,  474, 1261, 1261, 1261,
2502      1033,  925,  474,  474,  474,  475,  475,  475,  475,  475,
2503       475,  480,  925,  480,  480,  480,  480,  480,  480,  480,
2504       480,  480,  480, 1031, 1030,  480,  480,  900, 1265, 1265,
2505      1265, 1022,  480,  480,  480,  481,  900,  481,  481,  481,
2506       481,  481,  481,  481,  481,  481,  481, 1020, 1019,  481,
2508       481, 1271, 1271, 1271, 1018,  928,  481,  481,  481,  482,
2509       482,  482,  482,  482,  482,  487,  928,  487,  487,  487,
2510       487,  487,  487,  487,  487,  487,  487, 1016, 1015,  487,
2511       487,  902, 1279, 1279, 1279, 1010,  487,  487,  487,  488,
2512       902,  488,  488,  488,  488,  488,  488,  488,  488,  488,
2513       488, 1008, 1005,  488,  488, 1285, 1285, 1285, 1004, 1003,
2514       488,  488,  488,  489,  489,  489,  489,  489,  489,  507,
2515       507,  507,  507,  507,  507,  507,  507,  507,  969,  967,
2516       962,  507,  507, 1289, 1289, 1289,  956,  969,  507,  507,
2517       507,  508,  931,  508,  508,  508,  508,  508,  508,  508,
2519       508,  508,  508,  931,  954,  508,  508, 1310, 1310, 1310,
2520      1310,  953,  508,  508,  508,  514,  514,  514,  514,  514,
2521       514,  514,  514,  514, 1340, 1340, 1340,  514,  514, 1332,
2522      1332, 1332, 1332,  514,  514,  514,  514,  516,  516,  516,
2523       516,  516,  516,  516,  516,  516,  975,  952,  951,  516,
2524       516, 1354, 1354, 1354,  949,  975,  516,  516,  516,  517,
2525       961,  517,  517,  517,  517,  517,  517,  517,  517,  517,
2526       517,  961,  520,  517,  517,  963,  968, 1037, 1072,  517,
2527       517,  517,  517,  520,  948,  947,  963,  968, 1037, 1072,
2528       945,  527,  520,  523,  523,  523,  523,  523,  523,  523,
2530       523,  523,  527,  944,  943,  523,  523,  976, 1358, 1358,
2531      1358,  527,  523,  523,  523,  524,  976,  524,  524,  524,
2532       524,  524,  524,  524,  524,  524,  524,  929,  926,  524,
2533       524, 1363, 1363, 1363,  923,  524,  524,  524,  524,  530,
2534       530,  530,  530,  530,  530,  530,  530,  530,  982,  920,
2535       917,  530,  530,  983, 1371, 1371, 1371,  982,  530,  530,
2536       530,  531,  983,  531,  531,  531,  531,  531,  531,  531,
2537       531,  531,  531,  911,  534,  531,  531,  989,  990,  996,
2538       997,  531,  531,  531,  531,  534,  989,  990,  996,  997,
2539      1377, 1377, 1377,  910,  534,  537,  537,  537,  537,  537,
2541       537,  537,  537,  537,  537,  908, 1011, 1390, 1390, 1390,
2542      1390,  899,  898,  537,  541, 1011,  541,  541,  541,  541,
2543       541,  541,  541,  541,  541,  545,  548,  545,  545,  545,
2544       545,  545,  545,  545,  545,  545, 1012,  548,  897, 1014,
2545      1406, 1406, 1406, 1406,  895, 1012,  548,  549, 1014,  549,
2546       549,  549,  549,  549,  549,  549,  549,  549,  549,  894,
2547       893,  549,  549, 1023, 1410, 1410, 1410,  549,  549,  549,
2548       549,  550, 1023,  550,  550,  550,  550,  550,  550,  550,
2549       550,  550,  550,  887,  885,  550,  550, 1424, 1424, 1424,
2550       552,  550,  550,  550,  550,  551,  551,  551,  551,  551,
2552       551,  552,  553, 1080,  884,  849, 1082, 1085, 1088, 1091,
2553       552, 1094, 1108,  553, 1080, 1082, 1085, 1088, 1091,  848,
2554      1094, 1108,  553,  558,  558,  558,  558,  558,  558,  558,
2555       558,  558,  562,  562,  562,  562,  562,  562,  562,  562,
2556       562, 1109,  841,  840,  562,  562, 1436, 1436, 1436,  838,
2557      1109,  562,  562,  562,  564,  564,  564,  564,  564,  564,
2558       564,  564,  564, 1110,  837,  836,  564,  564, 1119, 1483,
2559      1483, 1483, 1110,  564,  564,  564,  565, 1119,  565,  565,
2560       565,  565,  565,  565,  565,  565,  565,  565,  834,  833,
2561       565,  565, 1450, 1450, 1450, 1450,  832,  565,  565,  565,
2563       571,  571,  571,  571,  571,  571,  571,  571,  571, 1121,
2564       830,  829,  571,  571, 1458, 1458, 1458, 1458, 1121,  571,
2565       571,  571,  572, 1170,  572,  572,  572,  572,  572,  572,
2566       572,  572,  572,  572, 1170,  815,  572,  572, 1464, 1464,
2567      1464, 1464,  814,  572,  572,  572,  578,  578,  578,  578,
2568       578,  578,  578,  578,  578, 1172,  808,  807,  578,  578,
2569      1174, 1489, 1489, 1489, 1172,  578,  578,  578,  579, 1174,
2570       579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
2571       801,  800,  579,  579, 1495, 1495, 1495, 1495,  794,  579,
2572       579,  579,  585,  585,  585,  585,  585,  585,  585,  585,
2574       585, 1176,  793,  787,  585,  585, 1178,  780,  771,  769,
2575      1176,  585,  585,  585,  586, 1178,  586,  586,  586,  586,
2576       586,  586,  586,  586,  586,  586,  768,  767,  586,  586,
2577      1501, 1501, 1501, 1501,  765,  586,  586,  586,  591,  591,
2578       591,  591,  591,  591,  591,  591,  591,  595,  595,  595,
2579       595,  595,  595,  595,  595,  595,  595,  599,  764,  599,
2580       599,  599,  599,  599,  599,  599,  599,  599,  603,  759,
2581       603,  603,  603,  603,  603,  603,  603,  603,  603,  607,
2582       757,  607,  607,  607,  607,  607,  607,  607,  607,  607,
2583       607,  728,  727,  607,  607, 1180,  721,  719,  718,  717,
2585       607,  607,  607,  608, 1180,  608,  608,  608,  608,  608,
2586       608,  608,  608,  608,  608,  716,  714,  608,  608,  713,
2587       712,  710,  615,  709,  608,  608,  608,  609,  609,  609,
2588       609,  609,  609,  615,  708, 1191,  696,  689,  682,  675,
2589       668,  667,  615,  616, 1191,  616,  616,  616,  616,  616,
2590       616,  616,  616,  616,  616,  652,  651,  616,  616, 1192,
2591       650,  648,  647,  616,  616,  616,  616,  617, 1192,  617,
2592       617,  617,  617,  617,  617,  617,  617,  617,  617,  646,
2593       614,  617,  617,  613,  612,  605,  619,  617,  617,  617,
2594       617,  618,  618,  618,  618,  618,  618,  619,  621, 1194,
2596       625, 1203,  604, 1258, 1259, 1260,  619, 1269, 1194,  621,
2597      1203,  625, 1258, 1259, 1260,  602, 1269,  601,  621,  622,
2598       625,  622,  622,  622,  622,  622,  622,  622,  622,  622,
2599       622,  600,  598,  622,  622, 1314,  597,  596,  594,  622,
2600       622,  622,  622,  623, 1314,  623,  623,  623,  623,  623,
2601       623,  623,  623,  623,  623,  593,  584,  623,  623,  583,
2602       577,  576,  626,  623,  623,  623,  623,  624,  624,  624,
2603       624,  624,  624,  626,  628, 1315,  632, 1317,  570, 1355,
2604      1356, 1357,  626, 1381, 1315,  628, 1317,  632, 1355, 1356,
2605      1357,  569, 1381,  563,  628,  629,  632,  629,  629,  629,
2607       629,  629,  629,  629,  629,  629,  629,  561,  560,  629,
2608       629, 1382,  546,  544,  543,  629,  629,  629,  629,  630,
2609      1382,  630,  630,  630,  630,  630,  630,  630,  630,  630,
2610       630,  542,  540,  630,  630,  539,  513,  512,  633,  630,
2611       630,  630,  630,  631,  631,  631,  631,  631,  631,  633,
2612       635, 1384,  639, 1394,  506, 1395, 1397, 1411,  633, 1412,
2613      1384,  635, 1394,  639, 1395, 1397, 1411,  504, 1412,  503,
2614       635,  636,  639,  636,  636,  636,  636,  636,  636,  636,
2615       636,  636,  636,  502,  501,  636,  636, 1413,  499,  498,
2616       497,  636,  636,  636,  636,  637, 1413,  637,  637,  637,
2618       637,  637,  637,  637,  637,  637,  637,  495,  494,  637,
2619       637,  493,  485,  478,  640,  637,  637,  637,  637,  638,
2620       638,  638,  638,  638,  638,  640,  471,  465,  464,  463,
2621       444,  443,  442,  660,  640,  656,  656,  656,  656,  656,
2622       656,  656,  656,  656,  660,  440,  439,  656,  656, 1425,
2623       438,  417,  416,  660,  656,  656,  656,  657, 1425,  657,
2624       657,  657,  657,  657,  657,  657,  657,  657,  657,  415,
2625       408,  657,  657,  407,  405,  404,  403,  657,  657,  657,
2626       657,  669,  669,  669,  669,  669,  669,  669,  669,  669,
2627       669,  401,  400,  669,  669, 1426,  399,  397,  396,  390,
2629       669,  669,  669,  671, 1426,  671,  671,  671,  671,  671,
2630       671,  671,  671,  671,  671,  389,  383,  671,  671, 1427,
2631       382,  376,  374,  373,  671,  671,  671,  672, 1427,  672,
2632       672,  672,  672,  672,  672,  672,  672,  672,  672,  357,
2633       355,  672,  672,  354,  353,  351,  350,  335,  672,  672,
2634       672,  673,  673,  673,  673,  673,  673,  677,  334,  677,
2635       677,  677,  677,  677,  677,  677,  677,  677,  677,  328,
2636       326,  677,  677,  325,  324,  323,  321,  320,  677,  677,
2637       677,  678,  319,  678,  678,  678,  678,  678,  678,  678,
2638       678,  678,  678,  311,  304,  678,  678,  298,  297,  296,
2640       295,  294,  678,  678,  678,  679,  679,  679,  679,  679,
2641       679,  684,  293,  684,  684,  684,  684,  684,  684,  684,
2642       684,  684,  684,  279,  278,  684,  684,  277,  263,  262,
2643       261,  254,  684,  684,  684,  685,  253,  685,  685,  685,
2644       685,  685,  685,  685,  685,  685,  685,  251,  250,  685,
2645       685,  249,  247,  246,  240,  239,  685,  685,  685,  686,
2646       686,  686,  686,  686,  686,  691,  233,  691,  691,  691,
2647       691,  691,  691,  691,  691,  691,  691,  231,  230,  691,
2648       691,  229,  227,  226,  215,  213,  691,  691,  691,  692,
2649       212,  692,  692,  692,  692,  692,  692,  692,  692,  692,
2651       692,  204,  203,  692,  692,  197,  195,  194,  193,  192,
2652       692,  692,  692,  693,  693,  693,  693,  693,  693,  698,
2653       184,  698,  698,  698,  698,  698,  698,  698,  698,  698,
2654       698,  178,  177,  698,  698,  176,  175,  174,  173,  158,
2655       698,  698,  698,  699,  157,  699,  699,  699,  699,  699,
2656       699,  699,  699,  699,  699,  156,  149,  699,  699,  148,
2657       146,  145,  139,  137,  699,  699,  699,  700,  700,  700,
2658       700,  700,  700,  705,  705,  705,  705,  705,  705,  705,
2659       705,  705,  722,  722,  722,  722,  722,  722,  722,  722,
2660       722,  136,  135,  134,  722,  722,  133,  131,  130,  127,
2662       126,  722,  722,  722,  723,  119,  723,  723,  723,  723,
2663       723,  723,  723,  723,  723,  723,  118,  112,  723,  723,
2664       105,  104,  103,   91,   90,  723,  723,  723,  729,  729,
2665       729,  729,  729,  729,  729,  729,  729,   88,   87,   81,
2666       729,  729,   78,   70,   66,   62,  729,  729,  729,  729,
2667       731,  731,  731,  731,  731,  731,  731,  731,  731,   61,
2668        59,   57,  731,  731,   56,   54,   53,   51,   44,  731,
2669       731,  731,  732,   39,  732,  732,  732,  732,  732,  732,
2670       732,  732,  732,  732,   32,  735,  732,  732,   30,   29,
2671        27,   26,  732,  732,  732,  732,  735,   24,   19,   12,
2673         9,    5,    4,    3,  742,  735,  738,  738,  738,  738,
2674       738,  738,  738,  738,  738,  742,    0,    0,  738,  738,
2675         0,    0,    0,    0,  742,  738,  738,  738,  739,    0,
2676       739,  739,  739,  739,  739,  739,  739,  739,  739,  739,
2677         0,    0,  739,  739,    0,    0,    0,    0,  739,  739,
2678       739,  739,  745,  745,  745,  745,  745,  745,  745,  745,
2679       745,    0,    0,    0,  745,  745,    0,    0,    0,    0,
2680         0,  745,  745,  745,  746,    0,  746,  746,  746,  746,
2681       746,  746,  746,  746,  746,  746,    0,  749,  746,  746,
2682         0,    0,    0,    0,  746,  746,  746,  746,  749,    0,
2684         0,    0,    0,    0,    0,    0,  756,  749,  752,  752,
2685       752,  752,  752,  752,  752,  752,  752,  756,    0,    0,
2686       752,  752,    0,    0,    0,    0,  756,  752,  752,  752,
2687       753,    0,  753,  753,  753,  753,  753,  753,  753,  753,
2688       753,  753,    0,    0,  753,  753,    0,    0,    0,    0,
2689       753,  753,  753,  753,  758,  758,  758,  758,  758,  758,
2690       758,  758,  758,    0,    0,    0,    0,    0,    0,    0,
2691         0,    0,  758,  762,  762,  762,  762,  762,  762,  762,
2692       762,  762,  762,    0,    0,    0,    0,    0,    0,    0,
2693         0,  762,  766,    0,  766,  766,  766,  766,  766,  766,
2695       766,  766,  766,  770,  773,  770,  770,  770,  770,  770,
2696       770,  770,  770,  770,    0,  773,    0,    0,    0,    0,
2697         0,    0,    0,    0,  773,  774,    0,  774,  774,  774,
2698       774,  774,  774,  774,  774,  774,  774,    0,    0,  774,
2699       774,    0,    0,    0,    0,  774,  774,  774,  774,  775,
2700         0,  775,  775,  775,  775,  775,  775,  775,  775,  775,
2701       775,    0,    0,  775,  775,    0,    0,    0,  777,  775,
2702       775,  775,  775,  776,  776,  776,  776,  776,  776,  777,
2703       778,    0,  851,    0,    0,    0,    0,    0,  777,    0,
2704         0,  778,    0,  851,    0,    0,    0,    0,    0,    0,
2706       778,  782,  851,  782,  782,  782,  782,  782,  782,  782,
2707       782,  782,  782,    0,    0,  782,  782,    0,    0,    0,
2708         0,    0,  782,  782,  782,  783,    0,  783,  783,  783,
2709       783,  783,  783,  783,  783,  783,  783,    0,    0,  783,
2710       783,    0,    0,    0,    0,    0,  783,  783,  783,  784,
2711       784,  784,  784,  784,  784,  789,    0,  789,  789,  789,
2712       789,  789,  789,  789,  789,  789,  789,    0,    0,  789,
2713       789,    0,    0,    0,    0,    0,  789,  789,  789,  796,
2714         0,  796,  796,  796,  796,  796,  796,  796,  796,  796,
2715       796,    0,    0,  796,  796,    0,    0,    0,    0,    0,
2717       796,  796,  796,  803,    0,  803,  803,  803,  803,  803,
2718       803,  803,  803,  803,  803,    0,    0,  803,  803,    0,
2719         0,    0,    0,    0,  803,  803,  803,  810,    0,  810,
2720       810,  810,  810,  810,  810,  810,  810,  810,  810,    0,
2721         0,  810,  810,    0,    0,    0,    0,    0,  810,  810,
2722       810,  817,    0,  817,  817,  817,  817,  817,  817,  817,
2723       817,  817,  817,    0,    0,  817,  817,    0,    0,    0,
2724         0,    0,  817,  817,  817,  824,  824,  824,  824,  824,
2725       824,  824,  824,  824,  827,  827,  827,  827,  827,  827,
2726       827,  827,  827,  831,  831,  831,  831,  831,  831,  831,
2728       831,  831,  831,  835,    0,  835,  835,  835,  835,  835,
2729       835,  835,  835,  835,  839,    0,  839,  839,  839,  839,
2730       839,  839,  839,  839,  839,  843,    0,  843,  843,  843,
2731       843,  843,  843,  843,  843,  843,  843,    0,    0,  843,
2732       843,    0,    0,    0,    0,    0,  843,  843,  843,  844,
2733         0,  844,  844,  844,  844,  844,  844,  844,  844,  844,
2734       844,    0,    0,  844,  844,    0,    0,    0,    0,    0,
2735       844,  844,  844,  845,  845,  845,  845,  845,  845,  850,
2736       850,  850,  850,  850,  850,  850,  850,  850,  850,    0,
2737         0,  850,  850,    0,    0,    0,    0,    0,  850,  850,
2739       850,  852,    0,  852,  852,  852,  852,  852,  852,  852,
2740       852,  852,  852,    0,    0,  852,  852,    0,    0,    0,
2741         0,  852,  852,  852,  852,  853,    0,  853,  853,  853,
2742       853,  853,  853,  853,  853,  853,  853,    0,    0,  853,
2743       853,    0,    0,    0,  855,  853,  853,  853,  853,  854,
2744       854,  854,  854,  854,  854,  855,  857,    0,  861,    0,
2745         0,    0,    0,    0,  855,    0,    0,  857,    0,  861,
2746         0,    0,    0,    0,    0,    0,  857,  858,  861,  858,
2747       858,  858,  858,  858,  858,  858,  858,  858,  858,    0,
2748         0,  858,  858,    0,    0,    0,    0,  858,  858,  858,
2750       858,  859,    0,  859,  859,  859,  859,  859,  859,  859,
2751       859,  859,  859,    0,    0,  859,  859,    0,    0,    0,
2752       862,  859,  859,  859,  859,  860,  860,  860,  860,  860,
2753       860,  862,  864,    0,  868,    0,    0,    0,    0,    0,
2754       862,    0,    0,  864,    0,  868,    0,    0,    0,    0,
2755         0,    0,  864,  865,  868,  865,  865,  865,  865,  865,
2756       865,  865,  865,  865,  865,    0,    0,  865,  865,    0,
2757         0,    0,    0,  865,  865,  865,  865,  866,    0,  866,
2758       866,  866,  866,  866,  866,  866,  866,  866,  866,    0,
2759         0,  866,  866,    0,    0,    0,  869,  866,  866,  866,
2761       866,  867,  867,  867,  867,  867,  867,  869,  871,    0,
2762       875,    0,    0,    0,    0,    0,  869,    0,    0,  871,
2763         0,  875,    0,    0,    0,    0,    0,    0,  871,  872,
2764       875,  872,  872,  872,  872,  872,  872,  872,  872,  872,
2765       872,    0,    0,  872,  872,    0,    0,    0,    0,  872,
2766       872,  872,  872,  873,    0,  873,  873,  873,  873,  873,
2767       873,  873,  873,  873,  873,    0,    0,  873,  873,    0,
2768         0,    0,  876,  873,  873,  873,  873,  874,  874,  874,
2769       874,  874,  874,  876,  878,    0,  882,    0,    0,    0,
2770         0,    0,  876,    0,    0,  878,    0,  882,    0,    0,
2772         0,    0,    0,    0,  878,  879,  882,  879,  879,  879,
2773       879,  879,  879,  879,  879,  879,  879,    0,    0,  879,
2774       879,    0,    0,    0,    0,  879,  879,  879,  879,  880,
2775         0,  880,  880,  880,  880,  880,  880,  880,  880,  880,
2776       880,    0,    0,  880,  880,    0,    0,    0,  883,  880,
2777       880,  880,  880,  881,  881,  881,  881,  881,  881,  883,
2778         0,    0,    0,    0,    0,    0,    0,    0,  883,  886,
2779       886,  886,  886,  886,  886,  886,  886,  886,    0,    0,
2780         0,    0,    0,    0,    0,    0,  907,  886,  903,  903,
2781       903,  903,  903,  903,  903,  903,  903,  907,    0,    0,
2783       903,  903,    0,    0,    0,    0,  907,  903,  903,  903,
2784       904,    0,  904,  904,  904,  904,  904,  904,  904,  904,
2785       904,  904,    0,    0,  904,  904,    0,    0,    0,    0,
2786       904,  904,  904,  904,  912,    0,  912,  912,  912,  912,
2787       912,  912,  912,  912,  912,  912,    0,    0,  912,  912,
2788         0,    0,    0,    0,    0,  912,  912,  912,  940,  940,
2789       940,  940,  940,  940,  940,  940,  940,  958,    0,  958,
2790       958,  958,  958,  958,  958,  958,  958,  958,  958,    0,
2791         0,  958,  958,    0,    0,    0,    0,    0,  958,  958,
2792       958,  964,    0,  964,  964,  964,  964,  964,  964,  964,
2794       964,  964,  964,    0,    0,  964,  964,    0,    0,    0,
2795         0,    0,  964,  964,  964,  965,    0,  965,  965,  965,
2796       965,  965,  965,  965,  965,  965,  965,    0,    0,  965,
2797       965,    0,    0,    0,    0,    0,  965,  965,  965,  966,
2798       966,  966,  966,  966,  966,  971,    0,  971,  971,  971,
2799       971,  971,  971,  971,  971,  971,  971,    0,  974,  971,
2800       971,    0,    0,    0,    0,  971,  971,  971,  971,  974,
2801         0,    0,    0,    0,    0,    0,    0,    0,  974,  978,
2802         0,  978,  978,  978,  978,  978,  978,  978,  978,  978,
2803       978,    0,  981,  978,  978,    0,    0,    0,    0,  978,
2805       978,  978,  978,  981,    0,    0,    0,    0,    0,    0,
2806         0,    0,  981,  985,    0,  985,  985,  985,  985,  985,
2807       985,  985,  985,  985,  985,    0,  988,  985,  985,    0,
2808         0,    0,    0,  985,  985,  985,  985,  988,    0,    0,
2809         0,    0,    0,    0,    0,    0,  988,  992,    0,  992,
2810       992,  992,  992,  992,  992,  992,  992,  992,  992,    0,
2811       995,  992,  992,    0,    0,    0,    0,  992,  992,  992,
2812       992,  995,    0,    0,    0,    0,    0,    0,    0,    0,
2813       995,  999,    0,  999,  999,  999,  999,  999,  999,  999,
2814       999,  999,  999,    0, 1002,  999,  999,    0,    0,    0,
2816         0,  999,  999,  999,  999, 1002,    0,    0,    0,    0,
2817         0,    0,    0,    0, 1002, 1006, 1006, 1006, 1006, 1006,
2818      1006, 1006, 1006, 1006,    0,    0,    0,    0,    0,    0,
2819         0,    0,    0, 1006, 1009, 1009, 1009, 1009, 1009, 1009,
2820      1009, 1009, 1009,    0,    0,    0,    0,    0,    0,    0,
2821         0,    0, 1009, 1013, 1013, 1013, 1013, 1013, 1013, 1013,
2822      1013, 1013, 1013,    0,    0,    0,    0,    0,    0,    0,
2823         0, 1013, 1017,    0, 1017, 1017, 1017, 1017, 1017, 1017,
2824      1017, 1017, 1017, 1021, 1024, 1021, 1021, 1021, 1021, 1021,
2825      1021, 1021, 1021, 1021,    0, 1024,    0,    0,    0,    0,
2827         0,    0,    0,    0, 1024, 1025,    0, 1025, 1025, 1025,
2828      1025, 1025, 1025, 1025, 1025, 1025, 1025,    0,    0, 1025,
2829      1025,    0,    0,    0,    0, 1025, 1025, 1025, 1025, 1026,
2830         0, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026,
2831      1026,    0,    0, 1026, 1026,    0,    0,    0, 1028, 1026,
2832      1026, 1026, 1026, 1027, 1027, 1027, 1027, 1027, 1027, 1028,
2833      1029,    0, 1084,    0,    0,    0,    0,    0, 1028,    0,
2834         0, 1029,    0, 1084,    0,    0,    0,    0,    0,    0,
2835      1029, 1032, 1084, 1032, 1032, 1032, 1032, 1032, 1032, 1032,
2836      1032, 1032, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053,
2838      1053, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056,
2839      1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060,
2840      1064,    0, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064,
2841      1064, 1068,    0, 1068, 1068, 1068, 1068, 1068, 1068, 1068,
2842      1068, 1068, 1077,    0, 1077, 1077, 1077, 1077, 1077, 1077,
2843      1077, 1077, 1077, 1077,    0, 1087, 1077, 1077, 1090, 1093,
2844      1096,    0,    0, 1077, 1077, 1077, 1087,    0,    0, 1090,
2845      1093, 1096,    0,    0,    0, 1087,    0,    0, 1090, 1093,
2846      1096, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105,
2847         0,    0,    0,    0,    0,    0,    0,    0,    0, 1105,
2849      1123,    0, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123,
2850      1123, 1123,    0, 1126, 1123, 1123,    0,    0,    0,    0,
2851      1123, 1123, 1123, 1123, 1126,    0,    0,    0,    0,    0,
2852         0,    0,    0, 1126, 1147, 1147, 1147, 1147, 1147, 1147,
2853      1147, 1147, 1147, 1165,    0, 1165, 1165, 1165, 1165, 1165,
2854      1165, 1165, 1165, 1165, 1186, 1186, 1186, 1186, 1186, 1186,
2855      1186, 1186, 1186,    0,    0,    0,    0,    0,    0,    0,
2856         0,    0, 1186, 1189, 1189, 1189, 1189, 1189, 1189, 1189,
2857      1189, 1189,    0,    0,    0,    0,    0,    0,    0,    0,
2858         0, 1189, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
2860      1193, 1193,    0,    0,    0,    0,    0,    0,    0,    0,
2861      1193, 1197,    0, 1197, 1197, 1197, 1197, 1197, 1197, 1197,
2862      1197, 1197, 1201, 1205, 1201, 1201, 1201, 1201, 1201, 1201,
2863      1201, 1201, 1201,    0, 1205,    0,    0,    0,    0,    0,
2864         0,    0,    0, 1205, 1208,    0, 1208, 1208, 1208, 1208,
2865      1208, 1208, 1208, 1208, 1208, 1221, 1221, 1221, 1221, 1221,
2866      1221, 1221, 1221, 1221, 1224, 1224, 1224, 1224, 1224, 1224,
2867      1224, 1224, 1224, 1228, 1228, 1228, 1228, 1228, 1228, 1228,
2868      1228, 1228, 1228, 1232,    0, 1232, 1232, 1232, 1232, 1232,
2869      1232, 1232, 1232, 1232, 1255, 1255, 1255, 1255, 1255, 1255,
2871      1255, 1255, 1255,    0,    0,    0,    0,    0,    0,    0,
2872         0,    0, 1255, 1283, 1283, 1283, 1283, 1283, 1283, 1283,
2873      1283, 1283, 1296,    0, 1296, 1296, 1296, 1296, 1296, 1296,
2874      1296, 1296, 1296, 1309, 1309, 1309, 1309, 1309, 1309, 1309,
2875      1309, 1309,    0,    0,    0,    0,    0,    0,    0,    0,
2876         0, 1309, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312,
2877      1312,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2878      1312, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316,
2879      1316,    0,    0,    0,    0,    0,    0,    0,    0, 1316,
2880      1320,    0, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320,
2882      1320, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325,
2883      1325, 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331,
2884      1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1338,
2885      1338, 1338, 1338, 1338, 1338, 1338, 1338, 1338, 1338, 1352,
2886      1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352,    0,    0,
2887         0,    0,    0,    0,    0,    0,    0, 1352, 1375, 1375,
2888      1375, 1375, 1375, 1375, 1375, 1375, 1375, 1383, 1383, 1383,
2889      1383, 1383, 1383, 1383, 1383, 1383, 1383,    0,    0,    0,
2890         0,    0,    0,    0,    0, 1383, 1389, 1389, 1389, 1389,
2891      1389, 1389, 1389, 1389, 1389,    0,    0,    0,    0,    0,
2893         0,    0,    0,    0, 1389, 1392, 1392, 1392, 1392, 1392,
2894      1392, 1392, 1392, 1392,    0,    0,    0,    0,    0,    0,
2895         0,    0,    0, 1392, 1396, 1396, 1396, 1396, 1396, 1396,
2896      1396, 1396, 1396, 1396,    0,    0,    0,    0,    0,    0,
2897         0,    0, 1396, 1399, 1399, 1399, 1399, 1399, 1399, 1399,
2898      1399, 1399, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405,
2899      1405, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408, 1408,
2900      1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422,    0,
2901         0,    0,    0,    0,    0,    0,    0,    0, 1422, 1430,
2902      1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1440, 1440,
2904      1440, 1440, 1440, 1440, 1440, 1440, 1440, 1443, 1443, 1443,
2905      1443, 1443, 1443, 1443, 1443, 1443,    0,    0,    0,    0,
2906         0,    0,    0,    0,    0, 1443, 1449, 1449, 1449, 1449,
2907      1449, 1449, 1449, 1449, 1449,    0,    0,    0,    0,    0,
2908         0,    0,    0,    0, 1449, 1452, 1452, 1452, 1452, 1452,
2909      1452, 1452, 1452, 1452,    0,    0,    0,    0,    0,    0,
2910         0,    0,    0, 1452, 1457, 1457, 1457, 1457, 1457, 1457,
2911      1457, 1457, 1457, 1463, 1463, 1463, 1463, 1463, 1463, 1463,
2912      1463, 1463, 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467,
2913      1467,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2915      1467, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477, 1477,
2916         0,    0,    0,    0,    0,    0,    0,    0,    0, 1477,
2917      1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494,    0,
2918         0,    0,    0,    0,    0,    0,    0,    0, 1494, 1500,
2919      1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500,    0,    0,
2920         0,    0,    0,    0,    0,    0,    0, 1500, 1519, 1519,
2921      1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1520,
2922      1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520,
2923      1521,    0, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521,
2924      1521, 1522, 1522, 1522, 1522, 1523, 1523, 1523, 1524, 1524,
2926      1524,    0, 1524, 1524, 1524, 1525, 1525, 1525, 1525, 1525,
2927      1525, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526, 1526,
2928      1526, 1526, 1527, 1527, 1527, 1527, 1527, 1527, 1527, 1527,
2929      1527, 1527, 1527, 1528, 1528, 1528, 1529, 1529, 1529, 1529,
2930      1529, 1529, 1530, 1530, 1530, 1530, 1530, 1530, 1531, 1531,
2931      1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1532,
2932      1532, 1532, 1532,    0,    0, 1532, 1533, 1533, 1533, 1533,
2933      1533, 1533, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1535,
2934      1535, 1535, 1535, 1535, 1535, 1536, 1536, 1536, 1536, 1536,
2935      1536, 1537, 1537, 1537, 1538, 1538, 1538, 1539, 1539, 1539,
2937      1539, 1539, 1539, 1540, 1540, 1540, 1540, 1540, 1540, 1541,
2938      1541, 1541, 1541, 1541, 1541, 1541, 1542, 1542, 1542, 1543,
2939      1543, 1543, 1543, 1543, 1543, 1544, 1544, 1544, 1544, 1544,
2940      1544, 1545, 1545, 1545, 1545, 1545, 1545, 1546, 1546, 1546,
2941      1546, 1546, 1546, 1546,    0, 1546, 1547, 1547, 1547, 1547,
2942      1548, 1548, 1548, 1548, 1549, 1549, 1549, 1549, 1549, 1549,
2943      1550, 1550, 1550, 1550, 1550, 1550, 1551, 1551, 1551, 1551,
2944      1551, 1551, 1552, 1552, 1552, 1552, 1553, 1553, 1553, 1553,
2945      1554, 1554, 1554, 1554, 1554, 1554, 1555, 1555, 1555, 1555,
2946      1555, 1555, 1555, 1556, 1556, 1556, 1556, 1556, 1556, 1557,
2948      1557, 1557, 1557, 1557, 1557, 1558, 1558, 1558, 1558, 1558,
2949      1558, 1558,    0, 1558, 1559, 1559, 1559, 1560, 1560, 1560,
2950      1560, 1560, 1560,    0, 1560, 1561, 1561, 1562, 1562, 1562,
2951      1563, 1563, 1563, 1564, 1564, 1564, 1564, 1564, 1564, 1565,
2952      1565, 1565, 1565, 1565, 1565, 1566, 1566, 1566, 1566, 1566,
2953      1566, 1566, 1567, 1567, 1567, 1567, 1567, 1567, 1568, 1568,
2954      1568, 1568, 1568, 1568, 1568, 1569, 1569, 1569, 1570, 1570,
2955      1570, 1571, 1571, 1571, 1572, 1572, 1572, 1572, 1572, 1572,
2956      1573, 1573, 1573, 1573, 1573, 1573, 1574, 1574, 1574, 1574,
2957      1574, 1574, 1575, 1575, 1575, 1575, 1575, 1575,    0, 1575,
2959      1576, 1576, 1576, 1576, 1577, 1577, 1577, 1577, 1578, 1578,
2960      1578, 1578, 1578, 1578,    0, 1578, 1579, 1579, 1579, 1579,
2961      1579, 1579, 1579,    0, 1579, 1580, 1580, 1580, 1581, 1581,
2962      1581, 1582, 1582, 1582, 1582, 1583, 1583, 1583, 1583, 1584,
2963      1584, 1584, 1584, 1584, 1584, 1585, 1585, 1585, 1585, 1585,
2964      1585, 1586, 1586, 1586, 1586, 1586, 1586, 1587, 1587, 1587,
2965      1587, 1587, 1587, 1588, 1588, 1588, 1588, 1589, 1589, 1589,
2966      1589, 1590, 1590, 1590, 1590, 1591, 1591, 1591, 1591, 1592,
2967      1592, 1592, 1592, 1592, 1592, 1593, 1593, 1593, 1593, 1593,
2968      1593, 1593, 1594, 1594, 1594, 1594, 1594, 1594, 1595, 1595,
2970      1595, 1595, 1595, 1595, 1596, 1596, 1596, 1596, 1596, 1596,
2971      1596,    0, 1596, 1597, 1597, 1597, 1597, 1597, 1597,    0,
2972      1597, 1598, 1598, 1598, 1598, 1598, 1598, 1598,    0, 1598,
2973      1599, 1599, 1599, 1600, 1600, 1600, 1601, 1601, 1601, 1602,
2974      1602, 1602, 1602, 1602, 1602,    0, 1602, 1603, 1603, 1603,
2975      1604, 1604, 1604, 1605, 1605, 1605, 1606, 1606, 1607, 1607,
2976         0, 1607, 1608, 1608, 1608, 1608, 1608, 1608, 1609, 1609,
2977      1609, 1609, 1609, 1609, 1610, 1610, 1610, 1610, 1610, 1610,
2978      1610, 1611, 1611, 1611, 1611, 1611, 1611, 1612, 1612, 1612,
2979      1612, 1612, 1612, 1612, 1613, 1613, 1613, 1613, 1613, 1613,
2981      1614, 1614, 1614, 1614, 1614, 1614, 1614, 1615, 1615, 1615,
2982      1616, 1616, 1616, 1616, 1617, 1617, 1617, 1618, 1618, 1618,
2983      1619, 1619, 1619, 1619, 1620, 1620, 1620, 1621, 1621, 1621,
2984      1622, 1622, 1622, 1622, 1622, 1622, 1623, 1623, 1623, 1623,
2985      1623, 1623, 1624, 1624, 1624, 1624, 1624, 1624, 1625, 1625,
2986      1625, 1625, 1625, 1625,    0, 1625, 1626, 1626, 1626, 1626,
2987      1626, 1626,    0, 1626, 1627, 1627, 1627, 1627, 1628, 1628,
2988      1628, 1628, 1629, 1629, 1629, 1629, 1630, 1630, 1630, 1630,
2989      1631, 1631, 1631, 1631, 1631, 1631,    0, 1631, 1632, 1632,
2990      1632, 1632, 1632, 1632, 1632,    0, 1632, 1633, 1633, 1633,
2992      1634, 1634, 1634, 1635, 1635, 1635, 1636, 1636, 1636, 1637,
2993      1637, 1637, 1638, 1638, 1638, 1638, 1638, 1638, 1639, 1639,
2994      1639, 1639, 1639, 1639, 1640, 1640, 1640, 1640, 1640, 1640,
2995      1641, 1641, 1641, 1641, 1641, 1641, 1642, 1642, 1642, 1642,
2996      1642, 1642, 1643, 1643, 1643, 1643, 1644, 1644, 1644, 1644,
2997      1645, 1645, 1645, 1645, 1646, 1646, 1646, 1646, 1647, 1647,
2998      1647, 1647, 1648, 1648, 1648, 1648, 1649, 1649, 1649, 1649,
2999      1649, 1649, 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1651,
3000      1651, 1651, 1651, 1651, 1651, 1652, 1652, 1652, 1652, 1652,
3001      1652, 1653, 1653, 1653, 1653, 1653, 1653, 1653,    0, 1653,
3003      1654, 1654, 1654, 1654, 1654, 1654,    0, 1654, 1655, 1655,
3004      1655, 1655, 1655, 1655, 1655,    0, 1655, 1656, 1656, 1656,
3005      1656, 1656, 1656,    0, 1656, 1657, 1657, 1657, 1657, 1657,
3006      1657, 1657,    0, 1657, 1658, 1658, 1658, 1659, 1659, 1659,
3007      1659, 1660, 1660, 1660, 1661, 1661, 1661, 1662, 1662, 1662,
3008      1662, 1663, 1663, 1663, 1664, 1664, 1664, 1665, 1665, 1665,
3009      1665, 1665, 1665,    0, 1665, 1666, 1666, 1666, 1667, 1667,
3010      1667, 1668, 1668, 1668, 1669, 1669, 1669, 1670, 1670, 1670,
3011      1670, 1670, 1670, 1671, 1671, 1671, 1671, 1671, 1671, 1672,
3012      1672, 1672, 1672, 1672, 1672, 1672, 1673, 1673, 1673, 1673,
3014      1673, 1673, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1675,
3015      1675, 1675, 1675, 1675, 1675, 1676, 1676, 1676, 1676, 1676,
3016      1676, 1676, 1677, 1677, 1677, 1677, 1677, 1677, 1678, 1678,
3017      1678, 1678, 1678, 1678, 1678, 1679, 1679, 1680, 1680, 1680,
3018      1680, 1681, 1681,    0, 1681, 1682, 1682, 1682, 1683, 1683,
3019      1683, 1683, 1684, 1684, 1684, 1685, 1685, 1685, 1686, 1686,
3020      1686, 1686, 1687, 1687, 1687, 1688, 1688, 1688, 1689, 1689,
3021      1689, 1689, 1689, 1689, 1690, 1690, 1690, 1690, 1690, 1690,
3022      1691, 1691, 1691, 1691, 1691, 1691, 1692, 1692, 1692, 1692,
3023      1692, 1692,    0, 1692, 1693, 1693, 1693, 1693, 1693, 1693,
3025         0, 1693, 1694, 1694, 1694, 1694, 1694, 1694,    0, 1694,
3026      1695, 1695, 1695, 1695,    0,    0,    0, 1695, 1696, 1696,
3027      1696, 1696,    0,    0,    0, 1696, 1697, 1697, 1697, 1697,
3028      1698, 1698, 1698, 1698, 1699, 1699, 1699, 1699, 1700, 1700,
3029      1700, 1700, 1701, 1701, 1701, 1701, 1701, 1701,    0, 1701,
3030      1702, 1702, 1702, 1702, 1702, 1702, 1702,    0, 1702, 1703,
3031      1703, 1703, 1704, 1704, 1704, 1705, 1705, 1705, 1706, 1706,
3032      1706, 1706, 1706, 1706, 1707, 1707, 1707, 1707, 1707, 1707,
3033      1708, 1708, 1708, 1708, 1708, 1708, 1709, 1709, 1709, 1709,
3034      1709, 1709, 1710, 1710, 1710, 1710, 1710, 1710, 1711, 1711,
3036      1711, 1711, 1711, 1711, 1712, 1712, 1712, 1713, 1713, 1713,
3037      1714, 1714, 1714, 1714, 1715, 1715, 1715, 1715, 1716, 1716,
3038      1716, 1716, 1717, 1717, 1717, 1717, 1718, 1718, 1718, 1718,
3039      1719, 1719, 1719, 1719, 1720, 1720, 1720, 1720, 1720, 1720,
3040      1721, 1721, 1721, 1721, 1721, 1721, 1721, 1722, 1722, 1722,
3041      1722, 1722, 1722, 1723, 1723, 1723, 1723, 1723, 1723, 1724,
3042      1724, 1724, 1724, 1724, 1724, 1724,    0, 1724, 1725, 1725,
3043      1725, 1725, 1725, 1725,    0, 1725, 1726, 1726, 1726, 1726,
3044      1726, 1726, 1726,    0, 1726, 1727, 1727, 1727, 1727, 1727,
3045      1727,    0, 1727, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
3047         0, 1728, 1729, 1729, 1729, 1729, 1729, 1729,    0, 1729,
3048      1730, 1730, 1730, 1730, 1730, 1730, 1730,    0, 1730, 1731,
3049      1731, 1732, 1732, 1732, 1732,    0,    0,    0, 1732, 1733,
3050      1733,    0, 1733,    0,    0,    0, 1733, 1734, 1734, 1734,
3051      1735, 1735, 1735, 1735, 1736, 1736, 1736, 1737, 1737, 1737,
3052      1738, 1738, 1738, 1738, 1739, 1739, 1739, 1740, 1740, 1740,
3053      1741, 1741, 1741, 1741, 1741, 1741,    0, 1741, 1742, 1742,
3054      1742, 1743, 1743, 1743, 1743, 1743, 1743, 1744, 1744, 1744,
3055      1744, 1744, 1744, 1744, 1745, 1745, 1745, 1745, 1745, 1745,
3056      1746, 1746, 1746, 1746, 1746, 1746, 1746, 1747, 1747, 1747,
3058      1747, 1747, 1747, 1748, 1748, 1748, 1748, 1748, 1748, 1748,
3059      1749, 1749, 1749, 1749, 1749, 1749, 1750, 1750, 1750, 1750,
3060      1750, 1750, 1750, 1751, 1751, 1751, 1751, 1751, 1751, 1752,
3061      1752, 1752, 1752, 1752, 1752, 1752, 1753, 1753, 1753, 1754,
3062      1754, 1754, 1755, 1755, 1755, 1756, 1756, 1757, 1757, 1757,
3063      1757, 1758, 1758,    0, 1758, 1759, 1759, 1759, 1760, 1760,
3064      1760, 1760, 1761, 1761, 1761, 1762, 1762, 1762, 1763, 1763,
3065      1763, 1763, 1764, 1764, 1764, 1765, 1765, 1765, 1766, 1766,
3066      1766, 1766, 1766, 1766, 1767, 1767, 1767, 1767, 1767, 1767,
3067      1768, 1768, 1768, 1768, 1768, 1768, 1769, 1769, 1769, 1769,
3069      1769, 1769,    0, 1769, 1770, 1770, 1770, 1770, 1770, 1770,
3070         0, 1770, 1771, 1771, 1771, 1771, 1771, 1771,    0, 1771,
3071      1772, 1772, 1772, 1772, 1772, 1772,    0, 1772, 1773, 1773,
3072      1773,    0,    0,    0,    0, 1773, 1774, 1774, 1774,    0,
3073         0,    0,    0, 1774, 1775, 1775, 1775, 1775,    0,    0,
3074         0, 1775, 1776, 1776, 1776, 1776,    0,    0,    0, 1776,
3075      1777, 1777, 1777, 1777, 1778, 1778, 1778, 1778, 1779, 1779,
3076      1779, 1779, 1780, 1780, 1780, 1780, 1781, 1781, 1781, 1781,
3077      1781, 1781,    0, 1781, 1782, 1782, 1782, 1782, 1782, 1782,
3078      1782,    0, 1782, 1783, 1783, 1783, 1783, 1783, 1783, 1784,
3080      1784, 1784, 1784, 1784, 1784, 1784, 1785, 1785, 1785,    0,
3081      1785, 1785, 1786, 1786, 1786, 1786, 1786, 1786, 1787, 1787,
3082      1787,    0, 1787, 1787, 1788, 1788, 1788, 1788, 1788, 1788,
3083      1789, 1789, 1789,    0, 1789, 1789, 1790, 1790, 1790, 1790,
3084      1790, 1790, 1791, 1791, 1791,    0, 1791, 1791, 1792, 1792,
3085      1792, 1792, 1792, 1792, 1793, 1793, 1793,    0, 1793, 1793,
3086      1794, 1794, 1794, 1794, 1794, 1794, 1795, 1795, 1795,    0,
3087      1795, 1795, 1796, 1796, 1796, 1797, 1797, 1797, 1798, 1798,
3088      1798, 1799, 1799, 1799, 1800, 1800, 1800, 1801, 1801, 1801,
3089      1801, 1802, 1802, 1802, 1802, 1803, 1803, 1803, 1803, 1804,
3091      1804, 1804, 1804, 1805, 1805, 1805, 1805, 1806, 1806, 1806,
3092      1806, 1807, 1807, 1807, 1807, 1807, 1807, 1808, 1808, 1808,
3093      1808, 1808, 1808, 1808, 1809, 1809, 1809, 1809, 1809, 1809,
3094      1810, 1810, 1810, 1810, 1810, 1810, 1810,    0, 1810, 1811,
3095      1811, 1811, 1811, 1811, 1811,    0, 1811, 1812, 1812, 1812,
3096      1812, 1812, 1812, 1812,    0, 1812, 1813, 1813, 1813, 1813,
3097      1813, 1813,    0, 1813, 1814, 1814, 1814, 1814, 1814, 1814,
3098      1814,    0, 1814, 1815, 1815, 1815, 1815, 1815, 1815,    0,
3099      1815, 1816, 1816, 1816, 1816, 1816, 1816, 1816,    0, 1816,
3100      1817, 1817, 1817, 1817, 1817, 1817,    0, 1817, 1818, 1818,
3102      1818, 1818, 1818, 1818, 1818,    0, 1818, 1819, 1819, 1819,
3103         0,    0,    0,    0, 1819, 1820, 1820, 1820,    0,    0,
3104         0,    0, 1820, 1821, 1821, 1821,    0,    0,    0,    0,
3105      1821, 1822, 1822, 1823, 1823, 1823, 1823,    0,    0,    0,
3106      1823, 1824, 1824,    0, 1824,    0,    0,    0, 1824, 1825,
3107      1825, 1825, 1826, 1826, 1826, 1826, 1827, 1827, 1827, 1828,
3108      1828, 1828, 1829, 1829, 1829, 1829, 1830, 1830, 1830, 1831,
3109      1831, 1831, 1832, 1832, 1832, 1832, 1832, 1832,    0, 1832,
3110      1833, 1833, 1833, 1834, 1834, 1834, 1834, 1834, 1834, 1835,
3111      1835, 1835, 1835, 1835, 1835, 1836, 1836, 1836,    0, 1836,
3113      1836, 1837, 1837, 1837, 1837, 1837, 1837, 1838, 1838, 1838,
3114         0, 1838, 1838, 1839, 1839, 1839, 1839, 1839, 1839, 1840,
3115      1840, 1840,    0, 1840, 1840, 1841, 1841, 1841, 1841, 1841,
3116      1841, 1842, 1842, 1842,    0, 1842, 1842, 1843, 1843, 1843,
3117      1843, 1843, 1843, 1844, 1844, 1844,    0, 1844, 1844, 1845,
3118      1845, 1845, 1845, 1845, 1845, 1846, 1846, 1846,    0, 1846,
3119      1846, 1847, 1847, 1847, 1848, 1848, 1848, 1849, 1849, 1849,
3120      1850, 1850, 1850, 1851, 1851, 1852, 1852, 1852, 1852, 1853,
3121      1853,    0, 1853, 1854, 1854, 1854, 1855, 1855, 1855, 1855,
3122      1856, 1856, 1856, 1857, 1857, 1857, 1858, 1858, 1858, 1858,
3124      1859, 1859, 1859, 1860, 1860, 1860, 1861, 1861, 1861, 1861,
3125      1861, 1861, 1862, 1862, 1862,    0, 1862, 1862, 1863, 1863,
3126      1863, 1863, 1863, 1863, 1864, 1864, 1864, 1864, 1864, 1864,
3127      1864, 1865, 1865, 1865,    0, 1865, 1865,    0, 1865, 1866,
3128      1866, 1866, 1866, 1866, 1866,    0, 1866, 1867, 1867, 1867,
3129         0, 1867, 1867, 1868, 1868, 1868, 1868, 1868, 1868,    0,
3130      1868, 1869, 1869, 1869,    0, 1869, 1869, 1870, 1870, 1870,
3131      1870, 1870, 1870,    0, 1870, 1871, 1871, 1871,    0, 1871,
3132      1871, 1872, 1872, 1872, 1872, 1872, 1872,    0, 1872, 1873,
3133      1873, 1873,    0, 1873, 1873, 1874, 1874, 1874, 1874, 1874,
3135      1874,    0, 1874, 1875, 1875, 1875,    0, 1875, 1875, 1876,
3136      1876, 1876,    0,    0,    0,    0, 1876, 1877, 1877, 1877,
3137         0,    0,    0,    0, 1877, 1878, 1878, 1878,    0,    0,
3138         0,    0, 1878, 1879, 1879, 1879,    0,    0,    0,    0,
3139      1879, 1880, 1880, 1880,    0,    0,    0,    0, 1880, 1881,
3140      1881, 1881, 1881,    0,    0,    0, 1881, 1882, 1882, 1882,
3141      1882,    0,    0,    0, 1882, 1883, 1883, 1883, 1883, 1884,
3142      1884, 1884, 1884, 1885, 1885, 1885, 1885, 1886, 1886, 1886,
3143      1886, 1887, 1887, 1887, 1887, 1887, 1887,    0, 1887, 1888,
3144      1888, 1888, 1888, 1888, 1888, 1888,    0, 1888, 1889, 1889,
3146      1889, 1889, 1890, 1890, 1890, 1890, 1891, 1891, 1891, 1891,
3147      1891, 1891, 1892, 1892, 1892,    0, 1892, 1892, 1893, 1893,
3148      1893,    0, 1893, 1893, 1894, 1894, 1894,    0, 1894, 1894,
3149      1895, 1895, 1895,    0, 1895, 1895, 1896, 1896, 1896,    0,
3150      1896, 1896, 1897, 1897, 1897,    0, 1897, 1897, 1898, 1898,
3151      1898,    0, 1898, 1898, 1899, 1899, 1899, 1900, 1900, 1900,
3152      1901, 1901, 1901, 1902, 1902, 1902, 1903, 1903, 1903, 1904,
3153      1904, 1904, 1904, 1905, 1905, 1905, 1905, 1906, 1906, 1906,
3154      1906, 1907, 1907, 1907, 1907, 1908, 1908, 1908, 1908, 1909,
3155      1909, 1909, 1909, 1910, 1910, 1910, 1910, 1910, 1910, 1911,
3157      1911, 1911,    0, 1911, 1911, 1912, 1912, 1912, 1913, 1913,
3158      1913, 1913, 1913, 1913, 1914, 1914, 1914, 1914, 1914, 1914,
3159      1915, 1915, 1915,    0, 1915, 1915,    0, 1915, 1916, 1916,
3160      1916, 1916, 1916, 1916,    0, 1916, 1917, 1917, 1917,    0,
3161      1917, 1917,    0, 1917, 1918, 1918, 1918, 1918, 1918, 1918,
3162         0, 1918, 1919, 1919, 1919,    0, 1919, 1919,    0, 1919,
3163      1920, 1920, 1920, 1920, 1920, 1920,    0, 1920, 1921, 1921,
3164      1921,    0, 1921, 1921,    0, 1921, 1922, 1922, 1922, 1922,
3165      1922, 1922,    0, 1922, 1923, 1923, 1923,    0, 1923, 1923,
3166         0, 1923, 1924, 1924, 1924, 1924, 1924, 1924,    0, 1924,
3168      1925, 1925, 1925,    0, 1925, 1925,    0, 1925, 1926, 1926,
3169      1926,    0,    0,    0,    0, 1926, 1927, 1927,    0,    0,
3170         0,    0,    0, 1927, 1928, 1928, 1928,    0,    0,    0,
3171         0, 1928, 1929, 1929, 1929,    0,    0,    0,    0, 1929,
3172      1930, 1930, 1930,    0,    0,    0,    0, 1930, 1931, 1931,
3173      1932, 1932, 1932, 1932,    0,    0,    0, 1932, 1933, 1933,
3174         0, 1933,    0,    0,    0, 1933, 1934, 1934, 1934, 1935,
3175      1935, 1935, 1935, 1936, 1936, 1936, 1937, 1937, 1937, 1938,
3176      1938, 1938, 1938, 1939, 1939, 1939, 1940, 1940, 1940, 1941,
3177      1941, 1941, 1941, 1941, 1941,    0, 1941, 1942, 1942, 1942,
3179         0, 1942, 1942, 1943, 1943, 1943, 1944, 1944, 1944, 1944,
3180      1945, 1945, 1945, 1946, 1946, 1946,    0, 1946, 1946, 1947,
3181      1947, 1947,    0, 1947, 1947, 1948, 1948, 1948,    0, 1948,
3182      1948, 1949, 1949, 1949,    0, 1949, 1949, 1950, 1950, 1950,
3183         0, 1950, 1950, 1951, 1951, 1951,    0, 1951, 1951, 1952,
3184      1952, 1952,    0, 1952, 1952, 1953, 1953, 1953, 1954, 1954,
3185      1954, 1955, 1955, 1955, 1956, 1956, 1956, 1957, 1957, 1958,
3186      1958, 1958, 1958, 1959, 1959,    0, 1959, 1960, 1960, 1960,
3187      1961, 1961, 1961, 1961, 1962, 1962, 1962, 1963, 1963, 1963,
3188      1964, 1964, 1964, 1964, 1965, 1965, 1965, 1966, 1966, 1966,
3190         0, 1966, 1966, 1967, 1967, 1967, 1967, 1968, 1968, 1968,
3191      1968, 1969, 1969, 1969, 1969, 1969, 1969, 1970, 1970, 1970,
3192         0, 1970, 1970,    0, 1970, 1971, 1971, 1971,    0, 1971,
3193      1971,    0, 1971, 1972, 1972, 1972,    0, 1972, 1972,    0,
3194      1972, 1973, 1973, 1973,    0, 1973, 1973,    0, 1973, 1974,
3195      1974, 1974,    0, 1974, 1974,    0, 1974, 1975, 1975, 1975,
3196         0, 1975, 1975,    0, 1975, 1976, 1976, 1976,    0, 1976,
3197      1976,    0, 1976, 1977, 1977, 1977,    0,    0,    0,    0,
3198      1977, 1978, 1978, 1978,    0,    0,    0,    0, 1978, 1979,
3199      1979, 1979,    0,    0,    0,    0, 1979, 1980, 1980, 1980,
3201         0,    0,    0,    0, 1980, 1981, 1981, 1981,    0,    0,
3202         0,    0, 1981, 1982, 1982, 1982, 1982,    0,    0,    0,
3203      1982, 1983, 1983, 1983, 1983,    0,    0,    0, 1983, 1984,
3204      1984, 1984, 1984, 1985, 1985, 1985, 1985, 1986, 1986, 1986,
3205      1986, 1987, 1987, 1987, 1987, 1988, 1988, 1988, 1988, 1988,
3206      1988,    0, 1988, 1989, 1989, 1989,    0, 1989, 1989,    0,
3207      1989, 1990, 1990, 1990, 1990, 1991, 1991, 1991, 1991, 1992,
3208      1992, 1992,    0, 1992, 1992, 1993, 1993, 1993, 1994, 1994,
3209      1994, 1995, 1995, 1995, 1996, 1996, 1996, 1997, 1997, 1997,
3210      1998, 1998, 1998, 1998, 1999, 1999, 1999, 1999, 2000, 2000,
3212      2000, 2000, 2001, 2001, 2001, 2001, 2002, 2002, 2002,    0,
3213      2002, 2002, 2003, 2003, 2003, 2004, 2004, 2004, 2005, 2005,
3214      2005,    0, 2005, 2005,    0, 2005, 2006, 2006, 2006,    0,
3215      2006, 2006,    0, 2006, 2007, 2007, 2007,    0, 2007, 2007,
3216         0, 2007, 2008, 2008, 2008,    0, 2008, 2008,    0, 2008,
3217      2009, 2009, 2009,    0, 2009, 2009,    0, 2009, 2010, 2010,
3218      2010,    0, 2010, 2010,    0, 2010, 2011, 2011, 2011,    0,
3219      2011, 2011,    0, 2011, 2012, 2012, 2012,    0,    0,    0,
3220         0, 2012, 2013, 2013,    0,    0,    0,    0,    0, 2013,
3221      2014, 2014, 2014,    0,    0,    0,    0, 2014, 2015, 2015,
3223      2015,    0,    0,    0,    0, 2015, 2016, 2016, 2016,    0,
3224         0,    0,    0, 2016, 2017, 2017, 2018, 2018,    0, 2018,
3225         0,    0,    0, 2018, 2019, 2019, 2019, 2020, 2020, 2020,
3226      2021, 2021, 2021, 2022, 2022, 2022, 2023, 2023, 2023,    0,
3227      2023, 2023,    0, 2023, 2024, 2024, 2024, 2025, 2025, 2025,
3228      2026, 2026, 2026, 2027, 2027, 2027, 2028, 2028, 2028, 2029,
3229      2029, 2029, 2030, 2030, 2031, 2031,    0, 2031, 2032, 2032,
3230      2032, 2033, 2033, 2033, 2034, 2034, 2034, 2034, 2035, 2035,
3231      2035, 2035, 2036, 2036, 2036,    0, 2036, 2036,    0, 2036,
3232      2037, 2037, 2037,    0,    0,    0,    0, 2037, 2038, 2038,
3234      2038,    0,    0,    0,    0, 2038, 2039, 2039, 2039,    0,
3235         0,    0,    0, 2039, 2040, 2040, 2040,    0,    0,    0,
3236         0, 2040, 2041, 2041, 2041,    0,    0,    0,    0, 2041,
3237      2042, 2042, 2042, 2042,    0,    0,    0, 2042, 2043, 2043,
3238      2043, 2043,    0,    0,    0, 2043, 2044, 2044, 2044, 2044,
3239      2045, 2045, 2045, 2045, 2046, 2046, 2046,    0, 2046, 2046,
3240         0, 2046, 2047, 2047, 2047, 2047, 2048, 2048, 2048, 2048,
3241      2049, 2049, 2049, 2050, 2050, 2050, 2051, 2051, 2051, 2052,
3242      2052, 2052, 2053, 2053, 2053, 2054, 2054, 2054, 2054, 2055,
3243      2055, 2055, 2055, 2056, 2056, 2056, 2057, 2057, 2057, 2058,
3245      2058, 2058,    0,    0,    0,    0, 2058, 2059, 2059,    0,
3246         0,    0,    0,    0, 2059, 2060, 2060, 2060,    0,    0,
3247         0,    0, 2060, 2061, 2061, 2061,    0,    0,    0,    0,
3248      2061, 2062, 2062, 2062,    0,    0,    0,    0, 2062, 2063,
3249      2063, 2064, 2064,    0, 2064,    0,    0,    0, 2064, 2065,
3250      2065, 2065, 2066, 2066, 2066, 2067, 2067, 2068, 2068,    0,
3251      2068, 2069, 2069, 2069, 2070, 2070, 2070, 2071, 2071, 2071,
3252      2072, 2072, 2072, 2073, 2073, 2074, 2074,    0, 2074, 2075,
3253      2075, 2075, 2075,    0,    0,    0, 2075, 2076, 2076, 2076,
3254      2076,    0,    0,    0, 2076, 2077, 2077, 2077,    0,    0,
3256         0,    0, 2077, 2078, 2078, 2078,    0,    0,    0,    0,
3257      2078, 2079, 2079, 2079,    0,    0,    0,    0, 2079, 2080,
3258      2080, 2080,    0,    0,    0,    0, 2080, 2081, 2081, 2081,
3259         0,    0,    0,    0, 2081, 2082, 2082, 2082, 2082,    0,
3260         0,    0, 2082, 2083, 2083, 2083, 2083,    0,    0,    0,
3261      2083, 2084, 2084, 2084, 2085, 2085, 2085, 2086, 2086, 2086,
3262      2087, 2087, 2087, 2088, 2088, 2088, 2089, 2089, 2089, 2090,
3263      2090, 2090, 2091, 2091, 2092, 2092,    0, 2092,    0,    0,
3264         0, 2092, 2093, 2093, 2093,    0,    0,    0,    0, 2093,
3265      2094, 2094,    0,    0,    0,    0,    0, 2094, 2095, 2095,
3267      2095,    0,    0,    0,    0, 2095, 2096, 2096, 2096,    0,
3268         0,    0,    0, 2096, 2097, 2097, 2097,    0,    0,    0,
3269         0, 2097, 2098, 2098, 2099, 2099,    0, 2099,    0,    0,
3270         0, 2099, 2100, 2100, 2100, 2101, 2101, 2101, 2102, 2102,
3271      2102, 2103, 2103, 2103, 2104, 2104, 2104, 2105, 2105, 2105,
3272      2106, 2106, 2106, 2107, 2107, 2107,    0,    0,    0,    0,
3273      2107, 2108, 2108, 2108,    0,    0,    0,    0, 2108, 2109,
3274      2109, 2109,    0,    0,    0,    0, 2109, 2110, 2110, 2110,
3275         0,    0,    0,    0, 2110, 2111, 2111, 2111,    0,    0,
3276         0,    0, 2111, 2112, 2112, 2112,    0,    0,    0,    0,
3278      2112, 2113, 2113, 2113,    0,    0,    0,    0, 2113, 2114,
3279      2114, 2114, 2115, 2115, 2115, 2116, 2116, 2116, 2117, 2117,
3280      2117, 2118, 2118, 2118, 2119, 2119, 2119, 2120, 2120, 2120,
3281         0,    0,    0,    0, 2120, 2121, 2121, 2121,    0,    0,
3282         0,    0, 2121, 2122, 2122, 2122,    0,    0,    0,    0,
3283      2122, 2123, 2123, 2123,    0,    0,    0,    0, 2123, 2124,
3284      2124,    0,    0,    0,    0,    0, 2124, 2125, 2125, 2125,
3285         0,    0,    0,    0, 2125, 2126, 2126, 2126,    0,    0,
3286         0,    0, 2126, 2127, 2127, 2127,    0,    0,    0,    0,
3287      2127, 2128, 2128, 2128, 2129, 2129, 2129, 2130, 2130, 2130,
3289         0,    0,    0,    0, 2130, 2131, 2131, 2131,    0,    0,
3290         0,    0, 2131, 2132, 2132, 2132,    0,    0,    0,    0,
3291      2132, 2133, 2133, 2133,    0,    0,    0,    0, 2133, 2134,
3292      2134, 2134,    0,    0,    0,    0, 2134, 2135, 2135, 2135,
3293         0,    0,    0,    0, 2135, 2136, 2136, 2136,    0,    0,
3294         0,    0, 2136, 2137, 2137,    0,    0,    0,    0,    0,
3295      2137, 2138, 2138, 2138,    0,    0,    0,    0, 2138, 2139,
3296      2139,    0,    0,    0,    0,    0, 2139, 1518, 1518, 1518,
3297      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
3298      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
3300      1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518,
3301      1518, 1518, 1518, 1518, 1518, 1518, 1518
3302     } ;
3304 /* Table of booleans, true if rule could match eol. */
3305 static yyconst flex_int32_t yy_rule_can_match_eol[20] =
3306     {   0,
3307 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 
3308         };
3310 static yy_state_type yy_last_accepting_state;
3311 static char *yy_last_accepting_cpos;
3313 extern int yy_flex_debug;
3314 int yy_flex_debug = 0;
3316 /* The intent behind this definition is that it'll catch
3317  * any uses of REJECT which flex missed.
3318  */
3319 #define REJECT reject_used_but_not_detected
3320 #define yymore() yymore_used_but_not_detected
3321 #define YY_MORE_ADJ 0
3322 #define YY_RESTORE_YY_MORE_OFFSET
3323 char *yytext;
3324 #line 1 "scanner.l"
3325 /**
3326  * collectd - src/liboconfig/scanner.l
3327  * Copyright (C) 2007  Florian Forster
3328  * Copyright (C) 2008  Sebastian Harl
3329  *
3330  * Permission is hereby granted, free of charge, to any person obtaining a
3331  * copy of this software and associated documentation files (the "Software"),
3332  * to deal in the Software without restriction, including without limitation
3333  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
3334  * and/or sell copies of the Software, and to permit persons to whom the
3335  * Software is furnished to do so, subject to the following conditions:
3336  *
3337  * The above copyright notice and this permission notice shall be included in
3338  * all copies or substantial portions of the Software.
3339  *
3340  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
3341  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
3342  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
3343  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
3344  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
3345  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
3346  * DEALINGS IN THE SOFTWARE.
3347  *
3348  * Authors:
3349  *   Florian Forster <octo at collectd.org>
3350  *   Sebastian Harl <sh at tokkee.org>
3351  */
3352 #line 30 "scanner.l"
3353 #include <stdlib.h>
3354 #include "oconfig.h"
3355 #include "aux_types.h"
3356 #include "parser.h"
3358 /* multiline string buffer */
3359 static char *ml_buffer = NULL;
3360 static int   ml_pos    = 0;
3361 static int   ml_len    = 0;
3363 #define ml_free (ml_len - ml_pos)
3365 static void ml_append (char *);
3367 #ifdef yyterminate
3368 # undef yyterminate
3369 #endif
3370 #define yyterminate() \
3371         do { free (ml_buffer); ml_buffer = NULL; ml_pos = 0; ml_len = 0; \
3372                 return YY_NULL; } while (0)
3374 /* IPv6 address according to http://www.ietf.org/rfc/rfc2373.txt
3375  * This supports embedded IPv4 addresses as well but does not strictly check
3376  * for the right prefix (::0:<v4> or ::FFFF:<v4>) because there are too many
3377  * ways to correctly represent the zero bytes. It's up to the user to check
3378  * for valid addresses. */
3379 #line 3380 "scanner.c"
3381 #define INITIAL 0
3382 #define ML 1
3384 #ifndef YY_NO_UNISTD_H
3385 /* Special case for "unistd.h", since it is non-ANSI. We include it way
3386  * down here because we want the user's section 1 to have been scanned first.
3387  * The user has a chance to override it with an option.
3388  */
3389 #include <unistd.h>
3390 #endif
3392 #ifndef YY_EXTRA_TYPE
3393 #define YY_EXTRA_TYPE void *
3394 #endif
3396 static int yy_init_globals (void );
3398 /* Accessor methods to globals.
3399    These are made visible to non-reentrant scanners for convenience. */
3401 int yylex_destroy (void );
3403 int yyget_debug (void );
3405 void yyset_debug (int debug_flag  );
3407 YY_EXTRA_TYPE yyget_extra (void );
3409 void yyset_extra (YY_EXTRA_TYPE user_defined  );
3411 FILE *yyget_in (void );
3413 void yyset_in  (FILE * in_str  );
3415 FILE *yyget_out (void );
3417 void yyset_out  (FILE * out_str  );
3419 yy_size_t yyget_leng (void );
3421 char *yyget_text (void );
3423 int yyget_lineno (void );
3425 void yyset_lineno (int line_number  );
3427 /* Macros after this point can all be overridden by user definitions in
3428  * section 1.
3429  */
3431 #ifndef YY_SKIP_YYWRAP
3432 #ifdef __cplusplus
3433 extern "C" int yywrap (void );
3434 #else
3435 extern int yywrap (void );
3436 #endif
3437 #endif
3439     static void yyunput (int c,char *buf_ptr  );
3440     
3441 #ifndef yytext_ptr
3442 static void yy_flex_strncpy (char *,yyconst char *,int );
3443 #endif
3445 #ifdef YY_NEED_STRLEN
3446 static int yy_flex_strlen (yyconst char * );
3447 #endif
3449 #ifndef YY_NO_INPUT
3451 #ifdef __cplusplus
3452 static int yyinput (void );
3453 #else
3454 static int input (void );
3455 #endif
3457 #endif
3459 /* Amount of stuff to slurp up with each read. */
3460 #ifndef YY_READ_BUF_SIZE
3461 #ifdef __ia64__
3462 /* On IA-64, the buffer size is 16k, not 8k */
3463 #define YY_READ_BUF_SIZE 16384
3464 #else
3465 #define YY_READ_BUF_SIZE 8192
3466 #endif /* __ia64__ */
3467 #endif
3469 /* Copy whatever the last rule matched to the standard output. */
3470 #ifndef ECHO
3471 /* This used to be an fputs(), but since the string might contain NUL's,
3472  * we now use fwrite().
3473  */
3474 #define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
3475 #endif
3477 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
3478  * is returned in "result".
3479  */
3480 #ifndef YY_INPUT
3481 #define YY_INPUT(buf,result,max_size) \
3482         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
3483                 { \
3484                 int c = '*'; \
3485                 size_t n; \
3486                 for ( n = 0; n < max_size && \
3487                              (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
3488                         buf[n] = (char) c; \
3489                 if ( c == '\n' ) \
3490                         buf[n++] = (char) c; \
3491                 if ( c == EOF && ferror( yyin ) ) \
3492                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
3493                 result = n; \
3494                 } \
3495         else \
3496                 { \
3497                 errno=0; \
3498                 while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
3499                         { \
3500                         if( errno != EINTR) \
3501                                 { \
3502                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
3503                                 break; \
3504                                 } \
3505                         errno=0; \
3506                         clearerr(yyin); \
3507                         } \
3508                 }\
3511 #endif
3513 /* No semi-colon after return; correct usage is to write "yyterminate();" -
3514  * we don't want an extra ';' after the "return" because that will cause
3515  * some compilers to complain about unreachable statements.
3516  */
3517 #ifndef yyterminate
3518 #define yyterminate() return YY_NULL
3519 #endif
3521 /* Number of entries by which start-condition stack grows. */
3522 #ifndef YY_START_STACK_INCR
3523 #define YY_START_STACK_INCR 25
3524 #endif
3526 /* Report a fatal error. */
3527 #ifndef YY_FATAL_ERROR
3528 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
3529 #endif
3531 /* end tables serialization structures and prototypes */
3533 /* Default declaration of generated scanner - a define so the user can
3534  * easily add parameters.
3535  */
3536 #ifndef YY_DECL
3537 #define YY_DECL_IS_OURS 1
3539 extern int yylex (void);
3541 #define YY_DECL int yylex (void)
3542 #endif /* !YY_DECL */
3544 /* Code executed at the beginning of each rule, after yytext and yyleng
3545  * have been set up.
3546  */
3547 #ifndef YY_USER_ACTION
3548 #define YY_USER_ACTION
3549 #endif
3551 /* Code executed at the end of each rule. */
3552 #ifndef YY_BREAK
3553 #define YY_BREAK break;
3554 #endif
3556 #define YY_RULE_SETUP \
3557         if ( yyleng > 0 ) \
3558                 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
3559                                 (yytext[yyleng - 1] == '\n'); \
3560         YY_USER_ACTION
3562 /** The main scanner function which does all the work.
3563  */
3564 YY_DECL
3566         register yy_state_type yy_current_state;
3567         register char *yy_cp, *yy_bp;
3568         register int yy_act;
3569     
3570         if ( !(yy_init) )
3571                 {
3572                 (yy_init) = 1;
3574 #ifdef YY_USER_INIT
3575                 YY_USER_INIT;
3576 #endif
3578                 if ( ! (yy_start) )
3579                         (yy_start) = 1; /* first start state */
3581                 if ( ! yyin )
3582                         yyin = stdin;
3584                 if ( ! yyout )
3585                         yyout = stdout;
3587                 if ( ! YY_CURRENT_BUFFER ) {
3588                         yyensure_buffer_stack ();
3589                         YY_CURRENT_BUFFER_LVALUE =
3590                                 yy_create_buffer(yyin,YY_BUF_SIZE );
3591                 }
3593                 yy_load_buffer_state( );
3594                 }
3596         {
3597 #line 82 "scanner.l"
3599 #line 3600 "scanner.c"
3601         while ( 1 )             /* loops until end-of-file is reached */
3602                 {
3603                 yy_cp = (yy_c_buf_p);
3605                 /* Support of yytext. */
3606                 *yy_cp = (yy_hold_char);
3608                 /* yy_bp points to the position in yy_ch_buf of the start of
3609                  * the current run.
3610                  */
3611                 yy_bp = yy_cp;
3613                 yy_current_state = (yy_start);
3614                 yy_current_state += YY_AT_BOL();
3615 yy_match:
3616                 do
3617                         {
3618                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
3619                         if ( yy_accept[yy_current_state] )
3620                                 {
3621                                 (yy_last_accepting_state) = yy_current_state;
3622                                 (yy_last_accepting_cpos) = yy_cp;
3623                                 }
3624                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3625                                 {
3626                                 yy_current_state = (int) yy_def[yy_current_state];
3627                                 if ( yy_current_state >= 1519 )
3628                                         yy_c = yy_meta[(unsigned int) yy_c];
3629                                 }
3630                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3631                         ++yy_cp;
3632                         }
3633                 while ( yy_base[yy_current_state] != 9978 );
3635 yy_find_action:
3636                 yy_act = yy_accept[yy_current_state];
3637                 if ( yy_act == 0 )
3638                         { /* have to back up */
3639                         yy_cp = (yy_last_accepting_cpos);
3640                         yy_current_state = (yy_last_accepting_state);
3641                         yy_act = yy_accept[yy_current_state];
3642                         }
3644                 YY_DO_BEFORE_ACTION;
3646                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
3647                         {
3648                         yy_size_t yyl;
3649                         for ( yyl = 0; yyl < yyleng; ++yyl )
3650                                 if ( yytext[yyl] == '\n' )
3651                                            
3652     yylineno++;
3654                         }
3656 do_action:      /* This label is used only to access EOF actions. */
3658                 switch ( yy_act )
3659         { /* beginning of action switch */
3660                         case 0: /* must back up */
3661                         /* undo the effects of YY_DO_BEFORE_ACTION */
3662                         *yy_cp = (yy_hold_char);
3663                         yy_cp = (yy_last_accepting_cpos);
3664                         yy_current_state = (yy_last_accepting_state);
3665                         goto yy_find_action;
3667 case 1:
3668 #line 84 "scanner.l"
3669 case 2:
3670 YY_RULE_SETUP
3671 #line 84 "scanner.l"
3672 {/* ignore */}
3673         YY_BREAK
3674 case 3:
3675 /* rule 3 can match eol */
3676 YY_RULE_SETUP
3677 #line 86 "scanner.l"
3678 {/* continue line */}
3679         YY_BREAK
3680 case 4:
3681 /* rule 4 can match eol */
3682 YY_RULE_SETUP
3683 #line 88 "scanner.l"
3684 {return (EOL);}
3685         YY_BREAK
3686 case 5:
3687 YY_RULE_SETUP
3688 #line 89 "scanner.l"
3689 {return (SLASH);}
3690         YY_BREAK
3691 case 6:
3692 YY_RULE_SETUP
3693 #line 90 "scanner.l"
3694 {return (OPENBRAC);}
3695         YY_BREAK
3696 case 7:
3697 YY_RULE_SETUP
3698 #line 91 "scanner.l"
3699 {return (CLOSEBRAC);}
3700         YY_BREAK
3701 case 8:
3702 YY_RULE_SETUP
3703 #line 92 "scanner.l"
3704 {yylval.boolean = 1; return (BTRUE);}
3705         YY_BREAK
3706 case 9:
3707 YY_RULE_SETUP
3708 #line 93 "scanner.l"
3709 {yylval.boolean = 0; return (BFALSE);}
3710         YY_BREAK
3711 case 10:
3712 YY_RULE_SETUP
3713 #line 95 "scanner.l"
3714 {yylval.string = yytext; return (UNQUOTED_STRING);}
3715         YY_BREAK
3716 case 11:
3717 YY_RULE_SETUP
3718 #line 96 "scanner.l"
3719 {yylval.string = yytext; return (UNQUOTED_STRING);}
3720         YY_BREAK
3721 case 12:
3722 YY_RULE_SETUP
3723 #line 98 "scanner.l"
3724 {yylval.number = strtod (yytext, NULL); return (NUMBER);}
3725         YY_BREAK
3726 case 13:
3727 /* rule 13 can match eol */
3728 YY_RULE_SETUP
3729 #line 100 "scanner.l"
3730 {yylval.string = yytext; return (QUOTED_STRING);}
3731         YY_BREAK
3732 case 14:
3733 YY_RULE_SETUP
3734 #line 101 "scanner.l"
3735 {yylval.string = yytext; return (UNQUOTED_STRING);}
3736         YY_BREAK
3737 case 15:
3738 /* rule 15 can match eol */
3739 YY_RULE_SETUP
3740 #line 103 "scanner.l"
3742         int len = strlen (yytext);
3744         ml_pos = 0;
3746         /* remove "\\<EOL>" */
3747         if ('\r' == yytext[len - 2])
3748                 len -= 3;
3749         else
3750                 len -= 2;
3751         yytext[len] = '\0';
3753         ml_append (yytext);
3754         BEGIN (ML);
3756         YY_BREAK
3757 case 16:
3758 YY_RULE_SETUP
3759 #line 118 "scanner.l"
3760 {/* remove leading white-space */}
3761         YY_BREAK
3762 case 17:
3763 /* rule 17 can match eol */
3764 YY_RULE_SETUP
3765 #line 119 "scanner.l"
3767         int len = strlen (yytext);
3769         /* remove "\\<EOL>" */
3770         if ('\r' == yytext[len - 2])
3771                 len -= 3;
3772         else
3773                 len -= 2;
3774         yytext[len] = '\0';
3776         ml_append(yytext);
3778         YY_BREAK
3779 case 18:
3780 /* rule 18 can match eol */
3781 YY_RULE_SETUP
3782 #line 131 "scanner.l"
3784         ml_append(yytext);
3785         yylval.string = ml_buffer;
3787         BEGIN (INITIAL);
3788         return (QUOTED_STRING);
3790         YY_BREAK
3791 case 19:
3792 YY_RULE_SETUP
3793 #line 138 "scanner.l"
3794 ECHO;
3795         YY_BREAK
3796 #line 3797 "scanner.c"
3797 case YY_STATE_EOF(INITIAL):
3798 case YY_STATE_EOF(ML):
3799         yyterminate();
3801         case YY_END_OF_BUFFER:
3802                 {
3803                 /* Amount of text matched not including the EOB char. */
3804                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
3806                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
3807                 *yy_cp = (yy_hold_char);
3808                 YY_RESTORE_YY_MORE_OFFSET
3810                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
3811                         {
3812                         /* We're scanning a new file or input source.  It's
3813                          * possible that this happened because the user
3814                          * just pointed yyin at a new source and called
3815                          * yylex().  If so, then we have to assure
3816                          * consistency between YY_CURRENT_BUFFER and our
3817                          * globals.  Here is the right place to do so, because
3818                          * this is the first action (other than possibly a
3819                          * back-up) that will match for the new input source.
3820                          */
3821                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
3822                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
3823                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
3824                         }
3826                 /* Note that here we test for yy_c_buf_p "<=" to the position
3827                  * of the first EOB in the buffer, since yy_c_buf_p will
3828                  * already have been incremented past the NUL character
3829                  * (since all states make transitions on EOB to the
3830                  * end-of-buffer state).  Contrast this with the test
3831                  * in input().
3832                  */
3833                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
3834                         { /* This was really a NUL. */
3835                         yy_state_type yy_next_state;
3837                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
3839                         yy_current_state = yy_get_previous_state(  );
3841                         /* Okay, we're now positioned to make the NUL
3842                          * transition.  We couldn't have
3843                          * yy_get_previous_state() go ahead and do it
3844                          * for us because it doesn't know how to deal
3845                          * with the possibility of jamming (and we don't
3846                          * want to build jamming into it because then it
3847                          * will run more slowly).
3848                          */
3850                         yy_next_state = yy_try_NUL_trans( yy_current_state );
3852                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3854                         if ( yy_next_state )
3855                                 {
3856                                 /* Consume the NUL. */
3857                                 yy_cp = ++(yy_c_buf_p);
3858                                 yy_current_state = yy_next_state;
3859                                 goto yy_match;
3860                                 }
3862                         else
3863                                 {
3864                                 yy_cp = (yy_c_buf_p);
3865                                 goto yy_find_action;
3866                                 }
3867                         }
3869                 else switch ( yy_get_next_buffer(  ) )
3870                         {
3871                         case EOB_ACT_END_OF_FILE:
3872                                 {
3873                                 (yy_did_buffer_switch_on_eof) = 0;
3875                                 if ( yywrap( ) )
3876                                         {
3877                                         /* Note: because we've taken care in
3878                                          * yy_get_next_buffer() to have set up
3879                                          * yytext, we can now set up
3880                                          * yy_c_buf_p so that if some total
3881                                          * hoser (like flex itself) wants to
3882                                          * call the scanner after we return the
3883                                          * YY_NULL, it'll still work - another
3884                                          * YY_NULL will get returned.
3885                                          */
3886                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
3888                                         yy_act = YY_STATE_EOF(YY_START);
3889                                         goto do_action;
3890                                         }
3892                                 else
3893                                         {
3894                                         if ( ! (yy_did_buffer_switch_on_eof) )
3895                                                 YY_NEW_FILE;
3896                                         }
3897                                 break;
3898                                 }
3900                         case EOB_ACT_CONTINUE_SCAN:
3901                                 (yy_c_buf_p) =
3902                                         (yytext_ptr) + yy_amount_of_matched_text;
3904                                 yy_current_state = yy_get_previous_state(  );
3906                                 yy_cp = (yy_c_buf_p);
3907                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3908                                 goto yy_match;
3910                         case EOB_ACT_LAST_MATCH:
3911                                 (yy_c_buf_p) =
3912                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
3914                                 yy_current_state = yy_get_previous_state(  );
3916                                 yy_cp = (yy_c_buf_p);
3917                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3918                                 goto yy_find_action;
3919                         }
3920                 break;
3921                 }
3923         default:
3924                 YY_FATAL_ERROR(
3925                         "fatal flex scanner internal error--no action found" );
3926         } /* end of action switch */
3927                 } /* end of scanning one token */
3928         } /* end of user's declarations */
3929 } /* end of yylex */
3931 /* yy_get_next_buffer - try to read in a new buffer
3932  *
3933  * Returns a code representing an action:
3934  *      EOB_ACT_LAST_MATCH -
3935  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
3936  *      EOB_ACT_END_OF_FILE - end of file
3937  */
3938 static int yy_get_next_buffer (void)
3940         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
3941         register char *source = (yytext_ptr);
3942         register int number_to_move, i;
3943         int ret_val;
3945         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
3946                 YY_FATAL_ERROR(
3947                 "fatal flex scanner internal error--end of buffer missed" );
3949         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
3950                 { /* Don't try to fill the buffer, so this is an EOF. */
3951                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
3952                         {
3953                         /* We matched a single character, the EOB, so
3954                          * treat this as a final EOF.
3955                          */
3956                         return EOB_ACT_END_OF_FILE;
3957                         }
3959                 else
3960                         {
3961                         /* We matched some text prior to the EOB, first
3962                          * process it.
3963                          */
3964                         return EOB_ACT_LAST_MATCH;
3965                         }
3966                 }
3968         /* Try to read more data. */
3970         /* First move last chars to start of buffer. */
3971         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
3973         for ( i = 0; i < number_to_move; ++i )
3974                 *(dest++) = *(source++);
3976         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
3977                 /* don't do the read, it's not guaranteed to return an EOF,
3978                  * just force an EOF
3979                  */
3980                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
3982         else
3983                 {
3984                         yy_size_t num_to_read =
3985                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
3987                 while ( num_to_read <= 0 )
3988                         { /* Not enough room in the buffer - grow it. */
3990                         /* just a shorter name for the current buffer */
3991                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
3993                         int yy_c_buf_p_offset =
3994                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
3996                         if ( b->yy_is_our_buffer )
3997                                 {
3998                                 yy_size_t new_size = b->yy_buf_size * 2;
4000                                 if ( new_size <= 0 )
4001                                         b->yy_buf_size += b->yy_buf_size / 8;
4002                                 else
4003                                         b->yy_buf_size *= 2;
4005                                 b->yy_ch_buf = (char *)
4006                                         /* Include room in for 2 EOB chars. */
4007                                         yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
4008                                 }
4009                         else
4010                                 /* Can't grow it, we don't own it. */
4011                                 b->yy_ch_buf = 0;
4013                         if ( ! b->yy_ch_buf )
4014                                 YY_FATAL_ERROR(
4015                                 "fatal error - scanner input buffer overflow" );
4017                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
4019                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
4020                                                 number_to_move - 1;
4022                         }
4024                 if ( num_to_read > YY_READ_BUF_SIZE )
4025                         num_to_read = YY_READ_BUF_SIZE;
4027                 /* Read in more data. */
4028                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
4029                         (yy_n_chars), num_to_read );
4031                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
4032                 }
4034         if ( (yy_n_chars) == 0 )
4035                 {
4036                 if ( number_to_move == YY_MORE_ADJ )
4037                         {
4038                         ret_val = EOB_ACT_END_OF_FILE;
4039                         yyrestart(yyin  );
4040                         }
4042                 else
4043                         {
4044                         ret_val = EOB_ACT_LAST_MATCH;
4045                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
4046                                 YY_BUFFER_EOF_PENDING;
4047                         }
4048                 }
4050         else
4051                 ret_val = EOB_ACT_CONTINUE_SCAN;
4053         if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
4054                 /* Extend the array by 50%, plus the number we really need. */
4055                 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
4056                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
4057                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
4058                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
4059         }
4061         (yy_n_chars) += number_to_move;
4062         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
4063         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
4065         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
4067         return ret_val;
4070 /* yy_get_previous_state - get the state just before the EOB char was reached */
4072     static yy_state_type yy_get_previous_state (void)
4074         register yy_state_type yy_current_state;
4075         register char *yy_cp;
4076     
4077         yy_current_state = (yy_start);
4078         yy_current_state += YY_AT_BOL();
4080         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
4081                 {
4082                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
4083                 if ( yy_accept[yy_current_state] )
4084                         {
4085                         (yy_last_accepting_state) = yy_current_state;
4086                         (yy_last_accepting_cpos) = yy_cp;
4087                         }
4088                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
4089                         {
4090                         yy_current_state = (int) yy_def[yy_current_state];
4091                         if ( yy_current_state >= 1519 )
4092                                 yy_c = yy_meta[(unsigned int) yy_c];
4093                         }
4094                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
4095                 }
4097         return yy_current_state;
4100 /* yy_try_NUL_trans - try to make a transition on the NUL character
4101  *
4102  * synopsis
4103  *      next_state = yy_try_NUL_trans( current_state );
4104  */
4105     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
4107         register int yy_is_jam;
4108         register char *yy_cp = (yy_c_buf_p);
4110         register YY_CHAR yy_c = 1;
4111         if ( yy_accept[yy_current_state] )
4112                 {
4113                 (yy_last_accepting_state) = yy_current_state;
4114                 (yy_last_accepting_cpos) = yy_cp;
4115                 }
4116         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
4117                 {
4118                 yy_current_state = (int) yy_def[yy_current_state];
4119                 if ( yy_current_state >= 1519 )
4120                         yy_c = yy_meta[(unsigned int) yy_c];
4121                 }
4122         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
4123         yy_is_jam = (yy_current_state == 1518);
4125                 return yy_is_jam ? 0 : yy_current_state;
4128     static void yyunput (int c, register char * yy_bp )
4130         register char *yy_cp;
4131     
4132     yy_cp = (yy_c_buf_p);
4134         /* undo effects of setting up yytext */
4135         *yy_cp = (yy_hold_char);
4137         if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
4138                 { /* need to shift things up to make room */
4139                 /* +2 for EOB chars. */
4140                 register yy_size_t number_to_move = (yy_n_chars) + 2;
4141                 register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
4142                                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
4143                 register char *source =
4144                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
4146                 while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
4147                         *--dest = *--source;
4149                 yy_cp += (int) (dest - source);
4150                 yy_bp += (int) (dest - source);
4151                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
4152                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
4154                 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
4155                         YY_FATAL_ERROR( "flex scanner push-back overflow" );
4156                 }
4158         *--yy_cp = (char) c;
4160     if ( c == '\n' ){
4161         --yylineno;
4162     }
4164         (yytext_ptr) = yy_bp;
4165         (yy_hold_char) = *yy_cp;
4166         (yy_c_buf_p) = yy_cp;
4169 #ifndef YY_NO_INPUT
4170 #ifdef __cplusplus
4171     static int yyinput (void)
4172 #else
4173     static int input  (void)
4174 #endif
4177         int c;
4178     
4179         *(yy_c_buf_p) = (yy_hold_char);
4181         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
4182                 {
4183                 /* yy_c_buf_p now points to the character we want to return.
4184                  * If this occurs *before* the EOB characters, then it's a
4185                  * valid NUL; if not, then we've hit the end of the buffer.
4186                  */
4187                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
4188                         /* This was really a NUL. */
4189                         *(yy_c_buf_p) = '\0';
4191                 else
4192                         { /* need more input */
4193                         yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
4194                         ++(yy_c_buf_p);
4196                         switch ( yy_get_next_buffer(  ) )
4197                                 {
4198                                 case EOB_ACT_LAST_MATCH:
4199                                         /* This happens because yy_g_n_b()
4200                                          * sees that we've accumulated a
4201                                          * token and flags that we need to
4202                                          * try matching the token before
4203                                          * proceeding.  But for input(),
4204                                          * there's no matching to consider.
4205                                          * So convert the EOB_ACT_LAST_MATCH
4206                                          * to EOB_ACT_END_OF_FILE.
4207                                          */
4209                                         /* Reset buffer status. */
4210                                         yyrestart(yyin );
4212                                         /*FALLTHROUGH*/
4214                                 case EOB_ACT_END_OF_FILE:
4215                                         {
4216                                         if ( yywrap( ) )
4217                                                 return EOF;
4219                                         if ( ! (yy_did_buffer_switch_on_eof) )
4220                                                 YY_NEW_FILE;
4221 #ifdef __cplusplus
4222                                         return yyinput();
4223 #else
4224                                         return input();
4225 #endif
4226                                         }
4228                                 case EOB_ACT_CONTINUE_SCAN:
4229                                         (yy_c_buf_p) = (yytext_ptr) + offset;
4230                                         break;
4231                                 }
4232                         }
4233                 }
4235         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
4236         *(yy_c_buf_p) = '\0';   /* preserve yytext */
4237         (yy_hold_char) = *++(yy_c_buf_p);
4239         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
4240         if ( YY_CURRENT_BUFFER_LVALUE->yy_at_bol )
4241                    
4242     yylineno++;
4245         return c;
4247 #endif  /* ifndef YY_NO_INPUT */
4249 /** Immediately switch to a different input stream.
4250  * @param input_file A readable stream.
4251  * 
4252  * @note This function does not reset the start condition to @c INITIAL .
4253  */
4254     void yyrestart  (FILE * input_file )
4256     
4257         if ( ! YY_CURRENT_BUFFER ){
4258         yyensure_buffer_stack ();
4259                 YY_CURRENT_BUFFER_LVALUE =
4260             yy_create_buffer(yyin,YY_BUF_SIZE );
4261         }
4263         yy_init_buffer(YY_CURRENT_BUFFER,input_file );
4264         yy_load_buffer_state( );
4267 /** Switch to a different input buffer.
4268  * @param new_buffer The new input buffer.
4269  * 
4270  */
4271     void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
4273     
4274         /* TODO. We should be able to replace this entire function body
4275          * with
4276          *              yypop_buffer_state();
4277          *              yypush_buffer_state(new_buffer);
4278      */
4279         yyensure_buffer_stack ();
4280         if ( YY_CURRENT_BUFFER == new_buffer )
4281                 return;
4283         if ( YY_CURRENT_BUFFER )
4284                 {
4285                 /* Flush out information for old buffer. */
4286                 *(yy_c_buf_p) = (yy_hold_char);
4287                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
4288                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
4289                 }
4291         YY_CURRENT_BUFFER_LVALUE = new_buffer;
4292         yy_load_buffer_state( );
4294         /* We don't actually know whether we did this switch during
4295          * EOF (yywrap()) processing, but the only time this flag
4296          * is looked at is after yywrap() is called, so it's safe
4297          * to go ahead and always set it.
4298          */
4299         (yy_did_buffer_switch_on_eof) = 1;
4302 static void yy_load_buffer_state  (void)
4304         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
4305         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
4306         yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
4307         (yy_hold_char) = *(yy_c_buf_p);
4310 /** Allocate and initialize an input buffer state.
4311  * @param file A readable stream.
4312  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
4313  * 
4314  * @return the allocated buffer state.
4315  */
4316     YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
4318         YY_BUFFER_STATE b;
4319     
4320         b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
4321         if ( ! b )
4322                 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
4324         b->yy_buf_size = size;
4326         /* yy_ch_buf has to be 2 characters longer than the size given because
4327          * we need to put in 2 end-of-buffer characters.
4328          */
4329         b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2  );
4330         if ( ! b->yy_ch_buf )
4331                 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
4333         b->yy_is_our_buffer = 1;
4335         yy_init_buffer(b,file );
4337         return b;
4340 /** Destroy the buffer.
4341  * @param b a buffer created with yy_create_buffer()
4342  * 
4343  */
4344     void yy_delete_buffer (YY_BUFFER_STATE  b )
4346     
4347         if ( ! b )
4348                 return;
4350         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
4351                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
4353         if ( b->yy_is_our_buffer )
4354                 yyfree((void *) b->yy_ch_buf  );
4356         yyfree((void *) b  );
4359 /* Initializes or reinitializes a buffer.
4360  * This function is sometimes called more than once on the same buffer,
4361  * such as during a yyrestart() or at EOF.
4362  */
4363     static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
4366         int oerrno = errno;
4367     
4368         yy_flush_buffer(b );
4370         b->yy_input_file = file;
4371         b->yy_fill_buffer = 1;
4373     /* If b is the current buffer, then yy_init_buffer was _probably_
4374      * called from yyrestart() or through yy_get_next_buffer.
4375      * In that case, we don't want to reset the lineno or column.
4376      */
4377     if (b != YY_CURRENT_BUFFER){
4378         b->yy_bs_lineno = 1;
4379         b->yy_bs_column = 0;
4380     }
4382         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
4383     
4384         errno = oerrno;
4387 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
4388  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
4389  * 
4390  */
4391     void yy_flush_buffer (YY_BUFFER_STATE  b )
4393         if ( ! b )
4394                 return;
4396         b->yy_n_chars = 0;
4398         /* We always need two end-of-buffer characters.  The first causes
4399          * a transition to the end-of-buffer state.  The second causes
4400          * a jam in that state.
4401          */
4402         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
4403         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
4405         b->yy_buf_pos = &b->yy_ch_buf[0];
4407         b->yy_at_bol = 1;
4408         b->yy_buffer_status = YY_BUFFER_NEW;
4410         if ( b == YY_CURRENT_BUFFER )
4411                 yy_load_buffer_state( );
4414 /** Pushes the new state onto the stack. The new state becomes
4415  *  the current state. This function will allocate the stack
4416  *  if necessary.
4417  *  @param new_buffer The new state.
4418  *  
4419  */
4420 void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
4422         if (new_buffer == NULL)
4423                 return;
4425         yyensure_buffer_stack();
4427         /* This block is copied from yy_switch_to_buffer. */
4428         if ( YY_CURRENT_BUFFER )
4429                 {
4430                 /* Flush out information for old buffer. */
4431                 *(yy_c_buf_p) = (yy_hold_char);
4432                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
4433                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
4434                 }
4436         /* Only push if top exists. Otherwise, replace top. */
4437         if (YY_CURRENT_BUFFER)
4438                 (yy_buffer_stack_top)++;
4439         YY_CURRENT_BUFFER_LVALUE = new_buffer;
4441         /* copied from yy_switch_to_buffer. */
4442         yy_load_buffer_state( );
4443         (yy_did_buffer_switch_on_eof) = 1;
4446 /** Removes and deletes the top of the stack, if present.
4447  *  The next element becomes the new top.
4448  *  
4449  */
4450 void yypop_buffer_state (void)
4452         if (!YY_CURRENT_BUFFER)
4453                 return;
4455         yy_delete_buffer(YY_CURRENT_BUFFER );
4456         YY_CURRENT_BUFFER_LVALUE = NULL;
4457         if ((yy_buffer_stack_top) > 0)
4458                 --(yy_buffer_stack_top);
4460         if (YY_CURRENT_BUFFER) {
4461                 yy_load_buffer_state( );
4462                 (yy_did_buffer_switch_on_eof) = 1;
4463         }
4466 /* Allocates the stack if it does not exist.
4467  *  Guarantees space for at least one push.
4468  */
4469 static void yyensure_buffer_stack (void)
4471         yy_size_t num_to_alloc;
4472     
4473         if (!(yy_buffer_stack)) {
4475                 /* First allocation is just for 2 elements, since we don't know if this
4476                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
4477                  * immediate realloc on the next call.
4478          */
4479                 num_to_alloc = 1;
4480                 (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
4481                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
4482                                                                 );
4483                 if ( ! (yy_buffer_stack) )
4484                         YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
4485                                                                   
4486                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
4487                                 
4488                 (yy_buffer_stack_max) = num_to_alloc;
4489                 (yy_buffer_stack_top) = 0;
4490                 return;
4491         }
4493         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
4495                 /* Increase the buffer to prepare for a possible push. */
4496                 int grow_size = 8 /* arbitrary grow size */;
4498                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
4499                 (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
4500                                                                 ((yy_buffer_stack),
4501                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
4502                                                                 );
4503                 if ( ! (yy_buffer_stack) )
4504                         YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
4506                 /* zero only the new slots.*/
4507                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
4508                 (yy_buffer_stack_max) = num_to_alloc;
4509         }
4512 /** Setup the input buffer state to scan directly from a user-specified character buffer.
4513  * @param base the character buffer
4514  * @param size the size in bytes of the character buffer
4515  * 
4516  * @return the newly allocated buffer state object. 
4517  */
4518 YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
4520         YY_BUFFER_STATE b;
4521     
4522         if ( size < 2 ||
4523              base[size-2] != YY_END_OF_BUFFER_CHAR ||
4524              base[size-1] != YY_END_OF_BUFFER_CHAR )
4525                 /* They forgot to leave room for the EOB's. */
4526                 return 0;
4528         b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
4529         if ( ! b )
4530                 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
4532         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
4533         b->yy_buf_pos = b->yy_ch_buf = base;
4534         b->yy_is_our_buffer = 0;
4535         b->yy_input_file = 0;
4536         b->yy_n_chars = b->yy_buf_size;
4537         b->yy_is_interactive = 0;
4538         b->yy_at_bol = 1;
4539         b->yy_fill_buffer = 0;
4540         b->yy_buffer_status = YY_BUFFER_NEW;
4542         yy_switch_to_buffer(b  );
4544         return b;
4547 /** Setup the input buffer state to scan a string. The next call to yylex() will
4548  * scan from a @e copy of @a str.
4549  * @param yystr a NUL-terminated string to scan
4550  * 
4551  * @return the newly allocated buffer state object.
4552  * @note If you want to scan bytes that may contain NUL values, then use
4553  *       yy_scan_bytes() instead.
4554  */
4555 YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
4557     
4558         return yy_scan_bytes(yystr,strlen(yystr) );
4561 /** Setup the input buffer state to scan the given bytes. The next call to yylex() will
4562  * scan from a @e copy of @a bytes.
4563  * @param yybytes the byte buffer to scan
4564  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
4565  * 
4566  * @return the newly allocated buffer state object.
4567  */
4568 YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
4570         YY_BUFFER_STATE b;
4571         char *buf;
4572         yy_size_t n;
4573         yy_size_t i;
4574     
4575         /* Get memory for full buffer, including space for trailing EOB's. */
4576         n = _yybytes_len + 2;
4577         buf = (char *) yyalloc(n  );
4578         if ( ! buf )
4579                 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
4581         for ( i = 0; i < _yybytes_len; ++i )
4582                 buf[i] = yybytes[i];
4584         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
4586         b = yy_scan_buffer(buf,n );
4587         if ( ! b )
4588                 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
4590         /* It's okay to grow etc. this buffer, and we should throw it
4591          * away when we're done.
4592          */
4593         b->yy_is_our_buffer = 1;
4595         return b;
4598 #ifndef YY_EXIT_FAILURE
4599 #define YY_EXIT_FAILURE 2
4600 #endif
4602 static void yy_fatal_error (yyconst char* msg )
4604         (void) fprintf( stderr, "%s\n", msg );
4605         exit( YY_EXIT_FAILURE );
4608 /* Redefine yyless() so it works in section 3 code. */
4610 #undef yyless
4611 #define yyless(n) \
4612         do \
4613                 { \
4614                 /* Undo effects of setting up yytext. */ \
4615         int yyless_macro_arg = (n); \
4616         YY_LESS_LINENO(yyless_macro_arg);\
4617                 yytext[yyleng] = (yy_hold_char); \
4618                 (yy_c_buf_p) = yytext + yyless_macro_arg; \
4619                 (yy_hold_char) = *(yy_c_buf_p); \
4620                 *(yy_c_buf_p) = '\0'; \
4621                 yyleng = yyless_macro_arg; \
4622                 } \
4623         while ( 0 )
4625 /* Accessor  methods (get/set functions) to struct members. */
4627 /** Get the current line number.
4628  * 
4629  */
4630 int yyget_lineno  (void)
4632         
4633     return yylineno;
4636 /** Get the input stream.
4637  * 
4638  */
4639 FILE *yyget_in  (void)
4641         return yyin;
4644 /** Get the output stream.
4645  * 
4646  */
4647 FILE *yyget_out  (void)
4649         return yyout;
4652 /** Get the length of the current token.
4653  * 
4654  */
4655 yy_size_t yyget_leng  (void)
4657         return yyleng;
4660 /** Get the current token.
4661  * 
4662  */
4664 char *yyget_text  (void)
4666         return yytext;
4669 /** Set the current line number.
4670  * @param line_number
4671  * 
4672  */
4673 void yyset_lineno (int  line_number )
4675     
4676     yylineno = line_number;
4679 /** Set the input stream. This does not discard the current
4680  * input buffer.
4681  * @param in_str A readable stream.
4682  * 
4683  * @see yy_switch_to_buffer
4684  */
4685 void yyset_in (FILE *  in_str )
4687         yyin = in_str ;
4690 void yyset_out (FILE *  out_str )
4692         yyout = out_str ;
4695 int yyget_debug  (void)
4697         return yy_flex_debug;
4700 void yyset_debug (int  bdebug )
4702         yy_flex_debug = bdebug ;
4705 static int yy_init_globals (void)
4707         /* Initialization is the same as for the non-reentrant scanner.
4708      * This function is called from yylex_destroy(), so don't allocate here.
4709      */
4711     /* We do not touch yylineno unless the option is enabled. */
4712     yylineno =  1;
4713     
4714     (yy_buffer_stack) = 0;
4715     (yy_buffer_stack_top) = 0;
4716     (yy_buffer_stack_max) = 0;
4717     (yy_c_buf_p) = (char *) 0;
4718     (yy_init) = 0;
4719     (yy_start) = 0;
4721 /* Defined in main.c */
4722 #ifdef YY_STDINIT
4723     yyin = stdin;
4724     yyout = stdout;
4725 #else
4726     yyin = (FILE *) 0;
4727     yyout = (FILE *) 0;
4728 #endif
4730     /* For future reference: Set errno on error, since we are called by
4731      * yylex_init()
4732      */
4733     return 0;
4736 /* yylex_destroy is for both reentrant and non-reentrant scanners. */
4737 int yylex_destroy  (void)
4739     
4740     /* Pop the buffer stack, destroying each element. */
4741         while(YY_CURRENT_BUFFER){
4742                 yy_delete_buffer(YY_CURRENT_BUFFER  );
4743                 YY_CURRENT_BUFFER_LVALUE = NULL;
4744                 yypop_buffer_state();
4745         }
4747         /* Destroy the stack itself. */
4748         yyfree((yy_buffer_stack) );
4749         (yy_buffer_stack) = NULL;
4751     /* Reset the globals. This is important in a non-reentrant scanner so the next time
4752      * yylex() is called, initialization will occur. */
4753     yy_init_globals( );
4755     return 0;
4758 /*
4759  * Internal utility routines.
4760  */
4762 #ifndef yytext_ptr
4763 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
4765         register int i;
4766         for ( i = 0; i < n; ++i )
4767                 s1[i] = s2[i];
4769 #endif
4771 #ifdef YY_NEED_STRLEN
4772 static int yy_flex_strlen (yyconst char * s )
4774         register int n;
4775         for ( n = 0; s[n]; ++n )
4776                 ;
4778         return n;
4780 #endif
4782 void *yyalloc (yy_size_t  size )
4784         return (void *) malloc( size );
4787 void *yyrealloc  (void * ptr, yy_size_t  size )
4789         /* The cast to (char *) in the following accommodates both
4790          * implementations that use char* generic pointers, and those
4791          * that use void* generic pointers.  It works with the latter
4792          * because both ANSI C and C++ allow castless assignment from
4793          * any pointer type to void*, and deal with argument conversions
4794          * as though doing an assignment.
4795          */
4796         return (void *) realloc( (char *) ptr, size );
4799 void yyfree (void * ptr )
4801         free( (char *) ptr );   /* see yyrealloc() for (char *) cast */
4804 #define YYTABLES_NAME "yytables"
4806 #line 137 "scanner.l"
4809 static void ml_append (char *string)
4811         int len = strlen (string);
4812         int s;
4814         if (ml_free <= len) {
4815                 ml_len += len - ml_free + 1;
4816                 ml_buffer = (char *)realloc (ml_buffer, ml_len);
4817                 if (NULL == ml_buffer)
4818                         YY_FATAL_ERROR ("out of dynamic memory in ml_append");
4819         }
4821         s = snprintf (ml_buffer + ml_pos, ml_free, "%s", string);
4822         if ((0 > s) || (ml_free <= s))
4823                 YY_FATAL_ERROR ("failed to write to multiline buffer");
4825         ml_pos += s;
4826         return;
4827 } /* ml_append */