Fix for UBSan build
[platform/upstream/doxygen.git] / src / scanner.cpp
1
2 #line 3 "<stdout>"
3
4 #define  YY_INT_ALIGNED short int
5
6 /* A lexical scanner generated by flex */
7
8 #define yy_create_buffer scanYY_create_buffer
9 #define yy_delete_buffer scanYY_delete_buffer
10 #define yy_flex_debug scanYY_flex_debug
11 #define yy_init_buffer scanYY_init_buffer
12 #define yy_flush_buffer scanYY_flush_buffer
13 #define yy_load_buffer_state scanYY_load_buffer_state
14 #define yy_switch_to_buffer scanYY_switch_to_buffer
15 #define yyin scanYYin
16 #define yyleng scanYYleng
17 #define yylex scanYYlex
18 #define yylineno scanYYlineno
19 #define yyout scanYYout
20 #define yyrestart scanYYrestart
21 #define yytext scanYYtext
22 #define yywrap scanYYwrap
23 #define yyalloc scanYYalloc
24 #define yyrealloc scanYYrealloc
25 #define yyfree scanYYfree
26
27 #define FLEX_SCANNER
28 #define YY_FLEX_MAJOR_VERSION 2
29 #define YY_FLEX_MINOR_VERSION 5
30 #define YY_FLEX_SUBMINOR_VERSION 35
31 #if YY_FLEX_SUBMINOR_VERSION > 0
32 #define FLEX_BETA
33 #endif
34
35 /* First, we deal with  platform-specific or compiler-specific issues. */
36
37 /* begin standard C headers. */
38 #include <stdio.h>
39 #include <string.h>
40 #include <errno.h>
41 #include <stdlib.h>
42
43 /* end standard C headers. */
44
45 /* flex integer type definitions */
46
47 #ifndef FLEXINT_H
48 #define FLEXINT_H
49
50 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
51
52 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
53
54 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
55  * if you want the limit (max/min) macros for int types. 
56  */
57 #ifndef __STDC_LIMIT_MACROS
58 #define __STDC_LIMIT_MACROS 1
59 #endif
60
61 #include <inttypes.h>
62 typedef int8_t flex_int8_t;
63 typedef uint8_t flex_uint8_t;
64 typedef int16_t flex_int16_t;
65 typedef uint16_t flex_uint16_t;
66 typedef int32_t flex_int32_t;
67 typedef uint32_t flex_uint32_t;
68 typedef uint64_t flex_uint64_t;
69 #else
70 typedef signed char flex_int8_t;
71 typedef short int flex_int16_t;
72 typedef int flex_int32_t;
73 typedef unsigned char flex_uint8_t; 
74 typedef unsigned short int flex_uint16_t;
75 typedef unsigned int flex_uint32_t;
76 #endif /* ! C99 */
77
78 /* Limits of integral types. */
79 #ifndef INT8_MIN
80 #define INT8_MIN               (-128)
81 #endif
82 #ifndef INT16_MIN
83 #define INT16_MIN              (-32767-1)
84 #endif
85 #ifndef INT32_MIN
86 #define INT32_MIN              (-2147483647-1)
87 #endif
88 #ifndef INT8_MAX
89 #define INT8_MAX               (127)
90 #endif
91 #ifndef INT16_MAX
92 #define INT16_MAX              (32767)
93 #endif
94 #ifndef INT32_MAX
95 #define INT32_MAX              (2147483647)
96 #endif
97 #ifndef UINT8_MAX
98 #define UINT8_MAX              (255U)
99 #endif
100 #ifndef UINT16_MAX
101 #define UINT16_MAX             (65535U)
102 #endif
103 #ifndef UINT32_MAX
104 #define UINT32_MAX             (4294967295U)
105 #endif
106
107 #endif /* ! FLEXINT_H */
108
109 #ifdef __cplusplus
110
111 /* The "const" storage-class-modifier is valid. */
112 #define YY_USE_CONST
113
114 #else   /* ! __cplusplus */
115
116 /* C99 requires __STDC__ to be defined as 1. */
117 #if defined (__STDC__)
118
119 #define YY_USE_CONST
120
121 #endif  /* defined (__STDC__) */
122 #endif  /* ! __cplusplus */
123
124 #ifdef YY_USE_CONST
125 #define yyconst const
126 #else
127 #define yyconst
128 #endif
129
130 /* Returned upon end-of-file. */
131 #define YY_NULL 0
132
133 /* Promotes a possibly negative, possibly signed char to an unsigned
134  * integer for use as an array index.  If the signed char is negative,
135  * we want to instead treat it as an 8-bit unsigned char, hence the
136  * double cast.
137  */
138 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
139
140 /* Enter a start condition.  This macro really ought to take a parameter,
141  * but we do it the disgusting crufty way forced on us by the ()-less
142  * definition of BEGIN.
143  */
144 #define BEGIN (yy_start) = 1 + 2 *
145
146 /* Translate the current start state into a value that can be later handed
147  * to BEGIN to return to the state.  The YYSTATE alias is for lex
148  * compatibility.
149  */
150 #define YY_START (((yy_start) - 1) / 2)
151 #define YYSTATE YY_START
152
153 /* Action number for EOF rule of a given start state. */
154 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
155
156 /* Special action meaning "start processing a new file". */
157 #define YY_NEW_FILE scanYYrestart(scanYYin  )
158
159 #define YY_END_OF_BUFFER_CHAR 0
160
161 /* Size of default input buffer. */
162 #ifndef YY_BUF_SIZE
163 #define YY_BUF_SIZE 262144
164 #endif
165
166 /* The state buf must be large enough to hold one state per character in the main buffer.
167  */
168 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
169
170 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
171 #define YY_TYPEDEF_YY_BUFFER_STATE
172 typedef struct yy_buffer_state *YY_BUFFER_STATE;
173 #endif
174
175 #ifndef YY_TYPEDEF_YY_SIZE_T
176 #define YY_TYPEDEF_YY_SIZE_T
177 typedef size_t yy_size_t;
178 #endif
179
180 extern yy_size_t scanYYleng;
181
182 extern FILE *scanYYin, *scanYYout;
183
184 #define EOB_ACT_CONTINUE_SCAN 0
185 #define EOB_ACT_END_OF_FILE 1
186 #define EOB_ACT_LAST_MATCH 2
187
188     #define YY_LESS_LINENO(n)
189     
190 /* Return all but the first "n" matched characters back to the input stream. */
191 #define yyless(n) \
192         do \
193                 { \
194                 /* Undo effects of setting up scanYYtext. */ \
195         int yyless_macro_arg = (n); \
196         YY_LESS_LINENO(yyless_macro_arg);\
197                 *yy_cp = (yy_hold_char); \
198                 YY_RESTORE_YY_MORE_OFFSET \
199                 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
200                 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */ \
201                 } \
202         while ( 0 )
203
204 #define unput(c) yyunput( c, (yytext_ptr)  )
205
206 #ifndef YY_STRUCT_YY_BUFFER_STATE
207 #define YY_STRUCT_YY_BUFFER_STATE
208 struct yy_buffer_state
209         {
210         FILE *yy_input_file;
211
212         char *yy_ch_buf;                /* input buffer */
213         char *yy_buf_pos;               /* current position in input buffer */
214
215         /* Size of input buffer in bytes, not including room for EOB
216          * characters.
217          */
218         yy_size_t yy_buf_size;
219
220         /* Number of characters read into yy_ch_buf, not including EOB
221          * characters.
222          */
223         yy_size_t yy_n_chars;
224
225         /* Whether we "own" the buffer - i.e., we know we created it,
226          * and can realloc() it to grow it, and should free() it to
227          * delete it.
228          */
229         int yy_is_our_buffer;
230
231         /* Whether this is an "interactive" input source; if so, and
232          * if we're using stdio for input, then we want to use getc()
233          * instead of fread(), to make sure we stop fetching input after
234          * each newline.
235          */
236         int yy_is_interactive;
237
238         /* Whether we're considered to be at the beginning of a line.
239          * If so, '^' rules will be active on the next match, otherwise
240          * not.
241          */
242         int yy_at_bol;
243
244     int yy_bs_lineno; /**< The line count. */
245     int yy_bs_column; /**< The column count. */
246     
247         /* Whether to try to fill the input buffer when we reach the
248          * end of it.
249          */
250         int yy_fill_buffer;
251
252         int yy_buffer_status;
253
254 #define YY_BUFFER_NEW 0
255 #define YY_BUFFER_NORMAL 1
256         /* When an EOF's been seen but there's still some text to process
257          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
258          * shouldn't try reading from the input source any more.  We might
259          * still have a bunch of tokens to match, though, because of
260          * possible backing-up.
261          *
262          * When we actually see the EOF, we change the status to "new"
263          * (via scanYYrestart()), so that the user can continue scanning by
264          * just pointing scanYYin at a new input file.
265          */
266 #define YY_BUFFER_EOF_PENDING 2
267
268         };
269 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
270
271 /* Stack of input buffers. */
272 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
273 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
274 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
275
276 /* We provide macros for accessing buffer states in case in the
277  * future we want to put the buffer states in a more general
278  * "scanner state".
279  *
280  * Returns the top of the stack, or NULL.
281  */
282 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
283                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
284                           : NULL)
285
286 /* Same as previous macro, but useful when we know that the buffer stack is not
287  * NULL or when we need an lvalue. For internal use only.
288  */
289 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
290
291 /* yy_hold_char holds the character lost when scanYYtext is formed. */
292 static char yy_hold_char;
293 static yy_size_t yy_n_chars;            /* number of characters read into yy_ch_buf */
294 yy_size_t scanYYleng;
295
296 /* Points to current character in buffer. */
297 static char *yy_c_buf_p = (char *) 0;
298 static int yy_init = 0;         /* whether we need to initialize */
299 static int yy_start = 0;        /* start state number */
300
301 /* Flag which is used to allow scanYYwrap()'s to do buffer switches
302  * instead of setting up a fresh scanYYin.  A bit of a hack ...
303  */
304 static int yy_did_buffer_switch_on_eof;
305
306 void scanYYrestart (FILE *input_file  );
307 void scanYY_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
308 YY_BUFFER_STATE scanYY_create_buffer (FILE *file,int size  );
309 void scanYY_delete_buffer (YY_BUFFER_STATE b  );
310 void scanYY_flush_buffer (YY_BUFFER_STATE b  );
311 void scanYYpush_buffer_state (YY_BUFFER_STATE new_buffer  );
312 void scanYYpop_buffer_state (void );
313
314 static void scanYYensure_buffer_stack (void );
315 static void scanYY_load_buffer_state (void );
316 static void scanYY_init_buffer (YY_BUFFER_STATE b,FILE *file  );
317
318 #define YY_FLUSH_BUFFER scanYY_flush_buffer(YY_CURRENT_BUFFER )
319
320 YY_BUFFER_STATE scanYY_scan_buffer (char *base,yy_size_t size  );
321 YY_BUFFER_STATE scanYY_scan_string (yyconst char *yy_str  );
322 YY_BUFFER_STATE scanYY_scan_bytes (yyconst char *bytes,yy_size_t len  );
323
324 void *scanYYalloc (yy_size_t  );
325 void *scanYYrealloc (void *,yy_size_t  );
326 void scanYYfree (void *  );
327
328 #define yy_new_buffer scanYY_create_buffer
329
330 #define yy_set_interactive(is_interactive) \
331         { \
332         if ( ! YY_CURRENT_BUFFER ){ \
333         scanYYensure_buffer_stack (); \
334                 YY_CURRENT_BUFFER_LVALUE =    \
335             scanYY_create_buffer(scanYYin,YY_BUF_SIZE ); \
336         } \
337         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
338         }
339
340 #define yy_set_bol(at_bol) \
341         { \
342         if ( ! YY_CURRENT_BUFFER ){\
343         scanYYensure_buffer_stack (); \
344                 YY_CURRENT_BUFFER_LVALUE =    \
345             scanYY_create_buffer(scanYYin,YY_BUF_SIZE ); \
346         } \
347         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
348         }
349
350 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
351
352 /* Begin user sect3 */
353
354 #define scanYYwrap(n) 1
355 #define YY_SKIP_YYWRAP
356
357 typedef unsigned char YY_CHAR;
358
359 FILE *scanYYin = (FILE *) 0, *scanYYout = (FILE *) 0;
360
361 typedef int yy_state_type;
362
363 extern int scanYYlineno;
364
365 int scanYYlineno = 1;
366
367 extern char *scanYYtext;
368 #define yytext_ptr scanYYtext
369
370 static yy_state_type yy_get_previous_state (void );
371 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
372 static int yy_get_next_buffer (void );
373 static void yy_fatal_error (yyconst char msg[]  );
374
375 /* Done after the current pattern has been matched and before the
376  * corresponding action - sets up scanYYtext.
377  */
378 #define YY_DO_BEFORE_ACTION \
379         (yytext_ptr) = yy_bp; \
380         scanYYleng = (yy_size_t) (yy_cp - yy_bp); \
381         (yy_hold_char) = *yy_cp; \
382         *yy_cp = '\0'; \
383         (yy_c_buf_p) = yy_cp;
384
385 #define YY_NUM_RULES 680
386 #define YY_END_OF_BUFFER 681
387 /* This struct is not used in this scanner,
388    but its presence is necessary. */
389 struct yy_trans_info
390         {
391         flex_int32_t yy_verify;
392         flex_int32_t yy_nxt;
393         };
394 static yyconst flex_int16_t yy_acclist[5037] =
395     {   0,
396        40,   40,  353,  353,  353,  353,  353,  353,  350,  350,
397        51,   51,   57,   57,  410,  410,  410,  410,  681,  675,
398       680,  670,  680,  671,  674,  675,  680,  672,  675,  680,
399       673,  675,  680,  675,  680,  675,  680,  221,  675,  680,
400       227,  675,  680,  227,  675,  680,  222,  670,  680,  226,
401       227,  671,  674,  675,  680,  227,  672,  675,  680,  227,
402       673,  675,  680,  227,  675,  680,  227,  675,  680,  675,
403       680,  670,  680,  675,  680,  675,  680,  675,  680,  675,
404       680,  527,  675,  680,  528,  675,  680,  538,  539,  675,
405       680,16920,16921,  567,  675,  680,  675,  680,  675,  680,
406
407       670,  680,  675,  680,  675,  680,  675,  680,  561,  675,
408       680,  544,  675,  680,  566,  675,  680,  541,  675,  680,
409       675,  680,  560,  675,  680,  580,  675,  680,  675,  680,
410       543,  675,  680,  543,  675,  680,  543,  675,  680,  555,
411       675,  680,  554,  670,  680,  555,  671,  674,  675,  680,
412       547,  555,  672,  675,  680,  555,  675,  680,  555,  673,
413       675,  680,  555,  675,  680,  550,  555,  675,  680,  549,
414       555,  675,  680,  551,  555,  675,  680,  555,  675,  680,
415       553,  555,  675,  680,  553,  555,  675,  680,  548,  555,
416       675,  680,  675,  680,  675,  680,  559,  675,  680,  556,
417
418       675,  680,  534,  675,  680,  534,  671,  674,  675,  680,
419       534,  672,  675,  680,  534,  673,  675,  680,  159,  534,
420       675,  680,  160,  534,  675,  680,  534,  675,  680,  533,
421       534,  675,  680,  532,  534,  675,  680,   41,  675,  680,
422        40,   41,  675,  680,   39,  670,  680,   41,  671,  674,
423       675,  680,   41,  672,  675,  680,   41,  675,  680,   41,
424       673,  675,  680,   41,  675,  680,   38,   41,  675,  680,
425        35,   41,  675,  680,   36,   41,  675,  680,   37,   41,
426       675,  680,   43,  675,  680,   43,  671,  674,  675,  680,
427        43,  672,  675,  680,   43,  673,  675,  680,   43,  675,
428
429       680,   42,   43,  675,  680,  470,  675,  680,  469,  670,
430       680,  470,  671,  674,  675,  680,  470,  672,  675,  680,
431       470,  675,  680,  470,  673,  675,  680,  470,  675,  680,
432       467,  470,  675,  680,  468,  470,  675,  680,  675,  680,
433       670,  680,  675,  680,  675,  680,  597,  675,  680,  675,
434       680,  581,  675,  680,  597,  675,  680,  575,  576,  577,
435       675,  680,  675,  680,  598,  675,  680,  574,  675,  680,
436       573,  574,  675,  680,  573,  670,  680,  574,  671,  674,
437       675,  680,  574,  672,  675,  680,  574,  673,  675,  680,
438       574,  675,  680,  574,  675,  680,  574,  675,  680,  574,
439
440       675,  680,    9,  671,  674,  675,  680,    7,  673,  675,
441       680,    2,  675,  680,   10,  675,  680,   10,  675,  680,
442         1,  675,  680,  315,  675,  680,  315,  671,  674,  675,
443       680,  315,  672,  675,  680,  315,  673,  675,  680,   11,
444       315,  675,  680,  315,  675,  680,   11,  315,  675,  680,
445       316,  675,  680,  317,  670,  680,  316,  671,  674,  675,
446       680,  316,  672,  675,  680,  316,  673,  675,  680,   12,
447       316,  675,  680,  316,  675,  680,   12,  316,  675,  680,
448        12,  316,  675,  680,   61,  675,  680,   61,  670,  680,
449        61,  675,  680,  675,  680,  211,  672,  675,  680,  675,
450
451       680,  229,  675,  680,  230,  675,  680,  406,  675,  680,
452        47,  675,  680,  318,  675,  680,  197,  675,  680,  675,
453       680,  675,  680,  314,  675,  680,  318,  675,  680,  340,
454       675,  680,  236,  675,  680,  675,  680,  675,  680,  188,
455       675,  680,  188,  675,  680,  319,  675,  680,  229,  675,
456       680,  188,  675,  680,  188,  675,  680,  188,  675,  680,
457       188,  675,  680,  188,  675,  680,  188,  675,  680,  188,
458       675,  680,  188,  675,  680,  188,  675,  680,  188,  675,
459       680,  188,  675,  680,  188,  675,  680,  188,  675,  680,
460       188,  675,  680,  188,  675,  680,  188,  675,  680,  188,
461
462       675,  680,  188,  675,  680,  616,  675,  680,   16,   18,
463       675,  680,   17,  670,  680,   16,   18,  671,  674,  675,
464       680,   16,   18,  672,  675,  680,   16,   18,  673,  675,
465       680,   16,   18,  675,  680,   18,  675,  680,  675,  680,
466       670,  680,  675,  680,  675,  680,  675,  680,  188,  675,
467       680,  675,  680,  670,  680,  675,  680,  211,  672,  675,
468       680,  675,  680,  346,  675,  680,  351,  675,  680,  675,
469       680,  348,  675,  680,  347,  675,  680,  345,  675,  680,
470       352,  675,  680,  675,  680,  465,  672,  675,  680,  496,
471       675,  680,  498,  675,  680,  497,  675,  680,  498,  675,
472
473       680,  483,  675,  680,  464,  483,  675,  680,  464,  670,
474       680,  483,  671,  674,  675,  680,  465,  483,  672,  675,
475       680,  483,  673,  675,  680,  445,  483,  675,  680,  446,
476       483,  675,  680,  463,  483,  675,  680,  483,  675,  680,
477       491,  675,  680,  491,  671,  674,  675,  680,  491,  672,
478       675,  680,  491,  673,  675,  680,  489,  491,  675,  680,
479       490,  491,  675,  680,  491,  675,  680,  495,  675,  680,
480       494,  670,  680,  495,  671,  674,  675,  680,  495,  672,
481       675,  680,  495,  673,  675,  680,  495,  675,  680,  493,
482       495,  675,  680,  492,  495,  675,  680,  464,  483,  675,
483
484       680,  464,  670,  680,  483,  675,  680,  447,  483,  675,
485       680,  483,  675,  680,  483,  675,  680,  466,  483,  675,
486       680,  478,  483,  675,  680,  478,  483,  675,  680,  478,
487       483,  675,  680,  478,  483,  675,  680,  478,  483,  675,
488       680,  478,  483,  675,  680,  478,  483,  675,  680,  478,
489       483,  675,  680,  478,  483,  675,  680,  478,  483,  675,
490       680,  461,  675,  680,  461,  675,  680,  462,  670,  680,
491       461,  671,  674,  675,  680,  461,  672,  675,  680,  461,
492       673,  675,  680,  461,  675,  680,  460,  461,  675,  680,
493       461,  675,  680,  461,  675,  680,  461,  675,  680,  124,
494
495       675,  680,  124,  670,  680,  124,  671,  674,  675,  680,
496       124,  672,  675,  680,  124,  673,  675,  680,  126,  675,
497       680,  124,  675,  680,  123,  124,  675,  680,  124,  675,
498       680,  335,  675,  680,  335,  671,  674,  675,  680,  335,
499       672,  675,  680,  335,  673,  675,  680,  335,  675,  680,
500       334,  335,  675,  680,  332,  335,  675,  680,  353,  378,
501       675,  680,  353,  376,  378,  675,  680,  376,  670,  680,
502       376,  378,  675,  680,  358,  378,  671,  674,  675,  680,
503       355,  378,  672,  675,  680,  361,  378,  673,  675,  680,
504       378,  675,  680,  378,  675,  680,  378,  675,  680,  363,
505
506       378,  675,  680,  365,  378,  675,  680,  365,  378,  675,
507       680,  378,  675,  680,  364,  378,  675,  680,  675,  680,
508       147,  675,  680,  142,  675,  680,  141,  675,  680,  141,
509       675,  680,  144,  675,  680,  145,  670,  680,  144,  671,
510       674,  675,  680,  144,  672,  675,  680,  144,  673,  675,
511       680,  144,  675,  680,  143,  144,  675,  680,  675,  680,
512       670,  680,  675,  680,  675,  680,  675,  680,  146,  675,
513       680,  509,  520,  675,  680,  509,  520,  675,  680,  507,
514       670,  680,  505,  520,  671,  674,  675,  680,  516,  520,
515       672,  675,  680,  519,  520,  673,  675,  680,  520,  675,
516
517       680,  520,  675,  680,  520,  675,  680,  520,  675,  680,
518       500,  520,  675,  680,  501,  520,  675,  680,  509,  520,
519       675,  680,  506,  516,  520,  672,  675,  680,  510,  670,
520       680,  520,  671,  674,  675,  680,  520,  675,  680,  520,
521       675,  680,  504,  675,  680,  526,  675,  680,  525,  670,
522       680,  522,  526,  671,  674,  675,  680,  526,  672,  675,
523       680,  526,  673,  675,  680,  526,  675,  680,  526,  675,
524       680,  526,  675,  680,  526,  671,  674,  675,  680,  523,
525       526,  673,  675,  680,  514,  520,  671,  674,  675,  680,
526       516,  520,  672,  675,  680,  520,  675,  680,  515,  520,
527
528       675,  680,  499,  520,  675,  680,  217,  675,  680,  219,
529       670,  680,  217,  675,  680,  217,  671,  674,  675,  680,
530       217,  672,  675,  680,  217,  673,  675,  680,  217,  675,
531       680,  217,  675,  680,  669,  675,  680,  669,  675,  680,
532       669,  671,  674,  675,  680,  669,  672,  675,  680,  669,
533       673,  675,  680,  675,  680,  669,  675,  680,  675,  680,
534       668,  670,  680,  671,  674,  675,  680,  672,  675,  680,
535       673,  675,  680,  675,  680,  675,  680,    5,  675,  680,
536         6,  675,  680,    3,  675,  680,    4,  675,  680,  344,
537       675,  680,  343,  344,  675,  680,  343,  670,  680,  344,
538
539       671,  674,  675,  680,  344,  672,  675,  680,  344,  673,
540       675,  680,  344,  675,  680,  342,  344,  675,  680,  341,
541       344,  675,  680,  592,  675,  680,  593,  675,  680,  596,
542       671,  674,  675,  680,  594,  675,  680,  595,  675,  680,
543       339,  675,  680,  338,  671,  674,  675,  680,  339,  672,
544       675,  680,  339,  673,  675,  680,  339,  675,  680,  336,
545       675,  680,  337,  675,  680,  350,  675,  680,  349,  670,
546       680,  350,  671,  674,  675,  680,  350,  672,  675,  680,
547       350,  673,  675,  680,  350,  675,  680,  191,  675,  680,
548       190,  191,  675,  680,  190,  670,  680,  191,  671,  674,
549
550       675,  680,  191,  672,  675,  680,  191,  673,  675,  680,
551       189,  191,  675,  680,  191,  675,  680,  194,  675,  680,
552       193,  194,  675,  680,  193,  670,  680,  194,  671,  674,
553       675,  680,  194,  672,  675,  680,  194,  673,  675,  680,
554       192,  194,  675,  680,  194,  675,  680,  675,  680,  369,
555       675,  680,  368,  675,  680,  368,  675,  680,  368,  675,
556       680,  206,  675,  680,  204,  670,  680,  206,  671,  674,
557       675,  680,  206,  672,  675,  680,  206,  673,  675,  680,
558       206,  675,  680,  205,  206,  675,  680,  209,  675,  680,
559       209,  675,  680,  208,  670,  680,  209,  671,  674,  675,
560
561       680,  209,  672,  675,  680,  209,  673,  675,  680,  209,
562       675,  680,  209,  675,  680,  608,  610,  675,  680,  603,
563       610,  675,  680,  603,  670,  680,  608,  610,  671,  674,
564       675,  680,  608,  610,  672,  675,  680,  608,  610,  673,
565       675,  680,  610,  675,  680,  610,  675,  680,  610,  675,
566       680,  608,  610,  675,  680,  675,  680,   78,  675,  680,
567        77,  675,  680,   79,  675,  680,  675,  680,  675,  680,
568       675,  680,  136,  675,  680,  133,  675,  680,16516,  675,
569       680,  670,  680,  675,  680,  135,  675,  680,  624,  675,
570       680,  625,  670,  680,  624,  671,  674,  675,  680,  624,
571
572       672,  675,  680,  624,  673,  675,  680,  624,  675,  680,
573       624,  675,  680,  624,  675,  680,  624,  675,  680,  624,
574       675,  680,  617,  624,  675,  680,  618,  624,  675,  680,
575       530,  675,  680,  215,  675,  680,  216,  670,  680,  215,
576       671,  674,  675,  680,  215,  672,  675,  680,  215,  673,
577       675,  680,  215,  675,  680,  675,  680,  675,  680,  224,
578       675,  680,  224,  671,  674,  675,  680,  224,  672,  675,
579       680,  224,  673,  675,  680,  224,  675,  680,  223,  224,
580       675,  680,  482,  675,  680,  482,  675,  680,  482,  671,
581       674,  675,  680,  482,  672,  675,  680,  482,  675,  680,
582
583       482,  673,  675,  680,  479,  482,  675,  680,  482,  675,
584       680,  479,  482,  675,  680,  480,  482,  675,  680,  481,
585       482,  675,  680,  259,  263,  675,  680,  262,  670,  680,
586       261,  263,  671,  674,  675,  680,  259,  263,  672,  675,
587       680,  259,  263,  673,  675,  680,  259,  263,  675,  680,
588       675,  680,   48,  675,  680,   50,  675,  680,   59,  675,
589       680,   49,  675,  680,   60,  675,  680,   51,  675,  680,
590        51,  670,  680,   51,  671,  674,  675,  680,   51,  672,
591       675,  680,   51,  673,  675,  680,   52,  675,  680,   51,
592       675,  680,  675,  680,   56,  675,  680,  675,  680,   53,
593
594       675,  680,   54,  675,  680,   57,  675,  680,   57,  670,
595       680,   57,  671,  674,  675,  680,   57,  672,  675,  680,
596        57,  673,  675,  680,   58,  675,  680,   57,  675,  680,
597       531,  675,  680,   74,  675,  680,  675,  680,  675,  680,
598       675,  680,  675,  680,  675,  680,  675,  680,  675,  680,
599       675,  680,   76,  675,  680,  177,  675,  680,  675,  680,
600       174,  675,  680,  178,  675,  680,  178,  675,  680,  178,
601       675,  680,  675,  680,  179,  675,  680,  175,  675,  680,
602       675,  680,  675,  680,  675,  680,  675,  680,  675,  680,
603       185,  675,  680,  675,  680,  186,  675,  680,  265,  675,
604
605       680,  265,  675,  680,  257,  670,  680,  249,  265,  671,
606       674,  675,  680,  265,  672,  675,  680,  255,  265,  673,
607       675,  680,  237,  253,  265,  675,  680,  254,  265,  675,
608       680,  239,  265,  675,  680,  265,  675,  680,  265,  675,
609       680,  239,  265,  675,  680,  253,  265,  675,  680,  254,
610       265,  675,  680,  265,  675,  680,  265,  675,  680,  265,
611       675,  680,  265,  675,  680,  253,  265,  675,  680,  265,
612       675,  680,  238,  253,  265,  675,  680,  675,  680,  670,
613       680,  675,  680,  675,  680,  675,  680,  210,  675,  680,
614       675,  680,  670,  680,  675,  680,  675,  680,  371,  675,
615
616       680,  372,  675,  680,  675,  680,  372,  675,  680,  373,
617       675,  680,  370,  675,  680,  374,  675,  680,  375,  675,
618       680,  161,  675,  680,  161,  671,  674,  675,  680,  161,
619       672,  675,  680,  161,  673,  675,  680,  159,  161,  675,
620       680,  160,  161,  675,  680,  161,  675,  680,  153,  161,
621       675,  680,  155,  161,  675,  680,16541,  382,  675,  680,
622       382,  675,  680,  670,  680,  382,  675,  680,  382,  671,
623       674,  675,  680,  382,  672,  675,  680,  382,  675,  680,
624       382,  673,  675,  680,  382,  675,  680,  382,  675,  680,
625       381,  382,  675,  680,  386,  675,  680,  384,  670,  680,
626
627       386,  671,  674,  675,  680,  386,  672,  675,  680,  386,
628       673,  675,  680,  385,  386,  675,  680,  386,  675,  680,
629       390,  675,  680,  392,  675,  680,  675,  680,  407,  444,
630       675,  680,  410,  444,  675,  680,  410,  443,  670,  680,
631       412,  444,  671,  674,  675,  680,  444,  672,  675,  680,
632       442,  444,  673,  675,  680,  413,  444,  675,  680,  414,
633       444,  675,  680,  444,  675,  680,  407,  444,  675,  680,
634       407,  444,  675,  680,  407,  444,  675,  680,  444,  675,
635       680,  432,  444,  675,  680,  433,  444,  675,  680,  444,
636       675,  680,  444,  675,  680,  444,  675,  680,  203,  675,
637
638       680,  202,  670,  680,  203,  671,  674,  675,  680,  203,
639       672,  675,  680,  203,  673,  675,  680,  203,  675,  680,
640       201,  203,  675,  680,  675,  680,  129,  675,  680,  675,
641       680,  131,  675,  680,  130,  675,  680,  271,  675,  680,
642       270,  670,  680,  267,  271,  671,  674,  675,  680,  271,
643       672,  675,  680,  271,  673,  675,  680,  271,  675,  680,
644       271,  675,  680,  271,  675,  680,  271,  671,  674,  675,
645       680,  268,  271,  673,  675,  680,  277,  675,  680,  276,
646       670,  680,  273,  277,  671,  674,  675,  680,  277,  672,
647       675,  680,  277,  673,  675,  680,  277,  675,  680,  277,
648
649       675,  680,  277,  675,  680,  277,  671,  674,  675,  680,
650       274,  277,  673,  675,  680,  284,  285,  675,  680,  281,
651       670,  680,  278,  285,  671,  674,  675,  680,  284,  285,
652       672,  675,  680,  282,  285,  673,  675,  680,  279,  285,
653       675,  680,  280,  285,  675,  680,  284,  285,  675,  680,
654       299,  302,  675,  680,  301,  670,  680,  294,  302,  671,
655       674,  675,  680,  299,  302,  672,  675,  680,  295,  302,
656       673,  675,  680,  300,  302,  675,  680,  296,  302,  675,
657       680,  297,  302,  675,  680,  292,  293,  675,  680,  289,
658       670,  680,  286,  293,  671,  674,  675,  680,  292,  293,
659
660       672,  675,  680,  290,  293,  673,  675,  680,  287,  293,
661       675,  680,  288,  293,  675,  680,  293,  675,  680,  310,
662       313,  675,  680,  312,  670,  680,  305,  313,  671,  674,
663       675,  680,  310,  313,  672,  675,  680,  306,  313,  673,
664       675,  680,  311,  313,  675,  680,  307,  313,  675,  680,
665       308,  313,  675,  680,  310,  313,  672,  675,  680,  602,
666       675,  680,  602,  675,  680,  601,  670,  680,  602,  671,
667       674,  675,  680,  602,  672,  675,  680,  602,  673,  675,
668       680,  599,  602,  675,  680,  600,  602,  675,  680,  602,
669       675,  680,  591,  675,  680,  584,  591,  675,  680,  584,
670
671       670,  680,  591,  671,  674,  675,  680,  591,  672,  675,
672       680,  591,  673,  675,  680,  589,  591,  675,  680,  590,
673       591,  675,  680,  591,  675,  680,  582,  591,  675,  680,
674       583,  591,  675,  680,  591,  675,  680,  476,  675,  680,
675       477,  670,  680,  472,  476,  671,  674,  675,  680,  476,
676       672,  675,  680,  476,  675,  680,  473,  476,  673,  675,
677       680,  476,  675,  680,  471,  476,  675,  680,  475,  476,
678       675,  680,  393,  483,  675,  680,  394,  483,  675,  680,
679       398,  675,  680,  398,  671,  674,  675,  680,  398,  672,
680       675,  680,  398,  673,  675,  680,  398,  675,  680,  398,
681
682       675,  680,  403,  675,  680,  402,  403,  675,  680,  402,
683       670,  680,  403,  671,  674,  675,  680,  403,  672,  675,
684       680,  403,  673,  675,  680,  399,  403,  675,  680,  400,
685       403,  675,  680,  401,  403,  675,  680,  403,  675,  680,
686       333,  335,  675,  680,  408,  444,  675,  680,  443,  670,
687       680,  439,  444,  671,  674,  675,  680,  408,  444,  672,
688       675,  680,  444,  673,  675,  680,  408,  444,  675,  680,
689       444,  675,  680,  444,  671,  674,  675,  680,  440,  444,
690       673,  675,  680,  409,  444,  675,  680,  409,  444,  672,
691       675,  680,  434,  444,  675,  680,  435,  444,  675,  680,
692
693       444,  675,  680,  409,  444,  675,  680,  409,  444,  675,
694       680,  409,  444,  675,  680,  436,  444,  675,  680,  437,
695       444,  675,  680,  421,  430,  675,  680,  429,  670,  680,
696       421,  430,  671,  674,  675,  680,  421,  430,  672,  675,
697       680,  421,  430,  673,  675,  680,  430,  675,  680,  421,
698       430,  675,  680,  430,  675,  680,  421,  430,  675,  680,
699       430,  675,  680,16804,  427,  428,  675,  680,  423,  670,
700       680,  427,  428,  671,  674,  675,  680,  427,  428,  672,
701       675,  680,  427,  428,  673,  675,  680,  427,  428,  675,
702       680,  428,  675,  680,  430,  675,  680,  430,  671,  674,
703
704       675,  680,  430,  672,  675,  680,  430,  673,  675,  680,
705       430,  675,  680,  430,  675,  680,  675,  680,  673,  675,
706       680,  165,  675,  680,  168,  675,  680,  168,  671,  674,
707       675,  680,  168,  672,  675,  680,  168,  673,  675,  680,
708       168,  675,  680,  168,  675,  680,  167,  168,  675,  680,
709       675,  680,  673,  675,  680,  163,  675,  680,  171,  675,
710       680,  170,  670,  680,  171,  671,  674,  675,  680,  171,
711       672,  675,  680,  171,  673,  675,  680,  171,  675,  680,
712       171,  675,  680,  169,  171,  675,  680,  246,  247,  675,
713       680,  246,  248,  670,  680,  246,  247,  671,  674,  675,
714
715       680,  246,  247,  672,  675,  680,  246,  247,  673,  675,
716       680,  247,  675,  680,  246,  247,  675,  680,  242,  243,
717       675,  680,  242,  244,  670,  680,  242,  243,  671,  674,
718       675,  680,  242,  243,  672,  675,  680,  242,  243,  673,
719       675,  680,  243,  675,  680,  242,  243,  675,  680,  323,
720       675,  680,  323,  671,  674,  675,  680,  323,  672,  675,
721       680,  323,  673,  675,  680,  323,  675,  680,  320,  323,
722       675,  680,  323,  675,  680,  331,  675,  680,  331,  675,
723       680,  670,  680,  331,  671,  674,  675,  680,  331,  672,
724       675,  680,  331,  675,  680,  331,  673,  675,  680,  331,
725
726       675,  680,  330,  331,  675,  680,  327,  331,  675,  680,
727       331,  675,  680,  675,  680,  670,  680,  675,  680,  324,
728       675,  680,  665,  675,  680,  665,  671,  674,  675,  680,
729       665,  672,  675,  680,  665,  673,  675,  680,  651,  665,
730       675,  680,  665,  675,  680,  665,  675,  680,  656,  675,
731       680,  656,  675,  680,  670,  680,  656,  675,  680,  656,
732       671,  674,  675,  680,  656,  672,  675,  680,  656,  675,
733       680,  656,  673,  675,  680,  654,  656,  675,  680,  655,
734       656,  675,  680,  656,  675,  680,  656,  675,  680,  653,
735       656,  675,  680,  664,  675,  680,  664,  675,  680,  664,
736
737       671,  674,  675,  680,  664,  672,  675,  680,  664,  673,
738       675,  680,  664,  675,  680,  664,  675,  680,  664,  675,
739       680,  664,  675,  680,  664,  675,  680,  657,  664,  675,
740       680,  663,  675,  680,  663,  671,  674,  675,  680,  663,
741       672,  675,  680,  663,  673,  675,  680,  662,  663,  675,
742       680,  663,  675,  680,  666,  675,  680,  666,  671,  674,
743       675,  680,  666,  672,  675,  680,  666,  673,  675,  680,
744       666,  675,  680,  675,  680,  627,  670,  680,  671,  674,
745       675,  680,  672,  675,  680,  673,  675,  680,  675,  680,
746       638,  640,  675,  680,  638,  640,  675,  680,  639,  670,
747
748       680,  638,  640,  671,  674,  675,  680,  638,  640,  672,
749       675,  680,  638,  640,  673,  675,  680,  640,  675,  680,
750       640,  675,  680,  638,  640,  675,  680,  640,  675,  680,
751       640,  675,  680,  638,  640,  675,  680,  640,  675,  680,
752       640,  675,  680,  646,  649,  675,  680,  648,  670,  680,
753       646,  649,  671,  674,  675,  680,  646,  649,  672,  675,
754       680,  649,  675,  680,  646,  649,  673,  675,  680,  649,
755       675,  680,  649,  675,  680,  649,  675,  680,  649,  675,
756       680,  646,  649,  675,  680,  649,  675,  680,17029,  677,
757       679,  221,  220,  221,  677,  679,  225,  567,  538,16920,
758
759     16921,  538,  539,16920,16921,  539, 8728, 8729,  538,  539,
760     16920,16921,  535,  529,  567,  538,  539,16920,16921,  578,
761       578,  578,  543,  566,  677,  679,  540,  543,  543,  543,
762       551,  677,  679,  551,  553,  553,  553,  195,  556,  558,
763       557,  556,  152,  154,   40,   35,   35,  467,  467,  576,
764       577,  576,  577,  598,  578,  578,  576,  577,  578,  576,
765       577,  578,  575,  576,  577,  597,  575,  576,  577,  575,
766       598,   61,   61,  211,  188,  188,   21,   22,  230,  380,
767        47,  677,  679,  196,  198,   19,   75,   75,   75,   75,
768        75,   75,  188,  149,  188,  188,  188,  188,  188,  188,
769
770       188,  188,  188,  188,  188,  188,  188,  188,  188,  188,
771       188,  188,  188,  188,  188,  188,  188,  188,  188,  188,
772       188,  188,  188,  188,  188,  188,   16,   16,  677,   16,
773       679,   14,  188,  188,  188,  150,  211,  345,  677,  679,
774       345,  464,  463,  463,  464,  478,  459,  677,  679,  456,
775       478,  478,  478,  478,  478,  478,  478,  478,  478,  478,
776       478,  478,  125,  353,  353,  376,  376,  355,  355,  359,
777       677,  354,  679,  356,  141,  141,  141,  141,  146,  146,
778       146,  509,  509,  512,  677,  513,  679,  517,  509,  506,
779       512,  677,  513,  679,  511,  524,  524,  677,  524,  679,
780
781       521,  513,  679,  219,  219,  218,  669,  669,  678,  676,
782       677,  669,  676,  679,  668,  677,  679,  667,  668,  343,
783       339,  339,  677,  339,  679,  350,  350,  677,  350,  679,
784       190,  193,  368,  368,  368,  368,  608,  603,  609,  604,
785       677,  605,  679,  608,  608,  608,   77,   77,  133,16516,
786       133,16516,  135,  135,  214,  480,  677,  679,  480,  259,
787       260,  259,  677,  259,  679,   49,   50,   49,   51,   51,
788       677,   51,  679,   54,   54,   54,   53,   57,   58,   57,
789       677,   57,  679,  177,  178,  178,  178,  178,  179,  179,
790       185,  185,  186,  186,  250,  677,  679,  251,  252,  264,
791
792       258,  405,  199,  370,  370,  370,  152,16541,  156,  381,
793       381,  381,  388,  387,  389,  391,  407,  410,  417,  677,
794       418,  679,  407,  407,  200,  129,  129,  130,  130,  269,
795       269,  677,  269,  679,  266,  275,  275,  677,  275,  679,
796       272,  284,  284,  677,  284,  679,  299,  292,  310,  310,
797       599,  584,  585,  587,  475,  475,  395,  396,  397,  402,
798       401,  401,  408,  408,  677,  408,  679,  438,  409,  409,
799       409,  421,  422,  421,  679,  421,16804, 8612,  427,  427,
800       677,  427,  679,  165,  165,  167,  167,  163,  163,  169,
801       169,  246,  245,  246,  677,  246,  679,  242,  241,  242,
802
803       677,  242,  679,  327,  329,  328,  327,  326,  324,  324,
804       324,  325,  324,  652,  653,  653,  653,  660,  627,  677,
805       679,  638,  638,  638,  628,  632,  677,  631,  679,  638,
806       638,  638,  629,  630,  631,  679,  646,  647,  647,  677,
807       647,  679,  646,17029, 8837,  538,16920,16921,  538,16920,
808     16921,  539,  539,  538,  539,16920,16921,  564,  611,  565,
809       613,  543,  543,  546,  546,  553,  553,  576,  577,  576,
810       577,  576,  577,  575,    8,   61,   61,  188,   21,  380,
811       611,  613,  196,   62,   75,   75,   75,   75,   75,   75,
812        75,   75,  148,  188,  188,  188,  188,  188,  188,  188,
813
814       188,  188,  188,  188,  188,  188,  188,  188,  188,  188,
815       188,  188,  188,  188,  188,  188,  188,  188,  188,  188,
816       188,  188,  188,  188,  188,  188,  188,  188,  188,  188,
817       188,  188,  188,  188,  188,  188,  188,  611,  613,  459,
818       611,  613,  456,  478,  478,  478,  452,  478,  478,  478,
819       478,  478,  478,  478,  478,  122,  353,  376,  376,  355,
820       362,  359,  360,  354,  357,  141,  141,  146,  518,  508,
821       511,  218,  368,  368,  608,  608,  608,   77,  137,  138,
822       621,  620,  619,  228,  611,  613,   60,  178,  178,  178,
823       256,  240,  370,  151, 8349,  158,  381,  383,  441,  415,
824
825       415,  411,  283,  298,  291,  309,  310,  474,  425,  166,
826       164,  245,  241,  329,  326,  324,  324,  653,  660,  638,
827       638,  634,  630,  630,  643,  233,  538,16920,16921,  539,
828       563,  612,  562,  614,  562,  614,  579,  543,  543,  546,
829       545,  553,  553,  532,  576,  577,  576,  577,    8,   61,
830        61,  379,  612,  612,  612,  234,  614,  614,  614,  614,
831       235,   75,   75,   75,   75,   75,   75,   75,   75,  188,
832       188,  188,  188,  188,  188,  188,  188,  188,  188,  188,
833       188,  188,  188,  188,  188,  188,  188,  188,  188,  188,
834       188,  188,  188,  188,  188,  188,  188,  188,  188,  188,
835
836       188,  188,  188,  188,  188,  188,  188,  188,  188,  188,
837       188,  188,  233,  612,  233,  614,  452,  478,  478,  478,
838       452,  478,  478,  478,  478,  478,  485,  484,  478,  353,
839       376,  376,  355,  362,  141,  141,  518,  368,  368,  608,
840       608,  608,   77,  138, 8324,  134,  228,   55,   70,   71,
841       178,  178,  180,  256, 8349,  441,  415,  416,  283,  298,
842       291,  309,  310,  586,  474,  426,  245,  241,  626,  638,
843       638,  633,  633,  543,  543,  552,  553,  532,  532,  576,
844       577,  232,  231,   61,   61,  213,  404,  235,   13,   75,
845        75,   75,   75,   75,   75,   75,   75,  188,  188,  188,
846
847       188,  188,  188,  188,  188,  188,  188,   20,   20,   20,
848        20,  149,   20,  188,  120,  119,  188,  188,  188,  188,
849       188,  188,  188,  188,  188,  188,  188,  188,  188,  188,
850       188,  188,  188,  188,  188,  188,  188,  188,  188,  188,
851       188,  188,  188,  188,  188,  188,  188,  188,   14,  478,
852       453,  478,  450,  478,  478,  478,  478,  478,  478,  478,
853       450,  121,  353,  376,  376,  213,  355,  377,  141,  502,
854       503,  368,  368,  207,  606,  608,  608,  608,  608,  623,
855       176,  178,  178,  181,  419,  424,  245,  241,  658,  635,
856       638,  638,  636,  543,  543,16926,  532,  576,  577,   61,
857
858        61,  120,  235,   75,   99,   75,   75,   75,   75,   75,
859        75,   75,   75,  188,  188,  188,  188,  188,  101,  100,
860       188,  188,  188,   33,  188,  188,  188,  188,  188,  188,
861       188,  188,  188,  188,  188,  188,  188,  188,  188,  188,
862       188,  188,  188,  188,  188,  188,  188,  188,16494,  188,
863       188,  188,  118,  117,  139,  188,  188,  188,  453,  478,
864       453,  450,  478,  478,  478,  451,  478,  486,  478,  478,
865       353,  376,  376,  141,  367,  368,  608,  608,  608,  622,
866        67,   69,   72,  178,  245,  241,  658,  661,  637,  638,
867       641,  543, 8734, 8734,  576,  577,  569,   61,   61,  101,
868
869        33,16494,  118,  212,   75,   75,   75,   75,   75,   75,
870        75,   75,  188,  188,  188,  188,  188,  188,  188,  188,
871       188,   82,  188,  188,  188,   85,  188,  188,   24,  188,
872       188,   92,  188,  188,  188,  188,  188,   29,  188,  188,
873       188,  188,   81, 8302,  109,  188,  188,  188,  188,  188,
874       188,  451,  457,  478,  478,  478,  487,  451,  488,  478,
875       353,  376,  376,  141,  368,  608,  608,  608,  178,  182,
876       431,  245,  241,  322,  321,  642,  576,  577,  572,  568,
877        61,   61,   82,   85,   24,   92,   29,   81, 8302,   75,
878        75,   75,   75,   75,   75,   46,   75,  172,  188,  188,
879
880       188,  188,  188,  108,  162,  188,  188,  188, 8319,  149,
881     16511,  188,  188,  188,  188,   24,   93,   86,  188,   32,
882       188,  188,  188,  188,  188,   29,  188,  188,  188,   25,
883       188,  188,   83,  458,  457,  448,  478,  455,  478,  449,
884       478,  454,  478,  449,  353,  376,  376,  141,  607,  608,
885       608,  608,   63,   65,   64,  182,  245,  241,  659,  644,
886       576,  577,  571,   61,   61,   46,  108,   93,   86,   32,
887        25,   83,   75,   75,   75,   44,   75,   75,   75,  188,
888       188,   84,  188,  188,   87,  615, 8319,  148,  188,   80,
889       188,   30,  188,   32,  188,  188,  188,   34,  188,  188,
890
891       188,  188,   25,   90,  188,  448,  455,  454,  458,  448,
892       455,  449,  454,  353,  376,  376,  141,  608,   63,   73,
893        66,   64,  303,  304,  588,  245,  241,  659,  576,  577,
894       570,   61,   61,   44,   84,   87,   80,   30,   34,   90,
895        75,   75,   89,   75,   97,   88,  173,  188,  188,  188,
896        98,  615,  615,  188,   94,   94,   30,   91,   91,16512,
897        91,   91,  149,   91,  188,  188,  188,  188,   31,  188,
898       188,  188,  188,  105,  104,  188,  353,  376,  376,  366,
899       140,  141,  608,  303,  303,  304,  304,  245,  241,  650,
900       576,  577,  597,   61,   61,   89,   97,   88,   98,   94,
901
902        94,   91,   31,   75,   96,   45,  188,  120,  188,   91,
903        91,  188,  188,   23,   31,  188,  188,  188,  188,  114,
904       113,  188,  353,  376,  376,  608,  245,  241,  597,   61,
905        61,   96,   45,   23,   75,  188, 8320,  188,  188,   23,
906       188,  188,  188,   26,  103,  102,  353,  376,  376,  184,
907       183,  245,  241,   61,   61,   26,   75,  187,  188,   28,
908       188,  188,   26,  112,  111,  353,  376,  376,  184,  183,
909       245,  241,   61,   61,   28,   75,   28,  188,  188,  353,
910       376,  376,  245,  241,   61,   61,   75,  188,   27,  353,
911       376,  376,  245,  241,   61,   61,   27,   95,  107,  106,
912
913        27,  353,  376,  376,  245,  241,   61,   61,   95,  116,
914       115,  353,  376,  376,   68,  245,  241,   61,   61,  353,
915       376,  376,  245,  241,   61,   61,  353,  376,  376,   61,
916        61,  353,  376,  376,   61,   61,   15,  353,  376,  376,
917        61,   61,  353,  376,  376,   61,   61,  353,  376,  376,
918        61,   61,  353,  376,  376,   61,   61,  353,  376,  376,
919        61,   61,  353,  376,  376,   61,   61,  353,  376,  376,
920        61,   61,  353,  376,  376,   61,   61,  353,  376,  376,
921        61,   61,  353,  376,  376,   61,   61,  353,  376,  376,
922        61,   61,  353,  376,  376,   61,   61,  353,  376,  376,
923
924        61,   61,  353,  376,  376,   61,   61,  353,  376,  376,
925        61,   61,  353,  376,  376,   61,   61,  353,  376,  376,
926        61,   61,  353,  376,  376,   61,   61,  353,  376,  376,
927        61,   61,  353,  376,  376,   61,   61,  353,  376,  376,
928        61,   61,  353,  376,  376,   61,   61,  353,  376,  376,
929        61,   61,  353,  376,  376,   61,   61,  353,  376,  376,
930        61,   61,  353,  376,  376,   61,   61,  353,  376,  376,
931        61,   61,  353,  376,  376,   61,   61,  353,  376,  376,
932        61,   61,  353,  376,  376,   61,   61,  353,  376,  376,
933        61,   61,  353,  376,  376,   61,   61,  353,  376,  376,
934
935        61,   61,  353,  376,  376,   61,   61,  353,  376,  376,
936        61,   61,  353,  376,  376,   61,   61,  353,  376,  376,
937        61,   61,  353,  376,  376,   61,   61,  353,  376,  376,
938        61,   61,  353,  376,  376,   61,   61,  353,  376,  376,
939        61,   61,  353,  376,  376,   61,   61,  353,  376,  376,
940        61,   61,  353,  376,  376,   61,   61,  353,  376,  376,
941        61,   61,  353,  376,  376,   61,   61,  353,  376,  376,
942        61,   61,  353,  376,  376,   61,   61,  353,  376,  376,
943        61,   61,  353,  376,  376,   61,   61,  353,  376,  376,
944        61,   61,  353,  376,  376,   61,   61,  353,  376,  376,
945
946        61,   61,  353,  376,  376,   61,   61,  353,  376,  376,
947        61,   61,  353,  376,  376,   61,   61,  353,  376,  376,
948        61,   61,  353,  376,  376,   61,   61,  353,  376,  376,
949        61,   61,  353,  376,  376,  353
950     } ;
951
952 static yyconst flex_int16_t yy_accept[4193] =
953     {   0,
954         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
955         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
956         1,    2,    3,    3,    3,    3,    3,    3,    3,    3,
957         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
958         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
959         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
960         3,    3,    3,    4,    5,    6,    7,    8,    9,    9,
961         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
962         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
963         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
964
965         9,    9,    9,    9,    9,    9,    9,   10,   11,   11,
966        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
967        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
968        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
969        11,   11,   11,   11,   11,   12,   13,   13,   13,   14,
970        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
971        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
972        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
973        15,   15,   15,   15,   15,   15,   15,   16,   17,   18,
974        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
975
976        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
977        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
978        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
979        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
980        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
981        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
982        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
983        19,   19,   19,   19,   19,   20,   22,   24,   28,   31,
984        34,   36,   38,   41,   44,   47,   50,   56,   60,   64,
985        67,   70,   72,   74,   76,   78,   80,   82,   85,   88,
986
987        94,   97,   99,  101,  103,  105,  107,  109,  112,  115,
988       118,  121,  123,  126,  129,  131,  134,  137,  140,  143,
989       146,  151,  156,  159,  163,  166,  170,  174,  178,  181,
990       185,  189,  193,  195,  197,  200,  203,  206,  211,  215,
991       219,  223,  227,  230,  234,  238,  241,  245,  248,  253,
992       257,  260,  264,  267,  271,  275,  279,  283,  286,  291,
993       295,  299,  302,  306,  309,  312,  317,  321,  324,  328,
994       331,  335,  339,  341,  343,  345,  347,  350,  352,  355,
995       358,  363,  365,  368,  371,  375,  378,  383,  387,  391,
996       394,  397,  400,  403,  408,  412,  415,  418,  421,  424,
997
998       427,  432,  436,  440,  444,  447,  451,  454,  457,  462,
999       466,  470,  474,  477,  481,  485,  488,  491,  494,  496,
1000       500,  502,  505,  508,  511,  514,  517,  520,  522,  524,
1001       527,  530,  533,  536,  538,  540,  543,  546,  549,  552,
1002       555,  558,  561,  564,  567,  570,  573,  576,  579,  582,
1003       585,  588,  591,  594,  597,  600,  603,  606,  609,  613,
1004       616,  622,  627,  632,  636,  639,  641,  643,  645,  647,
1005       649,  652,  654,  656,  658,  662,  664,  667,  670,  672,
1006       675,  678,  681,  684,  686,  690,  693,  696,  699,  702,
1007       705,  709,  712,  717,  722,  726,  730,  734,  738,  741,
1008
1009       744,  749,  753,  757,  761,  765,  768,  771,  774,  779,
1010       783,  787,  790,  794,  798,  802,  805,  808,  812,  815,
1011       818,  822,  826,  830,  834,  838,  842,  846,  850,  854,
1012       858,  862,  865,  868,  871,  876,  880,  884,  887,  891,
1013       894,  897,  900,  903,  906,  911,  915,  919,  922,  925,
1014       929,  932,  935,  940,  944,  948,  951,  955,  959,  963,
1015       968,  971,  975,  981,  986,  991,  994,  997, 1000, 1004,
1016      1008, 1012, 1015, 1019, 1021, 1024, 1027, 1030, 1033, 1036,
1017      1039, 1044, 1048, 1052, 1055, 1059, 1061, 1063, 1065, 1067,
1018      1069, 1072, 1076, 1080, 1083, 1089, 1094, 1099, 1102, 1105,
1019
1020      1108, 1111, 1115, 1119, 1123, 1129, 1132, 1137, 1140, 1143,
1021      1146, 1149, 1152, 1158, 1162, 1166, 1169, 1172, 1175, 1180,
1022      1185, 1191, 1196, 1199, 1203, 1207, 1210, 1213, 1216, 1221,
1023      1225, 1229, 1232, 1235, 1238, 1241, 1246, 1250, 1254, 1256,
1024      1259, 1261, 1264, 1268, 1271, 1274, 1276, 1278, 1281, 1284,
1025      1287, 1290, 1293, 1297, 1300, 1305, 1309, 1313, 1316, 1320,
1026      1324, 1327, 1330, 1335, 1338, 1341, 1344, 1349, 1353, 1357,
1027      1360, 1363, 1366, 1369, 1372, 1377, 1381, 1385, 1388, 1391,
1028      1395, 1398, 1403, 1407, 1411, 1415, 1418, 1421, 1425, 1428,
1029      1433, 1437, 1441, 1445, 1448, 1450, 1453, 1456, 1459, 1462,
1030
1031      1465, 1468, 1473, 1477, 1481, 1484, 1488, 1491, 1494, 1497,
1032      1502, 1506, 1510, 1513, 1516, 1520, 1524, 1527, 1533, 1538,
1033      1543, 1546, 1549, 1552, 1556, 1558, 1561, 1564, 1567, 1569,
1034      1571, 1573, 1576, 1580, 1582, 1584, 1586, 1589, 1592, 1595,
1035      1600, 1604, 1608, 1611, 1614, 1617, 1620, 1623, 1627, 1631,
1036      1634, 1637, 1640, 1645, 1649, 1653, 1656, 1658, 1660, 1663,
1037      1668, 1672, 1676, 1679, 1683, 1686, 1689, 1694, 1698, 1701,
1038      1705, 1709, 1712, 1716, 1720, 1724, 1728, 1731, 1737, 1742,
1039      1747, 1751, 1753, 1756, 1759, 1762, 1765, 1768, 1771, 1774,
1040      1779, 1783, 1787, 1790, 1793, 1795, 1798, 1800, 1803, 1806,
1041
1042      1809, 1812, 1817, 1821, 1825, 1828, 1831, 1834, 1837, 1839,
1043      1841, 1843, 1845, 1847, 1849, 1851, 1853, 1856, 1859, 1861,
1044      1864, 1867, 1870, 1873, 1875, 1878, 1881, 1883, 1885, 1887,
1045      1889, 1891, 1894, 1896, 1899, 1902, 1905, 1908, 1914, 1918,
1046      1923, 1928, 1932, 1936, 1939, 1942, 1946, 1950, 1954, 1957,
1047      1960, 1963, 1966, 1970, 1973, 1978, 1980, 1982, 1984, 1986,
1048      1988, 1991, 1993, 1995, 1997, 1999, 2002, 2005, 2007, 2010,
1049      2013, 2016, 2019, 2022, 2025, 2030, 2034, 2038, 2042, 2046,
1050      2049, 2053, 2058, 2061, 2064, 2066, 2069, 2074, 2078, 2081,
1051      2085, 2088, 2091, 2095, 2098, 2101, 2106, 2110, 2114, 2118,
1052
1053      2121, 2124, 2127, 2129, 2133, 2137, 2141, 2147, 2151, 2156,
1054      2160, 2164, 2167, 2171, 2175, 2179, 2182, 2186, 2190, 2193,
1055      2196, 2199, 2202, 2205, 2210, 2214, 2218, 2221, 2225, 2227,
1056      2230, 2232, 2235, 2238, 2241, 2244, 2250, 2254, 2258, 2261,
1057      2264, 2267, 2272, 2277, 2280, 2283, 2289, 2293, 2297, 2300,
1058      2303, 2306, 2311, 2316, 2320, 2323, 2329, 2334, 2339, 2343,
1059      2347, 2351, 2355, 2358, 2364, 2369, 2374, 2378, 2382, 2386,
1060      2390, 2393, 2399, 2404, 2409, 2413, 2417, 2420, 2424, 2427,
1061      2433, 2438, 2443, 2447, 2451, 2455, 2460, 2463, 2466, 2469,
1062      2474, 2478, 2482, 2486, 2490, 2493, 2496, 2500, 2503, 2508,
1063
1064      2512, 2516, 2520, 2524, 2527, 2531, 2535, 2538, 2541, 2544,
1065      2550, 2554, 2557, 2562, 2565, 2569, 2573, 2577, 2581, 2584,
1066      2589, 2593, 2597, 2600, 2603, 2606, 2610, 2613, 2618, 2622,
1067      2626, 2630, 2634, 2638, 2641, 2645, 2649, 2652, 2658, 2663,
1068      2667, 2671, 2674, 2679, 2684, 2688, 2693, 2697, 2701, 2704,
1069      2708, 2712, 2716, 2720, 2724, 2728, 2731, 2737, 2742, 2747,
1070      2750, 2754, 2757, 2761, 2765, 2769, 2772, 2778, 2783, 2788,
1071      2792, 2795, 2798, 2803, 2807, 2811, 2814, 2817, 2819, 2822,
1072      2825, 2828, 2833, 2837, 2841, 2844, 2847, 2851, 2853, 2856,
1073      2859, 2862, 2865, 2870, 2874, 2878, 2881, 2884, 2888, 2892,
1074
1075      2896, 2902, 2907, 2912, 2915, 2919, 2923, 2927, 2933, 2938,
1076      2943, 2946, 2950, 2953, 2958, 2962, 2966, 2969, 2973, 2976,
1077      2979, 2982, 2984, 2989, 2993, 2996, 3000, 3003, 3007, 3011,
1078      3014, 3016, 3018, 3020, 3023, 3026, 3031, 3035, 3039, 3043,
1079      3046, 3049, 3052, 3055, 3057, 3060, 3065, 3069, 3072, 3076,
1080      3080, 3084, 3087, 3090, 3094, 3097, 3100, 3105, 3109, 3113,
1081      3116, 3119, 3122, 3125, 3128, 3132, 3135, 3140, 3144, 3148,
1082      3152, 3155, 3158, 3163, 3167, 3171, 3174, 3176, 3179, 3183,
1083      3186, 3189, 3191, 3195, 3199, 3202, 3208, 3213, 3218, 3221,
1084      3224, 3228, 3231, 3234, 3238, 3241, 3244, 3248, 3251, 3257,
1085
1086      3262, 3265, 3270, 3273, 3276, 3279, 3282, 3286, 3290, 3291,
1087      3292, 3293, 3293, 3294, 3295, 3295, 3295, 3296, 3297, 3298,
1088      3298, 3298, 3298, 3298, 3298, 3299, 3299, 3299, 3302, 3302,
1089      3302, 3302, 3306, 3306, 3306, 3307, 3307, 3307, 3307, 3308,
1090      3309, 3313, 3314, 3315, 3316, 3316, 3316, 3320, 3320, 3320,
1091      3320, 3321, 3321, 3322, 3323, 3323, 3323, 3323, 3323, 3323,
1092      3324, 3325, 3326, 3327, 3327, 3327, 3327, 3328, 3329, 3330,
1093      3331, 3332, 3333, 3334, 3335, 3336, 3336, 3336, 3337, 3337,
1094      3338, 3338, 3339, 3340, 3340, 3341, 3342, 3343, 3344, 3344,
1095      3344, 3345, 3346, 3347, 3348, 3349, 3350, 3350, 3350, 3350,
1096
1097      3352, 3354, 3355, 3355, 3356, 3357, 3360, 3363, 3366, 3366,
1098      3366, 3367, 3367, 3367, 3370, 3370, 3370, 3370, 3371, 3372,
1099      3372, 3372, 3372, 3372, 3372, 3372, 3372, 3372, 3372, 3372,
1100      3373, 3374, 3375, 3375, 3375, 3375, 3375, 3375, 3375, 3375,
1101      3375, 3375, 3375, 3375, 3375, 3375, 3375, 3375, 3375, 3375,
1102      3375, 3375, 3375, 3375, 3375, 3376, 3376, 3376, 3376, 3376,
1103      3376, 3376, 3377, 3378, 3379, 3380, 3380, 3380, 3381, 3381,
1104      3381, 3382, 3383, 3384, 3384, 3385, 3386, 3386, 3386, 3387,
1105      3387, 3388, 3389, 3390, 3391, 3392, 3393, 3393, 3394, 3395,
1106      3396, 3396, 3396, 3397, 3398, 3399, 3400, 3401, 3402, 3403,
1107
1108      3404, 3405, 3406, 3407, 3408, 3409, 3410, 3411, 3412, 3413,
1109      3414, 3415, 3416, 3417, 3418, 3419, 3420, 3421, 3422, 3423,
1110      3424, 3425, 3426, 3427, 3428, 3430, 3432, 3433, 3433, 3433,
1111      3433, 3433, 3433, 3434, 3434, 3434, 3435, 3435, 3435, 3436,
1112      3437, 3437, 3438, 3438, 3439, 3440, 3441, 3442, 3443, 3444,
1113      3445, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446,
1114      3446, 3446, 3446, 3447, 3448, 3449, 3450, 3450, 3451, 3451,
1115      3452, 3453, 3454, 3455, 3456, 3457, 3458, 3459, 3460, 3461,
1116      3462, 3463, 3463, 3463, 3463, 3463, 3463, 3464, 3465, 3467,
1117      3468, 3468, 3469, 3470, 3470, 3470, 3472, 3474, 3474, 3475,
1118
1119      3475, 3475, 3476, 3477, 3477, 3478, 3478, 3479, 3479, 3479,
1120      3479, 3479, 3480, 3480, 3480, 3481, 3481, 3482, 3483, 3484,
1121      3484, 3484, 3484, 3486, 3488, 3488, 3489, 3489, 3489, 3490,
1122      3491, 3493, 3495, 3496, 3496, 3496, 3496, 3497, 3499, 3501,
1123      3502, 3504, 3505, 3506, 3506, 3507, 3507, 3508, 3509, 3509,
1124      3510, 3512, 3515, 3515, 3516, 3516, 3517, 3518, 3520, 3521,
1125      3522, 3524, 3526, 3527, 3529, 3531, 3532, 3533, 3534, 3535,
1126      3536, 3537, 3537, 3537, 3537, 3538, 3539, 3540, 3542, 3544,
1127      3545, 3546, 3547, 3548, 3548, 3549, 3549, 3549, 3549, 3549,
1128      3551, 3551, 3553, 3553, 3553, 3553, 3554, 3555, 3555, 3555,
1129
1130      3555, 3555, 3555, 3555, 3556, 3556, 3556, 3556, 3557, 3558,
1131      3559, 3560, 3561, 3562, 3564, 3566, 3567, 3568, 3568, 3569,
1132      3570, 3572, 3574, 3575, 3575, 3575, 3576, 3577, 3578, 3579,
1133      3580, 3582, 3584, 3584, 3584, 3584, 3584, 3584, 3584, 3584,
1134      3584, 3584, 3585, 3586, 3587, 3587, 3587, 3588, 3589, 3590,
1135      3591, 3591, 3591, 3591, 3591, 3592, 3593, 3594, 3595, 3595,
1136      3595, 3596, 3597, 3598, 3599, 3600, 3601, 3602, 3602, 3602,
1137      3602, 3602, 3602, 3602, 3602, 3603, 3603, 3603, 3604, 3604,
1138      3604, 3604, 3605, 3606, 3607, 3607, 3608, 3609, 3610, 3610,
1139      3610, 3610, 3610, 3610, 3611, 3611, 3611, 3612, 3612, 3613,
1140
1141      3613, 3613, 3613, 3614, 3615, 3616, 3616, 3617, 3618, 3619,
1142      3619, 3619, 3619, 3619, 3621, 3623, 3624, 3624, 3625, 3625,
1143      3625, 3626, 3627, 3628, 3629, 3630, 3630, 3631, 3633, 3635,
1144      3636, 3637, 3639, 3641, 3642, 3643, 3643, 3643, 3645, 3647,
1145      3648, 3648, 3648, 3649, 3649, 3649, 3650, 3650, 3650, 3651,
1146      3651, 3652, 3653, 3654, 3655, 3655, 3656, 3656, 3656, 3657,
1147      3657, 3658, 3659, 3660, 3661, 3662, 3663, 3664, 3666, 3668,
1148      3669, 3670, 3671, 3672, 3673, 3674, 3676, 3676, 3676, 3677,
1149      3678, 3679, 3680, 3682, 3684, 3684, 3684, 3684, 3684, 3684,
1150      3684, 3684, 3684, 3684, 3684, 3685, 3685, 3685, 3686, 3687,
1151
1152      3688, 3689, 3689, 3689, 3690, 3691, 3692, 3693, 3693, 3694,
1153      3696, 3698, 3699, 3699, 3700, 3702, 3704, 3704, 3704, 3704,
1154      3704, 3704, 3705, 3705, 3706, 3707, 3708, 3708, 3709, 3709,
1155      3709, 3710, 3711, 3712, 3713, 3714, 3714, 3714, 3715, 3715,
1156      3715, 3715, 3715, 3715, 3715, 3716, 3716, 3716, 3717, 3717,
1157      3718, 3718, 3718, 3718, 3718, 3718, 3719, 3719, 3719, 3719,
1158      3719, 3720, 3720, 3720, 3721, 3722, 3723, 3724, 3725, 3725,
1159      3726, 3728, 3730, 3731, 3732, 3732, 3732, 3732, 3732, 3732,
1160      3732, 3732, 3732, 3732, 3733, 3733, 3733, 3734, 3734, 3737,
1161      3738, 3739, 3741, 3743, 3743, 3743, 3743, 3744, 3745, 3746,
1162
1163      3746, 3746, 3746, 3746, 3749, 3752, 3752, 3753, 3753, 3753,
1164      3754, 3754, 3758, 3758, 3758, 3758, 3760, 3760, 3760, 3762,
1165      3762, 3762, 3762, 3763, 3764, 3765, 3766, 3767, 3767, 3767,
1166      3767, 3768, 3768, 3770, 3772, 3772, 3772, 3773, 3773, 3774,
1167      3774, 3775, 3775, 3775, 3775, 3775, 3775, 3775, 3776, 3776,
1168      3776, 3776, 3776, 3776, 3776, 3777, 3778, 3778, 3778, 3778,
1169      3778, 3778, 3778, 3778, 3778, 3778, 3778, 3778, 3778, 3778,
1170      3778, 3778, 3778, 3778, 3778, 3778, 3778, 3778, 3778, 3778,
1171      3778, 3778, 3778, 3778, 3778, 3778, 3778, 3778, 3778, 3779,
1172      3779, 3779, 3779, 3780, 3781, 3781, 3781, 3781, 3781, 3781,
1173
1174      3781, 3781, 3781, 3781, 3782, 3782, 3782, 3782, 3783, 3783,
1175      3783, 3784, 3784, 3784, 3784, 3784, 3785, 3785, 3786, 3787,
1176      3788, 3789, 3790, 3791, 3792, 3793, 3794, 3795, 3796, 3797,
1177      3797, 3797, 3798, 3799, 3800, 3801, 3802, 3803, 3804, 3805,
1178      3806, 3807, 3808, 3809, 3810, 3811, 3812, 3813, 3814, 3815,
1179      3816, 3817, 3818, 3819, 3820, 3821, 3822, 3823, 3824, 3825,
1180      3826, 3827, 3828, 3829, 3830, 3831, 3832, 3833, 3834, 3835,
1181      3836, 3837, 3837, 3837, 3837, 3838, 3838, 3839, 3839, 3840,
1182      3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840, 3840,
1183      3841, 3842, 3842, 3842, 3843, 3843, 3844, 3844, 3845, 3846,
1184
1185      3847, 3849, 3850, 3851, 3852, 3853, 3854, 3855, 3856, 3856,
1186      3856, 3856, 3857, 3857, 3859, 3860, 3861, 3861, 3862, 3862,
1187      3862, 3863, 3864, 3864, 3865, 3866, 3866, 3866, 3866, 3866,
1188      3867, 3868, 3869, 3869, 3869, 3870, 3870, 3870, 3871, 3871,
1189      3871, 3872, 3872, 3872, 3872, 3873, 3874, 3875, 3875, 3876,
1190      3877, 3878, 3878, 3879, 3879, 3879, 3880, 3881, 3881, 3881,
1191      3881, 3881, 3882, 3883, 3883, 3883, 3884, 3884, 3885, 3886,
1192      3886, 3887, 3887, 3888, 3888, 3888, 3888, 3888, 3888, 3888,
1193      3888, 3888, 3888, 3888, 3888, 3888, 3888, 3889, 3890, 3891,
1194      3891, 3891, 3891, 3891, 3891, 3891, 3892, 3892, 3892, 3892,
1195
1196      3892, 3892, 3892, 3892, 3892, 3892, 3893, 3893, 3894, 3895,
1197      3895, 3895, 3896, 3896, 3897, 3898, 3898, 3898, 3899, 3899,
1198      3900, 3900, 3900, 3900, 3900, 3901, 3902, 3902, 3903, 3903,
1199      3903, 3904, 3904, 3904, 3904, 3905, 3905, 3905, 3905, 3906,
1200      3906, 3906, 3906, 3907, 3907, 3907, 3908, 3908, 3908, 3908,
1201      3908, 3909, 3909, 3909, 3909, 3909, 3909, 3909, 3910, 3910,
1202      3910, 3910, 3910, 3910, 3910, 3910, 3911, 3911, 3912, 3912,
1203      3912, 3913, 3913, 3914, 3914, 3914, 3915, 3916, 3917, 3918,
1204      3918, 3918, 3918, 3919, 3919, 3920, 3920, 3920, 3920, 3920,
1205      3921, 3922, 3922, 3922, 3922, 3922, 3923, 3923, 3923, 3923,
1206
1207      3923, 3923, 3924, 3925, 3925, 3925, 3925, 3926, 3927, 3927,
1208      3930, 3931, 3931, 3933, 3933, 3935, 3937, 3938, 3939, 3940,
1209      3941, 3942, 3942, 3943, 3944, 3944, 3944, 3944, 3944, 3945,
1210      3947, 3948, 3949, 3949, 3949, 3949, 3949, 3949, 3949, 3949,
1211      3950, 3950, 3950, 3950, 3951, 3952, 3952, 3952, 3952, 3952,
1212      3952, 3952, 3952, 3952, 3952, 3952, 3952, 3952, 3952, 3952,
1213      3952, 3952, 3952, 3952, 3952, 3952, 3952, 3952, 3952, 3952,
1214      3952, 3952, 3952, 3952, 3952, 3952, 3952, 3952, 3952, 3952,
1215      3952, 3952, 3952, 3952, 3952, 3952, 3952, 3952, 3952, 3952,
1216      3952, 3952, 3952, 3952, 3952, 3952, 3953, 3953, 3953, 3953,
1217
1218      3953, 3953, 3953, 3953, 3954, 3955, 3956, 3957, 3957, 3957,
1219      3958, 3959, 3960, 3961, 3962, 3962, 3962, 3962, 3962, 3963,
1220      3964, 3965, 3966, 3967, 3968, 3969, 3970, 3971, 3972, 3973,
1221      3974, 3975, 3976, 3977, 3978, 3979, 3980, 3981, 3982, 3983,
1222      3984, 3985, 3986, 3987, 3988, 3989, 3990, 3991, 3992, 3993,
1223      3994, 3995, 3996, 3997, 3998, 3999, 4000, 4001, 4002, 4002,
1224      4003, 4004, 4005, 4006, 4007, 4008, 4009, 4010, 4011, 4012,
1225      4013, 4013, 4013, 4015, 4017, 4017, 4017, 4018, 4018, 4018,
1226      4018, 4018, 4018, 4018, 4018, 4018, 4019, 4020, 4021, 4022,
1227      4023, 4024, 4025, 4026, 4027, 4028, 4029, 4030, 4030, 4030,
1228
1229      4030, 4030, 4032, 4033, 4034, 4034, 4035, 4035, 4035, 4035,
1230      4035, 4036, 4037, 4037, 4038, 4038, 4038, 4038, 4038, 4039,
1231      4040, 4040, 4041, 4042, 4043, 4044, 4045, 4046, 4047, 4047,
1232      4047, 4048, 4049, 4049, 4050, 4050, 4050, 4050, 4050, 4050,
1233      4050, 4050, 4051, 4051, 4052, 4053, 4053, 4054, 4054, 4054,
1234      4054, 4054, 4055, 4055, 4055, 4056, 4056, 4056, 4056, 4056,
1235      4057, 4057, 4057, 4058, 4059, 4059, 4059, 4059, 4060, 4060,
1236      4060, 4061, 4061, 4061, 4062, 4062, 4062, 4063, 4063, 4064,
1237      4065, 4065, 4065, 4066, 4066, 4066, 4066, 4066, 4066, 4066,
1238      4066, 4066, 4066, 4066, 4066, 4067, 4067, 4068, 4068, 4069,
1239
1240      4069, 4069, 4069, 4069, 4069, 4069, 4070, 4071, 4072, 4073,
1241      4073, 4074, 4074, 4074, 4074, 4074, 4074, 4074, 4074, 4074,
1242      4074, 4074, 4074, 4075, 4076, 4078, 4078, 4078, 4079, 4079,
1243      4079, 4079, 4080, 4082, 4082, 4082, 4082, 4082, 4082, 4082,
1244      4082, 4083, 4084, 4085, 4086, 4086, 4086, 4086, 4086, 4086,
1245      4086, 4086, 4086, 4086, 4086, 4086, 4086, 4086, 4086, 4086,
1246      4086, 4086, 4086, 4086, 4086, 4086, 4086, 4086, 4086, 4086,
1247      4086, 4086, 4086, 4086, 4086, 4086, 4086, 4086, 4086, 4086,
1248      4086, 4086, 4086, 4086, 4086, 4086, 4087, 4087, 4087, 4087,
1249      4087, 4087, 4087, 4087, 4087, 4087, 4088, 4088, 4088, 4088,
1250
1251      4088, 4089, 4089, 4090, 4090, 4091, 4092, 4093, 4094, 4095,
1252      4096, 4097, 4098, 4099, 4100, 4101, 4102, 4103, 4104, 4105,
1253      4106, 4107, 4108, 4109, 4110, 4111, 4113, 4115, 4116, 4117,
1254      4118, 4119, 4120, 4121, 4122, 4123, 4124, 4125, 4126, 4127,
1255      4128, 4129, 4130, 4131, 4132, 4133, 4134, 4135, 4136, 4137,
1256      4137, 4137, 4138, 4139, 4140, 4141, 4142, 4143, 4144, 4145,
1257      4146, 4147, 4148, 4149, 4150, 4150, 4150, 4150, 4150, 4150,
1258      4150, 4150, 4150, 4150, 4150, 4151, 4153, 4155, 4156, 4157,
1259      4158, 4159, 4160, 4161, 4162, 4162, 4162, 4163, 4165, 4166,
1260      4168, 4168, 4168, 4168, 4169, 4170, 4170, 4170, 4171, 4172,
1261
1262      4173, 4174, 4175, 4177, 4178, 4179, 4180, 4181, 4181, 4181,
1263      4181, 4181, 4181, 4181, 4181, 4181, 4181, 4181, 4183, 4184,
1264      4184, 4184, 4184, 4185, 4185, 4185, 4185, 4185, 4185, 4185,
1265      4186, 4186, 4186, 4186, 4186, 4186, 4186, 4186, 4186, 4186,
1266      4186, 4186, 4186, 4186, 4186, 4186, 4187, 4187, 4187, 4187,
1267      4187, 4187, 4187, 4187, 4187, 4187, 4187, 4187, 4187, 4187,
1268      4188, 4188, 4189, 4189, 4189, 4189, 4190, 4190, 4190, 4192,
1269      4193, 4194, 4194, 4194, 4194, 4194, 4194, 4194, 4194, 4194,
1270      4194, 4194, 4194, 4194, 4194, 4194, 4195, 4197, 4198, 4198,
1271      4200, 4200, 4200, 4200, 4200, 4200, 4201, 4202, 4202, 4202,
1272
1273      4202, 4202, 4202, 4202, 4202, 4202, 4202, 4202, 4202, 4202,
1274      4202, 4202, 4203, 4203, 4203, 4203, 4203, 4203, 4203, 4203,
1275      4203, 4203, 4203, 4203, 4203, 4203, 4203, 4203, 4203, 4203,
1276      4203, 4203, 4203, 4203, 4203, 4203, 4203, 4203, 4203, 4203,
1277      4203, 4203, 4203, 4203, 4203, 4204, 4204, 4206, 4207, 4208,
1278      4209, 4210, 4211, 4212, 4213, 4214, 4215, 4216, 4217, 4218,
1279      4219, 4220, 4221, 4222, 4222, 4223, 4224, 4224, 4224, 4225,
1280      4226, 4227, 4228, 4229, 4230, 4231, 4232, 4233, 4234, 4235,
1281      4236, 4237, 4238, 4239, 4240, 4241, 4242, 4243, 4244, 4245,
1282      4245, 4245, 4246, 4247, 4248, 4250, 4251, 4252, 4253, 4254,
1283
1284      4255, 4256, 4256, 4257, 4258, 4259, 4259, 4259, 4260, 4260,
1285      4260, 4260, 4260, 4260, 4260, 4260, 4261, 4262, 4263, 4264,
1286      4265, 4266, 4268, 4268, 4269, 4270, 4271, 4271, 4273, 4274,
1287      4274, 4275, 4276, 4277, 4278, 4279, 4280, 4281, 4282, 4282,
1288      4282, 4282, 4282, 4283, 4283, 4284, 4284, 4285, 4285, 4285,
1289      4285, 4285, 4285, 4285, 4285, 4285, 4285, 4285, 4285, 4285,
1290      4285, 4285, 4285, 4285, 4285, 4285, 4285, 4285, 4285, 4286,
1291      4286, 4287, 4287, 4287, 4287, 4288, 4288, 4289, 4289, 4291,
1292      4291, 4291, 4291, 4291, 4291, 4291, 4292, 4292, 4292, 4292,
1293      4292, 4292, 4292, 4292, 4293, 4293, 4294, 4295, 4297, 4297,
1294
1295      4297, 4297, 4298, 4298, 4299, 4300, 4300, 4300, 4300, 4300,
1296      4300, 4300, 4300, 4300, 4300, 4300, 4300, 4301, 4301, 4301,
1297      4301, 4302, 4302, 4302, 4302, 4302, 4302, 4302, 4302, 4302,
1298      4302, 4302, 4302, 4302, 4302, 4302, 4302, 4302, 4302, 4302,
1299      4302, 4303, 4303, 4303, 4304, 4304, 4304, 4304, 4304, 4305,
1300      4305, 4306, 4307, 4308, 4309, 4310, 4311, 4312, 4313, 4314,
1301      4315, 4316, 4317, 4318, 4319, 4319, 4319, 4319, 4319, 4320,
1302      4320, 4320, 4321, 4322, 4323, 4323, 4323, 4324, 4325, 4326,
1303      4327, 4328, 4329, 4329, 4330, 4331, 4332, 4333, 4334, 4335,
1304      4336, 4337, 4338, 4338, 4339, 4340, 4341, 4341, 4341, 4342,
1305
1306      4343, 4344, 4345, 4346, 4347, 4348, 4349, 4349, 4349, 4350,
1307      4351, 4352, 4352, 4352, 4352, 4352, 4353, 4353, 4353, 4353,
1308      4354, 4355, 4356, 4357, 4357, 4358, 4359, 4360, 4361, 4361,
1309      4363, 4364, 4364, 4365, 4366, 4367, 4368, 4369, 4369, 4369,
1310      4369, 4369, 4369, 4369, 4370, 4370, 4370, 4371, 4371, 4371,
1311      4371, 4371, 4371, 4372, 4372, 4372, 4372, 4372, 4372, 4372,
1312      4372, 4372, 4372, 4372, 4372, 4372, 4373, 4373, 4374, 4375,
1313      4376, 4376, 4376, 4376, 4376, 4376, 4376, 4376, 4377, 4377,
1314      4377, 4377, 4377, 4377, 4377, 4377, 4379, 4379, 4380, 4380,
1315      4381, 4382, 4383, 4383, 4383, 4383, 4383, 4383, 4383, 4383,
1316
1317      4383, 4383, 4383, 4383, 4383, 4383, 4383, 4383, 4384, 4384,
1318      4385, 4385, 4385, 4385, 4386, 4386, 4386, 4387, 4387, 4387,
1319      4387, 4387, 4387, 4387, 4388, 4388, 4388, 4388, 4389, 4390,
1320      4390, 4390, 4390, 4390, 4390, 4390, 4391, 4392, 4393, 4394,
1321      4395, 4396, 4397, 4398, 4400, 4401, 4402, 4403, 4404, 4405,
1322      4405, 4405, 4406, 4407, 4407, 4407, 4408, 4409, 4409, 4409,
1323      4409, 4409, 4409, 4412, 4413, 4414, 4415, 4416, 4417, 4418,
1324      4418, 4419, 4420, 4420, 4421, 4422, 4423, 4424, 4425, 4426,
1325      4427, 4428, 4429, 4429, 4429, 4430, 4430, 4431, 4431, 4432,
1326      4432, 4432, 4433, 4434, 4434, 4434, 4434, 4434, 4435, 4436,
1327
1328      4438, 4440, 4442, 4444, 4445, 4447, 4448, 4448, 4449, 4451,
1329      4452, 4453, 4453, 4454, 4454, 4455, 4455, 4455, 4456, 4456,
1330      4456, 4457, 4457, 4457, 4457, 4457, 4457, 4457, 4457, 4457,
1331      4457, 4457, 4457, 4457, 4457, 4457, 4458, 4458, 4459, 4459,
1332      4460, 4460, 4460, 4460, 4461, 4461, 4461, 4461, 4461, 4461,
1333      4463, 4464, 4464, 4465, 4466, 4466, 4466, 4466, 4466, 4466,
1334      4466, 4467, 4467, 4467, 4467, 4467, 4468, 4468, 4468, 4468,
1335      4468, 4468, 4468, 4469, 4469, 4470, 4470, 4470, 4471, 4471,
1336      4471, 4471, 4471, 4471, 4471, 4471, 4471, 4472, 4472, 4472,
1337      4472, 4473, 4474, 4475, 4476, 4477, 4478, 4479, 4480, 4481,
1338
1339      4482, 4483, 4484, 4484, 4484, 4485, 4486, 4487, 4487, 4487,
1340      4487, 4487, 4489, 4490, 4491, 4492, 4492, 4493, 4494, 4495,
1341      4496, 4497, 4498, 4499, 4500, 4501, 4502, 4502, 4502, 4503,
1342      4504, 4504, 4504, 4505, 4505, 4505, 4506, 4506, 4507, 4508,
1343      4509, 4510, 4511, 4512, 4513, 4514, 4516, 4517, 4517, 4518,
1344      4519, 4520, 4521, 4522, 4523, 4523, 4523, 4523, 4523, 4523,
1345      4524, 4525, 4526, 4526, 4526, 4526, 4526, 4526, 4526, 4526,
1346      4527, 4527, 4528, 4528, 4528, 4529, 4529, 4529, 4529, 4529,
1347      4529, 4529, 4531, 4532, 4533, 4534, 4534, 4534, 4534, 4535,
1348      4535, 4535, 4535, 4535, 4536, 4536, 4536, 4537, 4538, 4538,
1349
1350      4538, 4539, 4539, 4539, 4539, 4539, 4540, 4540, 4540, 4540,
1351      4541, 4541, 4542, 4543, 4544, 4545, 4546, 4547, 4549, 4550,
1352      4551, 4551, 4551, 4552, 4553, 4554, 4554, 4554, 4554, 4554,
1353      4555, 4556, 4557, 4558, 4559, 4561, 4562, 4564, 4566, 4567,
1354      4568, 4569, 4569, 4570, 4571, 4572, 4573, 4574, 4575, 4576,
1355      4576, 4577, 4577, 4577, 4577, 4577, 4579, 4580, 4581, 4583,
1356      4584, 4584, 4584, 4584, 4584, 4584, 4585, 4586, 4587, 4588,
1357      4588, 4588, 4588, 4588, 4588, 4588, 4589, 4589, 4590, 4590,
1358      4591, 4591, 4591, 4591, 4591, 4591, 4594, 4595, 4596, 4596,
1359      4596, 4597, 4597, 4598, 4599, 4599, 4599, 4600, 4601, 4602,
1360
1361      4603, 4603, 4603, 4603, 4603, 4604, 4604, 4604, 4604, 4604,
1362      4605, 4606, 4607, 4608, 4609, 4609, 4609, 4609, 4610, 4610,
1363      4610, 4611, 4611, 4612, 4613, 4614, 4614, 4615, 4616, 4617,
1364      4618, 4619, 4620, 4621, 4622, 4623, 4623, 4623, 4623, 4625,
1365      4626, 4627, 4627, 4627, 4627, 4627, 4627, 4627, 4627, 4627,
1366      4627, 4628, 4628, 4629, 4629, 4629, 4629, 4630, 4631, 4632,
1367      4632, 4633, 4634, 4634, 4634, 4634, 4634, 4635, 4635, 4635,
1368      4635, 4635, 4636, 4637, 4637, 4637, 4637, 4637, 4637, 4637,
1369      4638, 4639, 4640, 4641, 4642, 4643, 4644, 4644, 4645, 4646,
1370      4647, 4647, 4647, 4649, 4650, 4650, 4650, 4651, 4651, 4652,
1371
1372      4652, 4652, 4652, 4652, 4653, 4653, 4654, 4654, 4655, 4656,
1373      4656, 4656, 4656, 4656, 4656, 4656, 4656, 4656, 4657, 4658,
1374      4659, 4659, 4659, 4660, 4660, 4661, 4662, 4663, 4664, 4665,
1375      4666, 4666, 4668, 4669, 4669, 4670, 4671, 4671, 4671, 4671,
1376      4672, 4672, 4673, 4674, 4675, 4675, 4675, 4675, 4676, 4676,
1377      4676, 4677, 4677, 4677, 4678, 4679, 4680, 4680, 4682, 4683,
1378      4683, 4683, 4683, 4683, 4684, 4684, 4685, 4686, 4687, 4687,
1379      4687, 4687, 4688, 4688, 4688, 4689, 4689, 4690, 4690, 4692,
1380      4693, 4693, 4693, 4693, 4693, 4694, 4694, 4695, 4696, 4697,
1381      4697, 4697, 4697, 4698, 4699, 4700, 4701, 4701, 4702, 4702,
1382
1383      4704, 4705, 4705, 4705, 4705, 4705, 4706, 4706, 4707, 4708,
1384      4709, 4710, 4711, 4712, 4712, 4712, 4714, 4715, 4716, 4716,
1385      4716, 4716, 4717, 4717, 4718, 4719, 4720, 4720, 4720, 4720,
1386      4722, 4723, 4723, 4723, 4724, 4725, 4726, 4727, 4727, 4729,
1387      4730, 4731, 4732, 4732, 4734, 4735, 4736, 4737, 4737, 4737,
1388      4738, 4740, 4741, 4742, 4743, 4745, 4746, 4747, 4748, 4750,
1389      4751, 4752, 4753, 4755, 4756, 4757, 4758, 4760, 4761, 4762,
1390      4763, 4765, 4766, 4767, 4768, 4770, 4771, 4772, 4773, 4775,
1391      4776, 4777, 4778, 4780, 4781, 4782, 4783, 4785, 4786, 4787,
1392      4788, 4790, 4791, 4792, 4793, 4795, 4796, 4797, 4798, 4800,
1393
1394      4801, 4802, 4803, 4805, 4806, 4807, 4808, 4810, 4811, 4812,
1395      4813, 4815, 4816, 4817, 4818, 4820, 4821, 4822, 4823, 4825,
1396      4826, 4827, 4828, 4830, 4831, 4832, 4833, 4835, 4836, 4837,
1397      4838, 4840, 4841, 4842, 4843, 4845, 4846, 4847, 4848, 4850,
1398      4851, 4852, 4853, 4855, 4856, 4857, 4858, 4860, 4861, 4862,
1399      4863, 4865, 4866, 4867, 4868, 4870, 4871, 4872, 4873, 4875,
1400      4876, 4877, 4878, 4880, 4881, 4882, 4883, 4885, 4886, 4887,
1401      4888, 4890, 4891, 4892, 4893, 4895, 4896, 4897, 4898, 4900,
1402      4901, 4902, 4903, 4905, 4906, 4907, 4908, 4910, 4911, 4912,
1403      4913, 4915, 4916, 4917, 4918, 4920, 4921, 4922, 4923, 4925,
1404
1405      4926, 4927, 4928, 4930, 4931, 4932, 4933, 4935, 4936, 4937,
1406      4938, 4940, 4941, 4942, 4943, 4945, 4946, 4947, 4948, 4950,
1407      4951, 4952, 4953, 4955, 4956, 4957, 4958, 4960, 4961, 4962,
1408      4963, 4965, 4966, 4967, 4968, 4970, 4971, 4972, 4973, 4975,
1409      4976, 4977, 4978, 4980, 4981, 4982, 4983, 4985, 4986, 4987,
1410      4988, 4990, 4991, 4992, 4993, 4995, 4996, 4997, 4998, 5000,
1411      5001, 5002, 5003, 5005, 5006, 5007, 5008, 5010, 5011, 5012,
1412      5013, 5015, 5016, 5017, 5018, 5020, 5021, 5022, 5023, 5025,
1413      5026, 5027, 5028, 5030, 5031, 5032, 5033, 5035, 5036, 5036,
1414      5037, 5037
1415
1416     } ;
1417
1418 static yyconst flex_int32_t yy_ec[256] =
1419     {   0,
1420         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
1421         1,    1,    4,    1,    1,    1,    1,    1,    1,    1,
1422         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1423         1,    5,    6,    7,    8,    9,   10,   11,   12,   13,
1424        14,   15,   16,   17,   18,   19,   20,   21,   22,   23,
1425        24,   24,   24,   24,   24,   25,   26,   27,   28,   29,
1426        30,   31,   32,   33,   34,   35,   36,   37,   38,   39,
1427        40,   39,   41,   42,   39,   43,   39,   44,   45,   46,
1428        47,   48,   49,   50,   51,   39,   52,   39,   53,   39,
1429        54,   55,   56,   57,   58,    1,   59,   60,   61,   62,
1430
1431        63,   64,   65,   66,   67,   39,   68,   69,   70,   71,
1432        72,   73,   74,   75,   76,   77,   78,   79,   80,   81,
1433        82,   39,   83,    1,   84,   85,    1,   86,   86,   86,
1434        86,   86,   86,   86,   86,   86,   86,   86,   86,   86,
1435        86,   86,   86,   86,   86,   86,   86,   86,   86,   86,
1436        86,   86,   86,   86,   86,   86,   86,   86,   86,   86,
1437        86,   86,   86,   86,   86,   86,   86,   86,   86,   86,
1438        86,   86,   86,   86,   86,   86,   86,   86,   86,   86,
1439        86,   86,   86,   86,   86,   86,   86,   86,   86,   86,
1440        86,   86,   86,   86,   86,   86,   86,   86,   86,   86,
1441
1442        86,   86,   86,   86,   86,   86,   86,   86,   86,   86,
1443        86,   86,   86,   86,   86,   86,   86,   86,   86,   86,
1444        86,   86,   86,   86,   86,   86,   86,   86,   86,   86,
1445        86,   86,   86,   86,   86,   86,   86,   86,   86,   86,
1446        86,   86,   86,   86,   86,   86,   86,   86,   86,   86,
1447        86,   86,   86,   86,   86
1448     } ;
1449
1450 static yyconst flex_int32_t yy_meta[87] =
1451     {   0,
1452         1,    2,    3,    4,    2,    5,    6,    7,    8,    1,
1453         9,   10,   11,   12,   13,    1,   14,    1,   15,   16,
1454        17,   17,   17,   17,   17,   17,   18,   19,   20,   21,
1455        22,    1,   23,   24,   24,   24,   24,   24,   24,   24,
1456        24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
1457        24,   24,   24,   25,   26,   27,   28,   24,   24,   24,
1458        24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
1459        24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
1460        24,   24,   29,   30,   31,   32
1461     } ;
1462
1463 static yyconst flex_int32_t yy_base[4821] =
1464     {   0,
1465         0,    2,   22,    0,  107,  118,  173,    0,  259,    0,
1466       345,    0,  431,    0,  515,  517,  571,    0,  121,  141,
1467       657,    0,  741,  743,  799,    0,  885,    0,  970,  981,
1468       991, 1010,  139,  531, 1033, 1039, 1122,    0,  533,  757,
1469      1208,    0, 1294,    0,  768, 1061, 1378, 1380, 1075, 1094,
1470       771, 1406, 1409, 1420, 1503,    0, 1588, 1670, 1431, 1442,
1471      1591, 1594, 1620, 1634, 1681, 1704, 1718, 1764, 1848,    0,
1472      1461, 1471, 1934,    0, 2019, 2030, 2053, 2064, 1724, 1738,
1473      1770, 1791, 2080, 2103, 2113, 2131, 2149, 2163, 1013, 1097,
1474      1811, 1825, 2142, 2165, 2179, 2181, 2033, 2195, 2219, 2239,
1475
1476      2225, 2264, 2266, 2284, 2282, 2298, 1623, 1797, 2309, 2337,
1477      2356, 2370, 2390,    0, 2474, 2476, 2323, 2495, 2506, 2525,
1478      2580,    0, 2666,    0, 2752,    0, 2838,    0, 2922, 2924,
1479      2359, 2535, 2312, 2559, 3008,    0, 2938, 2940, 3094,    0,
1480      2962, 2964, 3180,    0, 3264, 3267, 3287,    0, 3371, 3374,
1481      3389, 3392, 3419, 3497, 3395, 3417, 3577,    0, 3663,    0,
1482      3439, 3500, 3749,    0, 3835,    0, 3920, 4003, 4087,    0,
1483      2983, 3449, 3463, 3515, 4173,    0, 3533, 3938, 3970, 4035,
1484      4259,    0, 3518, 3923, 4343, 4346, 4399, 4476, 4553, 4630,
1485      3539, 4006, 4708,    0, 4794,    0, 4361, 4367, 4417, 4431,
1486
1487      4437, 4451, 4453, 4490, 4055, 4508, 4492, 4506, 4522, 4580,
1488      4599, 4602, 4644, 4685, 4879, 4955, 5032,    0, 4899, 4918,
1489      4560, 4609, 4975, 4994, 5116, 5119, 4921, 5122, 5137, 5140,
1490      5151, 5171, 5197, 5203, 5235, 5254, 5264, 5288, 5291, 5298,
1491      5353,    0, 4053, 5439, 5525,    0, 4633, 5611, 4660, 4941,
1492      5009, 5213, 5695, 5697, 5770,    0, 5856,    0, 5940, 5942,
1493      6014,    0, 6099, 6110, 5320, 5330, 5711, 5713, 5727, 5729,
1494      5956, 6129, 6139, 6194,12190,32864,32864,32864,32864,32864,
1495         1,    0,  155,32864, 1482, 2076,32864,32864,32864,   98,
1496        14, 4391,  528, 2546,  561, 4535, 6161,12159,32864, 5975,
1497
1498       134, 1491, 1692,  754, 1653, 1752, 6213,32864,32864,  161,
1499     32864,  117,12158,32864,12115, 2951, 5275, 6208,32864,32864,
1500     32864,32864,    0,32864,  125,32864,32864,    0,    0,  531,
1501       968,32864,12120,    0, 2487,    0,32864,32864,32864,32864,
1502     32864,32864,  506,12145, 5970,32864,  544,32864,32864,32864,
1503         0,32864,  537,32864,    0,32864,32864,32864,32864,32864,
1504     32864,  541,32864,32864,32864,32864,32864,    0,32864,  732,
1505         0,32864, 4381, 6298, 6383,    0,32864,12146,32864, 1399,
1506      4025,12151,  785,32864,32864,32864,32864,32864,32864,  747,
1507     12087,  714,12081,32864,12091,32864, 2124, 3992,32864,32864,
1508
1509     32864,32864,32864, 4544,  778, 5310,32864,32864,32864,32864,
1510     32864, 5708,  976, 5740,32864, 6465, 2208, 2935, 3983, 1010,
1511      6391,   33,    0, 6227, 1116, 5979,32864,  980,12135,12115,
1512      6123,  111,32864,12109, 4010, 6253, 6399,12082,32864, 6403,
1513      6411, 6417, 6450, 6478, 6431, 6491, 6543, 6548, 6558, 6563,
1514      6578, 6591, 6595, 6607, 6625, 6641, 6646,32864,    0,32864,
1515         0,    0,    0,  987,  948, 5185, 6258, 4698, 6658,12103,
1516      6262, 6270, 6407, 6599, 1024,    0,32864, 6674,  990,32864,
1517     32864,    0,32864,  994,32864,32864,32864,32864, 6678,32864,
1518      4622, 4892,32864,32864,32864,32864,32864, 1839, 1024,32864,
1519
1520     32864,32864,32864,32864,32864, 1037,32864,32864,32864,32864,
1521     32864, 1055,32864,32864, 6742,    0,    0,32864,12097, 1095,
1522      4969,    0,12067,12054,12045,  456,12025,12043,12038,  492,
1523     12026,32864, 6697, 6706,32864,32864,32864, 1369,32864, 6717,
1524     12029,12016,32864,32864,32864,32864,32864, 2176, 1379,32864,
1525     12062,32864,32864,32864,32864, 1395,32864,32864,    0, 3957,
1526      2572, 4548,32864,  974,12036, 1410,12052,12073,32864, 5022,
1527     32864,  999,32864,    0,32864,32864, 6687, 6721,32864,32864,
1528     32864,32864,32864, 1416,32864, 6460, 6498, 5752, 6726,12052,
1529      6747,    0, 1602,32864,32864, 1026,12022, 1426,12047,12063,
1530
1531     32864,32864, 6753, 1607, 1030,32864,32864, 1427,  791, 6761,
1532     32864,32864,32864,32864,32864,12049, 1437,    0,32864,32864,
1533     32864,32864, 1438,32864,32864,32864,12051, 1087,32864,32864,
1534     32864, 1452, 1109,    0, 1475,    0,    0,    0,12033, 1614,
1535      1421,32864, 1610, 1614, 1658, 2331, 1673,32864,32864,32864,
1536     32864,32864, 5164, 5760,32864,32864,32864, 1644,32864,32864,
1537     32864,32864,32864,32864,32864,    0,32864,    0,    0, 1672,
1538     32864,32864,    0,32864,    0,    0,    0, 1720,32864, 6003,
1539      6290,32864,32864,32864,32864, 1728,32864, 6506, 6780,32864,
1540     32864,32864,32864, 1759,    0,32864,    0,11977,11967,32864,
1541
1542     32864,32864,32864,32864, 1766,32864,32864, 6784, 6788,32864,
1543     32864,32864, 1776,11978,    0, 6792, 6805,    0,    0,    0,
1544     11998,32864, 1792, 2028,    0,32864, 1039,32864,    0, 6820,
1545         0,32864, 6824, 6828, 6832,    0,    0,32864,32864,32864,
1546     32864,32864, 1795,11946,11943, 1438,11931,32864,32864,32864,
1547     32864,32864,11982,32864,32864, 1809,    0, 1827,32864,32864,
1548     32864,32864, 2008,32864,32864, 6838,32864,32864,    0,32864,
1549      6848, 2010, 6852,    0,32864,    0,32864,11970,    0,    0,
1550      2014,    0,32864, 1697, 6857,    0,32864,    0,    0,    0,
1551         0,    0,32864, 2029,    0,32864, 6861,32864, 6871,    0,
1552
1553         0,    0,    0,    0, 1747, 2042,32864,32864,11892,11887,
1554     11895,11884,11888,  491,11878,11885,32864, 1757,    0,32864,
1555       142, 2147, 2209,    0,    0,32864,11909,11897,11897,11884,
1556         0,    0,    0,    0,32864, 6879, 6890,32864,32864,11872,
1557     32864,32864, 6898,11878, 2055, 6902,11872,11869,11866,11884,
1558     11836,11876,32864,  720,32864, 6910, 6921, 6929, 6937, 2158,
1559     32864, 6942, 6956, 6970, 6984,32864, 6998, 2079, 7002,32864,
1560      7006,32864,32864,32864,32864,32864,32864,32864,32864, 2089,
1561     11853, 7010,32864, 7022, 7026, 7030,32864,32864, 7041,32864,
1562      2097,11843, 7052,32864,32864,32864,32864,32864, 7059, 2180,
1563
1564     32864, 7067,11805,    0, 7072, 7079,32864,32864,11796,32864,
1565      7083, 2210,11797,11828, 1408,32864,32864,32864,11786,11826,
1566      1440,32864,32864,32864,32864,32864, 2214,11800,    0,    0,
1567         0,32864,11799,32864,32864,32864,32864,32864,11795, 2237,
1568         0,32864,32864,32864,32864,32864,32864,32864,11794, 2238,
1569         0,32864,32864,    0,32864,32864,    0,11758,32864,32864,
1570      2240,    0,32864,32864,    0,11751, 2246,32864,32864,    0,
1571     32864,32864,    0,11750,32864,32864, 2262,    0,32864,32864,
1572         0,11748, 2268,32864,32864, 1758,32864, 2499,32864,32864,
1573     32864,32864,32864,32864, 2288,32864, 7087, 7094,32864,32864,
1574
1575     32864,32864,32864, 2333,11772,11769,11709,32864,32864,32864,
1576     32864,    0,11734, 2350,32864,    0,32864,32864,32864,32864,
1577     32864,32864, 7102, 2365,32864, 7106, 7114,32864,32864,32864,
1578     32864,32864, 7130, 2465,32864,    0,32864,32864,    0,32864,
1579      2502,    0,32864,32864,    0,    0,32864,32864, 2504,11740,
1580     11780, 1450,32864,32864,    0,32864,    0,    0,    0,11664,
1581      2516,  706, 2049, 7134,    0,32864,    0,    0,    0, 2526,
1582      7081,32864,32864,32864,32864, 2548, 1556,    0,11674,    0,
1583     32864,32864,32864,32864, 2913,    0,    0,    0,11673,    0,
1584     32864,32864,32864,32864,32864, 2960,    0,    0,    0,    0,
1585
1586         0,    0,    0,11672, 2973,    0,    0,    0,    0,    0,
1587     11671, 3253,32864,32864,32864,32864, 3262,32864,11602,32864,
1588      7161, 7169,32864,32864,    0,32864, 3265,32864, 7177,11614,
1589      7184, 7193,    0, 7201,32864,32864,32864,32864, 3439, 3360,
1590     11596,32864, 7205, 7214, 7222,32864,32864, 7231,32864,32864,
1591     32864, 3369,11637, 7240,32864, 3406,32864,32864,32864, 3390,
1592      3385,11586,11591,11572,32864,32864,32864,32864,32864,32864,
1593      3399,32864,32864,32864,32864, 3415,11630, 3438,11628,11627,
1594     11626, 3478,    0, 3463,32864,    0,    0,    0, 3440, 3459,
1595      2432, 7187, 7208, 3952, 3481, 3495,    0,32864,    0,    0,
1596
1597     32864,    0,11606, 3504,11601, 1757, 3552, 7277,32864,32864,
1598      3558, 4375,32864, 4428, 7281, 3513, 1664, 1376,32864,11614,
1599      7291, 7300, 7304,11589, 1778, 7326, 7334, 7342, 7346, 7358,
1600         0, 7373, 7378, 7401, 7257, 7409, 7419, 7428,32864,32864,
1601      7447,32864,32864, 1787, 7433, 7468, 7477, 7493, 7497,11579,
1602     32864, 7505, 7509,11569, 7513, 7524, 7535, 7540,    0, 7548,
1603      7391, 2062, 4403, 7553,11523, 7561,32864, 7565, 7580, 7592,
1604         0, 2116, 1685,    0, 2111,11578,11580, 2944,11578, 4641,
1605     11529,32864,    0, 7596,32864,32864,    0,32864, 7606,11556,
1606     32864, 1833,    0,    0,    0,    0, 7611, 7619, 7627, 7638,
1607
1608      7642, 2096, 7712,    0, 7797, 7668, 7805, 7809, 7650, 7813,
1609     32864, 7672,11570, 7818,11550,11566,11556,11486, 2518,11459,
1610      3467,11474,11456,11518, 7659, 7686, 3549, 7836, 3550, 7895,
1611      7844, 3411,11499, 4604,11467,11455,11451,11446, 2500,11437,
1612      2228,11431,11442,11431, 4289,11435, 2926,11400, 1662,11379,
1613     11384, 3897, 7848, 7856, 7864, 7883,11383,11386, 7874, 7908,
1614         0, 7887,    0,32864, 1651, 7921, 7977, 7992,11418, 7996,
1615      7879, 7309, 6915,    0,    0, 8010,11366,11352,32864,    0,
1616      7916, 8025, 8037, 8049, 8056, 8061, 8043, 8074,11393, 8083,
1617     11367, 8079, 8087, 8094, 8134, 8142, 8146, 8150, 8154, 8162,
1618
1619      8182, 8192, 8196, 8202, 8230, 8212, 8273, 8277, 8281, 8285,
1620      8290, 8318, 8322, 8332, 8326, 8336, 8365, 8370, 8374, 8405,
1621      8410, 8415, 8419,    0,    0,    0,11348,11359, 8244,11383,
1622      8384, 8424, 8447, 8451,    0, 8460, 8464, 8478, 8490,32864,
1623      7935, 4932, 5136,    0, 8469, 7352,    0, 8494, 8115, 8510,
1624      8548,11377, 8518,11343,11329,11332, 2177,11319,11336,11329,
1625      2281,11306,    0, 8523, 2920, 4593, 8527, 8531,11304,    0,
1626     11289,11292,11287,11276,11283,11273,11251,11257,11240,11227,
1627     11238, 8538,11226,11228, 8542, 8556,32864,    0, 8568, 8560,
1628      3281,    0, 8572,11261, 8560, 8601,    0,11242,32864, 8611,
1629
1630     11199, 8626, 8630, 8634, 8656,11242, 8660, 8664,11240, 8668,
1631      8690,    0, 8698,    0, 8706, 8710, 8718,    0, 4934, 8726,
1632     11232, 8703, 2979, 4945,11213,32864, 8736, 3924, 4938, 3484,
1633     32864,32864,11233, 2202, 8755, 3927,32864,32864,32864,32864,
1634      4020,11227,11226, 2213,11215, 2531,    0, 4412,11190,32864,
1635     32864,    0, 2087,32864, 2334, 3373, 3461,32864, 8759,    0,
1636         0,    0,    0,    0,    0, 8763, 8767,    0,    0,11137,
1637     11128, 8774,11127,11107,    0, 8778,32864,32864,32864,11107,
1638     11107,11110, 4343,11160, 4373, 8782, 8786, 8794, 8808, 8812,
1639      8816, 8821, 8827, 8835,11091,    0,    0,11099,11082,11088,
1640
1641     11081,11072,11124,32864, 3963, 8839, 4038,    0, 3974, 4998,
1642         0,    0,32864,    0,    0,    0, 4074, 8843,    0,    0,
1643         0,    0, 8847, 8858,11098, 8876, 8880,32864,    0, 4465,
1644         0,    0,11039,11039,11031,11034, 1574,11016,11001,10999,
1645     10995, 4480, 2165, 2525,11017,11011, 5153, 4362,    0,    0,
1646     10986, 2943,10986,10992,    0,    0,    0,    0,11019, 8865,
1647     32864, 8585, 7584,32864,32864,32864,32864,11007,11000,10963,
1648      8888, 8896, 8906, 8910,32864, 8914, 4689,32864, 8928, 8942,
1649      8956, 8970, 8974, 8978,10949,10975, 8982, 8987,10973, 8995,
1650     10961, 9001, 9009,    0, 9031,    0, 9039, 9043, 9051, 9055,
1651
1652      9059, 9071,32864,32864,32864,10931,32864,    0, 9077,10973,
1653      9064, 9087, 4406, 3985, 3443,10976,10969,10915,10955,10912,
1654     32864,    0,    0,10925,10924,10923,32864,32864,32864,32864,
1655     32864,32864,32864,32864,    0,10928, 9072,    0,    0,    0,
1656     10926, 9079,    0,10914, 9087,    0,10910, 9091, 9114, 5017,
1657     32864, 9118,32864, 4576,10848,    0,10907, 9108,    0, 9139,
1658     32864,32864,32864, 9143, 9151, 9159,    0,    0,    0,32864,
1659         0,10911,10867,    0,32864,    0,10839,10846, 4613, 9166,
1660      9170,    0,    0,    0,10838,10837, 3970,10827,10833,10832,
1661     10822,10814,10811, 5147,    0,    0,10869,    0,    0,    0,
1662
1663         0,    0,10868,    0,    0,    0,    0,10858,10855,    0,
1664         0,    0,10854,10852,    0,    0,10783, 9174, 9182, 9192,
1665     10796, 9196, 9200, 9216,32864, 9221,10791, 9227, 9237, 9245,
1666      9253, 9257, 9261,32864, 9273, 5334,    0, 5985,10818,10778,
1667      9277,10809, 9285, 9293,    0, 9303,    0, 9311, 9315, 9323,
1668      6586, 5130,10757,10754, 5239, 4489,10751,10745,10748,10808,
1669      4664, 5008,10790,10801,10791,    0, 4660,10732, 4571,32864,
1670     32864,32864, 1028,10720,10771,10706,10695, 5153,10689,10705,
1671     10704,10699,10579, 6470,10632,10614,32864, 4870, 4912,    0,
1672     32864,32864,32864, 5140,10562, 5209, 5268, 9328, 9332, 3987,
1673
1674      4064,10592, 9342, 9349, 9370, 9377, 9386, 9399, 9407,    0,
1675      9415, 9423, 9428, 9441, 9445,32864,    0, 5284,32864,10596,
1676      9457,10544, 9466, 9472,10576, 4433,32864,    0,    0,10570,
1677      4504, 9485, 9478, 9499, 9504, 9512, 9520,    0,10571, 9525,
1678     10522,10508,10473,10474,10481,10468,10511,32864,10497, 9527,
1679      4883, 4449, 4939, 4481, 9571, 9533, 9550, 3473,10412, 4840,
1680     10421,10434,10398,10385,10401, 2262,10383,10378,10384, 5060,
1681      2882,10384,10364,10346,10340,10323,10321, 4833,10327,10311,
1682     10282, 1546,10255,10260,10247,10239,10244, 9559, 9563, 9584,
1683     10240,10219,    0, 9580, 9649, 9618, 9597, 9664, 9669, 9682,
1684
1685     10255,10225, 6119, 6553, 6961, 4264, 7120, 7122, 8933, 4288,
1686         0, 9686,10194,10186, 9697,32864,10242, 9712, 9716, 9734,
1687      9738, 9757, 9761, 9779, 9783,32864, 9808, 9815, 9819, 9390,
1688     10161, 9827, 9847, 9862, 9866, 9875, 9879, 9883, 9894, 9912,
1689      9923, 9928, 9940, 9956, 9960, 9968, 9972, 9976,10008,10013,
1690     10022,10041,10052,10057,10061,10069,10090,10097,10102,10107,
1691     10135,10139,10146,10150,10154,10182,10187,10191,10195,10202,
1692     10231,10164,10151,10235,10239,10244, 7988, 8649, 9626,10252,
1693     10145,10148,10135,10149,10141,10144,10127,10106,10113, 9611,
1694     32864,    0, 5993,32864,10163, 9801, 4951,10099,10091,10104,
1695
1696     10272,10080,10085,10071,10077,10073,10284,10071,10069,10052,
1697     10289,32864,10072,10293,10301,10310,10079,32864,10075,10298,
1698     10321,32864,10335,    0,32864,10003,10018,10339,10347,10355,
1699     10359,    0,10363,10066,32864,10055,10371,32864, 5140, 4565,
1700     10048, 5224, 4624,10033,10029, 9953, 9961, 9945, 9942, 9940,
1701      9911,    0, 4380,10394,10402,32864,10410, 9878,10416,10428,
1702     10436,32864,32864, 9877, 9877,32864,10440,10447, 9918, 9907,
1703      9905, 4937,32864, 9901, 9852, 9836, 9836, 9848, 9828, 9816,
1704      9796, 9800, 9803, 9793, 9850, 9827, 9828, 5672, 5293, 9800,
1705      9803, 9798, 9786, 9776, 9804,32864, 9802,10441, 7486, 9744,
1706
1707      9711, 8311,10453, 9707, 9777,32864, 9733, 9725,32864,10464,
1708     10472,10486,10490,32864,    0,10494,10502,32864, 9766,32864,
1709      9760,10490, 5301, 4985, 9740, 5297, 9755,32864, 9758, 9743,
1710     32864, 9742,10504, 9733,32864, 9721,10508, 9716,32864, 9715,
1711     10512, 9711,32864, 9696,10525,10517, 5964, 9680, 9642, 9691,
1712     32864, 9686,10532, 9627, 9621, 9620, 9603,32864, 9609, 9598,
1713      9592, 9586, 9587, 9581,    0,32864, 9624,32864, 9614, 9612,
1714      9610, 9596, 9590, 9523,10555,10559,10563,10571,10578, 9567,
1715      9563, 9512,    0,10582, 5148, 9505, 9508, 9519, 5702, 1732,
1716      9509,    0,10667, 9507, 9481,32864, 9487, 9469, 9474, 9469,
1717
1718      9464, 6118, 6183, 2060, 4428, 9469,32864,32864,10590,10595,
1719         0,10623,32864, 9505,32864, 5723,32864,10752,10756,32864,
1720     32864, 9479, 9485, 6162,10768,10611,10782, 9469,10627,10794,
1721     10635, 9476,10639, 9417, 9414, 9404, 9388, 9361, 9426,32864,
1722     10634, 9406, 9405,10866,10798, 9340, 9329, 9309, 5186, 9325,
1723      9310, 9328, 9289, 9288, 9288, 9294, 9284, 9285, 9270, 9268,
1724      9266, 9254, 9247, 9216, 9225, 9220, 9212, 9196, 9202, 9189,
1725      9175, 9170, 9133, 3361, 9142, 9184, 9078, 9057, 9055, 9064,
1726      9052, 9039, 9027, 9024, 6103, 9009, 9004,10803,10829, 9041,
1727     10846,10874,10885,10903,10898,32864,10944,10952, 9054,10950,
1728
1729     10975,  127,10989,32864, 8901, 4448,32864,  527, 9267,32864,
1730      9792, 5744, 4486,    0,  679,  723,    0,10993,11005,11017,
1731     11024,11036,11043,11048,11055,11075,11068,11087,11080,11125,
1732     11131,11135,11139,11143,11172,11178,11245,11185,11189,11277,
1733     11281,11285,11290,11318,11322,11330,11335,11339,11350,11367,
1734     11378,11382,11386,11414,11425,11429,11433,11462,11466,11470,
1735     11474,11478,11483,11511,11519,11547,11555,11559,11564,11568,
1736       919,  988,32864,32864, 1007, 1335,10661, 1341, 1359, 1397,
1737      1572,11096, 1609, 1622, 1652, 1761, 1966, 2086,10893, 2214,
1738      2225, 2292, 2318, 2307,10965,32864, 2410, 2426, 2431, 2522,
1739
1740     11219,11061,11223, 6148, 2548,32864,11217, 2505,    0,11596,
1741     11600,11605, 2949,32864,11496, 2950, 2973, 5752, 3192, 3316,
1742      3351, 3369, 4498, 3422, 4488,11609,32864,11231, 3439, 3427,
1743     11371,32864, 3448,32864, 3469, 3478, 5885, 3507, 3513, 3858,
1744      3973,32864,    0, 5208, 6199, 3999,32864, 3991, 4026, 4036,
1745      4066,32864,11613, 4352,11636,11551,11644, 4351, 4403,32864,
1746     11631, 4407,32864,32864, 4462,    0, 4585,32864,11638, 4596,
1747     32864,11644, 4636,32864,11651, 4643,32864,11664, 6232,32864,
1748      4604, 4683,32864,11668, 4643, 4813, 4901,    0, 4901, 4918,
1749      4913, 4949, 5048,11134,32864, 5154, 5174, 5186, 5189, 6096,
1750
1751      7696, 5149, 5175, 5183, 5187,32864, 5251, 5229,32864,11692,
1752         0, 5262,    0, 5260, 5278, 5275, 5288, 5279, 5690, 6076,
1753     11378, 6171,11777,11781, 6154,11793,11807,    0,11815,    0,
1754     11819,11827,11836, 5635, 5647, 5665, 5679, 5687, 5754, 5757,
1755     32864,32864,11903,11845, 5875, 5883, 5884, 5877, 5890, 5901,
1756      5908, 5953, 5949, 5935, 6027, 6050, 6039, 6068,11854, 6061,
1757      6072, 6089, 6082, 6107, 6119, 6117, 6128, 6145, 6133, 6138,
1758      6148, 6144, 6165, 6170, 6178, 6176, 6183, 6186, 6180, 6187,
1759      6206, 6180, 6189, 6175, 6192,32864, 6207, 6208,11862,11871,
1760     11883, 6254, 6252,11876,11911,32864,11920,11974, 6271, 6267,
1761
1762         0, 6221,32864,11950,11988,12000,12007,12012,12019,12031,
1763     12038,12043,11890,12025,12056,12063,12070,12084,12104,12112,
1764     12116,12120,32864,12132, 6269, 6266,12148,12160,32864,12166,
1765     12179,12196,12200,12208,12212,12240,12245,12249,12256,12260,
1766     12288,12292,12296,12301,12305,12333,12337,12342,12346, 6246,
1767      6304,12353,12382,12386,12390,12394,12427,12432,12436,12441,
1768     12469,12473,12477,32864, 6316, 6315, 6314, 6337, 6336, 6354,
1769      6343, 6347, 6347, 6352, 6372,11918,11982, 6374, 6372, 6365,
1770      6380,12481, 6376,12152, 6378,12505,32864,12509,12228,    0,
1771      6435, 6436, 6386,32864,12518, 6439, 6444,32864,32864,12422,
1772
1773     12522,32864,    0, 6387, 6411, 6419,32864, 6421, 6417, 6416,
1774      6425, 6433, 6439, 6444, 6441, 6456, 6459, 6502, 6586, 6486,
1775      6569, 6487,32864, 6544, 6552, 6556,12526, 6561, 6564,32864,
1776      6565, 6567, 6572, 6577, 6605, 6609, 6611, 6619, 6620,    0,
1777      6574, 6626, 6627, 6576, 6565,32864, 6583, 6575, 6586, 6600,
1778      6600, 6600, 6614, 6610, 6634, 6636, 6633, 6627, 6696, 6697,
1779      6708, 6709, 6670, 6656, 6660, 6737, 6865, 6674,    0, 6723,
1780     32864, 6687, 6681, 6696, 6709, 6700, 6737, 6745, 6705, 6726,
1781      6722, 6743, 6745, 6742, 6742,12545,12549,    0,12561,12575,
1782      6756, 6753, 6743,12579, 6769,12645,12593, 6781, 6771, 6775,
1783
1784      6789, 6814, 6802, 6804, 6841, 6819, 6830,12605, 6814,12609,
1785      6825,12613,12619, 6820, 6847, 6838, 6840, 6853, 6865, 6854,
1786      6853, 6875, 6880, 6880, 6877, 6877, 6880, 6895, 6901, 6895,
1787      6907, 6892, 6913, 6918,12626, 6975, 6919, 6915, 6921, 6921,
1788     12631,12653, 6959,12639,32864, 6918,12681,12723,12727,12745,
1789     12749,12767,12771,12792,12796,12815,12819,12831,12835,12864,
1790     12870,32864,12874,12878,12882,12911, 6923, 6919,12915,12919,
1791     12924,12955,12963,12967,12971,12975,13003,13008,13012,13016,
1792     13020,13048,13052,13056,13061,13089,13094,13101,13106, 6938,
1793      6923,13110,13138,13143,13152,13156,13172,13184,13188,32864,
1794
1795     13192,13200,13205,13220,13235, 6940, 6960,12693, 6957, 6945,
1796      6974,13239, 6971, 6971, 6979, 6987,12931,13253, 6978, 6996,
1797     13264,13268,13277,32864,13281, 6990, 7003,13289,13296, 7004,
1798     13303,32864,13307, 7005, 7003, 7016,32864,32864, 7064, 7030,
1799      7032, 7035,32864, 7082,32864, 7055, 7130, 7080, 7139, 7086,
1800      7115, 7116, 7139, 7082, 7156, 7096, 7096, 7100, 7099, 7114,
1801      7122, 7113, 7122, 7123, 7130, 7136, 7143, 7206, 7214, 7215,
1802      7221, 7152, 7153, 7166, 7245, 7286,32864, 7170,    0, 7175,
1803      7180, 7185, 7178, 7195, 7234,32864, 7209, 7196, 7205, 7213,
1804      7227, 7225, 7243,13314,13321, 7290,32864,13333, 7251,13340,
1805
1806      7258,13351,13361,13365,13370, 7252, 7261, 7255, 7255, 7272,
1807      7273, 7279, 7266, 7318, 7286, 7295,13375, 7289,13379, 7289,
1808     13383, 7301, 7302,13390, 7310,13396, 7325, 7329,13403, 7309,
1809      7322,13407, 7336, 7349, 7346, 7338, 7339,13411, 7341,13415,
1810     13419, 7355, 7356,13423, 7368, 7345, 7365, 7370,32864, 7363,
1811     13432,13457,13461,13479,13486,13504,13508,13526,13444,13530,
1812     13544,13548,13563,13577, 7374, 7371,13581,13593,13609, 7394,
1813      7379,13614,13618,13623, 7422,13629,13658,13707,13662,13671,
1814     13726,13677,13745,13666,13754,13773,13792,13801,13805,13809,
1815     13813,13820,13841,13848,13855,13860, 7383, 7383, 7404,13869,
1816
1817     13874,13889,32864,13903,13907,13917, 7396, 7390,13921,13935,
1818     13949,13764, 7407, 7396,13954,13966,13970, 7409, 7406,13979,
1819      7407, 7408, 7424,13983,32864,13987,13995, 7426, 7429,13999,
1820     14006, 7430,14011,14015, 7440, 7461, 7456, 7516, 7463, 7449,
1821      7457, 7526, 7468, 7621, 7512, 7658,    0, 7519, 7547, 7558,
1822      7601, 7509, 7632, 7504, 7506, 7497, 7514, 7505, 7528, 7533,
1823      7549, 7546, 7566, 7555, 7628, 7642, 7651, 7655,32864,32864,
1824      7589, 7603, 7599, 7614, 7610, 7626, 7614,32864, 7634,    0,
1825      7631, 7640, 7632, 7648, 7637,14020,14024,14029, 7667,14038,
1826     14046,14050, 7732, 7744, 7745, 7742, 7742, 7753,14054, 7763,
1827
1828      7784, 7753, 7753,14058, 7768, 7761, 7757,14062, 7753,14066,
1829      7781, 7774,14071,14077,14081,14085,14090,14097, 7783,14101,
1830      7788, 7791,14105,14111, 7804, 7794,14115,14119,14131,14135,
1831      7809, 7801,14141, 7823, 7856,14151,14155,14180,14184,14202,
1832     14206,14224,14228,14240,14249,14253,14257,14268,14289, 7819,
1833     14301,32864,14307, 7819, 7824,14317,14322, 7934, 7846, 7850,
1834      7860,14326, 7902,14335,14354,14363,14367,14371,14375,14382,
1835     14395,14410,14414,14425,14429,14442,14462,14472,14476,14446,
1836     14480,14490, 7858, 7885,14510,14518,14528,14538,14546, 7888,
1837      7876,14556,14566,14574, 7875, 7882, 7897,14584,14600,14604,
1838
1839     14608,14618,14622,14626,14630,14637, 7897,14642,    0, 7908,
1840      7899, 7966,    0, 7915,32864, 7914, 7974,    0, 7913, 7942,
1841         0, 7944, 7976, 7978, 8104,14646, 7920, 7937, 7938, 7937,
1842      7937, 7949, 7963, 7953, 8019, 8024, 8025, 8026, 8100, 8128,
1843      7953, 7967, 7985,32864, 7985, 7986, 8000, 8014, 8022,14651,
1844     14655,14660,14669,14677, 8029, 8043, 8042,14681, 8052, 8056,
1845     14685, 8073, 8091, 8075,14689,14693, 8068, 8091,14697,14704,
1846      8105,14708,14712,14716,14720, 8109,14727,14734, 8116, 8107,
1847      8115,14742, 8118, 8133, 8116,14746,14753,14757,14761, 8127,
1848     14765,14773,14777,14795,14802,14819,14824,14842,14849,14855,
1849
1850     14860,14864, 8116, 8141,14868,14896,14901, 8192, 8153, 8143,
1851      8155,32864,14905,14909,14917,14937,14945,14984,14949,14978,
1852     15016,15020,15026,15030,15058,15070,14953, 8147,15078,14957,
1853      8158, 8156,15087, 8160, 8159,15106, 8179,14965,15115,15119,
1854     15123,15127,15134,15138,15148,15152,15159,15163,15167, 8165,
1855         0,32864,32864,    0, 8168, 8206, 8212, 8238, 8239, 8253,
1856      8259,15171, 8172, 8189, 8194, 8198, 8191, 8201, 8265, 8289,
1857      8291, 8294, 8639, 8504, 8313, 8221, 8234, 8237, 8242, 8255,
1858      8273,15176,15180,15185,15194, 8269, 8285,15202,15206, 8288,
1859     15210,15214, 8289,15220, 8292,15224,15228,15232,15236,15240,
1860
1861     15244,15251, 8308, 8286, 8288,15255,15259, 8328, 8303,15266,
1862     15270,15274,15278,15296,15300,15312,15318,15324,15334,15338,
1863     15342, 8304,15352,15366,32864, 8376, 8308, 8320, 8328,15371,
1864     15380,15384,15388,32864,15460, 8375, 8373,15399,15412,15545,
1865     15417,15549,15431,15553,15557,15561,15565,15448,32864,15595,
1866     15600, 8334, 8340, 8364, 8359,15605,15479,15612,15616, 8364,
1867      8373, 8456, 8498, 8425, 8427, 8552,32864, 8645,32864, 8376,
1868      8376, 8375, 8392, 8395, 8471, 8478, 8479, 8494, 8684,32864,
1869      8435, 8437, 8428, 8449, 8455,15628,15634,15646, 8479,15654,
1870     15660,15664,15672,15677, 8505, 8516,15681,15685,15689,15693,
1871
1872      8536, 8509,15697,15701,15705, 8530, 8523, 8554, 8525,15710,
1873     15714,15728,15732,15740, 8532, 8550, 8546,15749, 8552, 8545,
1874         0,15753,15764,15768,15777,15787,15796,15805,15815,15822,
1875     15827,15831,15835,32864,15843,15863, 8549, 8577,15871,15878,
1876      8576, 8578, 8727, 8863, 8643, 8661, 8594, 8611, 8611, 8677,
1877      8678, 8683, 8689, 8615, 8636, 8636,15882,15886,15893, 8640,
1878     15897,15908, 8657, 8689, 8659,15912,15919, 8693, 8671, 8694,
1879     15923,15928,15933,15940, 8669, 8694, 8679,15949,15953,32864,
1880     15961,15965,15969,15973,16001,16005,16010,16015,15982,32864,
1881     16019, 8677,16041,16048, 8714, 8864,    0, 8918,    0, 8761,
1882
1883      8779, 8711, 8787, 8793, 8795, 8797, 8724,16053,16057, 8740,
1884      8745, 8772,16061, 8785, 8756, 8785,16065,16069,16077,16095,
1885      8777, 8776,16101,16105,16109,16113,16117,16121,16149,32864,
1886      8796,16157,16164, 8790,    0,    0, 8845, 8846, 8857, 8863,
1887      8888, 8889,16168,16172, 8830, 8855,16176,16180, 8877, 8848,
1888     16185, 8852, 8875,16192,16203,16207, 8875,16211,16218, 8870,
1889      8929, 8936, 8943, 8945, 8947, 8948,16222,16235, 8891, 8913,
1890     16239,16244,16256, 8887,16265,16269,16273, 8905,16277,16284,
1891      8906, 8957, 8980, 8987, 8994, 9000, 9001,16299,16303,16307,
1892      8966,16313,16317,16321,16333,32864,16339,16343,16347,16351,
1893
1894     16358, 8954, 9004, 9006, 9013, 9014, 9016, 9018,16362,16366,
1895     16370,16376,32864,16380,16384,16395,16402,32864, 9013, 9014,
1896      9022, 9023, 9024, 9030,16409,16413,16421, 8965, 8973,16427,
1897     16434, 9037, 9038,32864,32864,16439,16443, 8992,16447,16456,
1898     16460,16464,16469,16475,16482,16493,16499,16503,16507,32864,
1899     16511,16518,16525,16537,16541,16548,16552,16556,16563,16570,
1900     16574,16582,16586,16593,16597,16601,16608,16615,16619,16627,
1901     16631,16638,16642,16646,16653,16660,16664,16672,16676,16683,
1902     16687,16691,16698,16705,16709,16717,16721,16728,16732,16736,
1903     16743,16750,16754,16762,16766,16773,16777,16781,16788,16795,
1904
1905     16799,16807,16811,16818,16822,16826,16833,16840,16844,16852,
1906     16856,16863,16867,16871,16878,16885,16889,16897,16901,16908,
1907     16912,16916,16923,16930,16934,16942,16946,16953,16957,16961,
1908     16968,16975,16979,16987,16991,16998,17002,17006,17013,17020,
1909     17024,17032,17036,17043,17047,17051,17058,17065,17069,17077,
1910     17081,17088,17092,17096,17103,17110,17114,17122,17126,17133,
1911     17137,17141,17148,17155,17159,17167,17171,17178,17182,17186,
1912     17193,17200,17204,17212,17216,17223,17227,17231,17238,17245,
1913     17249,17257,17261,17268,17272,17276,17283,17290,17294,17302,
1914     17306,17313,17317,17321,17328,17335,17339,17347,17351,17358,
1915
1916     17362,17366,17373,17380,17384,17392,17396,17403,17407,17411,
1917     17418,17425,17429,17437,17441,17448,17452,17456,17463,17470,
1918     17474,17482,17486,17493,17497,17501,17508,17515,17519,17527,
1919     17531,17538,17542,17546,17553,17560,17564,17572,17576,17583,
1920     17587,17591,17598,17605,17609,17617,17621,17628,17632,17636,
1921     17643,17650,17654,17662,17666,17673,17677,17681,17688,17695,
1922     17699,17707,17711,17718,17722,17726,17733,17740,17744,17752,
1923     17756,17763,17767,17771,17778,17785,17789,17797,17801,17808,
1924     17812,17816,17823,17830,17834,17842,17846,32864,17853,17857,
1925     32864,17869,17901,17933,17965,17997,18029,18061,18093,18125,
1926
1927     18157,18189,18221,18253,18285,18317,18349,18381,18413,18445,
1928     18477,18509,18541,18573,18605,18637,18669,18701,18733,18765,
1929     18797,18829,18861,18893,18925,18957,18989,19021,19053,19085,
1930     19117,19149,19181,19213,19245,19277,19309,19341,19373,19405,
1931     19437,19469,19501,19533,19565,19597,19629,19661,19693,19725,
1932     19757,19789,19821,19853,19885,19917,19949,19981,20013,20045,
1933     20077,20109, 9073,20140,20171,20202,20233,20264,20295,20327,
1934     20358,20389,20420, 9074, 9133, 9094,20442,20474, 9127, 9220,
1935      9134, 9267, 9156, 9324,20505, 9158,20536, 9184,20568,20599,
1936     20630,20661, 9219, 9277,20692,20724,20756,20787,20818,20849,
1937
1938      9183, 9344, 9221, 9390,20881,20913,20945, 9279,20976,21007,
1939     21038,21069,21101,21133,21165,21197,21229,21261,21293, 9325,
1940      9776,21325, 9391,21343, 9405,21374, 9432,21405, 9433, 9821,
1941     21437, 9454,21464, 9487, 9877,21496, 9508, 9905,21528, 9633,
1942     21559,21591, 9638,21607, 9680, 9976, 9698, 9990, 9700,10004,
1943     21639,21670,21701,21732,21763,21794,21825,21856,21888,21920,
1944     21952, 9702,10015, 9720,10248,21984,22016,22048,22080,22112,
1945     22144,22176,22208,22240,22272, 9724,22304,10065,22336,22368,
1946     22400,22432,22464, 9726, 9960,10091, 9777,10148, 9868,10026,
1947     10246, 9879,10353,22496,22528,22560,22592,22623, 9916,22654,
1948
1949     22686,22717, 9964,22748,22779,22810,22841,22872,22904,22936,
1950     22968,23000,23031,23062,23093,23124, 9966,23155,23186,23217,
1951     23248,23279,23311,23342,23373,10006,23404,10356,23426,10193,
1952     10276,23458,10384,10572,10628,23489,23520,23551,23582,10322,
1953     10347,10811,23614,23646,23678,23709,23740,10045,23771,23803,
1954     23834,23865,10089,10758,10090,23896,23928,23959,23990,10101,
1955     24021,10822,10840,24053,24085,24117,24149,24181,24212,24243,
1956     24274,10899,10237,24305,24337,24369,24401,24433,24465,24497,
1957     24529,11087,24561,24579,10402,24610,24641,24672,24703,11089,
1958     24735,24762,11133,24794,11139,24826,24857,24889,24905,24936,
1959
1960     11185,11279,11281,24960,24992,25024,25055,25086,25117,25148,
1961     25180,25211,25242,11380,10285,25273,25305,25337,25369,25401,
1962     25433,11511,11775,25465,25497,25529,25561,25593,25625,25657,
1963     25689,25721,25753,25785,25817,11515,25849,25881,25913,25945,
1964     25977,26009,11820,10321,12256,11836,11845,10352,13016,11907,
1965     26041,26073,26105,26137,26168,26199,26231,26262,26293,26324,
1966     26355,10357,12202,26386,11943,10403,26417,26449,26481,10446,
1967     26513,26545,26576,26607,26638,26669,12294,26700,26731,26762,
1968     26793,26825,26857,26888,26919,10404,10448,12384,26941,26972,
1969     27003,27034,27065,10486,12637,12471,27097,27128,27159,27191,
1970
1971     27222,27253,27284,27315,27346,27370,27402,12344,10627,27433,
1972     27464,27495,27526,12425,27558,27590,27622,27654,27686,27717,
1973     27748,27779,12568,27810,27842,12569,27874,10546,27892,27923,
1974     27954,27985,10834,28016,28024,28056,28088,28120,28151,28182,
1975     12643,28213,28245,28277,10957,28309,28341,28373,28405,28437,
1976     28469,28501,13052,13063,28533,28565,28596,28627,12872,12913,
1977     28658,28690,10578,28721,13014,28752,28783,13112,28805,28836,
1978     28867,28898,28929,28960,13622,28991,29023,29054,29085,29116,
1979     29147,29178,29203,29234,29258,29290,10629,29321,29352,29383,
1980     13271,29415,29447,29479,29511,29543,29574,29605,29637,13296,
1981
1982     29669,29687,29718,10744,29734,29766,29798,29829,29861,29893,
1983     10757,29925,29957,29989,30021,30053,30085,30117,30149,30181,
1984     30212,30244,30276,30307,30329,30360,13297,10791,30391,30422,
1985     30453,30484,30515,30538,30563,30595,30627,30658,30689,30720,
1986     13315,30752,30784,30815,30846,30878,30894,30926,30957,30989,
1987     31021,31053,31085,31117,31148,13461,31179,31210,31241,31272,
1988     11094,31296,31328,31360,31392,10991,10993,13537,31424,31456,
1989     31488,31520,31552,13538,13625,31584,31616,31648,31680,31712,
1990     31744,31776,31808,31840,31872,31904,31936,31968,10792,31999,
1991     11894,12164,32031,32063,32095,32127,13627,13660,32159,32191,
1992
1993     32223,32255,32287,32319,32351,32383,32415,32447,32479,32511,
1994     32543,32575,32607,32639,32671,32703,32735,32767,32799,32831
1995     } ;
1996
1997 static yyconst flex_int16_t yy_def[4821] =
1998     {   0,
1999      4192, 4192, 4191,    3, 4193, 4193, 4191,    7, 4191,    9,
2000      4191,   11, 4191,   13, 4192, 4192, 4191,   17, 4194, 4194,
2001      4191,   21, 4195, 4195, 4191,   25, 4191,   27, 4196, 4196,
2002      4192, 4192, 4197, 4197, 4198, 4198, 4191,   37, 4199, 4199,
2003      4191,   41, 4191,   43, 4192, 4192, 4192, 4192, 4200, 4200,
2004      4201, 4201, 4202, 4202, 4191,   55, 4203, 4203, 4204, 4204,
2005      4205, 4205, 4206, 4206, 4206, 4206, 4206, 4206, 4191,   69,
2006      4207, 4207, 4191,   73, 4208, 4208, 4208, 4208, 4192, 4192,
2007      4209, 4209, 4209, 4209, 4210, 4210, 4211, 4211, 4192, 4192,
2008      4212, 4212, 4213, 4213, 4192, 4192, 4192, 4192, 4214, 4214,
2009
2010      4192, 4192, 4192, 4192, 4215, 4215, 4216, 4216, 4217, 4217,
2011      4218, 4218, 4191,  113, 4219, 4219, 4220, 4220, 4221, 4221,
2012      4191,  121, 4191,  123, 4191,  125, 4191,  127, 4222, 4222,
2013      4192, 4192, 4223, 4223, 4191,  135, 4224, 4224, 4191,  139,
2014      4225, 4225, 4191,  143, 4226, 4226, 4191,  147, 4227, 4227,
2015      4192, 4192, 4192, 4192, 4192, 4192, 4191,  157, 4191,  159,
2016      4192, 4192, 4191,  163, 4191,  165, 4228, 4228, 4191,  169,
2017      4192, 4192, 4192, 4192, 4191,  175, 4192, 4192, 4229, 4229,
2018      4191,  181, 4230, 4230, 4192, 4192, 4231, 4231, 4232, 4232,
2019      4233, 4233, 4191,  193, 4191,  195, 4234, 4234, 4234, 4234,
2020
2021      4235, 4235, 4235, 4235, 4236, 4236, 4237, 4237, 4238, 4238,
2022      4239, 4239, 4240, 4240, 4241, 4241, 4191,  217, 4242, 4242,
2023      4243, 4243, 4244, 4244, 4245, 4245, 4246, 4246, 4246, 4246,
2024      4247, 4247, 4232, 4232, 4248, 4248, 4249, 4249, 4250, 4250,
2025      4191,  241, 4251, 4191, 4191,  245, 4252, 4191, 4253, 4253,
2026      4254, 4254, 4255, 4255, 4191,  255, 4191,  257, 4256, 4256,
2027      4191,  261, 4257, 4257, 4258, 4258, 4259, 4259, 4260, 4260,
2028      4261, 4261, 4262, 4262, 4191, 4191, 4191, 4191, 4191, 4191,
2029      4191, 4263, 4264, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2030      4191, 4191, 4191, 4191, 4265, 4266, 4267, 4191, 4191, 4268,
2031
2032      4191, 4269, 4191, 4270, 4191, 4271, 4272, 4191, 4191, 4191,
2033      4191, 4191, 4191, 4191, 4191, 4273, 4273, 4273, 4191, 4191,
2034      4191, 4191, 4274, 4191, 4191, 4191, 4191, 4275, 4276, 4277,
2035      4277, 4191, 4278, 4279, 4191, 4280, 4191, 4191, 4191, 4191,
2036      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2037      4281, 4191, 4191, 4191, 4282, 4191, 4191, 4191, 4191, 4191,
2038      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4283, 4191, 4191,
2039      4284, 4191, 4285, 4191, 4285, 4286, 4191, 4191, 4191, 4191,
2040      4287, 4288, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2041      4191, 4191, 4191, 4191, 4289, 4191, 4191, 4191, 4191, 4191,
2042
2043      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2044      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4290, 4191,
2045      4291, 4191, 4191, 4292, 4191, 4191, 4191, 4191, 4293, 4191,
2046      4191, 4191, 4191, 4191, 4294, 4295, 4295, 4296, 4191, 4295,
2047      4295, 4295, 4295, 4295, 4295, 4295, 4295, 4295, 4295, 4295,
2048      4295, 4295, 4295, 4295, 4295, 4295, 4295, 4191, 4297, 4191,
2049      4297, 4297, 4297, 4297, 4191, 4191, 4191, 4298, 4299, 4191,
2050      4300, 4191, 4191, 4191, 4191, 4301, 4191, 4191, 4191, 4191,
2051      4191, 4302, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2052      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2053
2054      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2055      4191, 4191, 4191, 4191, 4191,  515, 4303, 4191, 4191, 4191,
2056      4191, 4304, 4304, 4304, 4304, 4304, 4304, 4304, 4304, 4304,
2057      4304, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2058      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2059      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4305, 4305,
2060      4191, 4191, 4191, 4306, 4307, 4191, 4191, 4191, 4191, 4191,
2061      4191, 4191, 4191, 4308, 4191, 4191, 4309, 4309, 4191, 4191,
2062      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4310, 4311, 4191,
2063      4312, 4313, 4313, 4191, 4191, 4191, 4314, 4191, 4191, 4191,
2064
2065      4191, 4191, 4191, 4313, 4191, 4191, 4191, 4191, 4191, 4191,
2066      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4315, 4191, 4191,
2067      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2068      4191, 4191, 4191, 4316, 4316, 4316, 4316, 4316, 4191, 4316,
2069      4317, 4191, 4317, 4317, 4317, 4317, 4317, 4191, 4191, 4191,
2070      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2071      4191, 4191, 4191, 4191, 4191, 4318, 4191, 4318, 4318, 4318,
2072      4191, 4191, 4319, 4191, 4319, 4319, 4319, 4319, 4191, 4191,
2073      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2074      4191, 4191, 4191, 4191, 4320, 4191, 4321, 4321, 4321, 4191,
2075
2076      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2077      4191, 4191, 4191, 4191, 4322, 4191, 4191, 4322, 4322, 4322,
2078      4191, 4191, 4191, 4322, 4323, 4191, 4324, 4191, 4325, 4326,
2079      4327, 4191, 4328, 4191, 4191, 4329, 4330, 4191, 4191, 4191,
2080      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2081      4191, 4191, 4331, 4191, 4191, 4191, 4332, 4333, 4191, 4191,
2082      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4334, 4191,
2083      4191, 4191, 4191, 4335, 4191, 4336, 4191, 4191, 4336, 4336,
2084      4336, 4337, 4191, 4191, 4191, 4338, 4191, 4339, 4339, 4339,
2085      4339, 4339, 4191, 4339, 4340, 4191, 4191, 4191, 4341, 4342,
2086
2087      4342, 4342, 4342, 4342, 4191, 4342, 4191, 4191, 4191, 4191,
2088      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4343, 4191,
2089      4344, 4344, 4344, 4345, 4346, 4191, 4191, 4191, 4191, 4191,
2090      4347, 4348, 4349, 4350, 4191, 4191, 4191, 4191, 4191, 4351,
2091      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2092      4191, 4191, 4191, 4191, 4191, 4352, 4352, 4352, 4353, 4191,
2093      4191, 4354, 4354, 4354, 4354, 4191, 4191, 4191, 4191, 4191,
2094      4355, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2095      4191, 4191, 4191, 4191, 4191, 4356, 4191, 4191, 4357, 4191,
2096      4191, 4191, 4358, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2097
2098      4191, 4191, 4359, 4360, 4191, 4191, 4191, 4191, 4361, 4191,
2099      4191, 4191, 4360, 4360, 4360, 4191, 4191, 4191, 4191, 4191,
2100      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4362, 4363,
2101      4364, 4191, 4365, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2102      4366, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2103      4367, 4191, 4191, 4368, 4191, 4191, 4368, 4369, 4191, 4191,
2104      4368, 4370, 4191, 4191, 4370, 4371, 4191, 4191, 4191, 4372,
2105      4191, 4191, 4372, 4373, 4191, 4191, 4191, 4374, 4191, 4191,
2106      4374, 4375, 4191, 4191, 4191, 4374, 4191, 4191, 4191, 4191,
2107      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2108
2109      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2110      4191, 4376, 4377, 4191, 4191, 4378, 4191, 4191, 4191, 4191,
2111      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2112      4191, 4191, 4191, 4191, 4191, 4379, 4191, 4191, 4379, 4191,
2113      4379, 4380, 4191, 4191, 4381, 4381, 4191, 4191, 4191, 4381,
2114      4381, 4381, 4191, 4191, 4382, 4191, 4382, 4382, 4382, 4191,
2115      4382, 4191, 4382, 4191, 4383, 4191, 4383, 4383, 4383, 4383,
2116      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4384, 4385, 4386,
2117      4191, 4191, 4191, 4191, 4191, 4387, 4388, 4389, 4390, 4391,
2118      4191, 4191, 4191, 4191, 4191, 4191, 4392, 4393, 4394, 4394,
2119
2120      4394, 4394, 4394, 4395, 4394, 4396, 4396, 4396, 4396, 4396,
2121      4397, 4396, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2122      4398, 4398, 4191, 4191, 4399, 4191, 4191, 4191, 4400, 4401,
2123      4402, 4402, 4403, 4404, 4191, 4191, 4191, 4191, 4405, 4191,
2124      4191, 4191, 4191, 4191, 4406, 4191, 4191, 4407, 4191, 4191,
2125      4191, 4191, 4191, 4408, 4191, 4191, 4191, 4191, 4191, 4191,
2126      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2127      4191, 4191, 4191, 4191, 4191, 4191, 4409, 4191, 4409, 4409,
2128      4409, 4409, 4410, 4410, 4191, 4410, 4410, 4410, 4191, 4191,
2129      4410, 4191, 4191, 4410, 4411, 4191, 4412, 4191, 4412, 4412,
2130
2131      4191, 4412, 4191, 4191, 4191, 4191, 4412, 4191, 4191, 4191,
2132      4413, 4191, 4191, 4413, 4191, 4191, 4191, 4191, 4191, 4191,
2133      4191, 4191, 4414, 4191, 4191, 4415, 4415, 4416, 4191, 4415,
2134      4417, 4418, 4414, 4414, 4419, 4420, 4417, 4191, 4191, 4191,
2135      4418, 4191, 4191, 4191, 4421, 4421, 4422, 4191, 4191, 4191,
2136      4191, 4423, 4423, 4191, 4424, 4424, 4425, 4424, 4426, 4427,
2137      4191, 4191, 4191, 4426, 4191, 4191, 4191, 4427, 4427, 4427,
2138      4428, 4191, 4191, 4428, 4429, 4191, 4430, 4429, 4431, 4429,
2139      4432, 4191, 4433, 4191, 4191, 4191, 4433, 4191, 4191, 4191,
2140      4191, 4191, 4434, 4434, 4435, 4435, 4436, 4436, 4436, 4437,
2141
2142      4437, 4191, 4191, 1303, 4436, 4437, 4437, 4438, 4439, 4191,
2143      4191, 4191, 4440, 4438, 4191, 4441, 4441, 4442, 4191, 4191,
2144      4191, 4191, 4191, 4443, 4444, 4191, 4191, 4191, 4191, 4191,
2145      4191, 4191, 4191, 4191, 4191, 4445, 4191, 4191, 4191, 4191,
2146      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2147      4191, 4191, 4446, 4446, 4447, 4191, 4191, 4191, 4191, 4446,
2148      4448, 4449, 4450, 4191, 4191, 4451, 4451, 4191, 4191, 4452,
2149      4191, 4191, 4191, 4453, 4454, 4448, 4191, 4191, 4191, 4455,
2150      4456, 4456, 4456, 4456, 4456, 4456, 4191, 4449, 4191, 4449,
2151      4445, 4191, 4449, 4449, 4449, 4449, 4449, 4449, 4449, 4449,
2152
2153      4449, 4449, 4449, 4449, 4449, 4449, 4449, 4449, 4449, 4449,
2154      4449, 4449, 4449, 4449, 4449, 4449, 4449, 4449, 4449, 4449,
2155      4449, 4449, 4449, 4457, 4457, 4457, 4191, 4191, 4191, 4191,
2156      4458, 4458, 4459, 4458, 4460, 4461, 4460, 4191, 4461, 4191,
2157      4191, 4191, 4191, 4462, 4191, 4191, 4462, 4191, 4191, 4191,
2158      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2159      4191, 4191, 4463, 4191, 4191, 4191, 4191, 4191, 4191, 4463,
2160      4463, 4463, 4463, 4463, 4463, 4463, 4463, 4463, 4463, 4463,
2161      4463, 4191, 4191, 4191, 4191, 4191, 4191, 4464, 4464, 4191,
2162      4191, 4465, 4465, 4466, 4467, 4191, 4468, 4191, 4191, 4191,
2163
2164      4191, 4469, 4191, 4470, 4469, 4191, 4469, 4191, 4191, 4471,
2165      4471, 4472, 4471, 4473, 4474, 4473, 4474, 4475, 4475, 4191,
2166      4476, 4477, 4191, 4191, 4191, 4191, 4191, 4191, 4475, 4191,
2167      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2168      4191, 4191, 4191, 4191, 4191, 4191, 4478, 4478, 4191, 4191,
2169      4191, 4478, 4479, 4191, 4479, 4479, 4479, 4191, 4191, 4480,
2170      4480, 4480, 4481, 4481, 4481, 4191, 4191, 4482, 4482, 4482,
2171      4482, 4191, 4191, 4191, 4483, 4191, 4191, 4191, 4191, 4483,
2172      4483, 4483, 4484, 4485, 4484, 4486, 4191, 4487, 4486, 4488,
2173      4191, 4488, 4489, 4191, 4191, 4490, 4490, 4191, 4191, 4191,
2174
2175      4191, 4191, 4491, 4191, 4492, 4191, 4492, 4493, 4191, 4191,
2176      4493, 4494, 4191, 4494, 4494, 4495, 4191, 4191, 4495, 4496,
2177      4496, 4496, 4497, 4191, 4191, 4191, 4497, 4191, 4498, 4191,
2178      4498, 4498, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2179      4191, 4191, 4499, 4499, 4191, 4500, 4499, 4499, 4501, 4501,
2180      4191, 4191, 4191, 4191, 4502, 4502, 4503, 4503, 4504, 4505,
2181      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4506, 4191,
2182      4507, 4507, 4508, 4191, 4191, 4508, 4191, 4191, 4509, 4509,
2183      4509, 4510, 4191, 4510, 4511, 4191, 4191, 4512, 4191, 4191,
2184      4191, 4513, 4513, 4514, 4513, 4515, 4516, 4515, 4516, 4191,
2185
2186      4191, 4191, 4191, 4191, 4191, 4517, 4191, 4518, 4191, 4519,
2187      4520, 4191, 4191, 4191, 4191, 4518, 4521, 4518, 4191, 4191,
2188      4191, 4522, 4522, 4523, 4523, 4191, 4191, 4191, 4191, 4191,
2189      4191, 4191, 4191, 4191, 4524, 4525, 4526, 4524, 4524, 4527,
2190      4528, 4529, 4530, 4531, 4532, 4533, 4534, 4535, 4533, 4191,
2191      4191, 4191, 4191, 4191, 4191, 4536, 4537, 4538, 4536, 4191,
2192      4191, 4191, 4191, 4191, 4191, 4191, 4539, 4539, 4539, 4191,
2193      4540, 4540, 4540, 4541, 4191, 4541, 4191, 4191, 4541, 4191,
2194      4191, 4542, 4542, 4542, 4191, 4191, 4191, 4191, 4191, 4191,
2195      4191, 4191, 4191, 4191, 4543, 4544, 4545, 4543, 4546, 4546,
2196
2197      4547, 4548, 4549, 4547, 4550, 4550, 4551, 4552, 4552, 4551,
2198      4551, 4553, 4554, 4554, 4553, 4553, 4191, 4555, 4555, 4556,
2199      4557, 4558, 4191, 4191, 4191, 4558, 4557, 4191, 4559, 4559,
2200      4560, 4561, 4191, 4191, 4561, 4191, 4562, 4191, 4563, 4191,
2201      4191, 4191, 4564, 4564, 4565, 4564, 4566, 4567, 4566, 4567,
2202      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4568,
2203      4191, 4191, 4191, 4568, 4568, 4569, 4569, 4569, 4191, 4191,
2204      4191, 4191, 4569, 4569, 4570, 4191, 4191, 4191, 4191, 4191,
2205      4191, 4191, 4191, 4569, 4571, 4191, 4191, 4571, 4191, 4572,
2206      4191, 4191, 4191, 4191, 4191, 4191, 4572, 4191, 4191, 4191,
2207
2208      4191, 4191, 4191, 4573, 4574, 4191, 4575, 4576, 4576, 4577,
2209      4578, 4579, 4191, 4580, 4581, 4191, 4582, 4191, 4191, 4583,
2210      4584, 4191, 4585, 4585, 4191, 4191, 4191, 4586, 4587, 4588,
2211      4589, 4590, 4591, 4591, 4592, 4592, 4593, 4594, 4595, 4592,
2212      4596, 4191, 4191, 4191, 4191, 4191, 4597, 4191, 4191, 4191,
2213      4191, 4191, 4191, 4191, 4191, 4191, 4598, 4191, 4191, 4191,
2214      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2215      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2216      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4599, 4191,
2217      4191, 4191, 4600, 4191, 4601, 4602, 4191, 4191, 4603, 4604,
2218
2219      4191, 4605, 4191, 4191, 4606, 4191, 4191, 4191, 4607, 4191,
2220      4608, 4598, 4191, 4191, 4191, 4191, 4609, 4610, 4610, 4610,
2221      4610, 4610, 4610, 4610, 4610, 4191, 4611, 4611, 4611, 4191,
2222      4191, 4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611,
2223      4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611,
2224      4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611,
2225      4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611,
2226      4611, 4191, 4191, 4191, 4612, 4613, 4191, 4606, 4191, 4607,
2227      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2228      4191, 4606, 4191, 4191, 4607, 4191, 4191, 4614, 4614, 4614,
2229
2230      4614, 4614, 4614, 4614, 4614, 4614, 4614, 4614, 4191, 4191,
2231      4191, 4191, 4615, 4616, 4191, 4617, 4618, 4191, 4191, 4191,
2232      4191, 4191, 4191, 4619, 4191, 4191, 4191, 4620, 4620, 4621,
2233      4622, 4623, 4624, 4625, 4191, 4191, 4191, 4191, 4191, 4191,
2234      4191, 4191, 4191, 4191, 4191, 4626, 4626, 4191, 4627, 4627,
2235      4627, 4628, 4629, 4630, 4630, 4191, 4631, 4191, 4632, 4632,
2236      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4606,
2237      4191, 4607, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2238      4191, 4191, 4191, 4191, 4633, 4634, 4191, 4635, 4635, 4191,
2239      4191, 4191, 4191, 4191, 4636, 4191, 4191, 4191, 4191, 4191,
2240
2241      4191, 4191, 4191, 4191, 4637, 4191, 4638, 4191, 4191, 4639,
2242      4639, 4191, 4640, 4191, 4641, 4642, 4191, 4191, 4643, 4191,
2243      4191, 4191, 4191, 4191, 4191, 4191, 4644, 4191, 4645, 4646,
2244      4191, 4191, 4191, 4647, 4191, 4191, 4191, 4648, 4191, 4191,
2245      4191, 4649, 4191, 4191, 4191, 4650, 4191, 4191, 4191, 4651,
2246      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2247      4191, 4191, 4191, 4191, 4652, 4191, 4653, 4191, 4654, 4655,
2248      4655, 4656, 4656, 4191, 4657, 4191, 4191, 4191, 4658, 4659,
2249      4191, 4191, 4660, 4661, 4191, 4191, 4191, 4191, 4191, 4662,
2250      4662, 4663, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2251
2252      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4664,
2253      4665, 4666, 4191, 4191, 4191, 4191, 4191, 4667, 4667, 4191,
2254      4191, 4668, 4191, 4669, 4670, 4671, 4670, 4191, 4672, 4673,
2255      4674, 4675, 4676, 4191, 4191, 4191, 4191, 4191, 4677, 4191,
2256      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2257      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2258      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2259      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2260      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4678, 4678, 4191,
2261      4679, 4680, 4680, 4681, 4191, 4191, 4682, 4682, 4191, 4683,
2262
2263      4680, 4684, 4191, 4191, 4191, 4191, 4191, 4685, 4191, 4191,
2264      4191, 4191, 4191, 4686, 4191, 4191, 4687, 4688, 4689, 4689,
2265      4689, 4689, 4689, 4689, 4689, 4689, 4690, 4690, 4690, 4690,
2266      4690, 4690, 4690, 4690, 4690, 4690, 4690, 4690, 4690, 4690,
2267      4690, 4690, 4690, 4690, 4690, 4690, 4690, 4690, 4690, 4690,
2268      4690, 4690, 4690, 4690, 4690, 4690, 4690, 4690, 4191, 4690,
2269      4690, 4690, 4690, 4690, 4690, 4690, 4690, 4690, 4690, 4690,
2270      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2271      4191, 4191, 4191, 4191, 4191, 4691, 4691, 4691, 4191, 4691,
2272      4691, 4691, 4691, 4691, 4191, 4191, 4691, 4191, 4191, 4692,
2273
2274      4191, 4693, 4191, 4694, 4695, 4191, 4191, 4191, 4696, 4191,
2275      4697, 4698, 4699, 4191, 4191, 4191, 4191, 4191, 4700, 4700,
2276      4191, 4701, 4701, 4701, 4702, 4703, 4191, 4191, 4191, 4191,
2277      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2278      4191, 4191, 4704, 4705, 4705, 4191, 4191, 4191, 4191, 4191,
2279      4706, 4191, 4191, 4707, 4191, 4191, 4708, 4191, 4709, 4191,
2280      4191, 4191, 4191, 4191, 4710, 4711, 4712, 4191, 4191, 4713,
2281      4191, 4191, 4714, 4191, 4191, 4715, 4191, 4191, 4716, 4191,
2282      4191, 4717, 4191, 4191, 4191, 4191, 4191, 4718, 4191, 4191,
2283      4191, 4191, 4191, 4191, 4191, 4719, 4719, 4720, 4720, 4191,
2284
2285      4721, 4191, 4191, 4191, 4191, 4191, 4722, 4722, 4191, 4191,
2286      2610, 4191, 4723, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2287      4191, 4191, 4724, 4724, 4725, 4726, 4726, 4727, 4191, 4728,
2288      4728, 4729, 4730, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2289      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2290      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2291      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2292      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2293      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4731, 4191,
2294      4732, 4191, 4733, 4191, 4734, 4191, 4735, 4735, 4736, 4191,
2295
2296      4737, 4191, 4191, 4738, 4739, 4739, 4739, 4739, 4739, 4739,
2297      4739, 4739, 4740, 4740, 4740, 4740, 4740, 4740, 4740, 4740,
2298      4740, 4740, 4191, 4191, 4191, 4191, 4740, 4191, 4191, 4740,
2299      4740, 4740, 4740, 4740, 4740, 4740, 4740, 4740, 4740, 4740,
2300      4740, 4740, 4740, 4740, 4740, 4740, 4740, 4740, 4740, 4191,
2301      4191, 4740, 4740, 4740, 4740, 4740, 4740, 4740, 4740, 4740,
2302      4740, 4740, 4740, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2303      4191, 4191, 4191, 4191, 4741, 4741, 4741, 4741, 4741, 4741,
2304      4741, 4741, 4741, 4191, 4191, 4191, 4191, 4742, 4191, 4743,
2305      4191, 4191, 4191, 4191, 4744, 4191, 4191, 4191, 4191, 4745,
2306
2307      4745, 4191, 4746, 4746, 4746, 4746, 4191, 4191, 4191, 4191,
2308      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4747, 4747, 4191,
2309      4191, 4191, 4191, 4191, 4191, 4748, 4749, 4191, 4191, 4191,
2310      4750, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4751,
2311      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2312      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4752, 4752,
2313      4753, 4753, 4191, 4191, 4191, 4191, 4191, 4191, 4754, 4754,
2314      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2315      4191, 4191, 4191, 4191, 4191, 4755, 4755, 4756, 4757, 4758,
2316      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2317
2318      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2319      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2320      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2321      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2322      4759, 4759, 4760, 4191, 4191, 4191, 4739, 4739, 4739, 4739,
2323      4739, 4739, 4739, 4739, 4739, 4740, 4740, 4740, 4740, 4740,
2324      4191, 4191, 4740, 4191, 4740, 4740, 4191, 4191, 4191, 4740,
2325      4740, 4740, 4740, 4740, 4740, 4740, 4740, 4740, 4740, 4740,
2326      4740, 4740, 4740, 4740, 4740, 4740, 4740, 4740, 4740, 4191,
2327      4191, 4740, 4740, 4740, 4740, 4740, 4740, 4740, 4191, 4191,
2328
2329      4191, 4191, 4740, 4740, 4740, 4191, 4191, 4191, 4191, 4191,
2330      4191, 4191, 4191, 4191, 4191, 4741, 4191, 4191, 4741, 4741,
2331      4741, 4741, 4191, 4191, 4741, 4741, 4191, 4742, 4191, 4191,
2332      4744, 4191, 4745, 4746, 4746, 4746, 4191, 4191, 4191, 4191,
2333      4191, 4191, 4191, 4191, 4191, 4191, 4747, 4191, 4761, 4191,
2334      4762, 4763, 4751, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2335      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4764, 4764, 4765,
2336      4765, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4754, 4191,
2337      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2338      4191, 4191, 4191, 4755, 4191, 4191, 4191, 4758, 4191, 4191,
2339
2340      4191, 4191, 4191, 2896, 4191, 4191, 4191, 4191, 4191, 4191,
2341      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2342      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2343      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2344      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2345      4739, 4739, 4739, 4739, 4739, 4739, 4739, 4739, 4740, 4740,
2346      4740, 4740, 4740, 4740, 4191, 4191, 4191, 4191, 4740, 4191,
2347      4191, 4740, 4740, 4191, 4191, 4191, 4740, 4740, 4740, 4191,
2348      4740, 4740, 4191, 4191, 4740, 4740, 4191, 4740, 4740, 4740,
2349      4740, 4740, 4191, 4191, 4740, 4740, 4191, 4191, 3178, 4740,
2350
2351      4191, 4191, 4191, 4740, 4740, 4740, 4191, 4191, 4740, 4740,
2352      4740, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2353      4741, 4741, 4741, 4191, 4191, 4191, 4191, 4741, 4191, 4742,
2354      4191, 4191, 4744, 4745, 4746, 4746, 4746, 4766, 4191, 4191,
2355      4191, 4767, 4191, 4747, 4191, 4761, 4768, 4191, 4769, 4770,
2356      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2357      4191, 4191, 4191, 4191, 4771, 4771, 4772, 4772, 4191, 4191,
2358      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4773,
2359      4191, 4191, 4191, 4191, 4191, 4758, 4191, 4191, 4191, 4191,
2360      2896, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2361
2362      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2363      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2364      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2365      4191, 4191, 4191, 4191, 4191, 4739, 4739, 4739, 4739, 4739,
2366      4739, 4191, 4739, 4740, 4740, 4740, 4740, 4740, 4191, 4191,
2367      4191, 4191, 4740, 4191, 4191, 4740, 4740, 4191, 4191, 4191,
2368      4191, 4191, 4191, 4740, 4740, 4740, 4740, 4191, 4191, 4191,
2369      4191, 4740, 4191, 4191, 4740, 4740, 4740, 4740, 4740, 4191,
2370      4740, 4740, 4191, 4191, 4740, 4191, 4191, 4191, 4740, 4191,
2371      4191, 4740, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4741,
2372
2373      4741, 4741, 4741, 4191, 4742, 4191, 4191, 4744, 4746, 4746,
2374      4746, 4766, 4774, 4191, 4191, 4191, 4767, 4775, 4191, 4191,
2375      4768, 4191, 4776, 4777, 4191, 4191, 4191, 4191, 4191, 4191,
2376      4191, 4191, 4191, 4191, 4778, 4778, 4779, 4779, 4191, 4191,
2377      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4758,
2378      4191, 4191, 2896, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2379      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2380      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2381      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2382      4191, 4739, 4739, 4739, 4191, 4739, 4739, 4739, 4740, 4740,
2383
2384      4191, 4740, 4191, 4191, 4740, 4191, 4191, 4191, 4191, 4191,
2385      4191, 4191, 4740, 4191, 4740, 4191, 4191, 4740, 4191, 4740,
2386      4740, 4740, 4191, 4740, 4740, 4740, 4191, 4191, 4740, 4191,
2387      4191, 4191, 4191, 4191, 4191, 4740, 4191, 4191, 4191, 4191,
2388      4191, 4191, 4191, 4191, 4191, 4742, 4191, 4191, 4744, 4746,
2389      4774, 4191, 4191, 4775, 4191, 4191, 4191, 4780, 4781, 4191,
2390      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4782, 4782,
2391      4783, 4783, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2392      4191, 4758, 4191, 2896, 4191, 4191, 4191, 4191, 4191, 4191,
2393      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2394
2395      4191, 4784, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2396      4191, 4739, 4739, 4191, 4739, 4191, 4191, 4740, 4740, 4740,
2397      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4740,
2398      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4740, 4740, 4740,
2399      4740, 4191, 4191, 4740, 4740, 4740, 4740, 4191, 4191, 4191,
2400      4740, 4191, 4191, 4191, 4191, 4742, 4191, 4191, 4191, 4746,
2401      4191, 4191, 4191, 4785, 4786, 4191, 4191, 4191, 4191, 4191,
2402      4191, 4191, 4191, 4191, 4787, 4787, 4788, 4788, 4191, 4191,
2403      4191, 4191, 4191, 4191, 4191, 4758, 2896, 4191, 4191, 4191,
2404      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4784,
2405
2406      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4739,
2407      4191, 4191, 4740, 4191, 4191, 4191, 4191, 4740, 4191, 4191,
2408      4789, 4790, 4790, 4740, 4740, 4191, 4191, 4191, 4740, 4740,
2409      4740, 4740, 4191, 4191, 4740, 4191, 4191, 4191, 4742, 4191,
2410      4746, 4191, 4791, 4792, 4793, 4794, 4191, 4191, 4191, 4795,
2411      4795, 4796, 4796, 4191, 4191, 4191, 4191, 2896, 4191, 4191,
2412      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2413      4191, 4739, 4740, 4191, 4191, 4191, 4191, 4191, 4790, 4191,
2414      4740, 4740, 4191, 4740, 4740, 4740, 4191, 4191, 4191, 4191,
2415      4191, 4191, 4742, 4191, 4191, 4791, 4797, 4792, 4798, 4799,
2416
2417      4800, 4191, 4801, 4801, 4802, 4802, 4191, 2896, 4191, 4191,
2418      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4739, 4191,
2419      4191, 4191, 4740, 4191, 4191, 4740, 4740, 4191, 4191, 4191,
2420      4191, 4742, 4191, 4191, 4797, 4798, 4803, 4804, 4805, 4805,
2421      4806, 4806, 2896, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2422      4739, 4191, 4191, 4191, 4740, 4740, 4191, 4742, 4191, 4191,
2423      4807, 4808, 4809, 4809, 4810, 4810, 2896, 4191, 4191, 4191,
2424      4191, 4739, 4191, 4191, 4740, 4191, 4191, 4191, 4742, 4191,
2425      4191, 4811, 4812, 4813, 4813, 4814, 4814, 2896, 4191, 4191,
2426      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4742,
2427
2428      4191, 4191, 4815, 4816, 4817, 4817, 4818, 4818, 2896, 4191,
2429      4191, 4191, 4191, 4191, 4191, 4742, 4191, 4191, 4819, 4820,
2430      4191, 4191, 4191, 4191, 2896, 4191, 4191, 4191, 4191, 4742,
2431      4191, 4191, 4191, 4191, 4191, 2896, 4191, 4191, 4742, 4191,
2432      2896, 4191, 4191, 4742, 4191, 2896, 4191, 4191, 4191, 4191,
2433      4742, 4191, 2896, 4191, 4742, 4191, 2896, 4191, 4742, 4191,
2434      2896, 4191, 4742, 4191, 2896, 4191, 4742, 4191, 2896, 4191,
2435      4742, 4191, 2896, 4191, 4742, 4191, 2896, 4191, 4742, 4191,
2436      2896, 4191, 4742, 4191, 2896, 4191, 4742, 4191, 2896, 4191,
2437      4742, 4191, 2896, 4191, 4742, 4191, 2896, 4191, 4742, 4191,
2438
2439      2896, 4191, 4742, 4191, 2896, 4191, 4742, 4191, 2896, 4191,
2440      4742, 4191, 2896, 4191, 4742, 4191, 2896, 4191, 4742, 4191,
2441      2896, 4191, 4742, 4191, 2896, 4191, 4742, 4191, 2896, 4191,
2442      4742, 4191, 2896, 4191, 4742, 4191, 2896, 4191, 4742, 4191,
2443      2896, 4191, 4742, 4191, 2896, 4191, 4742, 4191, 2896, 4191,
2444      4742, 4191, 2896, 4191, 4742, 4191, 2896, 4191, 4742, 4191,
2445      2896, 4191, 4742, 4191, 2896, 4191, 4742, 4191, 2896, 4191,
2446      4742, 4191, 2896, 4191, 4742, 4191, 2896, 4191, 4742, 4191,
2447      2896, 4191, 4742, 4191, 2896, 4191, 4742, 4191, 2896, 4191,
2448      4742, 4191, 2896, 4191, 4742, 4191, 2896, 4191, 4742, 4191,
2449
2450      2896, 4191, 4742, 4191, 2896, 4191, 4742, 4191, 2896, 4191,
2451      4742, 4191, 2896, 4191, 4742, 4191, 2896, 4191, 4742, 4191,
2452      2896, 4191, 4742, 4191, 2896, 4191, 4742, 4191, 2896, 4191,
2453      4742, 4191, 2896, 4191, 4742, 4191, 2896, 4191, 4742, 4191,
2454      2896, 4191, 4742, 4191, 2896, 4191, 4742, 4191, 2896, 4191,
2455      4742, 4191, 2896, 4191, 4742, 4191, 2896, 4191, 4742, 4191,
2456      2896, 4191, 4742, 4191, 2896, 4191, 4742, 4191, 2896, 4191,
2457      4742, 4191, 2896, 4191, 4742, 4191, 2896, 4191, 4742, 4191,
2458      2896, 4191, 4742, 4191, 2896, 4191, 4742, 4191, 2896, 4742,
2459         0, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2460
2461      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2462      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2463      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2464      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2465      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2466      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2467      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2468      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2469      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2470      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2471
2472      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2473      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2474      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2475      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2476      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2477      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2478      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2479      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2480      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2481      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2482
2483      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2484      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2485      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2486      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2487      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2488      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2489      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2490      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2491      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2492      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2493
2494      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2495      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2496      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2497      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2498      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2499      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2500      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2501      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2502      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2503      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2504
2505      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2506      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2507      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2508      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2509      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2510      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2511      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2512      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2513      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2514      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2515
2516      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2517      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2518      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2519      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2520      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2521      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2522      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2523      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2524      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2525      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2526
2527      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
2528      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191
2529     } ;
2530
2531 static yyconst flex_int16_t yy_nxt[32951] =
2532     {   0,
2533      4191, 4191,  277, 4191,  277, 4191,  278,  279,  278,  279,
2534      1365,  280, 4191,  280, 1365, 1209, 1219, 1220, 4191,  281,
2535      1210,  281,  276,  276,  277,  276,  276,  276,  278,  279,
2536       282,  276,  276,  280,  276,  276,  276,  276,  276,  276,
2537       276,  281,  276,  276,  276,  276,  276,  276,  276,  276,
2538       276,  276,  276,  276,  276,  283,  283,  283,  283,  283,
2539       283,  283,  283,  283,  283,  283,  283,  283,  283,  283,
2540       283,  283,  283,  283,  283,  276,  276,  276,  276,  283,
2541       283,  283,  283,  283,  283,  283,  283,  283,  283,  283,
2542       283,  283,  283,  283,  283,  283,  283,  283,  283,  283,
2543
2544       283,  283,  283,  283,  276,  276,  276,  283,  285,  286,
2545       285,  285, 1217,  287,  288, 1363, 1364, 1218,  289,  285,
2546       286,  285,  285,  277,  287,  288,  290,  338,  339,  289,
2547      1377, 1262,  340,  341,  342, 1244, 1263,  290, 1244, 1272,
2548       343,  277, 1378,  277, 1273,  401,  402,  338,  339,  344,
2549       403,  345,  340,  341,  342,  404, 1212, 2403,  405, 1212,
2550       343,  291, 1261, 1261, 1261, 1261,  406, 1213, 1645,  344,
2551      1646,  345,  291,  276,  292,  293,  294,  292,  295,  278,
2552       279,  296,  276,  276,  280,  276,  276,  276,  276,  276,
2553       276,  297,  281,  276,  276,  276,  276,  276,  276,  298,
2554
2555       299,  276,  276,  276,  276,  276,  300,  300,  300,  300,
2556       300,  300,  300,  300,  300,  300,  300,  300,  300,  300,
2557       300,  300,  300,  300,  300,  300,  276,  276,  276,  276,
2558       300,  300,  300,  300,  300,  300,  300,  300,  300,  300,
2559       300,  300,  300,  300,  300,  300,  300,  300,  300,  300,
2560       300,  300,  300,  300,  300,  301,  276,  302,  300,  276,
2561       303,  304,  305,  303,  306,  278,  279,  307,  276,  308,
2562       280,  309,  276,  308,  310,  311,  310,  276,  312,  276,
2563       276,  276,  276,  276,  276,  313,  308,  314,  308,  276,
2564       276,  315,  316,  316,  316,  316,  316,  316,  316,  316,
2565
2566       316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
2567       316,  316,  309,  276,  276,  276,  316,  317,  316,  316,
2568       316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
2569       316,  316,  316,  316,  318,  316,  316,  316,  316,  316,
2570       316,  301,  276,  306,  316,  319,  319,  320,  319,  319,
2571       319,  321,  322,  323,  319,  319,  324,  319,  319,  319,
2572       319,  319,  319,  319,  325,  319,  319,  319,  319,  319,
2573       319,  326,  327,  319,  319,  319,  319,  319,  328,  328,
2574       328,  328,  328,  328,  328,  328,  328,  328,  328,  328,
2575       328,  328,  328,  328,  328,  328,  328,  328,  319,  319,
2576
2577       319,  319,  328,  328,  328,  328,  328,  328,  328,  328,
2578       328,  328,  328,  328,  328,  328,  328,  328,  328,  328,
2579       328,  328,  328,  328,  328,  328,  328,  319,  319,  319,
2580       328,  319,  319,  320,  319,  319,  319,  321,  322,  329,
2581       319,  319,  324,  319,  319,  319,  319,  319,  319,  319,
2582       325,  319,  319,  319,  319,  319,  319,  319,  327,  319,
2583       319,  319,  319,  319,  330,  330,  330,  330,  330,  330,
2584       330,  330,  330,  330,  330,  330,  330,  330,  330,  330,
2585       330,  330,  330,  330,  319,  319,  319,  319,  330,  330,
2586       330,  330,  330,  330,  330,  330,  330,  330,  330,  330,
2587
2588       330,  330,  330,  330,  330,  330,  330,  330,  330,  330,
2589       331,  330,  330,  332,  319,  319,  330,  277, 1474,  277,
2590      1209,  278,  279,  278,  279, 1210,  280, 1475,  280, 1222,
2591      1222, 1222, 1222,  277,  281,  460,  281,  401,  402,  461,
2592       462, 2700,  403, 1276,  463, 1292, 1223,  404, 1292, 1277,
2593       405, 1209,  464, 1638, 1224, 1209, 1210, 1479,  406, 1279,
2594      1210,  465, 1226, 1226, 1226, 1226, 1480, 1639,  333, 1227,
2595       333,  276,  276,  277,  276,  276,  276,  278,  279,  334,
2596       276,  276,  280,  276,  335,  276,  276,  276,  276,  276,
2597       281,  276,  276,  276,  276,  276,  276,  276,  276,  276,
2598
2599       276,  276,  276,  276,  336,  336,  336,  336,  336,  336,
2600       336,  336,  336,  336,  336,  336,  336,  336,  336,  336,
2601       336,  336,  336,  336,  276,  276,  276,  276,  336,  336,
2602       336,  336,  336,  336,  336,  336,  336,  336,  336,  336,
2603       336,  336,  336,  336,  336,  336,  336,  336,  336,  336,
2604       336,  336,  336,  276,  276,  276,  336,  346,  347,  348,
2605       346,  347,  346,  349,  350,  351,  346,  346,  352,  346,
2606       346,  346,  346,  346,  346,  346,  353,  346,  346,  346,
2607       346,  346,  346,  346,  354,  346,  346,  346,  346,  346,
2608       355,  355,  355,  355,  355,  355,  355,  355,  355,  355,
2609
2610       355,  355,  355,  355,  355,  355,  355,  355,  355,  355,
2611       356,  346,  346,  346,  355,  355,  355,  355,  355,  355,
2612       355,  355,  355,  355,  355,  355,  355,  355,  355,  355,
2613       355,  355,  355,  355,  355,  355,  355,  355,  355,  357,
2614       346,  346,  355,  277, 1670,  277, 1209,  359,  360,  359,
2615       360, 1210,  361, 2702,  361, 1252, 1252, 1253, 1252,  460,
2616       362, 1209,  362,  461,  462, 1777, 1210, 1668,  463,  474,
2617       473,  474,  474,  277,  278,  279,  464,  501,  502,  280,
2618      1254, 1778,  503,  504,  505,  465, 1319,  484, 1321, 1319,
2619       506, 1322, 1209, 1533, 1534, 2703,  363, 1210,  363,  364,
2620
2621       364,  365,  364,  364,  364,  366,  367,  368,  364,  364,
2622       369,  364,  364,  364,  364,  364,  364,  364,  370,  364,
2623       364,  364,  364,  364,  364,  364,  364,  364,  364,  364,
2624       364,  364,  371,  371,  371,  371,  371,  371,  371,  371,
2625       371,  371,  371,  371,  371,  371,  371,  371,  371,  371,
2626       371,  371,  364,  364,  364,  364,  371,  371,  371,  371,
2627       371,  371,  371,  371,  371,  371,  371,  371,  371,  371,
2628       371,  371,  371,  371,  371,  371,  371,  371,  371,  371,
2629       371,  372,  364,  364,  371,  276,  373,  374,  375,  373,
2630       276,  278,  279,  376,  276,  276,  280,  276,  276,  276,
2631
2632       310,  377,  310,  276,  312,  276,  276,  276,  276,  276,
2633       276,  378,  299,  379,  276,  380,  276,  315,  381,  381,
2634       381,  381,  381,  381,  381,  381,  381,  381,  381,  381,
2635       381,  381,  381,  381,  381,  381,  381,  381,  276,  382,
2636       276,  276,  381,  381,  381,  381,  381,  381,  381,  381,
2637       381,  381,  381,  381,  381,  381,  381,  381,  381,  381,
2638       381,  381,  381,  381,  381,  381,  381,  383,  276,  276,
2639       381,  385,  386,  385,  385, 1493,  387,  388, 1493, 1427,
2640      1276,  389,  385,  386,  385,  385, 1277,  387,  388,  390,
2641      1209, 2764,  389,  277, 1372, 1210, 1279,  394,  279, 1373,
2642
2643       390, 1425,  395,  396, 1445, 1499, 1426,  397, 1217, 1446,
2644       281, 1356,  277, 1218, 1356,  277,  394,  279,  398,  278,
2645       279,  395,  396, 1428,  280, 1443,  397, 1520, 1443,  281,
2646      1520, 1520,  281, 1280, 1520,  408,  391,  398, 1209,  409,
2647       410,  408,  392, 1210,  411,  409,  410,  391,  393,  412,
2648       411, 1209,  413,  392, 2765,  412, 1210, 1584,  413,  393,
2649       414, 1501,  474,  473,  474,  474,  414,  278,  279, 1209,
2650      1357, 1358,  280,  399, 1210, 2290,  491,  492,  491,  491,
2651       484,  493,  494, 2766, 1357, 1358,  495,  496,  497, 1543,
2652      1544,  498,  399, 1584,  499,  491,  492,  491,  491,  277,
2653
2654       493,  494, 2290,  278,  279,  495,  496,  497,  280, 1465,
2655       498, 1545, 1546,  499, 1466,  415,  281, 1371, 1371, 1371,
2656      1371,  415,  276,  416,  417,  418,  416,  419,  278,  420,
2657       421,  422,  423,  280,  424,  276,  423,  425,  426,  425,
2658       427,  428,  429,  429,  429,  429,  429,  429,  430,  431,
2659       432,  433,  276,  434,  435,  436,  436,  436,  436,  436,
2660       436,  436,  436,  436,  436,  436,  436,  436,  437,  436,
2661       436,  436,  436,  436,  436,  438,  276,  276,  439,  440,
2662       441,  436,  442,  443,  444,  445,  446,  436,  447,  448,
2663       449,  450,  451,  436,  452,  436,  453,  454,  455,  456,
2664
2665       457,  436,  436,  436,  458,  276,  419,  436,  276,  466,
2666       467,  466,  466,  468,  278,  279,  469,  276,  276,  280,
2667       276,  276,  276,  276,  276,  276,  276,  281,  276,  276,
2668       276,  276,  276,  276,  470,  276,  276,  276,  276,  276,
2669       276,  471,  471,  471,  471,  471,  471,  471,  471,  471,
2670       471,  471,  471,  471,  471,  471,  471,  471,  471,  471,
2671       471,  276,  276,  276,  276,  471,  471,  471,  471,  471,
2672       471,  471,  471,  471,  471,  471,  471,  471,  471,  471,
2673       471,  471,  471,  471,  471,  471,  471,  471,  471,  471,
2674       276,  276,  468,  471,  276,  472,  473,  474,  472,  276,
2675
2676       278,  475,  476,  276,  276,  280,  477,  276,  276,  276,
2677       478,  276,  276,  479,  276,  276,  276,  276,  276,  276,
2678       276,  480,  276,  481,  276,  276,  276,  482,  482,  482,
2679       482,  482,  482,  482,  482,  482,  482,  482,  482,  482,
2680       482,  482,  482,  482,  482,  482,  482,  483,  276,  276,
2681       276,  482,  482,  482,  482,  482,  482,  482,  482,  482,
2682       482,  482,  482,  482,  482,  482,  482,  482,  482,  482,
2683       482,  482,  482,  482,  482,  482,  276,  276,  276,  482,
2684       277, 1902,  277, 1209,  278,  485,  278,  485, 1210,  280,
2685       486,  280,  486, 1465,  487, 1902,  487,  281, 1466,  281,
2686
2687      1310, 1310, 1310, 1310,  488,  489,  488,  489,  277, 1209,
2688      2767,  508,  501,  502, 1210,  509,  510,  503,  504,  505,
2689       511, 2768,  508, 1554, 1496,  506,  509,  510,  512, 1497,
2690      1209,  511, 1718,  544, 2769, 1210,  513,  545,  546,  512,
2691      1523, 1531,  547,  548,  544, 1524, 1532,  513,  545,  546,
2692       549, 1538, 1523,  547,  548, 1716, 1539, 1541,  550,  551,
2693       487,  549,  487,  580, 1720, 2770, 1209,  581,  582,  550,
2694       551, 1210,  583,  580, 1773, 1555, 1548,  581,  582, 1548,
2695       584, 1311,  583, 1215, 1215, 1215, 1215, 1719,  585, 1549,
2696       584,  514, 1245, 1245, 1245, 1245, 1600, 1772,  585, 1246,
2697
2698      1601, 1216,  514,  490,  515,  516,  515,  515,  490,  493,
2699       494,  517,  490,  490,  495,  490,  490,  490,  490,  518,
2700       519,  490,  520,  490,  490,  490,  490,  490,  490,  518,
2701       518,  490,  521,  490,  490,  490,  522,  522,  522,  522,
2702       522,  522,  522,  522,  522,  522,  522,  522,  522,  522,
2703       522,  522,  522,  522,  522,  522,  490,  490,  490,  490,
2704       522,  523,  522,  524,  522,  522,  525,  522,  522,  522,
2705       522,  522,  522,  526,  527,  522,  522,  528,  529,  530,
2706       522,  531,  522,  522,  522,  518,  490,  490,  522,  533,
2707       534,  533,  533,  277,  535,  536,  277,  553,  554,  537,
2708
2709       553,  554,  555, 1519, 2378,  555, 1519,  538, 1529, 1491,
2710       556, 1529, 1554,  556, 1530,  539, 1554,  540, 1793, 1794,
2711      2379,  560,  561,  562,  560,  674,  563,  564, 1551,  675,
2712       676,  565, 2179, 1552,  677,  560,  561,  562,  560,  566,
2713       563,  564,  678, 2771,  557,  565,  558,  557,  567,  558,
2714      2180,  541,  568,  566, 1249, 1249, 1249, 1249, 1209,  542,
2715      1554, 1365,  567, 1210, 1555, 1365,  568, 2772, 1555, 1902,
2716       539,  533,  534,  533,  533, 1558,  535,  536, 1902, 1250,
2717      2773,  537,  560,  561,  562,  560, 1561,  563,  564,  538,
2718      1925, 1562,  565, 1248, 1249, 1249, 1248,  539, 1617,  540,
2719
2720       566, 1617,  569,  570, 1925,  560,  561,  562,  560,  567,
2721       563,  564, 1555,  568, 2774,  565,  569,  570, 1250,  560,
2722       561,  562,  560,  566,  563,  564,  277, 1555, 1981,  565,
2723       278,  279,  567,  541, 1564,  280,  568,  566, 1982, 1565,
2724       277,  542, 1209,  281,  278,  279,  567, 1210, 1630,  280,
2725       572, 1630,  539, 1255, 1255, 1255, 1255,  281, 1642, 1749,
2726      1256, 1642, 1749,  569,  571,  560,  561,  562,  560, 2607,
2727       563,  564,  612, 1209, 1225,  565,  613,  614, 1210, 1244,
2728      1209,  615, 1244,  566,  616, 1210,  569,  571, 1244,  617,
2729      1209, 1244,  567,  612, 2607, 1210,  572,  613,  614,  674,
2730
2731       569,  573,  615,  675,  676,  616, 1578,  610,  677, 1209,
2732       617, 1579,  635,  277, 1210,  635,  678,  636,  637, 1895,
2733      1896,  610,  638, 1209,  618,  639,  635,  277, 1210,  635,
2734       640,  636,  637, 1606, 1292, 2775,  638, 1292, 1606,  639,
2735      1450, 1450, 1450, 1450,  640,  618,  569,  573,  276,  276,
2736       277,  276,  276,  276,  278,  279,  574,  276,  276,  280,
2737       276,  276,  276,  276,  276,  276,  276,  281,  276,  276,
2738       276,  276,  276,  276,  276,  575,  276,  576,  276,  276,
2739       276,  577,  577,  577,  577,  577,  577,  577,  577,  577,
2740       577,  577,  577,  577,  577,  577,  577,  577,  577,  577,
2741
2742       577,  276,  276,  276,  276,  577,  577,  577,  577,  577,
2743       577,  577,  577,  577,  577,  577,  577,  577,  578,  577,
2744       577,  577,  577,  577,  577,  577,  577,  577,  577,  577,
2745       276,  276,  276,  577,  276,  586,  587,  586,  586,  588,
2746       278,  279,  589,  276,  276,  280,  276,  276,  276,  276,
2747       276,  276,  276,  281,  276,  276,  276,  276,  276,  276,
2748       590,  276,  276,  276,  276,  276,  276,  591,  591,  591,
2749       591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
2750       591,  591,  591,  591,  591,  591,  591,  276,  276,  276,
2751       276,  591,  591,  591,  591,  591,  591,  591,  591,  591,
2752
2753       591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
2754       591,  591,  591,  591,  591,  591,  276,  276,  588,  591,
2755       593,  594, 1209,  593, 1609,  595,  596, 1210, 1614, 1610,
2756       597,  604,  594, 1615,  604,  277,  595,  605,  598,  278,
2757       279,  597, 2776, 1621,  280,  650,  651,  599, 1622,  598,
2758      1779,  600,  281, 1779,  593,  606, 1631,  593,  599,  607,
2759       596, 1632,  600, 1780,  597,  593,  606, 1916,  593, 1662,
2760       607,  596,  608,  601, 1663,  597, 1917, 1215, 1215, 1215,
2761      1215,  599,  612,  608,  601,  600,  619,  614, 1580, 1554,
2762      1581,  620,  599, 1465,  616, 1216,  600, 1319, 1466,  617,
2763
2764      1319,  602,  603, 1209, 2619,  612, 1582,  609, 1210,  619,
2765       614, 1209,  602,  603,  620,  594, 1210,  616,  609,  621,
2766       622, 1925,  617, 1276,  597, 1326, 1326, 1326, 1326, 1277,
2767      1926, 2619,  623,  594,  618,  601,  601,  621,  622, 1279,
2768       624, 1555,  597, 1327,  642,  600,  601,  601,  643,  644,
2769       623,  627,  628,  645, 2777,  629,  630,  618,  624, 1677,
2770       631,  646, 1677,  600, 1678,  627,  628,  642,  632,  629,
2771       630,  643,  644, 1645,  631, 1646,  645, 1485, 1485, 1485,
2772      1485,  277,  632,  277,  646,  278,  279,  278,  279, 1486,
2773       280, 1645,  280, 1646, 1209,  625,  647,  277,  281, 1210,
2774
2775       281,  278,  279,  633, 1533, 1534,  280,  650,  651, 1331,
2776      1331, 1331, 1331,  625,  281, 1543, 1544,  633, 1647,  647,
2777       653,  654,  653,  653, 1714,  655,  656,  277, 1209, 1715,
2778       657,  278,  279, 1210, 1333, 1645,  280, 1646,  658, 2083,
2779       653,  654,  653,  653,  281,  655,  656,  659, 2084,  660,
2780       657, 1728, 1732,  661, 1738,  662, 1729, 1733,  658, 1739,
2781      1209,  648,  649,  648,  649, 1210,  277,  659,  277,  660,
2782       278,  279,  663,  279, 2778,  280, 1209,  280,  664,  665,
2783      1648, 1210, 1209,  281,  277,  281,  277, 1210,  667,  668,
2784       663,  279,  661,  669,  662,  280,  664,  665, 1968, 2779,
2785
2786       277,  670, 1209,  281,  667,  668, 1969, 1210, 1970,  669,
2787       680,  681,  680,  680,  752,  682,  683,  670,  753,  754,
2788       684,  685, 2356,  755,  708,  709,  708,  708,  686,  710,
2789       711,  756, 2357, 1554,  712,  671, 1558,  672,  680,  681,
2790       680,  680,  713,  682,  683, 1556, 2087, 1209,  684,  685,
2791      1557,  671, 1210,  672, 2780, 2088,  686,  688,  689,  688,
2792       688,  277,  690,  691, 1209,  278,  279,  692,  693, 1210,
2793       280,  688,  689,  688,  688,  694,  690,  691,  281, 1209,
2794      2781,  692,  693,  714, 1210, 1555, 2782,  750, 1555,  694,
2795       276,  276,  277,  276,  276,  276,  278,  279,  695,  276,
2796
2797       276,  280,  276,  276,  276,  276,  276,  276,  276,  281,
2798       276,  276,  276,  276,  276,  276,  276,  696,  276,  276,
2799       276,  276,  276,  697,  697,  697,  697,  697,  697,  697,
2800       697,  697,  697,  697,  697,  697,  697,  697,  697,  697,
2801       697,  697,  697,  276,  276,  276,  276,  697,  697,  697,
2802       698,  697,  697,  697,  697,  697,  697,  697,  697,  697,
2803       697,  697,  697,  697,  697,  697,  697,  697,  699,  697,
2804       697,  697,  276,  276,  276,  697,  701, 1873,  701, 1209,
2805       702,  703,  702,  703, 1210,  704, 2783,  704, 1284, 1284,
2806      1284, 1284, 1874,  705, 2784,  705,  708,  709,  708,  708,
2807
2808      1750,  710,  711, 1750, 1873, 2785,  712,  716,  717,  716,
2809       716, 1751,  718,  719,  713, 1285, 1768,  720, 1209, 1319,
2810       721, 1769, 1319, 1210,  722,  723,  716,  717,  716,  716,
2811      1209,  718,  719, 1545, 1546, 1776,  720,  277,  724,  721,
2812      1783,  278,  279,  722,  723, 1784,  280, 1222, 1222, 1222,
2813      1222, 1645, 2501, 1646,  281,  714,  706,  724,  706, 2118,
2814       724,  752, 1209,  750, 1223,  753,  754, 1210, 1965, 1286,
2815       755, 1966, 1224, 1490, 1490, 1490, 1490, 2793,  756,  724,
2816       276,  276,  277,  276,  276,  276,  278,  279,  725,  276,
2817       276,  280,  276,  276,  276,  276,  276,  276,  276,  281,
2818
2819       276,  276,  276,  276,  276,  276,  276,  726,  276,  276,
2820       276,  276,  276,  727,  727,  727,  727,  727,  727,  727,
2821       727,  727,  727,  727,  727,  727,  727,  727,  727,  727,
2822       727,  727,  727,  276,  276,  276,  276,  727,  727,  727,
2823       727,  727,  727,  727,  727,  727,  727,  727,  727,  727,
2824       727,  727,  727,  727,  727,  727,  727,  727,  727,  727,
2825       727,  727,  728,  276,  276,  727,  276,  276,  277,  276,
2826       276,  276,  278,  279,  729,  276,  276,  280,  276,  276,
2827       276,  276,  276,  276,  276,  281,  276,  276,  276,  276,
2828       276,  276,  276,  276,  276,  276,  276,  276,  276,  730,
2829
2830       730,  730,  730,  730,  730,  730,  730,  730,  730,  730,
2831       730,  730,  730,  730,  730,  730,  730,  730,  730,  276,
2832       276,  276,  276,  730,  730,  730,  730,  730,  730,  730,
2833       730,  730,  730,  730,  730,  730,  730,  730,  730,  730,
2834       730,  730,  730,  730,  730,  730,  730,  730,  276,  276,
2835       276,  730,  276,  276,  277,  276,  276,  276,  278,  279,
2836       731,  276,  276,  280,  276,  276,  276,  276,  732,  276,
2837       276,  281,  276,  276,  276,  276,  276,  276,  276,  732,
2838       276,  276,  276,  276,  276,  733,  733,  733,  733,  733,
2839       733,  733,  733,  733,  733,  733,  733,  733,  733,  733,
2840
2841       733,  733,  733,  733,  733,  276,  276,  276,  276,  733,
2842       733,  733,  733,  733,  733,  733,  733,  733,  733,  733,
2843       733,  733,  733,  733,  733,  733,  733,  733,  733,  733,
2844       733,  733,  733,  733,  276,  276,  276,  733,  276,  734,
2845       735,  734,  734,  276,  278,  279,  736,  276,  276,  280,
2846       276,  276,  276,  276,  732,  276,  276,  281,  276,  276,
2847       276,  276,  276,  276,  276,  732,  276,  276,  276,  276,
2848       276,  737,  737,  737,  737,  737,  737,  737,  737,  737,
2849       737,  737,  737,  737,  737,  737,  737,  737,  737,  737,
2850       737,  276,  276,  276,  276,  737,  737,  737,  737,  737,
2851
2852       737,  737,  737,  737,  737,  737,  737,  737,  737,  737,
2853       737,  737,  737,  737,  737,  737,  737,  737,  737,  737,
2854       276,  276,  276,  737,  739, 2091,  739, 1209,  740,  741,
2855       740,  741, 1210,  742, 2092,  742, 1331, 1331, 1331, 1331,
2856       277,  743,  277,  743,  760,  761,  760,  761, 2364,  762,
2857      2365,  762, 1266, 1266, 1266, 1266, 1276,  763, 2366,  763,
2858      2135, 1333, 1277, 1267,  777,  764,  777,  764,  778,  779,
2859       778,  779, 1279,  780, 1209,  780, 2191, 1250, 2798, 1210,
2860       744,  781,  744,  781, 2091,  277,  745, 1810,  745,  278,
2861       279, 2192, 1811, 2092,  280,  860,  746,  747,  746,  747,
2862
2863      1978, 2799,  281, 1979,  748,  749,  748,  749,  276,  276,
2864       277,  276,  276,  276,  278,  279,  757,  276,  276,  280,
2865       276,  276,  276,  276,  276,  276,  276,  281,  276,  276,
2866       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
2867       276,  758,  758,  758,  758,  758,  758,  758,  758,  758,
2868       758,  758,  758,  758,  758,  758,  758,  758,  758,  758,
2869       758,  276,  276,  276,  276,  758,  758,  758,  758,  758,
2870       758,  758,  758,  758,  758,  758,  758,  758,  758,  758,
2871       758,  758,  758,  758,  758,  758,  758,  758,  758,  758,
2872       276,  276,  276,  758,  765,  766,  473,  766,  766,  765,
2873
2874       767,  768,  769,  765,  765,  770,  765,  765,  765,  765,
2875       771,  765,  765,  772,  765,  765,  765,  765,  765,  765,
2876       765,  773,  765,  765,  765,  765,  765,  774,  774,  774,
2877       774,  774,  774,  774,  774,  774,  774,  774,  774,  774,
2878       774,  774,  774,  774,  774,  774,  774,  765,  765,  765,
2879       765,  774,  774,  774,  774,  774,  774,  774,  774,  774,
2880       774,  774,  774,  774,  774,  774,  774,  774,  774,  774,
2881       774,  774,  774,  774,  774,  774,  775,  765,  765,  774,
2882       276,  276,  277,  276,  276,  276,  278,  279,  782,  276,
2883       276,  280,  783,  276,  276,  276,  276,  276,  276,  281,
2884
2885       276,  276,  276,  276,  276,  276,  784,  785,  276,  276,
2886       276,  276,  276,  786,  786,  786,  786,  786,  786,  786,
2887       786,  786,  786,  786,  786,  786,  786,  786,  786,  786,
2888       786,  786,  786,  276,  276,  276,  276,  786,  786,  786,
2889       786,  786,  786,  786,  786,  786,  786,  786,  786,  786,
2890       786,  786,  786,  786,  786,  786,  786,  786,  786,  786,
2891       786,  786,  787,  276,  276,  786,  789, 1815, 2800,  789,
2892       790,  791, 1816,  790,  791,  792, 1209,  793,  792, 1209,
2893       793, 1210, 1520,  794, 1210, 1520,  794,  276,  276,  277,
2894       276,  276,  276,  278,  279,  795,  276,  276,  280,  796,
2895
2896       276,  276,  276,  797,  276,  276,  281,  276,  276,  276,
2897       276,  276,  276,  798,  785,  276,  276,  276,  276,  276,
2898       799,  799,  799,  799,  799,  799,  799,  799,  799,  799,
2899       799,  799,  799,  799,  799,  799,  799,  799,  799,  799,
2900       276,  276,  276,  276,  799,  799,  799,  799,  799,  799,
2901       799,  799,  799,  799,  799,  799,  799,  799,  799,  799,
2902       799,  799,  799,  799,  799,  799,  799,  799,  799,  787,
2903       276,  276,  799,  801, 1209, 1554,  801,  802,  803, 1210,
2904       802,  803,  804, 1209,  805,  804, 1855,  805, 1210, 1855,
2905       806,  277, 2801,  806,  277,  278,  279,  277,  278,  279,
2906
2907       280,  278,  279,  280, 1209, 1856,  280, 1851,  281, 1210,
2908      1851,  281, 1356, 1209,  281, 1356, 2802,  807, 1210,  277,
2909       807,  277,  817,  278,  279,  278,  279, 1555,  280, 1209,
2910       280, 2803,  808, 2674, 1210, 1852,  281, 2675,  281, 1862,
2911      1836,  277, 1862, 1836,  817,  278,  279, 1837, 2225, 1838,
2912       280,  277,  826, 1838, 1869,  278,  279, 1863,  281, 1870,
2913       280,  860, 2225, 1554, 1867,  277, 1853, 1867,  281,  278,
2914       279, 1357, 1358, 1871,  280,  827,  861,  809, 1872,  810,
2915      1861, 2806,  281,  811, 1854, 1520,  828,  829, 1520,  812,
2916       830, 1868, 1864,  813,  814, 1888,  815, 1865,  816,  277,
2917
2918      1870, 2807,  277,  278,  279, 2808,  278,  279,  280, 1871,
2919       808,  280, 2809,  826, 1889, 1555,  281,  277, 1892,  281,
2920       895,  278,  279, 1893,  896,  897,  280, 1900,  861,  898,
2921       899, 2810, 1901, 1943,  281,  277,  827,  900, 1944,  278,
2922       279,  923, 2346, 2347,  280,  924,  925,  828,  829,  872,
2923       926,  830,  281, 1897, 2811,  809, 1897,  810,  927, 1212,
2924       873,  811, 1212, 1951, 1953,  928, 1898,  812, 1952, 1954,
2925      1213,  813,  814, 2814,  815, 2815,  816,  276,  818,  277,
2926       276,  818,  276,  278,  279,  819,  276,  276,  280,  820,
2927       276,  276,  276,  276,  276,  276,  281,  276,  276,  276,
2928
2929       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
2930       821,  821,  821,  821,  821,  821,  821,  821,  821,  821,
2931       821,  821,  821,  821,  821,  821,  821,  821,  821,  821,
2932       276,  276,  276,  276,  821,  821,  821,  822,  821,  821,
2933       821,  821,  821,  821,  821,  821,  821,  821,  821,  821,
2934       821,  821,  821,  821,  821,  823,  821,  821,  821,  276,
2935       276,  276,  821,  276,  276,  277,  276,  276,  276,  278,
2936       279,  824,  276,  276,  280,  276,  276,  276,  276,  276,
2937       276,  276,  281,  276,  276,  276,  276,  276,  276,  276,
2938       276,  276,  276,  276,  276,  276,  825,  825,  825,  825,
2939
2940       825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
2941       825,  825,  825,  825,  825,  825,  276,  276,  276,  276,
2942       825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
2943       825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
2944       825,  825,  825,  825,  825,  276,  276,  276,  825,  276,
2945       276,  277,  276,  276,  276,  278,  279,  831,  276,  276,
2946       280,  276,  276,  276,  276,  276,  276,  276,  281,  276,
2947       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
2948       276,  276,  832,  832,  832,  832,  832,  832,  832,  832,
2949       832,  832,  832,  832,  832,  832,  832,  832,  832,  832,
2950
2951       832,  832,  276,  276,  276,  276,  832,  832,  832,  832,
2952       832,  832,  832,  832,  832,  832,  832,  832,  832,  832,
2953       832,  832,  832,  832,  832,  832,  832,  832,  832,  832,
2954       832,  276,  276,  276,  832,  276,  276,  277,  276,  276,
2955       276,  278,  279,  833,  276,  276,  280,  276,  276,  276,
2956       276,  276,  276,  276,  281,  276,  276,  276,  276,  276,
2957       276,  276,  276,  276,  276,  276,  276,  276,  834,  834,
2958       834,  834,  834,  834,  834,  834,  834,  834,  834,  834,
2959       834,  834,  834,  834,  834,  834,  834,  834,  276,  276,
2960       276,  276,  834,  834,  834,  834,  834,  834,  834,  834,
2961
2962       834,  834,  834,  834,  834,  834,  834,  834,  834,  834,
2963       834,  834,  834,  834,  834,  834,  834,  276,  276,  276,
2964       834,  836,  837,  836,  836,  895,  838,  839, 2816,  896,
2965       897,  840,  841,  842,  898,  899,  843,  844, 2139,  845,
2966       277, 2142,  900, 2140,  278,  279, 2143,  846,  847,  280,
2967       848,  849,  850, 1884,  872, 1985, 1884,  281, 1489, 1490,
2968      1490, 1489,  851, 1986, 1491,  873, 1885,  852, 1987, 1606,
2969       851, 1886,  277,  853, 1606,  842,  875,  876, 2258, 2169,
2970      1868,  877,  878,  879, 1353, 1353, 1353, 1353, 2170,  880,
2971      2225, 1354, 1902, 1328, 1328, 1328, 1328,  854,  881, 2226,
2972
2973       882, 1902,  855,  842,  836,  837,  836,  836,  923,  838,
2974       839, 1329,  924,  925,  840,  841,  842,  926, 1380,  843,
2975       844, 2093,  845, 2258, 2093,  927, 1312, 1312, 1312, 1312,
2976       846,  847,  928,  848,  849,  850, 2817,  277, 2820, 2144,
2977      2821,  875,  876, 1313, 1606,  851,  877,  878,  879, 1606,
2978       852, 1315, 2258,  851,  880,  277,  853,  955,  842, 1082,
2979      1083,  956,  957,  881, 1084,  882,  958,  959,  960, 1902,
2980      1382, 2822, 1085, 2823,  961, 1617, 1383, 2196, 1617, 1316,
2981       854, 1384, 1385, 1902, 1386,  855,  842,  276,  856,  857,
2982       856,  856,  276,  278,  279,  858,  276,  276,  280,  276,
2983
2984       276,  276,  276,  276,  276,  276,  281,  276,  276,  276,
2985       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
2986       859,  859,  859,  859,  859,  859,  859,  859,  859,  859,
2987       859,  859,  859,  859,  859,  859,  859,  859,  859,  859,
2988       276,  276,  276,  276,  859,  859,  859,  859,  859,  859,
2989       859,  859,  859,  859,  859,  859,  859,  859,  859,  859,
2990       859,  859,  859,  859,  859,  859,  859,  859,  859,  276,
2991       276,  276,  859,  276,  862,  863,  862,  862,  276,  278,
2992       279,  864,  276,  865,  280,  866,  276,  865,  276,  867,
2993       276,  276,  868,  276,  276,  276,  276,  276,  276,  276,
2994
2995       869,  276,  870,  276,  276,  276,  871,  871,  871,  871,
2996       871,  871,  871,  871,  871,  871,  871,  871,  871,  871,
2997       871,  871,  871,  871,  871,  871,  276,  276,  276,  276,
2998       871,  871,  871,  871,  871,  871,  871,  871,  871,  871,
2999       871,  871,  871,  871,  871,  871,  871,  871,  871,  871,
3000       871,  871,  871,  871,  871,  276,  276,  276,  871,  883,
3001       884,  885,  884,  884,  886,  887,  888,  889,  883,  883,
3002       890,  883,  883,  883,  883,  883,  883,  883,  891,  883,
3003       883,  883,  883,  883,  883,  892,  883,  883,  883,  883,
3004       883,  883,  893,  893,  893,  893,  893,  893,  893,  893,
3005
3006       893,  893,  893,  893,  893,  893,  893,  893,  893,  893,
3007       893,  893,  883,  883,  883,  883,  893,  893,  893,  893,
3008       893,  893,  893,  893,  893,  893,  893,  893,  893,  893,
3009       893,  893,  893,  893,  893,  893,  893,  893,  893,  893,
3010       893,  883,  883,  886,  893,  277, 2407, 2408,  277,  278,
3011       279, 1974,  278,  279,  280,  901,  902,  280,  901,  902,
3012      1975, 1584,  281,  935, 2206,  281, 1976,  936,  937,  935,
3013      2407, 2414,  938,  936,  937,  939, 1212, 2827,  938, 1212,
3014       940,  939, 1297, 1298, 1298, 1297,  940, 1213, 1645, 1299,
3015      1646, 1584, 1221, 1222, 1222, 1221,  903, 1584, 1584,  903,
3016
3017       905,  906,  905,  905, 1918,  907,  908, 1918, 1919, 1223,
3018       909,  910,  911, 1548, 2220,  941, 1548, 1224,  912,  935,
3019      2223,  941, 1920,  942,  937, 2224, 1549, 1584,  943, 1212,
3020      2189,  939, 1212,  935, 1584, 2830,  940,  942,  937,  945,
3021      1213,  913,  943,  946,  947,  939,  914, 1301,  948,  913,
3022       940,  949, 2321,  945, 2342,  945,  950,  946,  947,  952,
3023       947, 2320,  948, 1302,  953,  949, 1630,  949, 2342, 1630,
3024       950,  941,  950, 1225, 2228, 2620,  915,  905,  906,  905,
3025       905, 1642,  907,  908, 1642,  941, 2343,  909,  910,  911,
3026      2285,  951,  945, 2285,  963,  912,  952,  947,  964,  965,
3027
3028      2343,  953, 2620,  966,  949,  951, 1584,  951,  963,  950,
3029       955,  967,  964,  965,  956,  957, 1276,  966,  913,  958,
3030       959,  960, 1277,  914,  971,  967,  913,  961,  972,  973,
3031      2407, 2408, 1279,  974,  975,  976, 1229, 1229, 1229, 1229,
3032      1230,  977, 1584, 1231,  951, 1326, 1326, 1326, 1326, 1490,
3033      1490, 1490, 1490,  915,  905,  906,  905,  905, 2804,  907,
3034       908, 1224,  277, 1327,  909,  910, 1020, 1021, 2407, 2414,
3035      2516, 1022,  912, 1023,  968,  969, 2805, 2247, 2324, 1024,
3036      2247,  917,  971,  918, 2516, 1869,  972,  973,  968,  969,
3037      1870,  974,  975,  976, 2093,  919, 2231, 2093, 2094,  977,
3038
3039       920,  979, 2248,  919,  979,  980,  981, 2235,  980,  986,
3040       982,  277, 2095,  982, 1779, 1020, 1021, 1779,  983, 1230,
3041      1022,  983, 1023, 1448, 1448, 1448, 1448, 1780, 1024, 2517,
3042       921,  905,  906,  905,  905, 1092,  907,  908, 1449, 1093,
3043      1094,  909,  910, 2517, 1095,  988,  989, 2239,  988,  912,
3044       990,  991, 1096, 1276, 2243,  992,  993,  994,  917, 1277,
3045       918, 1867, 1100,  995, 1867, 1862, 1101, 1102, 1862, 1279,
3046      1958, 1103,  919, 1104, 2841, 1959, 1960,  920, 1961, 1105,
3047       919,  984,  985, 1863,  984,  985,  988,  989, 1868,  988,
3048      1677,  990,  991, 1677, 2251, 1678,  992,  993,  994, 1431,
3049
3050      1431, 1431, 1431, 1931,  995, 2844, 1432,  921,  276,  276,
3051       277,  276,  276,  276,  278,  279,  929,  276,  276,  280,
3052       276,  276,  276,  276,  276,  276,  276,  281,  276,  276,
3053       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
3054       276,  930,  930,  930,  930,  930,  930,  930,  930,  930,
3055       930,  930,  930,  930,  930,  930,  930,  930,  930,  930,
3056       930,  276,  276,  276,  276,  930,  930,  930,  930,  930,
3057       930,  930,  930,  930,  930,  930,  930,  930,  930,  930,
3058       930,  930,  930,  930,  930,  930,  930,  930,  930,  930,
3059       276,  276,  276,  930,  276,  276,  277,  276,  276,  276,
3060
3061       278,  279,  931,  276,  276,  280,  276,  276,  276,  276,
3062       276,  276,  276,  281,  276,  276,  276,  276,  276,  276,
3063       276,  932,  276,  276,  276,  276,  276,  933,  933,  933,
3064       933,  933,  933,  933,  933,  933,  933,  933,  933,  933,
3065       933,  933,  933,  933,  933,  933,  933,  276,  276,  276,
3066       276,  933,  933,  933,  933,  933,  933,  933,  933,  933,
3067       933,  933,  933,  933,  933,  933,  933,  933,  933,  933,
3068       933,  933,  933,  933,  933,  933,  276,  276,  276,  933,
3069       997,  998,  997,  997, 1888,  999, 1000, 2845, 2342, 1870,
3070      1001, 1002, 1003, 1448, 1448, 1448, 1448, 2342, 1004, 2373,
3071
3072       491,  492,  491,  491, 2374,  493,  494, 1005, 1449, 1006,
3073       495, 1017, 1018, 2303, 2349,  498, 2303, 2350,  499,  491,
3074       492,  491,  491, 1037,  493,  494, 1885, 1038, 1039,  495,
3075      1017, 1018, 1040, 1443,  498, 1519, 1443,  499, 1519, 1529,
3076      1041, 1491, 1529, 1100, 2343, 1530, 2093, 1101, 1102, 2093,
3077      2094, 2412, 1103, 2343, 1104, 1007,  997,  998,  997,  997,
3078      1105,  999, 1000, 2588, 2095, 2474, 1001, 1002, 1003, 2847,
3079      1467, 1467, 1467, 1467, 1004, 1042, 1026, 1027, 1026, 1026,
3080      2848, 1028, 1029, 1005, 2849, 1006, 1030, 1031, 1032, 1468,
3081      2562, 1033, 1357, 1358, 1034, 1026, 1027, 1026, 1026, 2093,
3082
3083      1028, 1029, 2093, 2171, 2562, 1030, 1031, 1032, 2850, 1862,
3084      1033, 1107, 1862, 1034, 2484, 1108, 1109, 2172, 1750, 2485,
3085      1110, 1750, 1111, 1500, 1500, 1500, 1500, 1863, 1112, 1751,
3086      1469, 1007, 1008, 1008, 1009, 1008, 1008, 1008, 1010, 1011,
3087      1012, 1008, 1008, 1013, 1008, 1008, 1008, 1008, 1008, 1008,
3088      1008, 1014, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1015,
3089      1008, 1008, 1008, 1008, 1008, 1016, 1016, 1016, 1016, 1016,
3090      1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016,
3091      1016, 1016, 1016, 1016, 1016, 1008, 1008, 1008, 1008, 1016,
3092      1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016,
3093
3094      1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016,
3095      1016, 1016, 1016, 1016, 1015, 1008, 1008, 1016,  277, 2851,
3096      2361,  277,  553,  554, 1037,  553,  554,  555, 1038, 1039,
3097       555, 1855, 2362, 1040, 1855,  556, 2363, 1443,  556, 1037,
3098      1443, 1041, 1037, 1043, 1039, 2516, 1043, 1039, 1044, 2285,
3099      1856, 1044, 2285, 1037, 2516, 2265, 1041,  907, 1046, 1041,
3100      2860, 2296,  909, 1047, 1048, 1559, 1559, 1559, 1559,  557,
3101      1049, 1035,  557, 1037, 1035, 2304, 1042,  907, 1046, 1645,
3102      2860, 1646,  909, 1047, 1048, 2305, 1429, 1429, 1429, 1429,
3103      1049, 1042, 2862, 1050, 1042, 2862, 1357, 1358, 1051, 1037,
3104
3105      2304, 1050, 2265,  907,  908, 1037, 2296, 2865,  909,  907,
3106       908, 1430, 2305, 1050,  909, 1107, 1049, 2307, 1051, 1108,
3107      1109, 1050, 1049, 2188, 1110, 1053, 1111, 1054, 1052, 2517,
3108      2265, 1053, 1112, 1054, 1645, 2296, 1646, 1056, 2517,  919,
3109      1855, 1057, 1058, 1855,  920,  919, 1059,  919, 1052, 1060,
3110       920, 2866, 2648,  919, 1061, 1063, 1056, 2649, 1063, 1856,
3111      1057, 1058, 2867, 2868, 2307, 1059, 1066, 1062, 1064, 1897,
3112      1067, 1068, 1897, 1061,  921, 1069, 1266, 1266, 1266, 1266,
3113       921, 2869, 1898, 1070, 2818, 1918, 1062, 1267, 1918, 1062,
3114      1066, 2870, 2307, 1056, 1067, 1068, 1071, 1073, 1074, 1069,
3115
3116      1056, 1250, 1075, 2314, 1073, 1074, 2562, 1070, 1062, 1075,
3117      1076, 1328, 1328, 1328, 1328, 2562, 2564, 1076, 1071, 1645,
3118      1071, 1646,  277, 1077, 2613, 2563, 1167, 1168, 2872, 1329,
3119      1077, 1169,  277, 1170, 1269, 1836, 1167, 1168, 1836, 1171,
3120      2873, 1169, 1071, 1170, 1838, 1077, 2874, 2875, 1838, 1171,
3121      2876, 2545, 1077,  276,  276,  277,  276,  276,  276,  278,
3122       279, 1078,  276,  276, 1079,  276,  276,  276,  276,  276,
3123       276,  276,  281,  276,  276,  276,  276,  276,  276,  276,
3124       276,  276,  276,  276,  276,  276, 1080, 1080, 1080, 1080,
3125      1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
3126
3127      1080, 1080, 1080, 1080, 1080, 1080,  276,  276,  276,  276,
3128      1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
3129      1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
3130      1080, 1080, 1080, 1080, 1080,  276,  276,  276, 1080, 1081,
3131      1081,  277, 1081, 1081, 1081, 1082, 1083, 1086, 1081, 1081,
3132      1084, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1085, 1081,
3133      1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081,
3134      1081, 1081, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
3135      1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
3136      1087, 1087, 1081, 1081, 1081, 1081, 1087, 1087, 1087, 1087,
3137
3138      1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
3139      1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,
3140      1087, 1081, 1081, 1081, 1087,  276,  276,  277,  276,  276,
3141       276,  278,  279, 1088,  276,  276, 1089,  276,  276,  276,
3142       276,  276,  276,  276,  281,  276,  276,  276,  276,  276,
3143       276,  276,  276,  276,  276,  276,  276,  276, 1090, 1090,
3144      1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090,
3145      1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090,  276,  276,
3146       276,  276, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090,
3147      1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090, 1090,
3148
3149      1090, 1090, 1090, 1090, 1090, 1090, 1090,  276,  276,  276,
3150      1090, 1091, 1091, 1092, 1091, 1091, 1091, 1093, 1094, 1097,
3151      1091, 1091, 1095, 1091, 1091, 1091, 1091, 1091, 1091, 1091,
3152      1096, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091,
3153      1091, 1091, 1091, 1091, 1098, 1098, 1098, 1098, 1098, 1098,
3154      1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098,
3155      1098, 1098, 1098, 1098, 1091, 1091, 1091, 1091, 1098, 1098,
3156      1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098,
3157      1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098,
3158      1098, 1098, 1098, 1091, 1091, 1091, 1098,  277, 1645,  277,
3159
3160      1646, 1114, 1115, 1114, 1115, 2891, 1116, 2606, 1116, 1326,
3161      1326, 1326, 1326,  277, 1117,  277, 1117, 1173, 1174, 1173,
3162      1174, 2606, 1175, 2892, 1175, 2893, 2877, 1327, 1916, 1178,
3163      1176, 1178, 1176, 1179, 1180, 1179, 1180, 1917, 1181, 2894,
3164      1181, 1328, 1328, 1328, 1328, 2895, 1182, 2544, 1182, 2091,
3165      1118, 2877, 1118, 1510, 1510, 1510, 1510, 2091, 2092, 1329,
3166      1511, 1559, 1559, 1559, 1559, 1948, 2092, 1119, 1948, 1119,
3167      1120, 1121, 1122, 1121, 1121, 1120, 1123, 1124, 1125, 1120,
3168      1120, 1126, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1127,
3169      1120, 1120, 1120, 1120, 1120, 1120, 1120, 1128, 1120, 1120,
3170
3171      1120, 1120, 1120, 1129, 1129, 1129, 1129, 1129, 1129, 1129,
3172      1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129,
3173      1129, 1129, 1129, 1130, 1120, 1120, 1120, 1129, 1129, 1129,
3174      1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129,
3175      1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129,
3176      1129, 1129, 1120, 1120, 1120, 1129,  276, 1131, 1132, 1131,
3177      1131,  276,  278,  279, 1133,  276,  276,  280,  276,  276,
3178       276,  276,  276,  276,  276,  281,  276,  276,  276,  276,
3179       276,  276,  276,  276,  276,  276,  276,  276,  276, 1134,
3180      1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134,
3181
3182      1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134,  276,
3183       276,  276,  276, 1134, 1134, 1134, 1134, 1134, 1134, 1134,
3184      1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134,
3185      1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134,  276,  276,
3186       276, 1134,  277, 2898,  277, 2899, 1136, 1137, 1136, 1137,
3187      2900, 1138, 1139, 1138, 1139, 2901, 2812, 1184, 1185, 1140,
3188      1184, 1140, 1186, 1187, 2813, 2247, 2902, 1188, 2247, 2903,
3189      1189, 1289, 1289, 1289, 1289, 1190, 1238, 1238, 1238, 1238,
3190      1326, 1326, 1326, 1326, 1191, 2904, 1836, 1239, 1192, 1836,
3191      2248, 1240, 2905, 1223, 2093, 1838, 1290, 2093, 1327, 1838,
3192
3193      1291, 1224, 1242, 1243, 1566, 1566, 1566, 1566, 2906, 2907,
3194      1193, 1141, 2144, 1141, 1142, 1143, 1144, 1143, 1143, 1145,
3195      1146, 1147, 1148, 1142, 1142, 1149, 1150, 1151, 1142, 1142,
3196      1142, 1142, 1142, 1152, 1142, 1142, 1142, 1142, 1142, 1142,
3197      1153, 1142, 1142, 1142, 1142, 1142, 1142, 1154, 1154, 1154,
3198      1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154,
3199      1154, 1154, 1154, 1154, 1154, 1154, 1154, 1142, 1142, 1142,
3200      1142, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154,
3201      1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154,
3202      1154, 1154, 1154, 1154, 1154, 1154, 1142, 1142, 1145, 1154,
3203
3204      1156,  277, 2908, 1156, 2385, 1157, 1158, 2385, 2909, 2686,
3205      1159, 1156,  277, 2878, 1156, 2910, 1157, 1158, 1160, 2303,
3206      2003, 1159, 2303, 2003, 1328, 1328, 1328, 1328, 1161, 1160,
3207      1194, 1185, 1885, 1194, 2911, 1186, 1187, 2913, 2878, 1161,
3208      1188, 1198, 1329, 1195, 2914, 1199, 1200, 1201, 1196, 2504,
3209      1202, 2006, 2504, 1203, 2790, 2915, 2916, 1191, 1204, 1162,
3210      2863, 1192, 1233, 1233, 1233, 1233, 1276, 1205, 2864, 1234,
3211      1162, 1206, 1277, 2006, 1276, 1163, 1916, 1164, 2917, 1223,
3212      1277, 1165, 1279, 1193, 2303, 1917, 1163, 2303, 1164, 2918,
3213      1279, 2919, 1165, 1206, 1201, 1207, 1198, 1885, 1207, 2920,
3214
3215      1199, 1200, 1201, 2921, 2922, 1202, 2923, 2924, 1208, 1266,
3216      1266, 1266, 1266, 1204, 1249, 1249, 1249, 1249, 1258, 2925,
3217      1267, 1259, 1205, 2926, 2625, 1645, 1206, 1646, 1366, 1366,
3218      1366, 1366, 2927, 2579, 1250, 1367, 2579, 1368, 2840, 1250,
3219      2928, 1368, 2929, 2750, 2930, 1236, 2931, 2932, 1206, 1201,
3220      2935, 2936, 2937, 1369, 1387, 1387, 1387, 1387, 2751, 1429,
3221      1429, 1429, 1429, 1438, 1438, 1438, 1438, 2933, 2938, 2939,
3222      1270, 1441, 1215, 1215, 1441, 2819, 2934, 1442, 2940, 1333,
3223      2942, 1389, 2944, 1368, 1430, 2700, 2945, 2946, 1430, 1216,
3224      1440, 1566, 1566, 1566, 1566, 1957, 2026, 1258, 1251, 1303,
3225
3226      1303, 1304, 1303, 1251, 1251, 1251, 1305, 1251, 1251, 1251,
3227      1251, 1251, 1251, 1251, 2990, 1251, 1251, 1251, 1251, 1251,
3228      1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251,
3229      1251, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306,
3230      1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306,
3231      1306, 1251, 1251, 1251, 1251, 1306, 1306, 1306, 1306, 1306,
3232      1306, 1306, 1306, 1306, 1307, 1306, 1306, 1306, 1306, 1306,
3233      1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306,
3234      2991, 1251, 1251, 1306, 1298, 1298, 1298, 1298, 3006, 3007,
3235      3008, 1299, 1359, 1359, 1359, 1359, 1360, 3009, 3010, 1361,
3236
3237      1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1215, 1215,
3238      1215, 1215, 1387, 1387, 1387, 1387, 3011, 1333, 1387, 1387,
3239      1387, 1387, 3012, 3013, 3014, 1333, 1216, 1389, 3015, 1333,
3240      3016, 1389, 1387, 1387, 1387, 1387, 3019, 1333, 3020, 1389,
3241      3021, 3022, 3026, 1333, 3027, 1389, 2118, 2118, 3030, 1301,
3242      2135, 1387, 1387, 1387, 1387, 2135, 1390, 1333, 3034, 1389,
3243      1393, 1508, 1508, 1508, 1508, 4191, 1330, 1331, 1331, 1330,
3244      1394, 1884, 1332, 3035, 1884, 1360, 1333, 3036, 1389, 1387,
3245      1387, 1387, 1387, 3037, 1885, 1395, 1509, 3038, 1396, 1886,
3246      3039, 1333, 1387, 1387, 1387, 1387, 3040, 1334, 1868, 1508,
3247
3248      1508, 1508, 1508, 3041, 1333, 1403, 1389, 1567, 1567, 1567,
3249      1567, 1335, 1397, 3042, 3043, 3044, 1398, 1333, 1336, 1389,
3250      3045, 3046, 1337, 1338, 1509, 1339, 1340, 1341, 1645, 3048,
3251      1646, 1342, 1343, 1344, 1345, 1346, 3050, 1347, 1399, 1348,
3252      1349, 1350, 1351, 1352, 1387, 1387, 1387, 1387, 1400, 1387,
3253      1387, 1387, 1387, 1404, 2003, 2196, 1401, 2003, 1402, 1387,
3254      1387, 1387, 1387, 2196, 1387, 1387, 1387, 1387, 2206, 1333,
3255      3049, 1389, 2220, 3049, 1333, 2220, 1389, 2228, 2231, 1387,
3256      1387, 1387, 1387, 2231, 1333, 2006, 1389, 1851, 2235, 1333,
3257      1851, 1389, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387,
3258
3259      1215, 1215, 1215, 1215, 1333, 1406, 1389, 2006, 1387, 1387,
3260      1387, 1387, 1645, 1405, 1646, 1852, 2235, 1333, 1216, 1389,
3261      2239, 1333, 2239, 1389, 1407, 1408, 1387, 1387, 1387, 1387,
3262      2243, 2243, 3054, 1333, 1409, 1389, 1411, 2251, 2251, 3055,
3263      1410, 3055, 1387, 1387, 1387, 1387, 1853, 1387, 1387, 1387,
3264      1387, 1333, 3047, 1389, 3056, 3057, 3058, 1414, 3059, 1429,
3265      1429, 1429, 1429, 1434, 1854, 1412, 1435, 1333, 1413, 1389,
3266      3060, 3061, 1333, 1415, 1389, 1326, 1326, 1326, 1326, 1328,
3267      1328, 1328, 1328, 1416, 1430, 3062, 3063, 1417, 1503, 1503,
3268      1503, 1503, 3064, 1327, 3065, 3066, 3067, 1329, 1482, 1482,
3269
3270      1482, 1482, 3069, 3069, 1421, 1504, 1418, 1482, 1482, 1482,
3271      1482, 1419, 1422, 1506, 3071, 3071, 1420, 1423, 1467, 1467,
3272      1467, 1467, 1503, 1503, 1503, 1503, 1453, 1508, 1508, 1508,
3273      1508, 1513, 3072, 3073, 1514, 1453, 3074, 1468, 3075, 1504,
3274      3078, 3075, 1434, 1451, 1451, 1451, 1451, 1506, 1508, 1508,
3275      1508, 1508, 1509, 3079, 1527, 1527, 1527, 1527, 3080, 1452,
3276      1456, 3081, 1535, 1535, 1535, 1535, 3082, 3083, 1458, 1456,
3277      3084, 1453, 1528, 1509, 3085, 3086, 3087, 1458, 1469, 1507,
3278      1536, 1567, 1567, 1567, 1567, 1572, 1572, 1572, 1572, 1572,
3279      1572, 1572, 1572, 1576, 1576, 1576, 1576, 3088, 3089, 3085,
3280
3281      1454, 3090, 1455, 3091, 3092, 1456, 1576, 1576, 1576, 1576,
3282      1513, 3093, 1457, 1458, 3099, 3100, 1459, 1460, 1461, 3101,
3283      1462, 1587, 1587, 1587, 1587, 1591, 1591, 1591, 1591, 1594,
3284      1594, 1594, 1594, 1594, 1594, 1594, 1594, 3103, 1588, 1215,
3285      1215, 1215, 1215, 3106, 1573, 3107, 3108, 3109, 1573, 1326,
3286      1326, 1326, 1326, 1328, 1328, 1328, 1328, 1216, 1618, 1618,
3287      1618, 1618, 1624, 1624, 1624, 1624, 3076, 1327, 3112, 3076,
3288      3113, 1329, 1626, 1626, 1626, 1626, 3110, 3077, 1593, 1625,
3289      1215, 1215, 1215, 1215, 3114, 3111, 1595, 3115, 3116, 3118,
3290      1595, 1215, 1215, 1215, 1215, 3120, 3122, 1628, 1216, 1326,
3291
3292      1326, 1326, 1326, 1328, 1328, 1328, 1328, 3123, 3124, 1216,
3293      3125, 1671, 1671, 1671, 1671, 3126, 2007, 1327, 1672, 2007,
3294      2008, 1329, 1671, 1671, 1671, 1671, 3129, 3130, 3127, 1672,
3295      4191, 4191, 4191, 4191, 2009, 3128, 3131, 4191, 1674, 1674,
3296      1674, 1674, 3132, 1679, 1679, 1679, 1679, 2010, 3133, 3134,
3297      1680, 1675, 1681, 3135, 3136, 3137, 1681, 1679, 1679, 1679,
3298      1679, 3138, 2405, 3139, 1680, 2405, 1681, 3140, 3141, 2010,
3299      1681, 4191, 4191, 4191, 4191, 3142, 3143, 3147, 4191, 3145,
3300      4191, 3148, 1358, 3149, 4191, 1679, 1679, 1679, 1679, 2944,
3301      3150, 3170, 1680, 2406, 1681, 3171, 3197, 3198, 1681, 1326,
3302
3303      1326, 1326, 1326, 1328, 1328, 1328, 1328, 1683, 1683, 1683,
3304      1683, 1687, 1687, 1687, 1687, 2406, 3212, 1327, 3213, 3214,
3305      3215, 1329, 1688, 1690, 1690, 1690, 1690, 1690, 1690, 1690,
3306      1690, 1692, 1692, 1692, 1692, 3216, 1689, 3218, 1693, 3219,
3307      1291, 3220, 1690, 1690, 1690, 1690, 1695, 3221, 1691, 1696,
3308      3222, 3146, 1691, 1690, 1690, 1690, 1690, 3223, 3228, 1685,
3309      1700, 1700, 1700, 1700, 3229, 3232, 3235, 1691, 1702, 1702,
3310      1702, 1702, 1701, 1709, 1709, 1709, 1709, 3236, 1691, 1703,
3311      1709, 1709, 1709, 1709, 1712, 1712, 1712, 1712, 1752, 1752,
3312      1752, 1752, 3237, 3238, 1704, 1752, 1752, 1752, 1752, 3239,
3313
3314      3240, 3241, 1713, 1760, 1760, 1760, 1760, 1764, 1764, 1764,
3315      1764, 3242, 3243, 3245, 1761, 1764, 1764, 1764, 1764, 3248,
3316      1705, 2007, 1765, 2409, 2007, 1695, 2409, 2206, 2228, 1762,
3317      1765, 1766, 1766, 1766, 1766, 1781, 1781, 1781, 1781, 2144,
3318      3049, 1785, 1786, 3049, 1787, 3251, 1788, 3246, 1780, 1789,
3319      1790, 3252, 2010, 1775, 2010, 1763, 1645, 3253, 1646, 1791,
3320      3253, 1792, 1818, 1818, 1818, 1818, 3254, 3255, 3256, 1819,
3321      1818, 1818, 1818, 1818, 2010, 3257, 2010, 1819, 1823, 1823,
3322      1823, 1823, 3258, 3259, 1762, 1829, 1829, 1829, 1829, 2265,
3323      1824, 3260, 1830, 1825, 1829, 1829, 1829, 1829, 3244, 3261,
3324
3325      3262, 1830, 1833, 1833, 1833, 1833, 1841, 1841, 1841, 1841,
3326      3263, 3264, 3266, 1834, 1821, 1841, 1841, 1841, 1841, 1875,
3327      3266, 3268, 1821, 1843, 1843, 1843, 1843, 3268, 3269, 3270,
3328      1844, 1842, 1841, 1841, 1841, 1841, 1846, 3271, 3272, 1847,
3329      1842, 1841, 1841, 1841, 1841, 3273, 3075, 1876, 1877, 3075,
3330      1878, 3274, 1879, 3275, 3276, 1880, 1881, 1842, 1906, 1906,
3331      1906, 1906, 1875, 3277, 3278, 1882, 1842, 1883, 1876, 1877,
3332      3279, 1878, 3280, 1879, 3281, 1223, 1880, 1881, 1899, 1899,
3333      1899, 1899, 1215, 1215, 1215, 1215, 1882, 3076, 1883, 3282,
3334      3076, 1898, 1221, 1222, 1222, 1221, 1891, 3283, 3077, 3284,
3335
3336      1216, 1222, 1222, 1222, 1222, 1233, 1233, 1233, 1233, 1223,
3337      2003, 3285, 1234, 2003, 2004, 1846, 1264, 1224, 1223, 3287,
3338      3289, 3293, 1223, 2005, 3294, 3295, 1224, 1226, 1226, 1226,
3339      1226, 3296, 3297, 3298, 1227, 4191, 4191, 4191, 4191, 3299,
3340      3300, 2006, 4191, 1903, 1903, 1903, 1903, 1229, 1229, 1229,
3341      1229, 3301, 3302, 2007, 1239, 3303, 2007, 2079, 1240, 1226,
3342      1226, 1226, 1226, 2006, 3304, 3305, 1227, 3306, 3307, 1242,
3343      1243, 2080, 1224, 1225, 1238, 1238, 1238, 1238, 3309, 1233,
3344      1233, 1233, 1233, 3311, 2010, 1239, 1234, 3312, 1236, 1240,
3345      3315, 1223, 1261, 1261, 1261, 1261, 1223, 3316, 3318, 1224,
3346
3347      1242, 1243, 4191, 4191, 4191, 4191, 2010, 3319, 3320, 4191,
3348      1908, 1908, 1908, 1908, 3321, 3322, 3327, 1909, 3330, 4191,
3349      1911, 1911, 1911, 1911, 1230, 3331, 3332, 1231, 3207, 1238,
3350      1238, 1238, 1238, 3333, 1245, 1245, 1245, 1245, 3334, 3335,
3351      1239, 1246, 1965, 3208, 1240, 1224, 1223, 3350, 1238, 1238,
3352      1238, 1238, 3354, 3355, 1224, 1242, 1243, 3358, 3383, 1239,
3353      3384, 3385, 1236, 1240, 3390, 1223, 3391, 3395, 3396, 4191,
3354      4191, 4191, 4191, 1224, 1242, 1243, 4191, 3397, 1903, 1903,
3355      1903, 1903, 3398, 3400, 3401, 4191, 3402, 2199, 3403, 1239,
3356      2199, 3404, 3407, 1240, 1248, 1249, 1249, 1248, 1249, 1249,
3357
3358      1249, 1249, 3409, 1230, 1242, 1243, 1252, 1252, 1253, 1252,
3359      1252, 1252, 1253, 1252, 1255, 1255, 1255, 1255, 2201, 1250,
3360      3410, 1256, 3411, 1250, 3412, 4191, 4191, 4191, 4191, 3414,
3361      3415, 1254, 4191, 3416, 3417, 1254, 1913, 1913, 1913, 1913,
3362      2201, 1255, 1255, 1255, 1255, 3419, 3420, 1267, 1256, 1266,
3363      1266, 1266, 1266, 3422, 1921, 1921, 1921, 1921, 1258, 2206,
3364      1267, 1259, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
3365      2228, 3426, 3427, 1267, 1250, 1225, 3428, 1267, 2588, 1250,
3366      3429, 1266, 1266, 1266, 1266, 2202, 2588, 1250, 2202, 2203,
3367      2265, 1250, 1267, 1266, 1266, 1266, 1266, 1284, 1284, 1284,
3368
3369      1284, 3430, 3425, 2203, 1267, 3425, 1250, 1289, 1289, 1289,
3370      1289, 3431, 1297, 1298, 1298, 1297, 2204, 3432, 1250, 1299,
3371      1298, 1298, 1298, 1298, 1285, 3433, 3434, 1299, 4191, 4191,
3372      4191, 4191, 1290, 3253, 3436, 4191, 3253, 1258, 2204, 1312,
3373      1312, 1312, 1312, 1312, 1312, 1312, 1312, 1645, 3436, 1646,
3374      1924, 1935, 1935, 1935, 1935, 1923, 1313, 3438, 1936, 4191,
3375      1313, 3438, 4191, 3439, 1315, 3440, 4191, 3441, 1315, 1312,
3376      1312, 1312, 1312, 1312, 1312, 1312, 1312, 1301, 1286, 1950,
3377      1950, 1950, 1950, 2818, 3442, 1301, 1313, 1326, 1326, 1326,
3378      1326, 2613, 3443, 1302, 1315, 2613, 3280, 1836, 1315, 3445,
3379
3380      1836, 4191, 3446, 3447, 1837, 1327, 1838, 3448, 3449, 4191,
3381      1838, 1934, 1251, 1303, 1303, 1304, 1303, 1251, 1251, 1251,
3382      1305, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 3452, 1251,
3383      1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251,
3384      1251, 1251, 1251, 1251, 1251, 1306, 1306, 1306, 1306, 1306,
3385      1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306,
3386      1306, 1306, 1306, 1306, 1306, 1251, 1251, 1251, 1251, 1306,
3387      1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1307, 1306,
3388      1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306,
3389      1306, 1306, 1306, 1306, 3455, 1251, 1251, 1306, 4191, 4191,
3390
3391      4191, 4191, 3456, 3457, 3458, 4191, 1312, 1312, 1312, 1312,
3392      1312, 1312, 1312, 1312, 1310, 1310, 1310, 1310, 3459, 1312,
3393      1312, 1312, 1312, 1313, 3460, 3462, 3463, 1313, 3464, 3465,
3394      3467, 1315, 3468, 3469, 3470, 1315, 1313, 1328, 1328, 1328,
3395      1328, 3471, 3472, 3476, 1315, 1956, 1956, 1956, 1956, 1353,
3396      1353, 1353, 1353, 3483, 3481, 1329, 1354, 4191, 4191, 4191,
3397      4191, 3484, 3485, 1316, 4191, 1988, 1988, 1988, 1988, 3482,
3398      1333, 3489, 1316, 3490, 1934, 1359, 1359, 1359, 1359, 4191,
3399      1371, 1371, 1371, 1371, 1356, 2910, 1379, 1356, 1387, 1387,
3400      1387, 1387, 1389, 2379, 3503, 1311, 1955, 1956, 1956, 1955,
3401
3402      1333, 3504, 1332, 1990, 1990, 1990, 1990, 1990, 1990, 1353,
3403      1353, 1353, 1353, 1333, 3509, 1389, 1354, 2015, 2015, 2015,
3404      2015, 1333, 1366, 1366, 1366, 1366, 3510, 1334, 2016, 1367,
3405      3511, 1368, 3512, 3527, 2017, 1368, 1441, 1215, 1215, 1441,
3406      3507, 1335, 1442, 1357, 1358, 3528, 3534, 1369, 1336, 3508,
3407      3535, 3538, 1337, 1338, 1216, 1339, 1340, 1341, 3539, 3540,
3408      3548, 1342, 1343, 1344, 1345, 1346, 3550, 1347, 2803, 1348,
3409      1349, 1350, 1351, 1352, 4191, 3552, 3553, 1368, 4191, 4191,
3410      4191, 4191, 4191, 3555, 3556, 4191, 3557, 4191, 2206, 2003,
3411      2228, 4191, 2003, 1994, 1994, 1994, 1994, 1997, 1997, 1997,
3412
3413      1997, 2588, 1368, 4191, 1995, 3563, 1368, 2588, 3564, 1998,
3414      1999, 2012, 2012, 2012, 2012, 1360, 2308, 3565, 1361, 3566,
3415      2006, 3567, 2001, 3568, 2002, 3570, 2015, 2015, 2015, 2015,
3416      3570, 3572, 3572, 4191, 2613, 3576, 1333, 2016, 2015, 2015,
3417      2015, 2015, 2006, 2017, 1387, 1387, 1387, 1387, 1368, 2016,
3418      2015, 2015, 2015, 2015, 2613, 2017, 3577, 2015, 2015, 2015,
3419      2015, 2016, 2015, 2015, 2015, 2015, 3578, 2017, 2016, 1333,
3420      3579, 1389, 3580, 2016, 2017, 1387, 1387, 1387, 1387, 2017,
3421      2030, 2030, 2030, 2030, 1387, 1387, 1387, 1387, 1387, 1387,
3422      1387, 1387, 3581, 2019, 1360, 1387, 1387, 1387, 1387, 3586,
3423
3424      1333, 3573, 1389, 3587, 3573, 3425, 2020, 2021, 3425, 1333,
3425      3588, 1389, 3574, 1333, 3590, 1389, 1450, 1450, 1450, 1450,
3426      1333, 2022, 1389, 2025, 3591, 3560, 3561, 2027, 2028, 3575,
3427      2023, 2029, 3575, 2024, 3592, 1387, 1387, 1387, 1387, 3327,
3428      3593, 2031, 3595, 1387, 1387, 1387, 1387, 1387, 1387, 1387,
3429      1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 2032,
3430      1333, 3596, 1389, 1387, 1387, 1387, 1387, 3599, 1333, 2033,
3431      1389, 3602, 1333, 3603, 1389, 3604, 1333, 3605, 1389, 3607,
3432      1333, 3608, 1389, 1387, 1387, 1387, 1387, 3609, 1333, 3611,
3433      1389, 3621, 2034, 1387, 1387, 1387, 1387, 1387, 1387, 1387,
3434
3435      1387, 3622, 2035, 1387, 1387, 1387, 1387, 3626, 1333, 2037,
3436      1389, 3627, 2036, 1387, 1387, 1387, 1387, 3628, 1333, 2039,
3437      1389, 3629, 1333, 3650, 1389, 2038, 1965, 1987, 1333, 3652,
3438      1389, 1387, 1387, 1387, 1387, 3653, 3654, 3655, 1333, 2040,
3439      1389, 3660, 3661, 3662, 2041, 1429, 1429, 1429, 1429, 3663,
3440      2206, 2228, 2042, 2588, 3666, 3667, 1333, 3666, 1389, 3670,
3441      3668, 3669, 2045, 3668, 2043, 3671, 3672, 3673, 2044, 3674,
3442      1430, 3676, 2046, 2051, 1387, 1387, 1387, 1387, 1387, 1387,
3443      1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387,
3444      2047, 1387, 1387, 1387, 1387, 3676, 2048, 3678, 2049, 1333,
3445
3446      3678, 1389, 2613, 1333, 3681, 1389, 2050, 1333, 3682, 1389,
3447      3683, 1333, 2202, 1389, 3575, 2202, 1333, 3575, 1389, 1387,
3448      1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387,
3449      1387, 3684, 2052, 1387, 1387, 1387, 1387, 1387, 1387, 1387,
3450      1387, 3685, 2054, 2204, 1333, 3689, 1389, 3690, 1333, 3692,
3451      1389, 3695, 1333, 2053, 1389, 3696, 3701, 3702, 1333, 2056,
3452      1389, 2055, 1333, 3703, 1389, 2204, 1387, 1387, 1387, 1387,
3453      3708, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 3709,
3454      3621, 2059, 3507, 3715, 2057, 1431, 1431, 1431, 1431, 2058,
3455      2062, 1333, 1432, 1389, 2063, 2060, 1333, 3716, 1389, 3717,
3456
3457      1333, 1957, 1389, 2026, 2357, 2061, 1387, 1387, 1387, 1387,
3458      2064, 1387, 1387, 1387, 1387, 3736, 1387, 1387, 1387, 1387,
3459      1387, 1387, 1387, 1387, 3737, 4191, 4191, 4191, 4191, 3738,
3460      3741, 1333, 4191, 1389, 2065, 3742, 1333, 2206, 1389, 2228,
3461      2067, 1333, 2066, 1389, 3747, 1333, 3748, 1389, 2074, 2074,
3462      2074, 2074, 1431, 1431, 1431, 1431, 2265, 3743, 3749, 1432,
3463      3743, 1438, 1438, 1438, 1438, 2076, 2076, 2076, 2076, 1434,
3464      2003, 2068, 1435, 2003, 2077, 1440, 2265, 3751, 2069, 1438,
3465      1438, 1438, 1438, 2078, 3751, 3753, 1430, 2071, 1440, 2070,
3466      1430, 1438, 1438, 1438, 1438, 1448, 1448, 1448, 1448, 3744,
3467
3468      3753, 2006, 3744, 3754, 1430, 3679, 1440, 3755, 3679, 3280,
3469      1449, 1450, 1450, 1450, 1450, 3756, 1430, 3680, 1440, 1467,
3470      1467, 1467, 1467, 2006, 2090, 2090, 2090, 2090, 1467, 1467,
3471      1467, 1467, 2096, 2096, 2096, 2096, 3280, 3760, 1468, 1482,
3472      1482, 1482, 1482, 1485, 1485, 1485, 1485, 1468, 1434, 1451,
3473      1451, 1451, 1451, 3666, 3667, 1486, 3666, 2111, 2111, 2111,
3474      2111, 2115, 2115, 2115, 2115, 1452, 3316, 1453, 2112, 2114,
3475      2115, 2115, 2114, 1493, 3763, 1491, 1493, 1453, 3764, 1469,
3476      2120, 2120, 2120, 2120, 2113, 3765, 2199, 3768, 1469, 2199,
3477      2200, 3769, 2116, 2116, 2116, 2116, 2116, 2116, 3770, 2200,
3478
3479      3771, 1456, 2121, 2122, 2123, 2121, 1454, 3774, 1455, 1458,
3480      3775, 1456, 1500, 1500, 1500, 1500, 3774, 2201, 1457, 1458,
3481      3776, 3777, 1459, 1460, 1461, 3791, 1462, 1503, 1503, 1503,
3482      1503, 1503, 1503, 1503, 1503, 2128, 2128, 2128, 2128, 2201,
3483      3573, 3792, 2129, 3573, 1504, 3409, 3668, 3669, 1504, 3668,
3484      2405, 3574, 1506, 2405, 3795, 2206, 1506, 1503, 1503, 1503,
3485      1503, 1503, 1503, 1503, 1503, 1508, 1508, 1508, 1508, 1510,
3486      1510, 1510, 1510, 2228, 1504, 2265, 1511, 2473, 1504, 3802,
3487      2265, 2406, 1506, 3804, 3804, 3679, 1506, 2126, 3679, 3806,
3488      1509, 4191, 4191, 4191, 4191, 3806, 3280, 3680, 4191, 1510,
3489
3490      1510, 1510, 1510, 2406, 3807, 3280, 1511, 1508, 1508, 1508,
3491      1508, 2133, 2133, 2133, 2133, 1513, 3810, 3811, 1514, 1508,
3492      1508, 1508, 1508, 2137, 2137, 2137, 2137, 1520, 3743, 2131,
3493      1520, 3743, 1509, 3812, 3813, 3796, 1509, 1527, 1527, 1527,
3494      1527, 3814, 3815, 3816, 1509, 3774, 1990, 1990, 1990, 1990,
3495      1990, 1990, 3821, 3822, 3831, 1528, 1535, 1535, 1535, 1535,
3496      1559, 1559, 1559, 1559, 1566, 1566, 1566, 1566, 1567, 1567,
3497      1567, 1567, 3834, 2206, 1536, 1572, 1572, 1572, 1572, 1576,
3498      1576, 1576, 1576, 1587, 1587, 1587, 1587, 1587, 1587, 1587,
3499      1587, 2228, 2265, 3840, 1513, 2154, 2154, 2154, 2154, 3840,
3500
3501      1588, 3842, 2155, 3842, 1588, 3280, 3845, 3611, 2156, 1587,
3502      1587, 1587, 1587, 1591, 1591, 1591, 1591, 1591, 1591, 1591,
3503      1591, 3846, 1591, 1591, 1591, 1591, 1588, 3849, 2159, 2159,
3504      2159, 2159, 3850, 3771, 1573, 2160, 1594, 1594, 1594, 1594,
3505      2167, 2167, 2167, 2167, 1618, 1618, 1618, 1618, 1626, 1626,
3506      1626, 1626, 3852, 3853, 3857, 2168, 3860, 2206, 2228, 1624,
3507      1624, 1624, 1624, 3864, 3744, 4191, 1593, 3744, 4191, 3864,
3508      1593, 3798, 4191, 1628, 2158, 1593, 1625, 1626, 1626, 1626,
3509      1626, 1626, 1626, 1626, 1626, 2198, 2198, 2198, 2198, 1671,
3510      1671, 1671, 1671, 1595, 3866, 3866, 1672, 4191, 4191, 4191,
3511
3512      4191, 3869, 2003, 3813, 4191, 2003, 1628, 1674, 1674, 1674,
3513      1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 4191,
3514      1675, 3870, 4191, 3871, 1675, 2173, 4191, 3873, 1675, 1679,
3515      1679, 1679, 1679, 2006, 2411, 3874, 1680, 2411, 1681, 3878,
3516      3881, 2206, 1681, 4191, 4191, 4191, 4191, 2412, 2228, 3885,
3517      4191, 3885, 4191, 3887, 3887, 2006, 4191, 1679, 1679, 1679,
3518      1679, 3890, 3891, 3897, 1680, 2413, 1681, 3899, 3902, 2206,
3519      1681, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683,
3520      1683, 1683, 1683, 1687, 1687, 1687, 1687, 2413, 2210, 2210,
3521      2210, 2210, 2228, 3906, 1688, 2211, 1690, 1690, 1690, 1690,
3522
3523      3906, 2212, 1692, 1692, 1692, 1692, 3908, 3908, 1689, 1693,
3524      4191, 4191, 4191, 4191, 3871, 3918, 2206, 4191, 2228, 3922,
3525      3922, 1691, 3924, 1685, 3924, 2206, 2228, 1685, 3934, 3934,
3526      3935, 1685, 1692, 1692, 1692, 1692, 3935, 3929, 3938, 1693,
3527      1690, 1690, 1690, 1690, 2216, 2216, 2216, 2216, 1695, 2206,
3528      2228, 1696, 1690, 1690, 1690, 1690, 1700, 1700, 1700, 1700,
3529      2217, 2217, 2217, 2217, 3943, 1691, 2696, 2689, 1701, 1691,
3530      2688, 2218, 1702, 1702, 1702, 1702, 2687, 1691, 1709, 1709,
3531      1709, 1709, 2685, 1703, 2222, 2222, 2222, 2222, 1712, 1712,
3532      1712, 1712, 2233, 2233, 2233, 2233, 1211, 1271, 1704, 2237,
3533
3534      2237, 2237, 2237, 2684, 1211, 1271, 1713, 2241, 2241, 2241,
3535      2241, 2245, 2245, 2245, 2245, 1749, 2683, 1275, 1749, 1752,
3536      1752, 1752, 1752, 2682, 1705, 1275, 2681, 1695, 2253, 2253,
3537      2253, 2253, 2680, 2679, 2246, 2246, 2246, 2246, 2246, 2246,
3538      1760, 1760, 1760, 1760, 1764, 1764, 1764, 1764, 2678, 1274,
3539      1283, 1761, 1766, 1766, 1766, 1766, 1274, 1293, 1283, 1765,
3540      1766, 1766, 1766, 1766, 1274, 1293, 1762, 1781, 1781, 1781,
3541      1781, 1781, 1781, 1781, 1781, 1818, 1818, 1818, 1818, 1295,
3542      1780, 1308, 1819, 4191, 4191, 4191, 4191, 1295, 2677, 1308,
3543      4191, 1318, 1763, 1823, 1823, 1823, 1823, 1823, 1823, 1823,
3544
3545      1823, 1823, 1823, 1823, 1823, 1824, 1444, 1318, 1825, 1824,
3546      2676, 2673, 1825, 1824, 1444, 1318, 1825, 2276, 2276, 2276,
3547      2276, 1762, 1823, 1823, 1823, 1823, 1375, 1821, 2277, 2277,
3548      2277, 2277, 2672, 2671, 1824, 4191, 1287, 1825, 1829, 1829,
3549      1829, 1829, 1375, 1287, 1463, 1830, 4191, 4191, 4191, 4191,
3550      1375, 1287, 1463, 4191, 2278, 2278, 2278, 2278, 1833, 1833,
3551      1833, 1833, 1833, 1833, 1833, 1833, 2670, 2669, 2409, 1834,
3552      2668, 2409, 2667, 1834, 1833, 1833, 1833, 1833, 1841, 1841,
3553      1841, 1841, 2666, 1294, 1381, 1834, 1843, 1843, 1843, 1843,
3554      1294, 2665, 2664, 1844, 4191, 4191, 4191, 4191, 1294, 2010,
3555
3556      1381, 4191, 1502, 1842, 1843, 1843, 1843, 1843, 1381, 2663,
3557      1502, 1844, 1841, 1841, 1841, 1841, 2284, 2284, 2284, 2284,
3558      1846, 2010, 2662, 1847, 1841, 1841, 1841, 1841, 2661, 1899,
3559      1899, 1899, 1899, 1899, 1899, 1899, 1899, 1842, 2660, 2659,
3560      1296, 1842, 1898, 1903, 1903, 1903, 1903, 1296, 1568, 1842,
3561      1903, 1903, 1903, 1903, 1239, 1296, 1568, 2658, 1240, 2657,
3562      1447, 1239, 2656, 2655, 2654, 1240, 2653, 1447, 2652, 1242,
3563      1243, 2309, 2309, 2309, 2309, 1447, 1242, 1243, 1906, 1906,
3564      1906, 1906, 1239, 2651, 2650, 2647, 1240, 1906, 1906, 1906,
3565      1906, 2030, 2030, 2030, 2030, 1223, 1224, 1242, 1243, 1846,
3566
3567      1908, 1908, 1908, 1908, 1223, 2646, 1470, 1909, 4191, 4191,
3568      4191, 4191, 2645, 1470, 1583, 4191, 1911, 1911, 1911, 1911,
3569      1230, 1470, 1583, 1231, 1903, 1903, 1903, 1903, 1586, 1913,
3570      1913, 1913, 1913, 2642, 2641, 1239, 1586, 1948, 2638, 1240,
3571      1267, 1224, 1913, 1913, 1913, 1913, 1266, 1266, 1266, 1266,
3572      1242, 1243, 2031, 1267, 2637, 1590, 1596, 1267, 1921, 1921,
3573      1921, 1921, 1258, 1590, 1596, 1259, 2636, 1266, 1266, 1266,
3574      1266, 1250, 2635, 1266, 1266, 1266, 1266, 1605, 1267, 1312,
3575      1312, 1312, 1312, 1250, 1267, 1605, 2325, 2325, 2325, 2325,
3576      2326, 2634, 1250, 2327, 1313, 2631, 1313, 1276, 1250, 1230,
3577
3578      1312, 1312, 1312, 1312, 1315, 1935, 1935, 1935, 1935, 2323,
3579      1608, 2328, 1936, 4191, 4191, 4191, 4191, 1313, 1608, 2622,
3580      4191, 1312, 1312, 1312, 1312, 1315, 2333, 2333, 2333, 2333,
3581      2621, 1616, 2618, 1936, 2345, 2345, 2345, 2345, 2340, 1616,
3582      2319, 1258, 2318, 2617, 2616, 2615, 1315, 2341, 2341, 2341,
3583      2341, 2012, 2012, 2012, 2012, 1360, 2614, 2613, 1361, 1333,
3584      1988, 1988, 1988, 1988, 1988, 1988, 1988, 1988, 2612, 2326,
3585      2608, 2330, 2344, 2345, 2345, 2344, 1333, 2605, 1332, 2604,
3586      2603, 1994, 1994, 1994, 1994, 2385, 2602, 1389, 2385, 2601,
3587      1368, 1389, 1995, 2281, 1368, 2600, 2599, 1333, 1997, 1997,
3588
3589      1997, 1997, 2599, 1334, 1990, 1990, 1990, 1990, 1990, 1990,
3590      1998, 1999, 2090, 2090, 2090, 2090, 2597, 1335, 2597, 2392,
3591      2392, 2392, 2392, 2001, 1336, 2268, 2393, 2409, 1337, 1338,
3592      2409, 1339, 1340, 1341, 1360, 2266, 1368, 1342, 1343, 1344,
3593      1345, 1346, 2594, 1347, 1369, 1348, 1349, 1350, 1351, 1352,
3594      2388, 2388, 2388, 2388, 2308, 2593, 1623, 2389, 2010, 1368,
3595      2592, 1643, 2591, 1368, 1623, 2395, 2395, 2395, 2395, 1643,
3596      2397, 2397, 2397, 2397, 2590, 2390, 2396, 2398, 2589, 2588,
3597      2010, 2587, 2399, 1997, 1997, 1997, 1997, 2012, 2012, 2012,
3598      2012, 1360, 2586, 2585, 1361, 1998, 1999, 2251, 2015, 2015,
3599
3600      2015, 2015, 2251, 1649, 2581, 1368, 2580, 2243, 2001, 2016,
3601      2002, 1649, 1333, 2015, 2015, 2015, 2015, 2015, 2015, 2015,
3602      2015, 1655, 2243, 1657, 2016, 1722, 2239, 2239, 2016, 1655,
3603      2017, 1657, 2235, 1722, 2017, 2015, 2015, 2015, 2015, 2015,
3604      2015, 2015, 2015, 1724, 2235, 2199, 2016, 1756, 2199, 1795,
3605      2016, 1724, 2017, 2231, 2231, 1756, 2017, 1795, 2015, 2015,
3606      2015, 2015, 2015, 2015, 2015, 2015, 2566, 2228, 2563, 2016,
3607      1360, 2220, 2308, 2016, 2419, 2017, 2201, 2220, 1685, 2017,
3608      2015, 2015, 2015, 2015, 2015, 2015, 2015, 2015, 2208, 2206,
3609      2414, 2016, 1569, 2409, 2408, 2016, 2409, 2017, 2201, 1569,
3610
3611      1799, 2017, 2096, 2096, 2096, 2096, 2420, 1569, 1799, 1387,
3612      1387, 1387, 1387, 2196, 2421, 2196, 1387, 1387, 1387, 1387,
3613      1387, 1387, 1387, 1387, 2010, 2550, 2549, 2423, 1387, 1387,
3614      1387, 1387, 2424, 2422, 1333, 2548, 1389, 1597, 2425, 2547,
3615      2546, 1333, 2427, 1389, 1597, 1333, 2010, 1389, 1387, 1387,
3616      1387, 1387, 1597, 1333, 1645, 1389, 2426, 2187, 2543, 2429,
3617      2542, 2541, 2428, 1387, 1387, 1387, 1387, 1387, 1387, 1387,
3618      1387, 2540, 2539, 1333, 2538, 1389, 1387, 1387, 1387, 1387,
3619      1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1333, 2537,
3620      1389, 1801, 1333, 1611, 1389, 1387, 1387, 1387, 1387, 1801,
3621
3622      1611, 1333, 1805, 1389, 2430, 1333, 2536, 1389, 1611, 1333,
3623      1805, 1389, 2535, 1387, 1387, 1387, 1387, 2534, 2533, 2532,
3624      1333, 1619, 1389, 2431, 1387, 1387, 1387, 1387, 1619, 1387,
3625      1387, 1387, 1387, 2308, 2433, 2473, 1619, 2432, 1333, 1822,
3626      1389, 1387, 1387, 1387, 1387, 2435, 2308, 1822, 2530, 1333,
3627      2434, 1389, 2529, 2527, 1333, 2436, 1389, 1387, 1387, 1387,
3628      1387, 1387, 1387, 1387, 1387, 2437, 1333, 1797, 1389, 1387,
3629      1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387,
3630      1387, 2438, 1333, 1797, 1389, 2524, 1333, 1832, 1389, 1905,
3631      2440, 1797, 1650, 2439, 1333, 1832, 1389, 1905, 1333, 1650,
3632
3633      1389, 2523, 1333, 2522, 1389, 2521, 1656, 1650, 2441, 1387,
3634      1387, 1387, 1387, 1656, 1387, 1387, 1387, 1387, 2442, 2520,
3635      1658, 1656, 2443, 1387, 1387, 1387, 1387, 1658, 2519, 1915,
3636      2444, 1723, 2145, 1803, 1333, 1658, 1389, 1915, 1723, 1333,
3637      2445, 1389, 1387, 1387, 1387, 1387, 1723, 2518, 1333, 1803,
3638      1389, 2141, 2446, 1387, 1387, 1387, 1387, 1803, 1387, 1387,
3639      1387, 1387, 1387, 1387, 1387, 1387, 2135, 1333, 1362, 1389,
3640      1387, 1387, 1387, 1387, 2447, 2448, 1362, 2135, 1333, 2509,
3641      1389, 1759, 2449, 1333, 2508, 1389, 2118, 1333, 1759, 1389,
3642      2118, 1387, 1387, 1387, 1387, 1333, 1759, 1389, 1387, 1387,
3643
3644      1387, 1387, 2501, 1387, 1387, 1387, 1387, 1798, 1387, 1387,
3645      1387, 2459, 1375, 1381, 1798, 2450, 1333, 2451, 1389, 2453,
3646      1375, 1381, 1798, 1333, 1436, 1389, 2499, 2498, 1333, 2497,
3647      1389, 2454, 1436, 1333, 2452, 1389, 1387, 1387, 1387, 1387,
3648      1387, 1387, 1387, 1387, 2494, 2493, 2492, 1387, 1387, 1387,
3649      1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 2491,
3650      2490, 1333, 2488, 1389, 1800, 1333, 2487, 1389, 2455, 2456,
3651      2458, 1800, 1333, 2457, 1389, 2486, 1333, 2412, 1389, 1800,
3652      1333, 2483, 1389, 1387, 1387, 1387, 1387, 2482, 1387, 1387,
3653      1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387,
3654
3655      1275, 2481, 2480, 1387, 1387, 1387, 1387, 2479, 1333, 2461,
3656      1389, 2478, 2460, 1333, 2477, 1389, 1275, 1333, 2476, 1389,
3657      2475, 1333, 2462, 1389, 1275, 2472, 2464, 2463, 1333, 2471,
3658      1389, 1968, 1387, 1387, 1387, 1387, 2074, 2074, 2074, 2074,
3659      2074, 2074, 2074, 2074, 2465, 2076, 2076, 2076, 2076, 1434,
3660      2417, 2416, 1435, 2411, 2415, 2403, 2411, 1333, 2466, 1389,
3661      1515, 2467, 1804, 1440, 1725, 1725, 2412, 1440, 1515, 1804,
3662      1430, 1725, 2468, 2489, 2489, 2489, 2489, 1804, 2469, 1725,
3663      2474, 2401, 2387, 1930, 2413, 2495, 2495, 2495, 2495, 2470,
3664      2111, 2111, 2111, 2111, 2502, 2503, 2503, 2502, 2386, 1930,
3665
3666      1491, 2112, 2503, 2503, 2503, 2503, 2413, 1930, 1697, 2506,
3667      2496, 2504, 2384, 2383, 2504, 2382, 1697, 2113, 2507, 2507,
3668      2507, 2507, 2121, 2122, 2123, 2121, 2381, 2380, 1434, 1939,
3669      2116, 2116, 2116, 2116, 2116, 2116, 2123, 2122, 2123, 2123,
3670      2128, 2128, 2128, 2128, 1797, 1939, 2377, 2129, 4191, 4191,
3671      4191, 4191, 1797, 1939, 1318, 4191, 2510, 2510, 2510, 2510,
3672      1503, 1503, 1503, 1503, 2133, 2133, 2133, 2133, 1513, 1806,
3673      1318, 1514, 1274, 1504, 2376, 1803, 1806, 1504, 1318, 1274,
3674      1839, 1506, 2514, 1803, 1806, 1506, 2375, 1274, 1839, 1509,
3675      2372, 2515, 2515, 2515, 2515, 2154, 2154, 2154, 2154, 2371,
3676
3677      1287, 2370, 2155, 4191, 4191, 4191, 4191, 1287, 2156, 2153,
3678      4191, 1587, 1587, 1587, 1587, 1287, 4191, 2159, 2159, 2159,
3679      2159, 2512, 2369, 2368, 2160, 2153, 1848, 1275, 1588, 4191,
3680      4191, 4191, 4191, 2153, 1848, 1275, 4191, 2528, 2528, 2528,
3681      2528, 2167, 2167, 2167, 2167, 2367, 2360, 1513, 2531, 2531,
3682      2531, 2531, 2552, 2293, 2202, 2359, 2168, 2202, 2358, 2355,
3683      2354, 2553, 2553, 2553, 2553, 2210, 2210, 2210, 2210, 2293,
3684      2353, 1930, 2211, 4191, 4191, 4191, 4191, 2293, 2212, 1930,
3685      4191, 2308, 2352, 2351, 2348, 2204, 4191, 2555, 2555, 2555,
3686      2555, 2556, 2556, 2556, 2556, 2216, 2216, 2216, 2216, 1695,
3687
3688      2212, 2560, 1696, 2217, 2217, 2217, 2217, 2204, 1948, 1939,
3689      2561, 2561, 2561, 2561, 2218, 2568, 2558, 1939, 2579, 2571,
3690      1691, 2579, 1948, 2574, 2569, 2569, 2569, 2569, 2572, 2572,
3691      2572, 2572, 2575, 2575, 2575, 2575, 2577, 2246, 2246, 2246,
3692      2246, 2246, 2246, 2583, 2338, 2578, 2578, 2578, 2578, 2337,
3693      2336, 2335, 2584, 2584, 2584, 2584, 1823, 1823, 1823, 1823,
3694      2276, 2276, 2276, 2276, 2277, 2277, 2277, 2277, 1824, 2153,
3695      2334, 1825, 2278, 2278, 2278, 2278, 1316, 2153, 1695, 2278,
3696      2278, 2278, 2278, 2284, 2284, 2284, 2284, 1846, 1294, 1313,
3697      1847, 2309, 2309, 2309, 2309, 1294, 2309, 2309, 2309, 2309,
3698
3699      2323, 2293, 1239, 1294, 2320, 2317, 1240, 1239, 1842, 2293,
3700      2316, 1240, 2626, 2626, 2626, 2626, 1224, 1242, 1243, 2627,
3701      2308, 1224, 1242, 1243, 1266, 1266, 1266, 1266, 2629, 2629,
3702      2629, 2629, 2306, 2302, 2418, 1267, 1312, 1312, 1312, 1312,
3703      2333, 2333, 2333, 2333, 1296, 1948, 1885, 1936, 2301, 1250,
3704      2418, 1296, 2418, 2328, 2640, 2640, 2640, 2640, 2418, 1296,
3705      2418, 1315, 2489, 2489, 2489, 2489, 1846, 2609, 2609, 2609,
3706      2609, 2609, 2609, 2609, 2609, 2609, 2609, 2609, 2609, 2609,
3707      2609, 2609, 2609, 2609, 2609, 2609, 2609, 2610, 2610, 2610,
3708      2610, 2610, 2610, 2609, 2609, 2609, 2609, 2609, 2609, 2609,
3709
3710      2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610,
3711      2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610,
3712      2609, 2609, 2609, 2609, 2610, 2610, 2610, 2610, 2610, 2610,
3713      2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610,
3714      2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2609,
3715      2609, 2609, 2611, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
3716      1266, 2300, 2299, 2298, 1267, 2297, 2295, 1643, 1267, 2325,
3717      2325, 2325, 2325, 2326, 2011, 1643, 2327, 2294, 1250, 2292,
3718      1724, 2011, 1250, 2629, 2629, 2629, 2629, 2326, 1724, 2011,
3719      2630, 2291, 1874, 1861, 2328, 1312, 1312, 1312, 1312, 2644,
3720
3721      2644, 2644, 2644, 1861, 2388, 2388, 2388, 2388, 2328, 2289,
3722      1861, 2389, 1313, 1368, 2329, 3722, 2288, 1368, 2624, 2287,
3723      1315, 2286, 2329, 3722, 1333, 1859, 2623, 1941, 1857, 2390,
3724      4191, 4191, 4191, 4191, 1941, 1849, 1941, 4191, 1447, 4191,
3725      2282, 1643, 1941, 4191, 2281, 1447, 1828, 2690, 2690, 2690,
3726      2690, 1828, 2326, 1447, 2274, 4191, 1470, 1643, 2273, 1368,
3727      2273, 2271, 2633, 1470, 2271, 1643, 2326, 2643, 2644, 2644,
3728      2643, 1470, 2692, 1332, 2693, 2392, 2392, 2392, 2392, 2268,
3729      2266, 2264, 2393, 2263, 2262, 4191, 4191, 4191, 4191, 4191,
3730      2261, 2260, 1333, 4191, 2489, 2489, 2489, 2489, 1334, 2395,
3731
3732      2395, 2395, 2395, 2259, 2694, 2694, 2694, 2694, 2257, 2256,
3733      2396, 2255, 1335, 2254, 1772, 2132, 1998, 1717, 2251, 1336,
3734      2249, 2243, 2132, 1337, 1338, 2239, 1339, 1340, 1341, 2001,
3735      2132, 2002, 1342, 1343, 1344, 1345, 1346, 2235, 1347, 2231,
3736      1348, 1349, 1350, 1351, 1352, 2397, 2397, 2397, 2397, 2229,
3737      1726, 1726, 2398, 4191, 4191, 4191, 4191, 2399, 2398, 1719,
3738      4191, 1717, 1716, 2399, 1724, 4191, 2495, 2495, 2495, 2495,
3739      2697, 2697, 2697, 2697, 2697, 2697, 2388, 2388, 2388, 2388,
3740      1724, 2228, 1717, 2393, 2220, 1368, 1707, 1698, 1724, 1368,
3741      2694, 2694, 2694, 2694, 2015, 2015, 2015, 2015, 3413, 2214,
3742
3743      3418, 2390, 1998, 2209, 2208, 2016, 2015, 2015, 2015, 2015,
3744      1668, 2017, 2206, 1669, 3413, 2001, 3418, 2016, 2015, 2015,
3745      2015, 2015, 3413, 2017, 3418, 2015, 2015, 2015, 2015, 2016,
3746      2196, 1368, 2194, 2193, 2190, 2017, 2016, 2015, 2015, 2015,
3747      2015, 2187, 2017, 2185, 2015, 2015, 2015, 2015, 2016, 2015,
3748      2015, 2015, 2015, 2184, 2017, 2016, 2015, 2015, 2015, 2015,
3749      2016, 2017, 2788, 2789, 2789, 2788, 2017, 2016, 1491, 1387,
3750      1387, 1387, 1387, 2017, 2183, 2182, 2015, 2015, 2015, 2015,
3751      2705, 1387, 1387, 1387, 1387, 2706, 2707, 2016, 1387, 1387,
3752      1387, 1387, 2181, 2017, 1333, 3247, 1389, 2495, 2495, 2495,
3753
3754      2495, 3247, 2708, 1569, 2178, 1597, 1333, 2177, 1389, 2713,
3755      1569, 2176, 1597, 1333, 2175, 1389, 2174, 3247, 1569, 2715,
3756      1597, 2709, 2496, 2711, 2710, 3247, 1387, 1387, 1387, 1387,
3757      1604, 2714, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387,
3758      1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 2166, 1611,
3759      2165, 1333, 2712, 1389, 2164, 1619, 1611, 1333, 2163, 1389,
3760      2162, 1333, 1619, 1389, 1611, 1333, 2161, 1389, 2152, 1333,
3761      1619, 1389, 2151, 1387, 1387, 1387, 1387, 2150, 2149, 1387,
3762      1387, 1387, 1387, 2148, 2716, 1574, 2728, 2728, 2728, 2728,
3763      1387, 1387, 1387, 1387, 2852, 2853, 2147, 2719, 1333, 2854,
3764
3765      1389, 1650, 2855, 2856, 1333, 2717, 1389, 2146, 1650, 1550,
3766      2718, 1333, 2857, 1389, 2858, 1333, 1650, 1389, 2145, 2720,
3767      2786, 2786, 2786, 2786, 2789, 2789, 2789, 2789, 2118, 1542,
3768      1542, 2787, 2528, 2528, 2528, 2528, 2141, 2792, 2792, 2792,
3769      2792, 2138, 2721, 2135, 2722, 2723, 2724, 2724, 2724, 2724,
3770      2723, 2723, 2723, 2723, 2723, 2723, 2723, 2723, 2723, 2723,
3771      2723, 2723, 2723, 2723, 2723, 2730, 1516, 2729, 1504, 2127,
3772      2125, 2725, 2118, 2726, 2723, 2723, 2723, 2723, 1387, 1387,
3773      1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387,
3774      2110, 1387, 1387, 1387, 1387, 1656, 2109, 1658, 2723, 2723,
3775
3776      2723, 2723, 1656, 1333, 1658, 1389, 2108, 1333, 2107, 1389,
3777      1656, 1333, 1658, 1389, 2106, 2105, 1333, 2104, 1389, 1387,
3778      1387, 1387, 1387, 1387, 1387, 1387, 1387, 2723, 2723, 2723,
3779      2727, 1387, 1387, 1387, 1387, 2103, 1387, 1387, 1387, 1387,
3780      1387, 1387, 1387, 1387, 1333, 2102, 1389, 2732, 1333, 2731,
3781      1389, 1387, 1387, 1387, 1387, 2101, 1333, 2100, 1389, 2733,
3782      2734, 1333, 2099, 1389, 2098, 1333, 2097, 1389, 1387, 1387,
3783      1387, 1387, 2531, 2531, 2531, 2531, 1333, 2089, 1389, 1387,
3784      1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387,
3785      1387, 2086, 2735, 1333, 2085, 1389, 2215, 1484, 1483, 2736,
3786
3787      2082, 2737, 2081, 2215, 1333, 2738, 1389, 1464, 1333, 1437,
3788      1389, 2215, 1333, 2739, 1389, 1387, 1387, 1387, 1387, 2073,
3789      2072, 2740, 1392, 2026, 2014, 2741, 1387, 1387, 1387, 1387,
3790      1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 2879, 2880,
3791      1333, 2013, 1389, 2881, 1996, 2744, 2882, 2883, 1992, 2742,
3792      2743, 1333, 1991, 1389, 1984, 1333, 2884, 1389, 2885, 1333,
3793      1983, 1389, 1980, 1387, 1387, 1387, 1387, 1387, 1387, 1387,
3794      1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387,
3795      1387, 1387, 1387, 2746, 1387, 1387, 1387, 1387, 1333, 2745,
3796      1389, 2747, 1333, 1977, 1389, 2748, 1333, 1973, 1389, 1972,
3797
3798      1333, 1971, 1389, 1967, 1333, 1964, 1389, 2135, 1963, 1333,
3799      1392, 1389, 1387, 1387, 1387, 1387, 2797, 2797, 2797, 2797,
3800      1387, 1387, 1387, 1387, 1962, 1957, 2750, 1723, 2749, 1948,
3801      1946, 1759, 2753, 1945, 1723, 1942, 2752, 1333, 1759, 1389,
3802      1316, 2751, 1723, 2755, 2754, 1333, 1759, 1389, 1387, 1387,
3803      1387, 1387, 2556, 2556, 2556, 2556, 1387, 1387, 1387, 1387,
3804      1387, 1387, 1387, 1387, 4191, 1387, 1387, 1387, 1387, 1387,
3805      1387, 1387, 1387, 1333, 1317, 1389, 1940, 2558, 1938, 2756,
3806      2757, 1333, 1932, 1389, 1282, 1333, 1929, 1389, 1928, 2758,
3807      1333, 1927, 1389, 1922, 1333, 1264, 1389, 2510, 2510, 2510,
3808
3809      2510, 2510, 2510, 2510, 2510, 1264, 1503, 1503, 1503, 1503,
3810      1587, 1587, 1587, 1587, 1504, 1237, 1219, 2759, 1504, 2760,
3811      1894, 2761, 1506, 1504, 2196, 1891, 1506, 1588, 1861, 1861,
3812      1861, 1506, 1861, 2825, 2825, 2825, 2825, 2555, 2555, 2555,
3813      2555, 2762, 2220, 1859, 2763, 2556, 2556, 2556, 2556, 2231,
3814      2212, 2829, 2829, 2829, 2829, 2235, 1858, 1857, 2833, 2833,
3815      2833, 2833, 2239, 1849, 2835, 2835, 2835, 2835, 1840, 1828,
3816      2558, 2837, 2837, 2837, 2837, 2243, 1817, 1814, 1809, 2251,
3817      2795, 1802, 1796, 1775, 2839, 2839, 2839, 2839, 2843, 2843,
3818      2843, 2843, 2609, 2609, 2609, 2609, 2609, 2609, 2609, 2609,
3819
3820      2609, 2609, 2609, 2609, 2609, 2609, 2609, 2609, 2609, 2609,
3821      2609, 2609, 2610, 2610, 2610, 2610, 2610, 2610, 2609, 2609,
3822      2609, 2609, 2609, 2609, 2609, 2610, 2610, 2610, 2610, 2610,
3823      2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610,
3824      2610, 2610, 2610, 2610, 2610, 2609, 2609, 2609, 2609, 2610,
3825      2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610,
3826      2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610,
3827      2610, 2610, 2610, 2610, 2609, 2609, 2609, 2611, 1266, 1266,
3828      1266, 1266, 1266, 1266, 1266, 1266, 1717, 1772, 1758, 1267,
3829      1755, 1725, 1725, 1267, 2626, 2626, 2626, 2626, 1725, 1754,
3830
3831      1753, 2627, 1748, 1250, 1745, 1742, 1725, 1250, 4191, 4191,
3832      4191, 4191, 1737, 1731, 1727, 4191, 2629, 2629, 2629, 2629,
3833      2889, 2889, 2889, 2889, 2326, 1726, 1721, 2630, 2629, 2629,
3834      2629, 2629, 1717, 1719, 1717, 2886, 1798, 1312, 1312, 1312,
3835      1312, 2328, 2887, 1798, 1716, 2328, 2897, 2897, 2897, 2897,
3836      1711, 1798, 1800, 2328, 1313, 2912, 2912, 2912, 2912, 1800,
3837      1707, 1804, 1315, 2941, 2941, 2941, 2941, 1800, 1804, 1698,
3838      2389, 1333, 2690, 2690, 2690, 2690, 1804, 2694, 2694, 2694,
3839      2694, 1686, 1669, 1668, 2690, 2690, 2690, 2690, 2390, 1998,
3840      1667, 1387, 1387, 1387, 1387, 3797, 1666, 2692, 2890, 1665,
3841
3842      1664, 3797, 2001, 2326, 2896, 2897, 2897, 2896, 1661, 2692,
3843      1332, 2693, 2694, 2694, 2694, 2694, 1333, 3797, 1389, 3017,
3844      3017, 3017, 3017, 1806, 1998, 3797, 1660, 2956, 2398, 1333,
3845      1806, 1654, 1653, 2399, 1652, 1334, 2729, 2001, 1806, 2002,
3846      2697, 2697, 2697, 2697, 2697, 2697, 1651, 1641, 1640, 1335,
3847      1637, 2015, 2015, 2015, 2015, 1636, 1336, 1635, 1634, 2283,
3848      1337, 1338, 2016, 1339, 1340, 1341, 2283, 1633, 2017, 1342,
3849      1343, 1344, 1345, 1346, 2283, 1347, 1613, 1348, 1349, 1350,
3850      1351, 1352, 2398, 3018, 3018, 3018, 3018, 2399, 1604, 2015,
3851      2015, 2015, 2015, 1602, 2697, 2697, 2697, 2697, 2697, 2697,
3852
3853      2016, 2015, 2015, 2015, 2015, 1599, 2017, 1598, 2015, 2015,
3854      2015, 2015, 2016, 2015, 2015, 2015, 2015, 1577, 2017, 2016,
3855      2015, 2015, 2015, 2015, 2016, 2017, 1387, 1387, 1387, 1387,
3856      2017, 2016, 2015, 2015, 2015, 2015, 1574, 2017, 1571, 2015,
3857      2015, 2015, 2015, 2016, 2015, 2015, 2015, 2015, 1570, 2017,
3858      2016, 1333, 1550, 1389, 1542, 2016, 2017, 1387, 1387, 1387,
3859      1387, 2017, 2948, 2947, 1387, 1387, 1387, 1387, 1537, 1526,
3860      2957, 1387, 1387, 1387, 1387, 1525, 1522, 2951, 1516, 1499,
3861      1498, 2949, 1333, 2950, 1389, 2961, 2961, 2961, 2961, 1333,
3862      1495, 1389, 1487, 2952, 1484, 1483, 1333, 1481, 1389, 2958,
3863
3864      1478, 1477, 2953, 1476, 2954, 1387, 1387, 1387, 1387, 2955,
3865      1333, 1473, 1389, 2964, 2964, 2964, 2964, 1387, 1387, 1387,
3866      1387, 1387, 1387, 1387, 1387, 1472, 1471, 1464, 2960, 1437,
3867      1333, 2959, 1389, 1387, 1387, 1387, 1387, 1392, 1333, 1379,
3868      1389, 1376, 1333, 1374, 1389, 1325, 1333, 1323, 1389, 1387,
3869      1387, 1387, 1387, 3018, 3018, 3018, 3018, 1320, 1333, 1317,
3870      1389, 2728, 2728, 2728, 2728, 3799, 2962, 2969, 2969, 2969,
3871      2969, 3799, 1309, 1288, 1333, 1282, 1389, 1265, 2965, 2963,
3872      1387, 1387, 1387, 1387, 1264, 1237, 1333, 3799, 1389, 4191,
3873      2966, 4191, 1333, 4191, 1389, 3799, 4191, 1387, 1387, 1387,
3874
3875      1387, 1387, 1387, 1387, 1387, 1333, 4191, 1389, 4191, 1387,
3876      1387, 1387, 1387, 1387, 1387, 1387, 1387, 4191, 2280, 2280,
3877      2967, 4191, 1333, 4191, 1389, 2280, 1333, 4191, 1389, 3029,
3878      3029, 3029, 3029, 2280, 1333, 2968, 1389, 4191, 1333, 4191,
3879      1389, 1387, 1387, 1387, 1387, 4191, 1387, 1387, 1387, 1387,
3880      1387, 1387, 1387, 1387, 4191, 2970, 2971, 1387, 1387, 1387,
3881      1387, 1387, 1387, 1387, 1387, 2267, 1333, 4191, 1389, 2973,
3882      2972, 1333, 2267, 1389, 4191, 1333, 4191, 1389, 2974, 2267,
3883      4191, 4191, 1333, 4191, 1389, 4191, 1333, 2267, 1389, 1387,
3884      1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387,
3885
3886      1387, 2975, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387,
3887      2311, 2977, 4191, 4191, 1333, 2976, 1389, 2311, 1333, 2978,
3888      1389, 4191, 1333, 4191, 1389, 2311, 2979, 1333, 4191, 1389,
3889      4191, 1333, 2980, 1389, 1387, 1387, 1387, 1387, 1387, 1387,
3890      1387, 1387, 4191, 1387, 1387, 1387, 1387, 1387, 1387, 1387,
3891      1387, 4191, 4191, 2982, 1387, 1387, 1387, 1387, 2983, 1333,
3892      2011, 1389, 2981, 1333, 4191, 1389, 4191, 2011, 1333, 2984,
3893      1389, 4191, 1333, 4191, 1389, 2011, 4191, 2985, 4191, 1333,
3894      4191, 1389, 4191, 1387, 1387, 1387, 1387, 1387, 1387, 1387,
3895      1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 4191,
3896
3897      2322, 4191, 2988, 4191, 4191, 2322, 2989, 2322, 1333, 2986,
3898      1389, 2987, 1333, 4191, 1389, 2322, 1333, 4191, 1389, 4191,
3899      1333, 4191, 1389, 3032, 3032, 3032, 3032, 2992, 1387, 1387,
3900      1387, 1387, 4191, 1387, 1387, 1387, 1387, 2999, 2999, 2999,
3901      2999, 1470, 3001, 3001, 3001, 3001, 2994, 4191, 1470, 4191,
3902      2993, 4191, 2996, 1333, 4191, 1389, 1470, 4191, 1333, 4191,
3903      1389, 4191, 1333, 4191, 1389, 4191, 2995, 1333, 4191, 1389,
3904      1387, 1387, 1387, 3002, 1387, 1387, 1387, 1387, 1387, 1387,
3905      1387, 1387, 3023, 3023, 3023, 3023, 4191, 1941, 4191, 2997,
3906      2998, 4191, 4191, 3024, 1941, 1333, 1941, 1389, 4191, 1333,
3907
3908      4191, 1389, 1941, 1333, 4191, 1389, 2786, 2786, 2786, 2786,
3909      3028, 3029, 3029, 3028, 4191, 4191, 1491, 2787, 3000, 1503,
3910      1503, 1503, 1503, 4191, 4191, 4191, 4191, 2210, 2210, 2210,
3911      2210, 3004, 4191, 4191, 2211, 4191, 1504, 4191, 4191, 4191,
3912      2212, 4191, 4191, 3005, 1506, 3003, 1266, 1266, 1266, 1266,
3913      3095, 3095, 3095, 3095, 4191, 4191, 3025, 1267, 4191, 4191,
3914      4191, 1267, 2889, 2889, 2889, 2889, 2326, 4191, 4191, 2630,
3915      4191, 1250, 4191, 4191, 4191, 3096, 1312, 1312, 1312, 1312,
3916      3102, 3102, 3102, 3102, 2132, 1569, 4191, 2328, 3033, 4191,
3917      3031, 2132, 1569, 1313, 3105, 3105, 3105, 3105, 4191, 2132,
3918
3919      1569, 1315, 4191, 4191, 4191, 3094, 3117, 3117, 3117, 3117,
3920      3119, 3119, 3119, 3119, 2912, 2912, 2912, 2912, 4191, 1333,
3921      3121, 3121, 3121, 3121, 4191, 4191, 4191, 3144, 3144, 3144,
3922      3144, 3097, 2941, 2941, 2941, 2941, 4191, 4191, 4191, 2389,
3923      2690, 2690, 2690, 2690, 3098, 2326, 3104, 3105, 3105, 3104,
3924      4191, 2332, 1332, 2332, 2388, 2388, 2388, 2388, 4191, 2215,
3925      2332, 2389, 4191, 1368, 4191, 2692, 2215, 1368, 2332, 4191,
3926      4191, 1333, 4191, 2967, 2215, 4191, 4191, 1334, 4191, 2390,
3927      4191, 4191, 2015, 2015, 2015, 2015, 4191, 2962, 2968, 4191,
3928      4191, 1335, 4191, 2016, 3017, 3017, 3017, 3017, 1336, 2017,
3929
3930      4191, 4191, 1337, 1338, 4191, 1339, 1340, 1341, 3000, 1368,
3931      4191, 1342, 1343, 1344, 1345, 1346, 4191, 1347, 4191, 1348,
3932      1349, 1350, 1351, 1352, 2015, 2015, 2015, 2015, 2015, 2015,
3933      2015, 2015, 4191, 4191, 4191, 2016, 4191, 4191, 4191, 2016,
3934      4191, 2017, 4191, 4191, 4191, 2017, 2015, 2015, 2015, 2015,
3935      2015, 2015, 2015, 2015, 4191, 4191, 4191, 2016, 4191, 4191,
3936      4191, 2016, 4191, 2017, 4191, 4191, 4191, 2017, 2015, 2015,
3937      2015, 2015, 2015, 2015, 2015, 2015, 4191, 4191, 4191, 2016,
3938      4191, 4191, 4191, 2016, 4191, 2017, 4191, 4191, 4191, 2017,
3939      3152, 4191, 3151, 2015, 2015, 2015, 2015, 2015, 2015, 2015,
3940
3941      2015, 4191, 4191, 4191, 2016, 4191, 4191, 4191, 2016, 4191,
3942      2017, 4191, 4191, 4191, 2017, 3153, 1387, 1387, 1387, 1387,
3943      1387, 1387, 1387, 1387, 4191, 3154, 4191, 3155, 4191, 4191,
3944      4191, 3156, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387,
3945      4191, 1333, 4191, 1389, 4191, 1333, 4191, 1389, 4191, 4191,
3946      3159, 4191, 3157, 4191, 4191, 4191, 3160, 1333, 4191, 1389,
3947      4191, 1333, 4191, 1389, 3161, 1387, 1387, 1387, 1387, 4191,
3948      3158, 2961, 2961, 2961, 2961, 1387, 1387, 1387, 1387, 2964,
3949      2964, 2964, 2964, 3167, 3167, 3167, 3167, 4191, 2280, 2280,
3950      1333, 4191, 1389, 4191, 3168, 2280, 1333, 4191, 1389, 4191,
3951
3952      1333, 3162, 1389, 2280, 1333, 4191, 1389, 4191, 1333, 4191,
3953      1389, 4191, 1387, 1387, 1387, 1387, 2969, 2969, 2969, 2969,
3954      1387, 1387, 1387, 1387, 3163, 1387, 1387, 1387, 1387, 2283,
3955      4191, 1336, 3017, 3017, 3017, 3017, 2283, 1333, 3165, 1389,
3956      2031, 1333, 4191, 1389, 2283, 1333, 4191, 1389, 4191, 3164,
3957      1333, 4191, 1389, 3166, 4191, 1351, 3174, 3174, 3174, 3174,
3958      4191, 3175, 4191, 4191, 3176, 3176, 3176, 3176, 1387, 1387,
3959      1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387,
3960      4191, 1333, 4191, 1389, 4191, 3172, 4191, 3169, 4191, 1333,
3961      3173, 1389, 4191, 1333, 4191, 1389, 4191, 1333, 4191, 1389,
3962
3963      4191, 1333, 4191, 1389, 3180, 3180, 3180, 3180, 4191, 1387,
3964      1387, 1387, 1387, 1387, 1387, 1387, 1387, 3183, 3183, 3183,
3965      3183, 1387, 1387, 1387, 1387, 2269, 4191, 3177, 4191, 1333,
3966      2311, 1389, 2269, 3178, 1333, 4191, 1389, 2311, 1333, 2269,
3967      1389, 4191, 3184, 3179, 1389, 2311, 1333, 2269, 1389, 1387,
3968      1387, 1387, 1387, 3187, 3187, 3187, 3187, 1387, 1387, 1387,
3969      1387, 2267, 1387, 1387, 1387, 1387, 3181, 4191, 2267, 4191,
3970      3182, 4191, 2269, 4191, 1333, 2267, 1389, 4191, 1333, 2269,
3971      1389, 4191, 1333, 2267, 1389, 4191, 2269, 1333, 4191, 1389,
3972      1387, 1387, 1387, 1387, 2269, 1387, 1387, 1387, 1387, 4191,
3973
3974      4191, 3185, 1387, 1387, 1387, 1387, 4191, 3193, 3193, 3193,
3975      3193, 1387, 1387, 1387, 1387, 1333, 4191, 1389, 3188, 3189,
3976      1333, 4191, 1389, 3186, 4191, 4191, 4191, 1333, 2322, 1389,
3977      4191, 4191, 3194, 2322, 1389, 2322, 1333, 4191, 1389, 1387,
3978      1387, 1387, 1387, 2322, 3201, 3201, 3201, 3201, 4191, 4191,
3979      4191, 3190, 3195, 3202, 3202, 3202, 3202, 1387, 1387, 1387,
3980      1387, 4191, 4191, 4191, 1333, 4191, 1389, 4191, 4191, 1333,
3981      3191, 1389, 3199, 1387, 1387, 1387, 1387, 3192, 1333, 4191,
3982      1389, 3196, 1333, 4191, 1389, 1387, 1387, 1387, 1387, 2999,
3983      2999, 2999, 2999, 3001, 3001, 3001, 3001, 4191, 1333, 4191,
3984
3985      1389, 1387, 1387, 1387, 1387, 4191, 1387, 1387, 1387, 1387,
3986      1333, 4191, 1389, 3200, 1333, 4191, 1389, 4191, 1333, 4191,
3987      1389, 1387, 1387, 1387, 1387, 4191, 1333, 4191, 1389, 4191,
3988      4191, 1333, 3204, 1389, 3203, 3205, 1387, 1387, 1387, 1387,
3989      3023, 3023, 3023, 3023, 4191, 4191, 1333, 4191, 1389, 4191,
3990      4191, 3024, 4191, 3206, 3018, 3018, 3018, 3018, 4191, 4191,
3991      3207, 1333, 4191, 1389, 4191, 3224, 3224, 3224, 3224, 3226,
3992      3226, 3226, 3226, 4191, 4191, 3208, 3225, 4191, 3023, 3023,
3993      3023, 3023, 3227, 3227, 3227, 3227, 3209, 1470, 3210, 3024,
3994      3230, 3231, 3231, 3230, 1470, 4191, 1491, 3231, 3231, 3231,
3995
3996      3231, 4191, 1470, 3211, 1503, 1503, 1503, 1503, 4191, 4191,
3997      4191, 4191, 1569, 2888, 3217, 1266, 1266, 1266, 1266, 1569,
3998      2888, 1504, 3095, 3095, 3095, 3095, 1267, 1569, 2888, 1506,
3999      4191, 1470, 4191, 1267, 1312, 1312, 1312, 1312, 1470, 4191,
4000      1250, 3288, 3288, 3288, 3288, 4191, 1470, 3096, 4191, 4191,
4001      4191, 1313, 3102, 3102, 3102, 3102, 4191, 4191, 4191, 1315,
4002      4191, 3233, 3290, 3290, 3290, 3290, 3291, 3292, 3292, 3291,
4003      4191, 3292, 3292, 3292, 3292, 3234, 3117, 3117, 3117, 3117,
4004      3119, 3119, 3119, 3119, 3121, 3121, 3121, 3121, 4191, 4191,
4005      2887, 3308, 3308, 3308, 3308, 3286, 1333, 3310, 3310, 3310,
4006
4007      3310, 4191, 4191, 3097, 3313, 3313, 3313, 3313, 3317, 3317,
4008      3317, 3317, 3323, 3323, 3323, 3323, 3328, 3328, 3328, 3328,
4009      3329, 3329, 3329, 3329, 3144, 3144, 3144, 3144, 4191, 3314,
4010      4191, 4191, 1336, 2015, 2015, 2015, 2015, 3324, 4191, 3165,
4011      4191, 2031, 4191, 4191, 2016, 1387, 1387, 1387, 1387, 4191,
4012      2017, 4191, 4191, 4191, 3166, 4191, 1351, 3325, 2015, 2015,
4013      2015, 2015, 2015, 2015, 2015, 2015, 4191, 4191, 4191, 2016,
4014      1333, 4191, 1389, 2016, 4191, 2017, 4191, 2888, 4191, 2017,
4015      2015, 2015, 2015, 2015, 2888, 4191, 3326, 2015, 2015, 2015,
4016      2015, 2016, 2888, 3344, 3336, 4191, 4191, 2017, 2016, 4191,
4017
4018      4191, 3203, 4191, 4191, 2017, 2015, 2015, 2015, 2015, 3342,
4019      3342, 3342, 3342, 4191, 4191, 3337, 2016, 4191, 4191, 3338,
4020      2016, 4191, 2017, 4191, 4191, 4191, 2017, 2015, 2015, 2015,
4021      2015, 1387, 1387, 1387, 1387, 4191, 4191, 4191, 2016, 4191,
4022      4191, 3339, 4191, 4191, 2017, 1387, 1387, 1387, 1387, 1387,
4023      1387, 1387, 1387, 3421, 3551, 4191, 1333, 4191, 1389, 4191,
4024      3421, 3551, 3340, 4191, 1387, 1387, 1387, 1387, 3421, 3551,
4025      1333, 4191, 1389, 4191, 1333, 3341, 1389, 3345, 3349, 3349,
4026      3349, 3349, 3167, 3167, 3167, 3167, 3346, 4191, 3343, 1333,
4027      4191, 1389, 4191, 3168, 3351, 3351, 3351, 3351, 4191, 3352,
4028
4029      4191, 4191, 4191, 1333, 3352, 1389, 4191, 1333, 4191, 1389,
4030      1387, 1387, 1387, 1387, 4191, 1387, 1387, 1387, 1387, 1387,
4031      1387, 1387, 1387, 3347, 3174, 3174, 3174, 3174, 4191, 3175,
4032      3176, 3176, 3176, 3176, 4191, 1333, 2332, 1389, 2332, 3348,
4033      1333, 3554, 1389, 3835, 1333, 2332, 1389, 4191, 3554, 1333,
4034      3835, 1389, 4191, 2332, 4191, 1333, 3554, 1389, 3835, 3362,
4035      3362, 3362, 3362, 1387, 1387, 1387, 1387, 3368, 3368, 3368,
4036      3368, 3353, 3180, 3180, 3180, 3180, 3836, 4191, 1387, 1387,
4037      1387, 1387, 4191, 3836, 1333, 3356, 3363, 4191, 1333, 3359,
4038      1389, 3836, 1957, 4191, 3357, 4191, 4191, 1333, 4191, 1389,
4039
4040      4191, 4191, 4191, 1333, 3360, 1389, 3361, 2723, 2724, 2724,
4041      2724, 2724, 2723, 2723, 2723, 2723, 2723, 2723, 2723, 2723,
4042      2723, 2723, 2723, 2723, 2723, 2723, 2723, 1387, 1387, 1387,
4043      1387, 4191, 4191, 2725, 4191, 2726, 2723, 2723, 2723, 2723,
4044      4191, 4191, 4191, 3365, 4191, 3367, 3183, 3183, 3183, 3183,
4045      4191, 4191, 1333, 4191, 1389, 3369, 3369, 3369, 3369, 4191,
4046      2723, 2723, 2723, 2723, 3364, 3394, 3394, 3394, 3394, 4191,
4047      4191, 3184, 4191, 1389, 3370, 3370, 3370, 3370, 4191, 4191,
4048      1333, 4191, 1389, 4191, 4191, 4191, 3366, 4191, 4191, 2723,
4049      2723, 2723, 2727, 3187, 3187, 3187, 3187, 4191, 4191, 3194,
4050
4051      4191, 1389, 3371, 3371, 3371, 3371, 1387, 1387, 1387, 1387,
4052      3373, 3373, 3373, 3373, 1387, 1387, 1387, 1387, 1333, 4191,
4053      1389, 1387, 1387, 1387, 1387, 4191, 4191, 1333, 4191, 1389,
4054      4191, 1333, 4191, 1389, 4191, 3374, 4191, 1389, 4191, 1333,
4055      4191, 1389, 3193, 3193, 3193, 3193, 1333, 4191, 1389, 3380,
4056      3380, 3380, 3380, 4191, 4191, 3375, 1387, 1387, 1387, 1387,
4057      4191, 1387, 1387, 1387, 1387, 3372, 4191, 3194, 4191, 1389,
4058      3386, 3386, 3386, 3386, 1957, 3201, 3201, 3201, 3201, 3377,
4059      4191, 1333, 3379, 1389, 3376, 4191, 1333, 3325, 1389, 4191,
4060      3202, 3202, 3202, 3202, 3378, 3387, 4191, 1389, 4191, 4191,
4061
4062      1333, 4191, 1389, 4191, 1387, 1387, 1387, 1387, 3388, 3388,
4063      3388, 3388, 3381, 4191, 4191, 1333, 3326, 1389, 1387, 1387,
4064      1387, 1387, 1387, 1387, 1387, 1387, 4191, 4191, 3382, 1333,
4065      4191, 1389, 4191, 1333, 4191, 1389, 3393, 3393, 3393, 3393,
4066      4191, 4191, 4191, 1333, 4191, 1389, 4191, 1333, 4191, 1389,
4067      1387, 1387, 1387, 1387, 4191, 3224, 3224, 3224, 3224, 4191,
4068      4191, 1333, 4191, 1389, 4191, 3177, 3225, 3226, 3226, 3226,
4069      3226, 3227, 3227, 3227, 3227, 1333, 4191, 1389, 4191, 3389,
4070      3399, 3399, 3399, 3399, 3224, 3224, 3224, 3224, 3226, 3226,
4071      3226, 3226, 4191, 3392, 4191, 3225, 3227, 3227, 3227, 3227,
4072
4073      3405, 3406, 3406, 3405, 4191, 4191, 1491, 3406, 3406, 3406,
4074      3406, 2720, 1503, 1503, 1503, 1503, 4191, 4191, 4191, 4191,
4075      4191, 1312, 1312, 1312, 1312, 3451, 3451, 3451, 3451, 1504,
4076      3288, 3288, 3288, 3288, 4191, 4191, 4191, 1506, 1313, 3290,
4077      3290, 3290, 3290, 4191, 4191, 4191, 1315, 3453, 3454, 3454,
4078      3453, 3454, 3454, 3454, 3454, 3461, 3461, 3461, 3461, 3466,
4079      3466, 3466, 3466, 3308, 3308, 3308, 3308, 3310, 3310, 3310,
4080      3310, 3408, 3313, 3313, 3313, 3313, 1333, 2800, 3368, 3368,
4081      3368, 3368, 3473, 3473, 3473, 3473, 3474, 3474, 3474, 3474,
4082      3450, 3317, 3317, 3317, 3317, 4191, 4191, 3314, 3475, 3475,
4083
4084      3475, 3475, 3477, 3477, 3477, 3477, 3323, 3323, 3323, 3323,
4085      4191, 3324, 3380, 3380, 3380, 3380, 3486, 3486, 3486, 3486,
4086      3328, 3328, 3328, 3328, 4191, 4191, 4191, 3478, 4191, 4191,
4087      4191, 3324, 3329, 3329, 3329, 3329, 3488, 3488, 3488, 3488,
4088      4191, 3487, 3491, 3491, 3491, 3491, 4191, 3479, 4191, 4191,
4089      4191, 3325, 2015, 2015, 2015, 2015, 2015, 2015, 2015, 2015,
4090      4191, 4191, 4191, 2016, 4191, 4191, 4191, 2016, 4191, 2017,
4091      4191, 4191, 4191, 2017, 4191, 4191, 3480, 4191, 4191, 4191,
4092      3326, 2015, 2015, 2015, 2015, 3495, 3495, 3495, 3495, 4191,
4093      4191, 4191, 2016, 4191, 4191, 4191, 2016, 4191, 2017, 4191,
4094
4095      4191, 4191, 2017, 2015, 2015, 2015, 2015, 2015, 2015, 2015,
4096      2015, 4191, 4191, 4191, 2016, 3493, 4191, 4191, 2016, 4191,
4097      2017, 3492, 4191, 4191, 2017, 3342, 3342, 3342, 3342, 2015,
4098      2015, 2015, 2015, 4191, 4191, 4191, 2016, 4191, 4191, 4191,
4099      2016, 1387, 1387, 1387, 1387, 4191, 2017, 4191, 3494, 4191,
4100      1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387,
4101      1387, 1387, 4191, 4191, 3496, 4191, 1333, 4191, 1389, 3501,
4102      3501, 3501, 3501, 4191, 3497, 1333, 4191, 1389, 4191, 1333,
4103      4191, 1389, 4191, 1333, 4191, 1389, 4191, 4191, 4191, 3498,
4104      3349, 3349, 3349, 3349, 1333, 4191, 1389, 4191, 3499, 4191,
4105
4106      4191, 3200, 3351, 3351, 3351, 3351, 4191, 3352, 1387, 1387,
4107      1387, 1387, 3352, 4191, 4191, 1333, 4191, 1389, 1387, 1387,
4108      1387, 1387, 3500, 3506, 3506, 3506, 3506, 3362, 3362, 3362,
4109      3362, 4191, 4191, 1333, 4191, 1389, 1387, 1387, 1387, 1387,
4110      4191, 4191, 4191, 1333, 4191, 1389, 4191, 4191, 1333, 4191,
4111      1389, 4191, 1333, 4191, 3363, 3514, 3514, 3514, 3514, 4191,
4112      4191, 1333, 4191, 1389, 1387, 1387, 1387, 1387, 3516, 3516,
4113      3516, 3516, 3368, 3368, 3368, 3368, 3369, 3369, 3369, 3369,
4114      1333, 3502, 1389, 3370, 3370, 3370, 3370, 3505, 4191, 1333,
4115      4191, 1389, 4191, 3517, 4191, 1389, 3371, 3371, 3371, 3371,
4116
4117      4191, 1333, 4191, 1389, 4191, 4191, 3513, 4191, 3194, 4191,
4118      1389, 1387, 1387, 1387, 1387, 3373, 3373, 3373, 3373, 4191,
4119      4191, 1333, 4191, 1389, 4191, 3515, 3519, 3519, 3519, 3519,
4120      1387, 1387, 1387, 1387, 4191, 4191, 1333, 4191, 1389, 4191,
4121      3374, 4191, 1389, 1387, 1387, 1387, 1387, 3380, 3380, 3380,
4122      3380, 1957, 4191, 4191, 4191, 1333, 4191, 1389, 4191, 4191,
4123      3479, 4191, 4191, 1387, 1387, 1387, 1387, 4191, 1333, 4191,
4124      1389, 4191, 3518, 3523, 3523, 3523, 3523, 1387, 1387, 1387,
4125      1387, 1387, 1387, 1387, 1387, 4191, 3520, 4191, 1333, 3480,
4126      1389, 1387, 1387, 1387, 1387, 4191, 4191, 4191, 1333, 4191,
4127
4128      1389, 4191, 1333, 4191, 1389, 4191, 1333, 4191, 1389, 4191,
4129      3521, 1387, 1387, 1387, 1387, 4191, 1333, 4191, 1389, 3386,
4130      3386, 3386, 3386, 4191, 3522, 4191, 4191, 4191, 3525, 3530,
4131      3530, 3530, 3530, 4191, 4191, 4191, 1333, 3524, 1389, 3388,
4132      3388, 3388, 3388, 4191, 3387, 4191, 1389, 3533, 3533, 3533,
4133      3533, 4191, 4191, 4191, 1957, 4191, 4191, 1387, 1387, 1387,
4134      1387, 3526, 4191, 4191, 1333, 4191, 1389, 3393, 3393, 3393,
4135      3393, 4191, 1333, 4191, 1389, 3394, 3394, 3394, 3394, 4191,
4136      4191, 3529, 1333, 4191, 1389, 3541, 3541, 3541, 3541, 4191,
4137      4191, 1336, 1333, 4191, 1389, 4191, 4191, 4191, 3531, 4191,
4138
4139      2031, 3399, 3399, 3399, 3399, 3542, 3542, 3542, 3542, 3543,
4140      3543, 3543, 3543, 3166, 4191, 1351, 3532, 4191, 3536, 3544,
4141      3544, 3544, 3544, 3545, 3545, 3545, 3545, 3544, 3544, 3544,
4142      3544, 3546, 3547, 3547, 3546, 4191, 4191, 1491, 3547, 3547,
4143      3547, 3547, 3537, 1503, 1503, 1503, 1503, 3562, 3562, 3562,
4144      3562, 4191, 1312, 1312, 1312, 1312, 3451, 3451, 3451, 3451,
4145      1504, 3583, 3583, 3583, 3583, 4191, 4191, 4191, 1506, 1313,
4146      3584, 3585, 3585, 3584, 4191, 4191, 4191, 1315, 3585, 3585,
4147      3585, 3585, 3589, 3589, 3589, 3589, 3461, 3461, 3461, 3461,
4148      3594, 3594, 3594, 3594, 3466, 3466, 3466, 3466, 3597, 3597,
4149
4150      3597, 3597, 4191, 1333, 3549, 3598, 3598, 3598, 3598, 3600,
4151      3600, 3600, 3600, 3473, 3473, 3473, 3473, 3474, 3474, 3474,
4152      3474, 3475, 3475, 3475, 3475, 4191, 4191, 3582, 3477, 3477,
4153      3477, 3477, 4191, 4191, 3601, 3519, 3519, 3519, 3519, 4191,
4154      4191, 4191, 3324, 3606, 3606, 3606, 3606, 3486, 3486, 3486,
4155      3486, 4191, 4191, 3478, 3530, 3530, 3530, 3530, 3488, 3488,
4156      3488, 3488, 3610, 3610, 3610, 3610, 3491, 3491, 3491, 3491,
4157      4191, 4191, 3487, 3479, 2015, 2015, 2015, 2015, 2015, 2015,
4158      2015, 2015, 4191, 4191, 4191, 2016, 4191, 4191, 4191, 2016,
4159      4191, 2017, 4191, 4191, 4191, 2017, 3614, 3614, 3614, 3614,
4160
4161      4191, 4191, 3480, 3495, 3495, 3495, 3495, 2016, 4191, 4191,
4162      1336, 4191, 4191, 2017, 2016, 4191, 4191, 3531, 4191, 2031,
4163      2015, 2015, 2015, 2015, 4191, 3616, 3616, 3616, 3616, 4191,
4164      4191, 2016, 3166, 4191, 1351, 3532, 2016, 2017, 4191, 3613,
4165      4191, 4191, 2017, 3617, 3617, 3617, 3617, 4191, 4191, 3612,
4166      1387, 1387, 1387, 1387, 2016, 4191, 1387, 1387, 1387, 1387,
4167      2017, 3501, 3501, 3501, 3501, 1387, 1387, 1387, 1387, 3623,
4168      3623, 3623, 3623, 4191, 4191, 1333, 4191, 1389, 4191, 4191,
4169      3615, 1333, 4191, 1389, 4191, 4191, 1333, 4191, 1389, 4191,
4170      1333, 4191, 1389, 4191, 1333, 4191, 1389, 3506, 3506, 3506,
4171
4172      3506, 3618, 3624, 3624, 3624, 3624, 1387, 1387, 1387, 1387,
4173      3514, 3514, 3514, 3514, 4191, 4191, 4191, 3619, 3631, 3631,
4174      3631, 3632, 1333, 4191, 1389, 4191, 4191, 3620, 4191, 4191,
4175      4191, 1333, 4191, 1389, 4191, 1333, 4191, 1389, 3516, 3516,
4176      3516, 3516, 4191, 1333, 4191, 1389, 3633, 3633, 3633, 3633,
4177      3519, 3519, 3519, 3519, 3648, 3648, 3648, 3648, 3530, 3530,
4178      3530, 3530, 4191, 3517, 4191, 1389, 3542, 3542, 3542, 3542,
4179      4191, 1957, 4191, 4191, 4191, 3630, 4191, 4191, 4191, 1387,
4180      1387, 1387, 1387, 3625, 3634, 3635, 3635, 3635, 3635, 3634,
4181      3634, 3634, 3634, 3634, 3634, 3634, 3634, 3634, 3634, 3634,
4182
4183      3634, 3634, 3634, 3634, 1333, 4191, 1389, 4191, 4191, 4191,
4184      3636, 3634, 3637, 3634, 3634, 3634, 3634, 1387, 1387, 1387,
4185      1387, 1387, 1387, 1387, 1387, 4191, 3639, 3523, 3523, 3523,
4186      3523, 3642, 3642, 3642, 3642, 3649, 4191, 3634, 3634, 3634,
4187      3634, 4191, 1333, 4191, 1389, 4191, 1333, 4191, 1389, 4191,
4188      4191, 4191, 1333, 4191, 1389, 4191, 3643, 4191, 1389, 1387,
4189      1387, 1387, 1387, 4191, 4191, 4191, 3634, 3634, 3634, 3638,
4190      4191, 1387, 1387, 1387, 1387, 4191, 3644, 4191, 4191, 1387,
4191      1387, 1387, 1387, 4191, 1333, 4191, 1389, 3640, 3533, 3533,
4192      3533, 3533, 4191, 4191, 4191, 3641, 1333, 4191, 1389, 4191,
4193
4194      3646, 4191, 4191, 4191, 1333, 3645, 1389, 3631, 3631, 3631,
4195      3631, 4191, 4191, 1333, 4191, 1389, 3543, 3543, 3543, 3543,
4196      3545, 3545, 3545, 3545, 3541, 3541, 3541, 3541, 3542, 3542,
4197      3542, 3542, 1333, 4191, 1389, 3543, 3543, 3543, 3543, 3544,
4198      3544, 3544, 3544, 4191, 4191, 4191, 3647, 4191, 3651, 3545,
4199      3545, 3545, 3545, 3656, 3657, 3657, 3656, 4191, 4191, 1491,
4200      3657, 3657, 3657, 3657, 3658, 3658, 3658, 3658, 3659, 3659,
4201      3659, 3659, 3562, 3562, 3562, 3562, 4191, 1312, 1312, 1312,
4202      1312, 3583, 3583, 3583, 3583, 1504, 3687, 3688, 3688, 3687,
4203      4191, 4191, 4191, 1506, 1313, 3688, 3688, 3688, 3688, 4191,
4204
4205      4191, 4191, 1315, 3691, 3691, 3691, 3691, 3589, 3589, 3589,
4206      3589, 3693, 3693, 3693, 3693, 3694, 3694, 3694, 3694, 4191,
4207      1333, 3594, 3594, 3594, 3594, 3697, 3697, 3697, 3697, 3597,
4208      3597, 3597, 3597, 3598, 3598, 3598, 3598, 3698, 3698, 3698,
4209      3699, 3600, 3600, 3600, 3600, 3633, 3633, 3633, 3633, 4191,
4210      4191, 3686, 3700, 3700, 3700, 3700, 3606, 3606, 3606, 3606,
4211      3704, 3704, 3704, 3704, 4191, 4191, 3601, 3610, 3610, 3610,
4212      3610, 3698, 3698, 3698, 3698, 2015, 2015, 2015, 2015, 3711,
4213      3711, 3711, 3711, 4191, 4191, 3705, 2016, 4191, 4191, 4191,
4214      2016, 4191, 2017, 4191, 4191, 4191, 2017, 3614, 3614, 3614,
4215
4216      3614, 3712, 3712, 3712, 3712, 3706, 4191, 4191, 2016, 4191,
4217      4191, 4191, 2016, 3616, 3616, 3616, 3616, 4191, 2017, 3617,
4218      3617, 3617, 3617, 4191, 2016, 1387, 1387, 1387, 1387, 4191,
4219      2016, 4191, 3710, 4191, 3707, 1387, 1387, 1387, 1387, 1387,
4220      1387, 1387, 1387, 3714, 3714, 3714, 3714, 4191, 4191, 4191,
4221      1333, 4191, 1389, 3623, 3623, 3623, 3623, 4191, 4191, 4191,
4222      1333, 4191, 1389, 4191, 1333, 4191, 1389, 3624, 3624, 3624,
4223      3624, 4191, 1387, 1387, 1387, 1387, 4191, 4191, 1333, 4191,
4224      1389, 3631, 3631, 3631, 3631, 3631, 3631, 3631, 3631, 3633,
4225      3633, 3633, 3633, 4191, 4191, 3186, 3713, 1333, 4191, 1389,
4226
4227      1387, 1387, 1387, 1387, 4191, 4191, 1333, 4191, 1389, 4191,
4228      1333, 4191, 1389, 1387, 1387, 1387, 1387, 4191, 3726, 3726,
4229      3726, 3726, 4191, 4191, 2729, 1333, 4191, 1389, 4191, 4191,
4230      4191, 3718, 3728, 3728, 3728, 3728, 4191, 4191, 1333, 4191,
4231      1389, 4191, 4191, 3727, 3719, 1389, 4191, 4191, 3625, 3648,
4232      3648, 3648, 3648, 4191, 3724, 4191, 4191, 1957, 4191, 3720,
4233      3634, 3635, 3635, 3635, 3635, 3634, 3634, 3634, 3721, 3634,
4234      3634, 3634, 3634, 3634, 3634, 3634, 3634, 3634, 3634, 3634,
4235      3740, 3740, 3740, 3740, 4191, 4191, 3636, 3634, 3637, 3634,
4236      3634, 3634, 3634, 3722, 3722, 3722, 3722, 3722, 3722, 3722,
4237
4238      3722, 3722, 3722, 3722, 3722, 3722, 3722, 3722, 3722, 3722,
4239      3722, 3722, 3722, 3634, 3634, 3634, 3634, 3722, 3722, 3722,
4240      3722, 3722, 3722, 3722, 3722, 3722, 3722, 3722, 3722, 3722,
4241      3722, 3722, 3722, 3722, 3722, 3722, 3722, 3722, 3722, 3722,
4242      3722, 3722, 3634, 3634, 3634, 3723, 1387, 1387, 1387, 1387,
4243      3642, 3642, 3642, 3642, 1387, 1387, 1387, 1387, 1387, 1387,
4244      1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387,
4245      4191, 1333, 4191, 1389, 4191, 3643, 4191, 1389, 4191, 1333,
4246      4191, 1389, 4191, 1333, 4191, 1389, 4191, 1333, 4191, 1389,
4247      4191, 1333, 4191, 1389, 4191, 3706, 3733, 3733, 3733, 3733,
4248
4249      4191, 1387, 1387, 1387, 1387, 3731, 3739, 3740, 3740, 3739,
4250      3729, 4191, 1491, 3658, 3658, 3658, 3658, 3659, 3659, 3659,
4251      3659, 3725, 4191, 4191, 3707, 3730, 1333, 4191, 1389, 3757,
4252      3757, 3757, 3757, 4191, 1504, 3758, 3759, 3759, 3758, 4191,
4253      3732, 4191, 1506, 4191, 4191, 4191, 1313, 3759, 3759, 3759,
4254      3759, 4191, 4191, 4191, 1315, 3761, 3761, 3761, 3761, 4191,
4255      3735, 3691, 3691, 3691, 3691, 3762, 3762, 3762, 3762, 4191,
4256      4191, 4191, 1333, 3693, 3693, 3693, 3693, 3734, 3694, 3694,
4257      3694, 3694, 3697, 3697, 3697, 3697, 3698, 3698, 3698, 3698,
4258      3698, 3698, 3698, 3698, 3700, 3700, 3700, 3700, 3766, 3766,
4259
4260      3766, 3766, 3704, 3704, 3704, 3704, 3728, 3728, 3728, 3728,
4261      4191, 2015, 2015, 2015, 2015, 3711, 3711, 3711, 3711, 4191,
4262      4191, 4191, 2016, 3767, 4191, 4191, 2016, 3705, 2017, 3712,
4263      3712, 3712, 3712, 1387, 1387, 1387, 1387, 4191, 4191, 4191,
4264      2016, 3714, 3714, 3714, 3714, 4191, 4191, 3706, 4191, 3719,
4265      1387, 1387, 1387, 1387, 3778, 3778, 3778, 3778, 1333, 4191,
4266      1389, 4191, 4191, 4191, 3720, 3778, 3778, 3778, 3778, 1387,
4267      1387, 1387, 1387, 4191, 4191, 1333, 3707, 1389, 1387, 1387,
4268      1387, 1387, 3780, 4191, 4191, 4191, 3772, 4191, 3726, 3726,
4269      3726, 3726, 3773, 3780, 1333, 4191, 1389, 3783, 3783, 3783,
4270
4271      3783, 4191, 4191, 1333, 4191, 1389, 3728, 3728, 3728, 3728,
4272      4191, 2437, 3781, 3727, 4191, 1389, 1387, 1387, 1387, 1387,
4273      4191, 4191, 1957, 1387, 1387, 1387, 1387, 4191, 1387, 1387,
4274      1387, 1387, 3787, 3787, 3787, 3787, 3733, 3733, 3733, 3733,
4275      4191, 1333, 4191, 1389, 1387, 1387, 1387, 1387, 1333, 4191,
4276      1389, 4191, 3782, 1333, 4191, 1389, 4191, 3788, 4191, 1389,
4277      4191, 4191, 4191, 3784, 3789, 3789, 3789, 3789, 4191, 1333,
4278      4191, 1389, 3793, 3794, 3794, 3793, 3786, 4191, 1491, 3794,
4279      3794, 3794, 3794, 3757, 3757, 3757, 3757, 3808, 3809, 3809,
4280      3808, 4191, 4191, 3785, 3809, 3809, 3809, 3809, 3761, 3761,
4281
4282      3761, 3761, 4191, 4191, 4191, 2437, 4191, 4191, 1315, 3762,
4283      3762, 3762, 3762, 3766, 3766, 3766, 3766, 4191, 4191, 1333,
4284      3783, 3783, 3783, 3783, 3817, 3817, 3817, 3817, 4191, 2015,
4285      2015, 2015, 2015, 4191, 1387, 1387, 1387, 1387, 3767, 4191,
4286      2016, 3820, 3820, 3820, 3820, 3790, 2017, 4191, 4191, 3818,
4287      3778, 3778, 3778, 3778, 3778, 3778, 3778, 3778, 4191, 1333,
4288      4191, 1389, 1387, 1387, 1387, 1387, 3824, 3824, 3824, 3824,
4289      3783, 3783, 3783, 3783, 1387, 1387, 1387, 1387, 3780, 4191,
4290      4191, 4191, 3780, 3789, 3789, 3789, 3789, 1333, 4191, 1389,
4291      4191, 3825, 4191, 1389, 3819, 3536, 4191, 4191, 4191, 1333,
4292
4293      4191, 1389, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387,
4294      3823, 3787, 3787, 3787, 3787, 3826, 3828, 3828, 3828, 3828,
4295      3829, 3829, 3829, 3829, 4191, 4191, 4191, 1333, 4191, 1389,
4296      4191, 1333, 4191, 1389, 4191, 4191, 3788, 4191, 1389, 4191,
4297      4191, 1957, 3832, 3833, 3833, 3832, 4191, 4191, 1491, 3833,
4298      3833, 3833, 3833, 3732, 3843, 3844, 3844, 3843, 3844, 3844,
4299      3844, 3844, 3847, 3847, 3847, 3847, 3817, 3817, 3817, 3817,
4300      3828, 3828, 3828, 3828, 4191, 4191, 4191, 3827, 2015, 2015,
4301      2015, 2015, 4191, 1333, 4191, 4191, 4191, 3848, 4191, 2016,
4302      4191, 3818, 4191, 4191, 4191, 2017, 3820, 3820, 3820, 3820,
4303
4304      4191, 3830, 1387, 1387, 1387, 1387, 3824, 3824, 3824, 3824,
4305      3854, 3854, 3854, 3854, 1387, 1387, 1387, 1387, 1387, 1387,
4306      1387, 1387, 3828, 3828, 3828, 3828, 4191, 1333, 4191, 1389,
4307      4191, 3825, 4191, 1389, 4191, 1957, 4191, 4191, 4191, 1333,
4308      4191, 1389, 4191, 1333, 4191, 1389, 4191, 4191, 3851, 3782,
4309      3829, 3829, 3829, 3829, 4191, 4191, 4191, 3855, 3858, 3859,
4310      3859, 3858, 4191, 4191, 1491, 3859, 3859, 3859, 3859, 3867,
4311      3868, 3868, 3867, 3868, 3868, 3868, 3868, 3847, 3847, 3847,
4312      3847, 3854, 3854, 3854, 3854, 4191, 2015, 2015, 2015, 2015,
4313      4191, 4191, 3856, 3854, 3854, 3854, 3854, 2016, 1333, 4191,
4314
4315      4191, 4191, 3848, 2017, 1387, 1387, 1387, 1387, 3876, 3876,
4316      3876, 3876, 3879, 3880, 3880, 3879, 4191, 4191, 1491, 3880,
4317      3880, 3880, 3880, 3888, 3889, 3889, 3888, 4191, 4191, 1333,
4318      4191, 1389, 4191, 3877, 4191, 1389, 3889, 3889, 3889, 3889,
4319      3892, 3892, 3892, 3892, 4191, 3894, 3894, 3894, 3894, 4191,
4320      4191, 4191, 3875, 4191, 4191, 3872, 2016, 3895, 3895, 3895,
4321      3895, 1333, 2017, 4191, 4191, 3893, 1387, 1387, 1387, 1387,
4322      3876, 3876, 3876, 3876, 3898, 3898, 3898, 3898, 3900, 3901,
4323      3901, 3900, 4191, 4191, 1491, 3901, 3901, 3901, 3901, 4191,
4324      4191, 1333, 4191, 1389, 4191, 3877, 4191, 1389, 4191, 1957,
4325
4326      3909, 3910, 3910, 3909, 3910, 3910, 3910, 3910, 3911, 3911,
4327      3911, 3911, 4191, 3856, 3892, 3892, 3892, 3892, 3898, 3898,
4328      3898, 3898, 3894, 3894, 3894, 3894, 4191, 4191, 4191, 1333,
4329      4191, 4191, 4191, 2016, 3895, 3895, 3895, 3895, 3896, 3893,
4330      3912, 3912, 3912, 3912, 3898, 3898, 3898, 3898, 3914, 3914,
4331      3914, 3914, 3916, 3917, 3917, 3916, 4191, 4191, 1491, 3917,
4332      3917, 3917, 3917, 3925, 3926, 3926, 3925, 3926, 3926, 3926,
4333      3926, 3911, 3911, 3911, 3911, 4191, 3915, 3912, 3912, 3912,
4334      3912, 3914, 3914, 3914, 3914, 3927, 3927, 3927, 3927, 4191,
4335      3928, 4191, 1333, 4191, 4191, 3928, 3930, 3931, 3931, 3930,
4336
4337      4191, 4191, 1491, 3931, 3931, 3931, 3931, 4191, 4191, 3915,
4338      3936, 3937, 3937, 3936, 3937, 3937, 3937, 3937, 4191, 4191,
4339      4191, 3913, 3927, 3927, 3927, 3927, 4191, 3928, 3939, 3940,
4340      3940, 3939, 3928, 4191, 1491, 3940, 3940, 3940, 3940, 1333,
4341      3941, 3942, 3942, 3941, 3942, 3942, 3942, 3942, 3944, 3945,
4342      3945, 3944, 4191, 4191, 1491, 4191, 3929, 3945, 3945, 3945,
4343      3945, 3946, 3947, 3947, 3946, 3947, 3947, 3947, 3947, 1333,
4344      3948, 3948, 3948, 3948, 4191, 3949, 3951, 3952, 3952, 3951,
4345      3949, 4191, 1491, 3952, 3952, 3952, 3952, 4191, 4191, 4191,
4346      1333, 4191, 4191, 3929, 3953, 3954, 3954, 3953, 4191, 3950,
4347
4348      3954, 3954, 3954, 3954, 3948, 3948, 3948, 3948, 3948, 3948,
4349      3948, 3948, 3955, 3956, 3956, 3955, 4191, 4191, 1491, 3956,
4350      3956, 3956, 3956, 4191, 4191, 1333, 3957, 3958, 3958, 3957,
4351      4191, 4191, 4191, 3950, 4191, 4191, 4191, 3950, 3958, 3958,
4352      3958, 3958, 3959, 3960, 3960, 3959, 4191, 4191, 1491, 3960,
4353      3960, 3960, 3960, 3961, 3962, 3962, 3961, 3962, 3962, 3962,
4354      3962, 4191, 4191, 1333, 3963, 3964, 3964, 3963, 4191, 4191,
4355      1491, 3964, 3964, 3964, 3964, 3965, 3966, 3966, 3965, 4191,
4356      4191, 4191, 1333, 3966, 3966, 3966, 3966, 3967, 3968, 3968,
4357      3967, 4191, 4191, 1491, 3968, 3968, 3968, 3968, 3969, 3970,
4358
4359      3970, 3969, 3970, 3970, 3970, 3970, 4191, 4191, 1333, 3971,
4360      3972, 3972, 3971, 4191, 4191, 1491, 3972, 3972, 3972, 3972,
4361      3973, 3974, 3974, 3973, 4191, 4191, 4191, 1333, 3974, 3974,
4362      3974, 3974, 3975, 3976, 3976, 3975, 4191, 4191, 1491, 3976,
4363      3976, 3976, 3976, 3977, 3978, 3978, 3977, 3978, 3978, 3978,
4364      3978, 4191, 4191, 1333, 3979, 3980, 3980, 3979, 4191, 4191,
4365      1491, 3980, 3980, 3980, 3980, 3981, 3982, 3982, 3981, 4191,
4366      4191, 4191, 1333, 3982, 3982, 3982, 3982, 3983, 3984, 3984,
4367      3983, 4191, 4191, 1491, 3984, 3984, 3984, 3984, 3985, 3986,
4368      3986, 3985, 3986, 3986, 3986, 3986, 4191, 4191, 1333, 3987,
4369
4370      3988, 3988, 3987, 4191, 4191, 1491, 3988, 3988, 3988, 3988,
4371      3989, 3990, 3990, 3989, 4191, 4191, 4191, 1333, 3990, 3990,
4372      3990, 3990, 3991, 3992, 3992, 3991, 4191, 4191, 1491, 3992,
4373      3992, 3992, 3992, 3993, 3994, 3994, 3993, 3994, 3994, 3994,
4374      3994, 4191, 4191, 1333, 3995, 3996, 3996, 3995, 4191, 4191,
4375      1491, 3996, 3996, 3996, 3996, 3997, 3998, 3998, 3997, 4191,
4376      4191, 4191, 1333, 3998, 3998, 3998, 3998, 3999, 4000, 4000,
4377      3999, 4191, 4191, 1491, 4000, 4000, 4000, 4000, 4001, 4002,
4378      4002, 4001, 4002, 4002, 4002, 4002, 4191, 4191, 1333, 4003,
4379      4004, 4004, 4003, 4191, 4191, 1491, 4004, 4004, 4004, 4004,
4380
4381      4005, 4006, 4006, 4005, 4191, 4191, 4191, 1333, 4006, 4006,
4382      4006, 4006, 4007, 4008, 4008, 4007, 4191, 4191, 1491, 4008,
4383      4008, 4008, 4008, 4009, 4010, 4010, 4009, 4010, 4010, 4010,
4384      4010, 4191, 4191, 1333, 4011, 4012, 4012, 4011, 4191, 4191,
4385      1491, 4012, 4012, 4012, 4012, 4013, 4014, 4014, 4013, 4191,
4386      4191, 4191, 1333, 4014, 4014, 4014, 4014, 4015, 4016, 4016,
4387      4015, 4191, 4191, 1491, 4016, 4016, 4016, 4016, 4017, 4018,
4388      4018, 4017, 4018, 4018, 4018, 4018, 4191, 4191, 1333, 4019,
4389      4020, 4020, 4019, 4191, 4191, 1491, 4020, 4020, 4020, 4020,
4390      4021, 4022, 4022, 4021, 4191, 4191, 4191, 1333, 4022, 4022,
4391
4392      4022, 4022, 4023, 4024, 4024, 4023, 4191, 4191, 1491, 4024,
4393      4024, 4024, 4024, 4025, 4026, 4026, 4025, 4026, 4026, 4026,
4394      4026, 4191, 4191, 1333, 4027, 4028, 4028, 4027, 4191, 4191,
4395      1491, 4028, 4028, 4028, 4028, 4029, 4030, 4030, 4029, 4191,
4396      4191, 4191, 1333, 4030, 4030, 4030, 4030, 4031, 4032, 4032,
4397      4031, 4191, 4191, 1491, 4032, 4032, 4032, 4032, 4033, 4034,
4398      4034, 4033, 4034, 4034, 4034, 4034, 4191, 4191, 1333, 4035,
4399      4036, 4036, 4035, 4191, 4191, 1491, 4036, 4036, 4036, 4036,
4400      4037, 4038, 4038, 4037, 4191, 4191, 4191, 1333, 4038, 4038,
4401      4038, 4038, 4039, 4040, 4040, 4039, 4191, 4191, 1491, 4040,
4402
4403      4040, 4040, 4040, 4041, 4042, 4042, 4041, 4042, 4042, 4042,
4404      4042, 4191, 4191, 1333, 4043, 4044, 4044, 4043, 4191, 4191,
4405      1491, 4044, 4044, 4044, 4044, 4045, 4046, 4046, 4045, 4191,
4406      4191, 4191, 1333, 4046, 4046, 4046, 4046, 4047, 4048, 4048,
4407      4047, 4191, 4191, 1491, 4048, 4048, 4048, 4048, 4049, 4050,
4408      4050, 4049, 4050, 4050, 4050, 4050, 4191, 4191, 1333, 4051,
4409      4052, 4052, 4051, 4191, 4191, 1491, 4052, 4052, 4052, 4052,
4410      4053, 4054, 4054, 4053, 4191, 4191, 4191, 1333, 4054, 4054,
4411      4054, 4054, 4055, 4056, 4056, 4055, 4191, 4191, 1491, 4056,
4412      4056, 4056, 4056, 4057, 4058, 4058, 4057, 4058, 4058, 4058,
4413
4414      4058, 4191, 4191, 1333, 4059, 4060, 4060, 4059, 4191, 4191,
4415      1491, 4060, 4060, 4060, 4060, 4061, 4062, 4062, 4061, 4191,
4416      4191, 4191, 1333, 4062, 4062, 4062, 4062, 4063, 4064, 4064,
4417      4063, 4191, 4191, 1491, 4064, 4064, 4064, 4064, 4065, 4066,
4418      4066, 4065, 4066, 4066, 4066, 4066, 4191, 4191, 1333, 4067,
4419      4068, 4068, 4067, 4191, 4191, 1491, 4068, 4068, 4068, 4068,
4420      4069, 4070, 4070, 4069, 4191, 4191, 4191, 1333, 4070, 4070,
4421      4070, 4070, 4071, 4072, 4072, 4071, 4191, 4191, 1491, 4072,
4422      4072, 4072, 4072, 4073, 4074, 4074, 4073, 4074, 4074, 4074,
4423      4074, 4191, 4191, 1333, 4075, 4076, 4076, 4075, 4191, 4191,
4424
4425      1491, 4076, 4076, 4076, 4076, 4077, 4078, 4078, 4077, 4191,
4426      4191, 4191, 1333, 4078, 4078, 4078, 4078, 4079, 4080, 4080,
4427      4079, 4191, 4191, 1491, 4080, 4080, 4080, 4080, 4081, 4082,
4428      4082, 4081, 4082, 4082, 4082, 4082, 4191, 4191, 1333, 4083,
4429      4084, 4084, 4083, 4191, 4191, 1491, 4084, 4084, 4084, 4084,
4430      4085, 4086, 4086, 4085, 4191, 4191, 4191, 1333, 4086, 4086,
4431      4086, 4086, 4087, 4088, 4088, 4087, 4191, 4191, 1491, 4088,
4432      4088, 4088, 4088, 4089, 4090, 4090, 4089, 4090, 4090, 4090,
4433      4090, 4191, 4191, 1333, 4091, 4092, 4092, 4091, 4191, 4191,
4434      1491, 4092, 4092, 4092, 4092, 4093, 4094, 4094, 4093, 4191,
4435
4436      4191, 4191, 1333, 4094, 4094, 4094, 4094, 4095, 4096, 4096,
4437      4095, 4191, 4191, 1491, 4096, 4096, 4096, 4096, 4097, 4098,
4438      4098, 4097, 4098, 4098, 4098, 4098, 4191, 4191, 1333, 4099,
4439      4100, 4100, 4099, 4191, 4191, 1491, 4100, 4100, 4100, 4100,
4440      4101, 4102, 4102, 4101, 4191, 4191, 4191, 1333, 4102, 4102,
4441      4102, 4102, 4103, 4104, 4104, 4103, 4191, 4191, 1491, 4104,
4442      4104, 4104, 4104, 4105, 4106, 4106, 4105, 4106, 4106, 4106,
4443      4106, 4191, 4191, 1333, 4107, 4108, 4108, 4107, 4191, 4191,
4444      1491, 4108, 4108, 4108, 4108, 4109, 4110, 4110, 4109, 4191,
4445      4191, 4191, 1333, 4110, 4110, 4110, 4110, 4111, 4112, 4112,
4446
4447      4111, 4191, 4191, 1491, 4112, 4112, 4112, 4112, 4113, 4114,
4448      4114, 4113, 4114, 4114, 4114, 4114, 4191, 4191, 1333, 4115,
4449      4116, 4116, 4115, 4191, 4191, 1491, 4116, 4116, 4116, 4116,
4450      4117, 4118, 4118, 4117, 4191, 4191, 4191, 1333, 4118, 4118,
4451      4118, 4118, 4119, 4120, 4120, 4119, 4191, 4191, 1491, 4120,
4452      4120, 4120, 4120, 4121, 4122, 4122, 4121, 4122, 4122, 4122,
4453      4122, 4191, 4191, 1333, 4123, 4124, 4124, 4123, 4191, 4191,
4454      1491, 4124, 4124, 4124, 4124, 4125, 4126, 4126, 4125, 4191,
4455      4191, 4191, 1333, 4126, 4126, 4126, 4126, 4127, 4128, 4128,
4456      4127, 4191, 4191, 1491, 4128, 4128, 4128, 4128, 4129, 4130,
4457
4458      4130, 4129, 4130, 4130, 4130, 4130, 4191, 4191, 1333, 4131,
4459      4132, 4132, 4131, 4191, 4191, 1491, 4132, 4132, 4132, 4132,
4460      4133, 4134, 4134, 4133, 4191, 4191, 4191, 1333, 4134, 4134,
4461      4134, 4134, 4135, 4136, 4136, 4135, 4191, 4191, 1491, 4136,
4462      4136, 4136, 4136, 4137, 4138, 4138, 4137, 4138, 4138, 4138,
4463      4138, 4191, 4191, 1333, 4139, 4140, 4140, 4139, 4191, 4191,
4464      1491, 4140, 4140, 4140, 4140, 4141, 4142, 4142, 4141, 4191,
4465      4191, 4191, 1333, 4142, 4142, 4142, 4142, 4143, 4144, 4144,
4466      4143, 4191, 4191, 1491, 4144, 4144, 4144, 4144, 4145, 4146,
4467      4146, 4145, 4146, 4146, 4146, 4146, 4191, 4191, 1333, 4147,
4468
4469      4148, 4148, 4147, 4191, 4191, 1491, 4148, 4148, 4148, 4148,
4470      4149, 4150, 4150, 4149, 4191, 4191, 4191, 1333, 4150, 4150,
4471      4150, 4150, 4151, 4152, 4152, 4151, 4191, 4191, 1491, 4152,
4472      4152, 4152, 4152, 4153, 4154, 4154, 4153, 4154, 4154, 4154,
4473      4154, 4191, 4191, 1333, 4155, 4156, 4156, 4155, 4191, 4191,
4474      1491, 4156, 4156, 4156, 4156, 4157, 4158, 4158, 4157, 4191,
4475      4191, 4191, 1333, 4158, 4158, 4158, 4158, 4159, 4160, 4160,
4476      4159, 4191, 4191, 1491, 4160, 4160, 4160, 4160, 4161, 4162,
4477      4162, 4161, 4162, 4162, 4162, 4162, 4191, 4191, 1333, 4163,
4478      4164, 4164, 4163, 4191, 4191, 1491, 4164, 4164, 4164, 4164,
4479
4480      4165, 4166, 4166, 4165, 4191, 4191, 4191, 1333, 4166, 4166,
4481      4166, 4166, 4167, 4168, 4168, 4167, 4191, 4191, 1491, 4168,
4482      4168, 4168, 4168, 4169, 4170, 4170, 4169, 4170, 4170, 4170,
4483      4170, 4191, 4191, 1333, 4171, 4172, 4172, 4171, 4191, 4191,
4484      1491, 4172, 4172, 4172, 4172, 4173, 4174, 4174, 4173, 4191,
4485      4191, 4191, 1333, 4174, 4174, 4174, 4174, 4175, 4176, 4176,
4486      4175, 4191, 4191, 1491, 4176, 4176, 4176, 4176, 4177, 4178,
4487      4178, 4177, 4178, 4178, 4178, 4178, 4191, 4191, 1333, 4179,
4488      4180, 4180, 4179, 4191, 4191, 1491, 4180, 4180, 4180, 4180,
4489      4181, 4182, 4182, 4181, 4191, 4191, 4191, 1333, 4182, 4182,
4490
4491      4182, 4182, 4183, 4184, 4184, 4183, 4191, 4191, 1491, 4184,
4492      4184, 4184, 4184, 4185, 4186, 4186, 4185, 4186, 4186, 4186,
4493      4186, 4191, 4191, 1333, 4187, 4188, 4188, 4187, 4191, 4191,
4494      1491, 4188, 4188, 4188, 4188, 4189, 1359, 1359, 4189, 4191,
4495      4191, 4191, 1333, 1359, 1359, 1359, 1359, 4190, 4191, 4191,
4496      4190, 4191, 4191, 1491, 4189, 1359, 1359, 4189, 4190, 4191,
4497      4191, 4190, 4191, 4191, 1491, 4191, 4191, 4191, 1333,  276,
4498       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
4499       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
4500       276,  276,  276,  276,  276,  276,  276,  276,  276,  276,
4501
4502       276,  284,  284,  284,  284,  284,  284,  284,  284,  284,
4503       284,  284,  284,  284,  284,  284,  284,  284,  284,  284,
4504       284,  284,  284,  284,  284,  284,  284,  284,  284,  284,
4505       284,  284,  284,  337,  337,  337,  337,  337,  337,  337,
4506       337,  337,  337,  337,  337,  337,  337,  337,  337,  337,
4507       337,  337,  337,  337,  337,  337,  337,  337,  337,  337,
4508       337,  337,  337,  337,  337,  358,  358,  358,  358,  358,
4509       358,  358,  358,  358,  358,  358,  358,  358,  358,  358,
4510       358,  358,  358,  358,  358,  358,  358,  358,  358,  358,
4511       358,  358,  358,  358,  358,  358,  358,  384,  384,  384,
4512
4513       384,  384,  384,  384,  384,  384,  384,  384,  384,  384,
4514       384,  384,  384,  384,  384,  384,  384,  384,  384,  384,
4515       384,  384,  384,  384,  384,  384,  384,  384,  384,  400,
4516       400,  400,  400,  400,  400,  400,  400,  400,  400,  400,
4517       400,  400,  400,  400,  400,  400,  400,  400,  400,  400,
4518       400,  400,  400,  400,  400,  400,  400,  400,  400,  400,
4519       400,  407,  407,  407,  407,  407,  407,  407,  407,  407,
4520       407,  407,  407,  407,  407,  407,  407,  407,  407,  407,
4521       407,  407,  407,  407,  407,  407,  407,  407,  407,  407,
4522       407,  407,  407,  459,  459,  459,  459,  459,  459,  459,
4523
4524       459,  459,  459,  459,  459,  459,  459,  459,  459,  459,
4525       459,  459,  459,  459,  459,  459,  459,  459,  459,  459,
4526       459,  459,  459,  459,  459,  490,  490,  490,  490,  490,
4527       490,  490,  490,  490,  490,  490,  490,  490,  490,  490,
4528       490,  490,  490,  490,  490,  490,  490,  490,  490,  490,
4529       490,  490,  490,  490,  490,  490,  490,  500,  500,  500,
4530       500,  500,  500,  500,  500,  500,  500,  500,  500,  500,
4531       500,  500,  500,  500,  500,  500,  500,  500,  500,  500,
4532       500,  500,  500,  500,  500,  500,  500,  500,  500,  507,
4533       507,  507,  507,  507,  507,  507,  507,  507,  507,  507,
4534
4535       507,  507,  507,  507,  507,  507,  507,  507,  507,  507,
4536       507,  507,  507,  507,  507,  507,  507,  507,  507,  507,
4537       507,  532,  532,  532,  532,  532,  532,  532,  532,  532,
4538       532,  532,  532,  532,  532,  532,  532,  532,  532,  532,
4539       532,  532,  532,  532,  532,  532,  532,  532,  532,  532,
4540       532,  532,  532,  543,  543,  543,  543,  543,  543,  543,
4541       543,  543,  543,  543,  543,  543,  543,  543,  543,  543,
4542       543,  543,  543,  543,  543,  543,  543,  543,  543,  543,
4543       543,  543,  543,  543,  543,  552,  552,  552,  552,  552,
4544       552,  552,  552,  552,  552,  552,  552,  552,  552,  552,
4545
4546       552,  552,  552,  552,  552,  552,  552,  552,  552,  552,
4547       552,  552,  552,  552,  552,  552,  552,  559,  559,  559,
4548       559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
4549       559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
4550       559,  559,  559,  559,  559,  559,  559,  559,  559,  579,
4551       579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
4552       579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
4553       579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
4554       579,  592,  592,  592,  592,  592,  592,  592,  592,  592,
4555       592,  592,  592,  592,  592,  592,  592,  592,  592,  592,
4556
4557       592,  592,  592,  592,  592,  592,  592,  592,  592,  592,
4558       592,  592,  592,  611,  611,  611,  611,  611,  611,  611,
4559       611,  611,  611,  611,  611,  611,  611,  611,  611,  611,
4560       611,  611,  611,  611,  611,  611,  611,  611,  611,  611,
4561       611,  611,  611,  611,  611,  601,  601,  601,  601,  601,
4562       601,  601,  601,  601,  601,  601,  601,  601,  601,  601,
4563       601,  601,  601,  601,  601,  601,  601,  601,  601,  601,
4564       601,  601,  601,  601,  601,  601,  601,  626,  626,  626,
4565       626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
4566       626,  626,  626,  626,  626,  626,  626,  626,  626,  626,
4567
4568       626,  626,  626,  626,  626,  626,  626,  626,  626,  634,
4569       634,  634,  634,  634,  634,  634,  634,  634,  634,  634,
4570       634,  634,  634,  634,  634,  634,  634,  634,  634,  634,
4571       634,  634,  634,  634,  634,  634,  634,  634,  634,  634,
4572       634,  641,  641,  641,  641,  641,  641,  641,  641,  641,
4573       641,  641,  641,  641,  641,  641,  641,  641,  641,  641,
4574       641,  641,  641,  641,  641,  641,  641,  641,  641,  641,
4575       641,  641,  641,  652,  652,  652,  652,  652,  652,  652,
4576       652,  652,  652,  652,  652,  652,  652,  652,  652,  652,
4577       652,  652,  652,  652,  652,  652,  652,  652,  652,  652,
4578
4579       652,  652,  652,  652,  652,  666,  666,  666,  666,  666,
4580       666,  666,  666,  666,  666,  666,  666,  666,  666,  666,
4581       666,  666,  666,  666,  666,  666,  666,  666,  666,  666,
4582       666,  666,  666,  666,  666,  666,  666,  673,  673,  673,
4583       673,  673,  673,  673,  673,  673,  673,  673,  673,  673,
4584       673,  673,  673,  673,  673,  673,  673,  673,  673,  673,
4585       673,  673,  673,  673,  673,  673,  673,  673,  673,  679,
4586       679,  679,  679,  679,  679,  679,  679,  679,  679,  679,
4587       679,  679,  679,  679,  679,  679,  679,  679,  679,  679,
4588       679,  679,  679,  679,  679,  679,  679,  679,  679,  679,
4589
4590       679,  687,  687,  687,  687,  687,  687,  687,  687,  687,
4591       687,  687,  687,  687,  687,  687,  687,  687,  687,  687,
4592       687,  687,  687,  687,  687,  687,  687,  687,  687,  687,
4593       687,  687,  687,  700,  700,  700,  700,  700,  700,  700,
4594       700,  700,  700,  700,  700,  700,  700,  700,  700,  700,
4595       700,  700,  700,  700,  700,  700,  700,  700,  700,  700,
4596       700,  700,  700,  700,  700,  707,  707,  707,  707,  707,
4597       707,  707,  707,  707,  707,  707,  707,  707,  707,  707,
4598       707,  707,  707,  707,  707,  707,  707,  707,  707,  707,
4599       707,  707,  707,  707,  707,  707,  707,  715,  715,  715,
4600
4601       715,  715,  715,  715,  715,  715,  715,  715,  715,  715,
4602       715,  715,  715,  715,  715,  715,  715,  715,  715,  715,
4603       715,  715,  715,  715,  715,  715,  715,  715,  715,  738,
4604       738,  738,  738,  738,  738,  738,  738,  738,  738,  738,
4605       738,  738,  738,  738,  738,  738,  738,  738,  738,  738,
4606       738,  738,  738,  738,  738,  738,  738,  738,  738,  738,
4607       738,  751,  751,  751,  751,  751,  751,  751,  751,  751,
4608       751,  751,  751,  751,  751,  751,  751,  751,  751,  751,
4609       751,  751,  751,  751,  751,  751,  751,  751,  751,  751,
4610       751,  751,  751,  759,  759,  759,  759,  759,  759,  759,
4611
4612       759,  759,  759,  759,  759,  759,  759,  759,  759,  759,
4613       759,  759,  759,  759,  759,  759,  759,  759,  759,  759,
4614       759,  759,  759,  759,  759,  776,  776,  776,  776,  776,
4615       776,  776,  776,  776,  776,  776,  776,  776,  776,  776,
4616       776,  776,  776,  776,  776,  776,  776,  776,  776,  776,
4617       776,  776,  776,  776,  776,  776,  776,  788,  788,  788,
4618       788,  788,  788,  788,  788,  788,  788,  788,  788,  788,
4619       788,  788,  788,  788,  788,  788,  788,  788,  788,  788,
4620       788,  788,  788,  788,  788,  788,  788,  788,  788,  800,
4621       800,  800,  800,  800,  800,  800,  800,  800,  800,  800,
4622
4623       800,  800,  800,  800,  800,  800,  800,  800,  800,  800,
4624       800,  800,  800,  800,  800,  800,  800,  800,  800,  800,
4625       800,  835,  835,  835,  835,  835,  835,  835,  835,  835,
4626       835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
4627       835,  835,  835,  835,  835,  835,  835,  835,  835,  835,
4628       835,  835,  835,  874,  874,  874,  874,  874,  874,  874,
4629       874,  874,  874,  874,  874,  874,  874,  874,  874,  874,
4630       874,  874,  874,  874,  874,  874,  874,  874,  874,  874,
4631       874,  874,  874,  874,  874,  894,  894,  894,  894,  894,
4632       894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
4633
4634       894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
4635       894,  894,  894,  894,  894,  894,  894,  904,  904,  904,
4636       904,  904,  904,  904,  904,  904,  904,  904,  904,  904,
4637       904,  904,  904,  904,  904,  904,  904,  904,  904,  904,
4638       904,  904,  904,  904,  904,  904,  904,  904,  904,  916,
4639       916,  916,  916,  916,  916,  916,  916,  916,  916,  916,
4640       916,  916,  916,  916,  916,  916,  916,  916,  916,  916,
4641       916,  916,  916,  916,  916,  916,  916,  916,  916,  916,
4642       916,  922,  922,  922,  922,  922,  922,  922,  922,  922,
4643       922,  922,  922,  922,  922,  922,  922,  922,  922,  922,
4644
4645       922,  922,  922,  922,  922,  922,  922,  922,  922,  922,
4646       922,  922,  922,  934,  934,  934,  934,  934,  934,  934,
4647       934,  934,  934,  934,  934,  934,  934,  934,  934,  934,
4648       934,  934,  934,  934,  934,  934,  934,  934,  934,  934,
4649       934,  934,  934,  934,  934,  944,  944,  944,  944,  944,
4650       944,  944,  944,  944,  944,  944,  944,  944,  944,  944,
4651       944,  944,  944,  944,  944,  944,  944,  944,  944,  944,
4652       944,  944,  944,  944,  944,  944,  944,  954,  954,  954,
4653       954,  954,  954,  954,  954,  954,  954,  954,  954,  954,
4654       954,  954,  954,  954,  954,  954,  954,  954,  954,  954,
4655
4656       954,  954,  954,  954,  954,  954,  954,  954,  954,  962,
4657       962,  962,  962,  962,  962,  962,  962,  962,  962,  962,
4658       962,  962,  962,  962,  962,  962,  962,  962,  962,  962,
4659       962,  962,  962,  962,  962,  962,  962,  962,  962,  962,
4660       962,  970,  970,  970,  970,  970,  970,  970,  970,  970,
4661       970,  970,  970,  970,  970,  970,  970,  970,  970,  970,
4662       970,  970,  970,  970,  970,  970,  970,  970,  970,  970,
4663       970,  970,  970,  978,  978,  978,  978,  978,  978,  978,
4664       978,  978,  978,  978,  978,  978,  978,  978,  978,  978,
4665       978,  978,  978,  978,  978,  978,  978,  978,  978,  978,
4666
4667       978,  978,  978,  978,  978,  987,  987,  987,  987,  987,
4668       987,  987,  987,  987,  987,  987,  987,  987,  987,  987,
4669       987,  987,  987,  987,  987,  987,  987,  987,  987,  987,
4670       987,  987,  987,  987,  987,  987,  987,  996,  996,  996,
4671       996,  996,  996,  996,  996,  996,  996,  996,  996,  996,
4672       996,  996,  996,  996,  996,  996,  996,  996,  996,  996,
4673       996,  996,  996,  996,  996,  996,  996,  996,  996,  490,
4674       490,  490,  490,  490,  490,  490,  490,  490,  490,  490,
4675       490,  490,  490,  490,  490,  490,  490,  490,  490,  490,
4676       490,  490,  490,  490,  490,  490,  490,  490,  490,  490,
4677
4678       490, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019,
4679      1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019,
4680      1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019,
4681      1019, 1019, 1019, 1025, 1025, 1025, 1025, 1025, 1025, 1025,
4682      1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025,
4683      1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025,
4684      1025, 1025, 1025, 1025, 1025,  552,  552,  552,  552,  552,
4685       552,  552,  552,  552,  552,  552,  552,  552,  552,  552,
4686       552,  552,  552,  552,  552,  552,  552,  552,  552,  552,
4687       552,  552,  552,  552,  552,  552,  552, 1036, 1036, 1036,
4688
4689      1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036,
4690      1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036,
4691      1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1045,
4692      1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
4693      1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
4694      1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
4695      1045, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055,
4696      1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055,
4697      1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055,
4698      1055, 1055, 1055, 1065, 1065, 1065, 1065, 1065, 1065, 1065,
4699
4700      1065, 1065, 1065, 1065, 1065, 1065, 1065, 1065, 1065, 1065,
4701      1065, 1065, 1065, 1065, 1065, 1065, 1065, 1065, 1065, 1065,
4702      1065, 1065, 1065, 1065, 1065, 1072, 1072, 1072, 1072, 1072,
4703      1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072,
4704      1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072,
4705      1072, 1072, 1072, 1072, 1072, 1072, 1072, 1081, 1081, 1081,
4706      1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081,
4707      1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081,
4708      1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1091,
4709      1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091,
4710
4711      1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091,
4712      1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091,
4713      1091, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099,
4714      1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099,
4715      1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1099,
4716      1099, 1099, 1099, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
4717      1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
4718      1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
4719      1106, 1106, 1106, 1106, 1106, 1113, 1113, 1113, 1113, 1113,
4720      1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
4721
4722      1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
4723      1113, 1113, 1113, 1113, 1113, 1113, 1113, 1135, 1135, 1135,
4724      1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135,
4725      1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135,
4726      1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1155,
4727      1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155,
4728      1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155,
4729      1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155,
4730      1155, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166,
4731      1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166,
4732
4733      1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166,
4734      1166, 1166, 1166, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
4735      1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
4736      1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
4737      1172, 1172, 1172, 1172, 1172, 1177, 1177, 1177, 1177, 1177,
4738      1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177,
4739      1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177,
4740      1177, 1177, 1177, 1177, 1177, 1177, 1177, 1183, 1183, 1183,
4741      1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183,
4742      1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183,
4743
4744      1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1197,
4745      1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197,
4746      1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197,
4747      1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197,
4748      1197, 1214, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
4749      1214, 4191, 4191, 4191, 4191, 4191, 1214, 4191, 4191, 4191,
4750      4191, 4191, 4191, 1214, 4191, 4191, 4191, 4191, 4191, 4191,
4751      4191, 1214, 1228, 1228, 1228, 4191, 4191, 4191, 1228, 4191,
4752      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
4753      4191, 4191, 4191, 4191, 1228, 4191, 4191, 4191, 4191, 4191,
4754
4755      4191, 4191, 1228, 1232, 1232, 1232, 1232, 4191, 4191, 1232,
4756      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 1232,
4757      4191, 4191, 4191, 4191, 4191, 1232, 4191, 4191, 4191, 4191,
4758      4191, 4191, 1232, 1232, 1235, 1235, 1235, 4191, 4191, 4191,
4759      1235, 4191, 4191, 4191, 4191, 4191, 4191, 1235, 4191, 4191,
4760      4191, 4191, 4191, 4191, 4191, 4191, 1235, 4191, 4191, 4191,
4761      4191, 4191, 4191, 1235, 1235, 1241, 1241, 1241, 4191, 4191,
4762      4191, 4191, 4191, 4191, 1241, 4191, 4191, 1241, 1241, 4191,
4763      1241, 1241, 1241, 1241, 4191, 4191, 4191, 1241, 4191, 4191,
4764      4191, 4191, 4191, 4191, 4191, 1241, 1247, 1247, 1247, 4191,
4765
4766      4191, 4191, 1247, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
4767      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 1247, 4191,
4768      4191, 4191, 4191, 4191, 4191, 4191, 1247, 1251, 1251, 1251,
4769      1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251,
4770      4191, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251,
4771      1251, 1251, 1251, 1251, 1251, 4191, 1251, 1251, 1251, 1257,
4772      1257, 1257, 4191, 4191, 4191, 1257, 4191, 4191, 4191, 4191,
4773      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
4774      4191, 1257, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 1257,
4775      1260, 1260, 1260, 1260, 4191, 4191, 1260, 4191, 4191, 4191,
4776
4777      4191, 4191, 4191, 4191, 4191, 4191, 1260, 4191, 4191, 4191,
4778      4191, 4191, 1260, 4191, 4191, 4191, 4191, 4191, 4191, 1260,
4779      1260, 1268, 1268, 1268, 4191, 4191, 4191, 4191, 4191, 4191,
4780      1268, 4191, 4191, 4191, 4191, 4191, 1268, 1268, 4191, 4191,
4781      4191, 4191, 4191, 1268, 4191, 4191, 4191, 4191, 4191, 4191,
4782      4191, 1268, 1278, 4191, 4191, 4191, 1278, 4191, 1278, 4191,
4783      4191, 1278, 4191, 4191, 4191, 1278, 4191, 4191, 4191, 4191,
4784      4191, 4191, 4191, 1278, 1281, 1281, 4191, 1281, 1281, 1281,
4785      1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281,
4786      1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281,
4787
4788      1281, 1281, 1281, 1281, 1281, 1281, 1300, 1300, 1300, 4191,
4789      4191, 4191, 1300, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
4790      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 1300, 4191,
4791      4191, 4191, 4191, 1300, 4191, 4191, 1300, 1314, 1314, 1314,
4792      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
4793      1314, 4191, 1314, 1314, 4191, 4191, 4191, 4191, 4191, 1314,
4794      4191, 1314, 4191, 4191, 4191, 4191, 4191, 1314, 1324, 1324,
4795      4191, 1324, 1324, 1324, 1324, 1324, 1324, 4191, 1324, 1324,
4796      1324, 1324, 1324, 1324, 1324, 1324, 1324, 1324, 1324, 1324,
4797      1324, 1324, 1324, 1324, 1324, 1324, 1324, 1324, 1324, 1324,
4798
4799      1355, 1355, 1355, 4191, 4191, 4191, 1355, 4191, 4191, 4191,
4800      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
4801      4191, 4191, 1355, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
4802      1355, 1362, 1362, 1362, 1362, 4191, 4191, 1362, 4191, 4191,
4803      4191, 4191, 4191, 4191, 4191, 4191, 4191, 1362, 4191, 4191,
4804      4191, 4191, 4191, 1362, 4191, 4191, 4191, 4191, 4191, 4191,
4805      1362, 1362, 1370, 1370, 1370, 4191, 4191, 4191, 1370, 1370,
4806      4191, 4191, 4191, 1370, 4191, 4191, 4191, 4191, 1370, 4191,
4807      4191, 4191, 4191, 4191, 1370, 4191, 4191, 4191, 1370, 4191,
4808      4191, 4191, 1370, 1388, 1388, 1388, 4191, 4191, 4191, 4191,
4809
4810      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 1388, 1388,
4811      4191, 1388, 4191, 4191, 4191, 1388, 4191, 4191, 4191, 4191,
4812      4191, 4191, 4191, 1388, 1391, 1391, 1391, 1391, 1391, 1391,
4813      1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391,
4814      1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391,
4815      1391, 1391, 1391, 1391, 1391, 1391, 1424, 1424, 4191, 1424,
4816      1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424,
4817      1424, 1424, 1424, 1424, 1424, 4191, 1424, 1424, 1424, 1424,
4818      1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1433, 1433,
4819      1433, 4191, 4191, 4191, 1433, 4191, 4191, 4191, 4191, 4191,
4820
4821      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
4822      1433, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 1433, 1436,
4823      1436, 1436, 1436, 4191, 4191, 1436, 4191, 4191, 4191, 4191,
4824      4191, 4191, 4191, 4191, 4191, 1436, 4191, 4191, 4191, 4191,
4825      4191, 1436, 4191, 4191, 4191, 4191, 4191, 4191, 1436, 1436,
4826      1439, 1439, 1439, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
4827      4191, 4191, 4191, 4191, 4191, 1439, 1439, 4191, 1439, 4191,
4828      4191, 4191, 1439, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
4829      1439, 1488, 1488, 4191, 4191, 1488, 4191, 4191, 1488, 1488,
4830      4191, 1488, 1488, 1488, 1488, 1488, 4191, 1488, 1488, 1488,
4831
4832      4191, 1488, 1488, 4191, 1488, 1488, 1488, 1488, 1488, 4191,
4833      4191, 1488, 1488, 1492, 1492, 4191, 1492, 1492, 1492, 1492,
4834      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
4835      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
4836      1492, 1492, 1492, 1492, 1492, 1494, 1494, 4191, 1494, 1494,
4837      1494, 1494, 1494, 1494, 4191, 1494, 1494, 1494, 1494, 1494,
4838      1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1494,
4839      1494, 1494, 1494, 1494, 1494, 1494, 1494, 1505, 1505, 1505,
4840      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
4841      1505, 4191, 1505, 1505, 4191, 4191, 4191, 4191, 4191, 1505,
4842
4843      4191, 4191, 4191, 4191, 4191, 4191, 4191, 1505, 1512, 1512,
4844      1512, 4191, 4191, 4191, 1512, 4191, 4191, 4191, 4191, 4191,
4845      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
4846      1512, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 1512, 1515,
4847      1515, 1515, 1515, 4191, 4191, 1515, 4191, 4191, 4191, 4191,
4848      4191, 4191, 4191, 4191, 4191, 1515, 4191, 4191, 4191, 4191,
4849      4191, 1515, 4191, 4191, 4191, 4191, 4191, 4191, 1515, 1515,
4850      1517, 1517, 1517, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
4851      4191, 4191, 4191, 4191, 4191, 1517, 1517, 4191, 4191, 4191,
4852      4191, 4191, 1517, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
4853
4854      1517, 1518, 1518, 4191, 1518, 1518, 4191, 4191, 1518, 1518,
4855      4191, 1518, 1518, 1518, 1518, 1518, 4191, 1518, 1518, 1518,
4856      4191, 1518, 1518, 4191, 1518, 1518, 4191, 1518, 1518, 4191,
4857      4191, 1518, 1518, 1521, 1521, 4191, 1521, 1521, 1521, 1521,
4858      1521, 1521, 4191, 1521, 1521, 1521, 1521, 1521, 1521, 1521,
4859      1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521,
4860      1521, 1521, 1521, 1521, 1521, 1540, 1540, 4191, 1540, 1540,
4861      1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540,
4862      1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540,
4863      1540, 1540, 1540, 1540, 1540, 1540, 1540, 1547, 1547, 4191,
4864
4865      1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 4191,
4866      1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
4867      1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1553,
4868      1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553,
4869      1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553,
4870      1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553,
4871      1553, 1560, 1560, 4191, 1560, 1560, 4191, 1560, 1560, 1560,
4872      1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560,
4873      1560, 1560, 1560, 1560, 1560, 4191, 1560, 4191, 1560, 1560,
4874      1560, 1560, 1560, 1563, 1563, 4191, 1563, 1563, 1563, 1563,
4875
4876      1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563,
4877      1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563,
4878      1563, 1563, 1563, 1563, 1563, 1575, 4191, 4191, 4191, 1575,
4879      1575, 1575, 1575, 1575, 1575, 1575, 1575, 4191, 1575, 4191,
4880      4191, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575,
4881      1575, 1575, 1575, 1575, 1575, 1575, 1575, 1585, 4191, 1585,
4882      4191, 4191, 4191, 4191, 4191, 4191, 1585, 4191, 1585, 4191,
4883      4191, 4191, 4191, 4191, 1585, 1589, 1589, 1589, 4191, 4191,
4884      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 1589, 4191,
4885      1589, 4191, 4191, 4191, 4191, 4191, 4191, 1589, 4191, 4191,
4886
4887      4191, 4191, 4191, 4191, 4191, 1589, 1592, 1592, 1592, 4191,
4888      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
4889      4191, 1592, 4191, 4191, 4191, 4191, 4191, 4191, 1592, 4191,
4890      1592, 4191, 4191, 4191, 4191, 4191, 1592, 1603, 1603, 4191,
4891      1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603,
4892      1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603,
4893      1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1607,
4894      4191, 4191, 4191, 1607, 4191, 4191, 4191, 4191, 4191, 4191,
4895      1607, 4191, 4191, 4191, 4191, 4191, 4191, 1607, 4191, 4191,
4896      4191, 4191, 4191, 4191, 4191, 1607, 1612, 1612, 4191, 1612,
4897
4898      1612, 4191, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612,
4899      1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612,
4900      1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1620, 1620,
4901      1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 4191,
4902      1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620,
4903      1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620,
4904      1627, 1627, 1627, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
4905      4191, 4191, 4191, 4191, 4191, 1627, 1627, 4191, 4191, 4191,
4906      4191, 4191, 1627, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
4907      1627, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
4908
4909      1629, 1629, 4191, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
4910      1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
4911      1629, 1629, 1629, 1644, 1644, 4191, 1644, 4191, 4191, 4191,
4912      1644, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 1644, 1659,
4913      1659, 4191, 1659, 1659, 1659, 1659, 1659, 1659, 4191, 1659,
4914      1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659,
4915      1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659, 1659,
4916      1659, 1673, 1673, 1673, 4191, 4191, 4191, 1673, 4191, 4191,
4917      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
4918      4191, 4191, 4191, 1673, 4191, 4191, 4191, 4191, 4191, 4191,
4919
4920      4191, 1673, 1676, 1676, 1676, 4191, 4191, 4191, 4191, 4191,
4921      4191, 4191, 4191, 1676, 4191, 4191, 4191, 1676, 4191, 4191,
4922      4191, 4191, 4191, 4191, 1676, 4191, 4191, 4191, 4191, 4191,
4923      4191, 4191, 1676, 1682, 1682, 1682, 4191, 4191, 4191, 1682,
4924      1682, 4191, 4191, 4191, 1682, 4191, 4191, 4191, 4191, 4191,
4925      4191, 4191, 4191, 4191, 4191, 1682, 4191, 4191, 4191, 4191,
4926      4191, 4191, 4191, 1682, 1684, 1684, 1684, 4191, 4191, 4191,
4927      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 1684,
4928      4191, 4191, 4191, 4191, 4191, 4191, 1684, 1684, 4191, 4191,
4929      4191, 4191, 4191, 4191, 1684, 1694, 1694, 1694, 4191, 4191,
4930
4931      4191, 1694, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
4932      4191, 4191, 4191, 4191, 4191, 4191, 4191, 1694, 4191, 4191,
4933      4191, 4191, 4191, 4191, 4191, 1694, 1697, 1697, 1697, 1697,
4934      4191, 4191, 1697, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
4935      4191, 4191, 1697, 4191, 4191, 4191, 4191, 4191, 1697, 4191,
4936      4191, 4191, 4191, 4191, 4191, 1697, 1697, 1699, 1699, 1699,
4937      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
4938      4191, 4191, 1699, 1699, 4191, 4191, 4191, 4191, 4191, 1699,
4939      4191, 4191, 4191, 4191, 4191, 4191, 4191, 1699, 1706, 1706,
4940      4191, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706,
4941
4942      1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706,
4943      1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706,
4944      1708, 4191, 4191, 4191, 1708, 4191, 4191, 1708, 1708, 4191,
4945      4191, 4191, 1708, 1708, 1708, 4191, 1708, 1708, 1708, 1708,
4946      1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708,
4947      1708, 1708, 1710, 1710, 4191, 1710, 1710, 1710, 1710, 1710,
4948      1710, 4191, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710,
4949      1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710, 1710,
4950      1710, 1710, 1710, 1710, 1730, 1730, 4191, 1730, 1730, 1730,
4951      1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730,
4952
4953      1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730, 1730,
4954      1730, 1730, 1730, 1730, 1730, 1730, 1734, 1734, 4191, 1734,
4955      1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734,
4956      1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734,
4957      1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1735, 1735,
4958      4191, 1735, 1735, 4191, 1735, 1735, 1735, 4191, 4191, 4191,
4959      1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735,
4960      1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735,
4961      1736, 1736, 4191, 1736, 1736, 1736, 1736, 1736, 1736, 4191,
4962      1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736,
4963
4964      1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736, 1736,
4965      1736, 1736, 1740, 1740, 4191, 1740, 1740, 4191, 1740, 1740,
4966      1740, 4191, 1740, 1740, 1740, 1740, 1740, 4191, 1740, 1740,
4967      1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740,
4968      4191, 4191, 1740, 1740, 1741, 1741, 4191, 1741, 1741, 1741,
4969      1741, 1741, 1741, 4191, 1741, 1741, 1741, 1741, 1741, 1741,
4970      1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741, 1741,
4971      1741, 1741, 1741, 1741, 1741, 1741, 1743, 1743, 4191, 1743,
4972      1743, 4191, 1743, 1743, 1743, 4191, 4191, 4191, 1743, 1743,
4973      1743, 4191, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743,
4974
4975      1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1744, 1744,
4976      4191, 1744, 1744, 1744, 1744, 1744, 1744, 4191, 1744, 1744,
4977      1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744,
4978      1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744,
4979      1746, 1746, 4191, 1746, 1746, 4191, 1746, 1746, 1746, 4191,
4980      1746, 1746, 1746, 1746, 1746, 4191, 1746, 1746, 1746, 1746,
4981      1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 4191, 4191,
4982      1746, 1746, 1747, 1747, 4191, 1747, 1747, 1747, 1747, 1747,
4983      1747, 4191, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747,
4984      1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747, 1747,
4985
4986      1747, 1747, 1747, 1747, 1757, 1757, 4191, 1757, 1757, 1757,
4987      1757, 1757, 1757, 4191, 1757, 1757, 1757, 1757, 1757, 1757,
4988      1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757,
4989      1757, 1757, 1757, 1757, 1757, 1757, 1767, 1767, 4191, 1767,
4990      1767, 4191, 1767, 1767, 1767, 4191, 1767, 1767, 1767, 1767,
4991      1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767,
4992      1767, 4191, 1767, 1767, 1767, 1767, 1767, 1767, 1770, 1770,
4993      4191, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770,
4994      1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770,
4995      1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770, 1770,
4996
4997      1771, 1771, 4191, 1771, 1771, 4191, 1771, 1771, 1771, 4191,
4998      4191, 4191, 1771, 1771, 1771, 4191, 1771, 1771, 1771, 1771,
4999      1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771,
5000      1771, 1771, 1774, 1774, 4191, 1774, 1774, 1774, 1774, 1774,
5001      1774, 1774, 1774, 1774, 4191, 1774, 1774, 1774, 1774, 1774,
5002      1774, 1774, 1774, 1774, 4191, 1774, 1774, 4191, 1774, 1774,
5003      1774, 1774, 1774, 1774, 1782, 1782, 4191, 1782, 1782, 1782,
5004      1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
5005      1782, 1782, 1782, 1782, 1782, 1782, 4191, 1782, 1782, 4191,
5006      1782, 1782, 1782, 1782, 1782, 1782, 1807, 1807, 1807, 1807,
5007
5008      1807, 1807, 1807, 1807, 1807, 1807, 1807, 4191, 1807, 1807,
5009      1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807,
5010      1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1808, 4191,
5011      1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 4191, 4191,
5012      1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808,
5013      1808, 1808, 1808, 4191, 1808, 1808, 1808, 1808, 1808, 1808,
5014      1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812,
5015      1812, 4191, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812,
5016      1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812,
5017      1812, 1812, 1813, 4191, 1813, 1813, 1813, 1813, 1813, 1813,
5018
5019      1813, 1813, 4191, 4191, 1813, 1813, 1813, 1813, 1813, 1813,
5020      1813, 1813, 1813, 1813, 1813, 1813, 1813, 4191, 1813, 1813,
5021      1813, 1813, 1813, 1813, 1820, 1820, 1820, 4191, 4191, 4191,
5022      1820, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5023      4191, 4191, 4191, 4191, 4191, 4191, 1820, 1820, 4191, 4191,
5024      4191, 4191, 4191, 4191, 1820, 1826, 1826, 1826, 4191, 4191,
5025      4191, 4191, 4191, 4191, 4191, 1826, 4191, 1826, 4191, 4191,
5026      1826, 4191, 4191, 4191, 4191, 4191, 4191, 1826, 4191, 4191,
5027      4191, 4191, 4191, 4191, 4191, 1826, 1827, 1827, 1827, 1827,
5028      1827, 1827, 1827, 1827, 1827, 1827, 1827, 1827, 1827, 1827,
5029
5030      1827, 1827, 1827, 1827, 1827, 1827, 1827, 1827, 1827, 1827,
5031      1827, 1827, 1827, 1827, 1827, 1827, 1827, 1827, 1831, 1831,
5032      1831, 4191, 4191, 4191, 1831, 4191, 4191, 4191, 4191, 4191,
5033      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5034      1831, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 1831, 1835,
5035      1835, 1835, 4191, 4191, 4191, 4191, 4191, 4191, 1835, 4191,
5036      4191, 4191, 4191, 4191, 1835, 4191, 4191, 4191, 4191, 4191,
5037      4191, 1835, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 1835,
5038      1839, 4191, 4191, 4191, 4191, 4191, 1839, 1839, 4191, 4191,
5039      4191, 1839, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5040
5041      4191, 4191, 1839, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5042      1839, 1845, 1845, 1845, 4191, 4191, 4191, 1845, 4191, 4191,
5043      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5044      4191, 4191, 4191, 1845, 4191, 4191, 4191, 4191, 4191, 4191,
5045      4191, 1845, 1848, 1848, 1848, 1848, 4191, 4191, 1848, 4191,
5046      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 1848, 4191,
5047      4191, 4191, 4191, 4191, 1848, 4191, 4191, 4191, 4191, 4191,
5048      4191, 1848, 1848, 1850, 1850, 1850, 4191, 4191, 4191, 4191,
5049      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 1850, 1850,
5050      4191, 4191, 4191, 4191, 4191, 1850, 4191, 4191, 4191, 4191,
5051
5052      4191, 4191, 4191, 1850, 1860, 1860, 1860, 1860, 1860, 1860,
5053      1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860,
5054      1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860,
5055      1860, 1860, 1860, 1860, 1860, 1860, 1866, 1866, 4191, 1866,
5056      1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 4191, 1866,
5057      1866, 4191, 1866, 1866, 1866, 1866, 1866, 1866, 4191, 1866,
5058      1866, 4191, 1866, 1866, 1866, 1866, 1866, 1866, 1887, 1887,
5059      1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887,
5060      1887, 1887, 1887, 1887, 4191, 1887, 1887, 1887, 1887, 1887,
5061      1887, 4191, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887,
5062
5063      1890, 1890, 4191, 1890, 1890, 1890, 1890, 4191, 1890, 1890,
5064      1890, 1890, 4191, 1890, 1890, 4191, 1890, 1890, 1890, 4191,
5065      1890, 1890, 4191, 1890, 1890, 4191, 4191, 1890, 1890, 1890,
5066      1890, 1890, 1214, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5067      4191, 1214, 4191, 4191, 4191, 4191, 4191, 1214, 4191, 4191,
5068      4191, 4191, 4191, 4191, 1214, 4191, 4191, 4191, 4191, 4191,
5069      4191, 4191, 1214, 1235, 1235, 1235, 4191, 4191, 4191, 1235,
5070      4191, 4191, 4191, 4191, 4191, 4191, 1235, 4191, 4191, 4191,
5071      4191, 4191, 4191, 4191, 4191, 1235, 4191, 4191, 4191, 4191,
5072      4191, 4191, 1235, 1235, 1228, 1228, 1228, 4191, 4191, 4191,
5073
5074      1228, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5075      4191, 4191, 4191, 4191, 4191, 4191, 1228, 4191, 4191, 4191,
5076      4191, 4191, 4191, 4191, 1228, 1904, 1904, 1904, 4191, 4191,
5077      4191, 4191, 4191, 4191, 1904, 4191, 4191, 1904, 4191, 4191,
5078      1904, 4191, 1904, 1904, 4191, 4191, 4191, 1904, 4191, 4191,
5079      4191, 4191, 4191, 4191, 4191, 1904, 1241, 1241, 1241, 4191,
5080      4191, 4191, 4191, 4191, 4191, 1241, 4191, 4191, 1241, 1241,
5081      4191, 1241, 1241, 1241, 1241, 4191, 4191, 4191, 1241, 4191,
5082      4191, 4191, 4191, 4191, 4191, 4191, 1241, 1907, 1907, 1907,
5083      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5084
5085      1907, 4191, 1907, 4191, 4191, 4191, 4191, 4191, 4191, 1907,
5086      4191, 4191, 4191, 4191, 4191, 4191, 4191, 1907, 1910, 1910,
5087      1910, 4191, 4191, 4191, 1910, 4191, 4191, 4191, 4191, 4191,
5088      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5089      1910, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 1910, 1247,
5090      1247, 1247, 4191, 4191, 4191, 1247, 4191, 4191, 4191, 4191,
5091      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5092      4191, 1247, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 1247,
5093      1912, 1912, 1912, 4191, 4191, 4191, 4191, 4191, 4191, 1912,
5094      4191, 4191, 1912, 4191, 4191, 1912, 4191, 1912, 1912, 4191,
5095
5096      4191, 4191, 1912, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5097      1912, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251,
5098      1251, 1251, 1251, 1251, 4191, 1251, 1251, 1251, 1251, 1251,
5099      1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 4191,
5100      1251, 1251, 1251, 1257, 1257, 1257, 4191, 4191, 4191, 1257,
5101      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5102      4191, 4191, 4191, 4191, 4191, 1257, 4191, 4191, 4191, 4191,
5103      4191, 4191, 4191, 1257, 1914, 1914, 1914, 4191, 4191, 4191,
5104      4191, 4191, 4191, 1914, 4191, 4191, 4191, 4191, 4191, 1914,
5105      4191, 4191, 4191, 4191, 4191, 4191, 1914, 4191, 4191, 4191,
5106
5107      4191, 4191, 4191, 4191, 1914, 1268, 1268, 1268, 4191, 4191,
5108      4191, 4191, 4191, 4191, 1268, 4191, 4191, 4191, 4191, 4191,
5109      1268, 1268, 4191, 4191, 4191, 4191, 4191, 1268, 4191, 4191,
5110      4191, 4191, 4191, 4191, 4191, 1268, 1278, 4191, 4191, 4191,
5111      1278, 4191, 1278, 4191, 4191, 1278, 4191, 4191, 4191, 1278,
5112      4191, 4191, 4191, 4191, 4191, 4191, 4191, 1278, 1281, 1281,
5113      4191, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281,
5114      1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281,
5115      1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281,
5116      1300, 1300, 1300, 4191, 4191, 4191, 1300, 4191, 4191, 4191,
5117
5118      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5119      4191, 4191, 1300, 4191, 4191, 4191, 4191, 1300, 4191, 4191,
5120      1300, 1933, 1933, 1933, 4191, 4191, 4191, 4191, 4191, 4191,
5121      4191, 4191, 4191, 4191, 1933, 4191, 1933, 1933, 4191, 4191,
5122      4191, 4191, 4191, 1933, 4191, 4191, 4191, 4191, 4191, 4191,
5123      4191, 1933, 1314, 1314, 1314, 4191, 4191, 4191, 4191, 4191,
5124      4191, 4191, 4191, 4191, 4191, 1314, 4191, 1314, 1314, 4191,
5125      4191, 4191, 4191, 4191, 1314, 4191, 1314, 4191, 4191, 4191,
5126      4191, 4191, 1314, 1937, 1937, 1937, 4191, 4191, 4191, 1937,
5127      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5128
5129      4191, 4191, 4191, 4191, 4191, 1937, 4191, 4191, 4191, 4191,
5130      4191, 4191, 4191, 1937, 1947, 1947, 4191, 1947, 1947, 1947,
5131      1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947,
5132      1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 1947, 4191,
5133      1947, 1947, 1947, 1947, 1947, 1947, 1949, 1949, 4191, 1949,
5134      1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949,
5135      1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949,
5136      1949, 1949, 1949, 1949, 1949, 1949, 1949, 1949, 1391, 1391,
5137      1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391,
5138      1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391,
5139
5140      1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391, 1391,
5141      1355, 1355, 1355, 4191, 4191, 4191, 1355, 4191, 4191, 4191,
5142      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5143      4191, 4191, 1355, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5144      1355, 1989, 1989, 1989, 4191, 4191, 4191, 4191, 4191, 4191,
5145      4191, 4191, 4191, 4191, 4191, 4191, 1989, 4191, 4191, 1989,
5146      4191, 4191, 4191, 1989, 4191, 4191, 4191, 4191, 4191, 4191,
5147      4191, 1989, 1388, 1388, 1388, 4191, 4191, 4191, 4191, 4191,
5148      4191, 4191, 4191, 4191, 4191, 4191, 4191, 1388, 1388, 4191,
5149      1388, 4191, 4191, 4191, 1388, 4191, 4191, 4191, 4191, 4191,
5150
5151      4191, 4191, 1388, 1993, 1993, 4191, 1993, 1993, 1993, 1993,
5152      1993, 1993, 1993, 1993, 1993, 1993, 1993, 1993, 1993, 1993,
5153      1993, 1993, 1993, 1993, 1993, 1993, 1993, 1993, 1993, 1993,
5154      1993, 1993, 1993, 1993, 1993, 1370, 1370, 1370, 4191, 4191,
5155      4191, 1370, 1370, 4191, 4191, 4191, 1370, 4191, 4191, 4191,
5156      4191, 1370, 4191, 4191, 4191, 4191, 4191, 1370, 4191, 4191,
5157      4191, 1370, 4191, 4191, 4191, 1370, 2000, 2000, 2000, 4191,
5158      4191, 4191, 4191, 4191, 4191, 4191, 2000, 2000, 4191, 4191,
5159      4191, 2000, 2000, 4191, 2000, 4191, 4191, 4191, 2000, 4191,
5160      4191, 4191, 4191, 4191, 4191, 4191, 2000, 2018, 2018, 2018,
5161
5162      4191, 4191, 4191, 4191, 4191, 4191, 2018, 4191, 4191, 4191,
5163      2018, 4191, 2018, 4191, 4191, 4191, 4191, 4191, 4191, 2018,
5164      4191, 4191, 4191, 4191, 4191, 4191, 4191, 2018, 1424, 1424,
5165      4191, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424,
5166      1424, 1424, 1424, 1424, 1424, 1424, 1424, 4191, 1424, 1424,
5167      1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424,
5168      1433, 1433, 1433, 4191, 4191, 4191, 1433, 4191, 4191, 4191,
5169      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5170      4191, 4191, 1433, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5171      1433, 2075, 2075, 2075, 4191, 4191, 4191, 4191, 4191, 4191,
5172
5173      4191, 4191, 4191, 4191, 4191, 4191, 2075, 4191, 4191, 2075,
5174      4191, 4191, 4191, 2075, 4191, 4191, 4191, 4191, 4191, 4191,
5175      4191, 2075, 1439, 1439, 1439, 4191, 4191, 4191, 4191, 4191,
5176      4191, 4191, 4191, 4191, 4191, 4191, 4191, 1439, 1439, 4191,
5177      1439, 4191, 4191, 4191, 1439, 4191, 4191, 4191, 4191, 4191,
5178      4191, 4191, 1439, 1488, 1488, 4191, 4191, 1488, 4191, 4191,
5179      1488, 1488, 4191, 1488, 1488, 1488, 1488, 1488, 4191, 1488,
5180      1488, 1488, 4191, 1488, 1488, 4191, 1488, 1488, 1488, 1488,
5181      1488, 4191, 4191, 1488, 1488, 1492, 1492, 4191, 1492, 1492,
5182      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
5183
5184      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
5185      1492, 1492, 1492, 1492, 1492, 1492, 1492, 2117, 2117, 4191,
5186      2117, 2117, 2117, 2117, 2117, 2117, 2117, 2117, 2117, 2117,
5187      2117, 2117, 2117, 2117, 2117, 2117, 2117, 2117, 2117, 2117,
5188      2117, 2117, 4191, 2117, 2117, 2117, 2117, 2117, 2117, 2119,
5189      2119, 4191, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119,
5190      2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119,
5191      2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119,
5192      2119, 2124, 2124, 4191, 2124, 2124, 2124, 2124, 2124, 2124,
5193      2124, 2124, 2124, 2124, 2124, 2124, 2124, 2124, 2124, 2124,
5194
5195      2124, 2124, 2124, 2124, 2124, 2124, 2124, 2124, 2124, 2124,
5196      2124, 2124, 2124, 1505, 1505, 1505, 4191, 4191, 4191, 4191,
5197      4191, 4191, 4191, 4191, 4191, 4191, 1505, 4191, 1505, 1505,
5198      4191, 4191, 4191, 4191, 4191, 1505, 4191, 4191, 4191, 4191,
5199      4191, 4191, 4191, 1505, 2130, 2130, 2130, 4191, 4191, 4191,
5200      2130, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5201      4191, 4191, 4191, 4191, 4191, 4191, 2130, 4191, 4191, 4191,
5202      4191, 4191, 4191, 4191, 2130, 1512, 1512, 1512, 4191, 4191,
5203      4191, 1512, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5204      4191, 4191, 4191, 4191, 4191, 4191, 4191, 1512, 4191, 4191,
5205
5206      4191, 4191, 4191, 4191, 4191, 1512, 1517, 1517, 1517, 4191,
5207      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5208      4191, 1517, 1517, 4191, 4191, 4191, 4191, 4191, 1517, 4191,
5209      4191, 4191, 4191, 4191, 4191, 4191, 1517, 1518, 1518, 4191,
5210      1518, 1518, 4191, 4191, 1518, 1518, 4191, 1518, 1518, 1518,
5211      1518, 1518, 4191, 1518, 1518, 1518, 4191, 1518, 1518, 4191,
5212      1518, 1518, 4191, 1518, 1518, 4191, 4191, 1518, 1518, 2134,
5213      2134, 4191, 2134, 2134, 2134, 2134, 2134, 2134, 2134, 2134,
5214      2134, 2134, 2134, 2134, 2134, 2134, 2134, 2134, 2134, 2134,
5215      2134, 2134, 2134, 2134, 4191, 2134, 2134, 2134, 2134, 2134,
5216
5217      2134, 2136, 2136, 4191, 2136, 2136, 2136, 2136, 2136, 2136,
5218      2136, 2136, 2136, 2136, 2136, 2136, 2136, 2136, 2136, 2136,
5219      2136, 2136, 2136, 2136, 2136, 2136, 2136, 2136, 2136, 2136,
5220      2136, 2136, 2136, 1547, 1547, 4191, 1547, 1547, 1547, 1547,
5221      1547, 1547, 1547, 1547, 1547, 4191, 1547, 1547, 1547, 1547,
5222      1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
5223      1547, 1547, 1547, 1547, 1547, 1553, 1553, 1553, 1553, 1553,
5224      1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553,
5225      1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553,
5226      1553, 1553, 1553, 1553, 1553, 1553, 1553, 1560, 1560, 4191,
5227
5228      1560, 1560, 4191, 1560, 1560, 1560, 1560, 1560, 1560, 1560,
5229      1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560,
5230      1560, 4191, 1560, 4191, 1560, 1560, 1560, 1560, 1560, 1563,
5231      1563, 4191, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563,
5232      1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563,
5233      1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563, 1563,
5234      1563, 1575, 4191, 4191, 4191, 1575, 1575, 1575, 1575, 1575,
5235      1575, 1575, 1575, 4191, 1575, 4191, 4191, 1575, 1575, 1575,
5236      1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575,
5237      1575, 1575, 1575, 1585, 4191, 1585, 4191, 4191, 4191, 4191,
5238
5239      4191, 4191, 1585, 4191, 1585, 4191, 4191, 4191, 4191, 4191,
5240      1585, 1589, 1589, 1589, 4191, 4191, 4191, 4191, 4191, 4191,
5241      4191, 4191, 4191, 4191, 1589, 4191, 1589, 4191, 4191, 4191,
5242      4191, 4191, 4191, 1589, 4191, 4191, 4191, 4191, 4191, 4191,
5243      4191, 1589, 2157, 2157, 2157, 4191, 4191, 4191, 2157, 4191,
5244      4191, 4191, 4191, 2157, 4191, 4191, 4191, 4191, 4191, 4191,
5245      4191, 4191, 4191, 4191, 2157, 4191, 4191, 4191, 4191, 4191,
5246      4191, 4191, 2157, 1592, 1592, 1592, 4191, 4191, 4191, 4191,
5247      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 1592, 4191,
5248      4191, 4191, 4191, 4191, 4191, 1592, 4191, 1592, 4191, 4191,
5249
5250      4191, 4191, 4191, 1592, 1590, 1590, 1590, 4191, 4191, 4191,
5251      1590, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5252      4191, 4191, 4191, 4191, 4191, 4191, 1590, 4191, 4191, 4191,
5253      4191, 4191, 4191, 4191, 1590, 1603, 1603, 4191, 1603, 1603,
5254      1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603,
5255      1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603,
5256      1603, 1603, 1603, 1603, 1603, 1603, 1603, 1607, 4191, 4191,
5257      4191, 1607, 4191, 4191, 4191, 4191, 4191, 4191, 1607, 4191,
5258      4191, 4191, 4191, 4191, 4191, 1607, 4191, 4191, 4191, 4191,
5259      4191, 4191, 4191, 1607, 1612, 1612, 4191, 1612, 1612, 4191,
5260
5261      1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612,
5262      1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612,
5263      1612, 1612, 1612, 1612, 1612, 1612, 1620, 1620, 1620, 1620,
5264      1620, 1620, 1620, 1620, 1620, 1620, 1620, 4191, 1620, 1620,
5265      1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620,
5266      1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1627, 1627,
5267      1627, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5268      4191, 4191, 4191, 1627, 1627, 4191, 4191, 4191, 4191, 4191,
5269      1627, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 1627, 1629,
5270      1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
5271
5272      4191, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
5273      1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
5274      1629, 1644, 1644, 4191, 1644, 4191, 4191, 4191, 1644, 4191,
5275      4191, 4191, 4191, 4191, 4191, 4191, 1644, 2186, 4191, 4191,
5276      4191, 4191, 4191, 4191, 2186, 4191, 4191, 4191, 2186, 2186,
5277      4191, 4191, 2186, 2186, 4191, 4191, 4191, 2186, 4191, 2186,
5278      2195, 2195, 4191, 2195, 2195, 2195, 2195, 2195, 2195, 2195,
5279      2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195,
5280      2195, 2195, 2195, 2195, 2195, 4191, 2195, 2195, 2195, 2195,
5281      2195, 2195, 2197, 2197, 4191, 2197, 2197, 2197, 2197, 2197,
5282
5283      2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197,
5284      2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197, 2197,
5285      2197, 2197, 2197, 2197, 2205, 4191, 2205, 2205, 2205, 2205,
5286      2205, 2205, 2205, 2205, 2205, 4191, 2205, 2205, 2205, 2205,
5287      2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 4191,
5288      2205, 2205, 2205, 2205, 2205, 2205, 1673, 1673, 1673, 4191,
5289      4191, 4191, 1673, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5290      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 1673, 4191,
5291      4191, 4191, 4191, 4191, 4191, 4191, 1673, 1676, 1676, 1676,
5292      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 1676, 4191,
5293
5294      4191, 4191, 1676, 4191, 4191, 4191, 4191, 4191, 4191, 1676,
5295      4191, 4191, 4191, 4191, 4191, 4191, 4191, 1676, 1682, 1682,
5296      1682, 4191, 4191, 4191, 1682, 1682, 4191, 4191, 4191, 1682,
5297      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5298      1682, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 1682, 1684,
5299      1684, 1684, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5300      4191, 4191, 4191, 4191, 1684, 4191, 4191, 4191, 4191, 4191,
5301      4191, 1684, 1684, 4191, 4191, 4191, 4191, 4191, 4191, 1684,
5302      2207, 2207, 4191, 2207, 2207, 2207, 2207, 2207, 2207, 2207,
5303      2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207,
5304
5305      2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207,
5306      2207, 2207, 2213, 2213, 2213, 4191, 4191, 4191, 2213, 4191,
5307      4191, 4191, 4191, 2213, 4191, 4191, 4191, 4191, 4191, 4191,
5308      4191, 4191, 4191, 4191, 2213, 4191, 4191, 4191, 4191, 4191,
5309      4191, 4191, 2213, 1694, 1694, 1694, 4191, 4191, 4191, 1694,
5310      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5311      4191, 4191, 4191, 4191, 4191, 1694, 4191, 4191, 4191, 4191,
5312      4191, 4191, 4191, 1694, 1699, 1699, 1699, 4191, 4191, 4191,
5313      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 1699,
5314      1699, 4191, 4191, 4191, 4191, 4191, 1699, 4191, 4191, 4191,
5315
5316      4191, 4191, 4191, 4191, 1699, 1706, 1706, 4191, 1706, 1706,
5317      1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706,
5318      1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706,
5319      1706, 1706, 1706, 1706, 1706, 1706, 1706, 1708, 4191, 4191,
5320      4191, 1708, 4191, 4191, 1708, 1708, 4191, 4191, 4191, 1708,
5321      1708, 1708, 4191, 1708, 1708, 1708, 1708, 1708, 1708, 1708,
5322      1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 2219,
5323      2219, 4191, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219,
5324      2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219, 2219,
5325      2219, 2219, 2219, 2219, 4191, 2219, 2219, 2219, 2219, 2219,
5326
5327      2219, 2221, 2221, 4191, 2221, 2221, 2221, 2221, 2221, 2221,
5328      2221, 2221, 2221, 2221, 2221, 2221, 2221, 2221, 2221, 2221,
5329      2221, 2221, 2221, 2221, 2221, 2221, 2221, 2221, 2221, 2221,
5330      2221, 2221, 2221, 2227, 4191, 2227, 2227, 2227, 2227, 2227,
5331      2227, 2227, 2227, 2227, 4191, 2227, 2227, 2227, 2227, 2227,
5332      2227, 2227, 2227, 2227, 2227, 2227, 2227, 2227, 4191, 2227,
5333      2227, 2227, 2227, 2227, 2227, 1735, 1735, 4191, 1735, 1735,
5334      4191, 1735, 1735, 1735, 4191, 4191, 4191, 1735, 1735, 1735,
5335      1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735,
5336      1735, 1735, 1735, 1735, 1735, 1735, 1735, 2230, 2230, 4191,
5337
5338      2230, 2230, 2230, 2230, 2230, 2230, 2230, 2230, 2230, 2230,
5339      2230, 2230, 2230, 2230, 2230, 2230, 2230, 2230, 2230, 2230,
5340      2230, 2230, 4191, 2230, 2230, 2230, 2230, 2230, 2230, 2232,
5341      2232, 4191, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232,
5342      2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232,
5343      2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232, 2232,
5344      2232, 1740, 1740, 4191, 1740, 1740, 4191, 1740, 1740, 1740,
5345      4191, 1740, 1740, 1740, 1740, 1740, 4191, 1740, 1740, 1740,
5346      1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 4191,
5347      4191, 1740, 1740, 2234, 2234, 4191, 2234, 2234, 2234, 2234,
5348
5349      2234, 2234, 2234, 2234, 2234, 2234, 2234, 2234, 2234, 2234,
5350      2234, 2234, 2234, 2234, 2234, 2234, 2234, 2234, 4191, 2234,
5351      2234, 2234, 2234, 2234, 2234, 2236, 2236, 4191, 2236, 2236,
5352      2236, 2236, 2236, 2236, 2236, 2236, 2236, 2236, 2236, 2236,
5353      2236, 2236, 2236, 2236, 2236, 2236, 2236, 2236, 2236, 2236,
5354      2236, 2236, 2236, 2236, 2236, 2236, 2236, 1743, 1743, 4191,
5355      1743, 1743, 4191, 1743, 1743, 1743, 4191, 4191, 4191, 1743,
5356      1743, 1743, 4191, 1743, 1743, 1743, 1743, 1743, 1743, 1743,
5357      1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 1743, 2238,
5358      2238, 4191, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238,
5359
5360      2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238,
5361      2238, 2238, 2238, 2238, 4191, 2238, 2238, 2238, 2238, 2238,
5362      2238, 2240, 2240, 4191, 2240, 2240, 2240, 2240, 2240, 2240,
5363      2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240,
5364      2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240, 2240,
5365      2240, 2240, 2240, 1746, 1746, 4191, 1746, 1746, 4191, 1746,
5366      1746, 1746, 4191, 1746, 1746, 1746, 1746, 1746, 4191, 1746,
5367      1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746,
5368      1746, 4191, 4191, 1746, 1746, 2242, 2242, 4191, 2242, 2242,
5369      2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242,
5370
5371      2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242,
5372      4191, 2242, 2242, 2242, 2242, 2242, 2242, 2244, 2244, 4191,
5373      2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244,
5374      2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244,
5375      2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2250,
5376      2250, 4191, 2250, 2250, 2250, 2250, 2250, 2250, 2250, 2250,
5377      2250, 2250, 2250, 2250, 2250, 2250, 2250, 2250, 2250, 2250,
5378      2250, 2250, 2250, 2250, 4191, 2250, 2250, 2250, 2250, 2250,
5379      2250, 2252, 2252, 4191, 2252, 2252, 2252, 2252, 2252, 2252,
5380      2252, 2252, 2252, 2252, 2252, 2252, 2252, 2252, 2252, 2252,
5381
5382      2252, 2252, 2252, 2252, 2252, 2252, 2252, 2252, 2252, 2252,
5383      2252, 2252, 2252, 1767, 1767, 4191, 1767, 1767, 4191, 1767,
5384      1767, 1767, 4191, 1767, 1767, 1767, 1767, 1767, 1767, 1767,
5385      1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 4191, 1767,
5386      1767, 1767, 1767, 1767, 1767, 1771, 1771, 4191, 1771, 1771,
5387      4191, 1771, 1771, 1771, 4191, 4191, 4191, 1771, 1771, 1771,
5388      4191, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771, 1771,
5389      1771, 1771, 1771, 1771, 1771, 1771, 1771, 1774, 1774, 4191,
5390      1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 4191,
5391      1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 4191,
5392
5393      1774, 1774, 4191, 1774, 1774, 1774, 1774, 1774, 1774, 1782,
5394      1782, 4191, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
5395      1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
5396      1782, 4191, 1782, 1782, 4191, 1782, 1782, 1782, 1782, 1782,
5397      1782, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807,
5398      1807, 1807, 4191, 1807, 1807, 1807, 1807, 1807, 1807, 1807,
5399      1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807, 1807,
5400      1807, 1807, 1807, 2270, 4191, 2270, 2270, 2270, 2270, 2270,
5401      2270, 2270, 2270, 4191, 4191, 2270, 2270, 2270, 2270, 2270,
5402      2270, 2270, 2270, 2270, 2270, 2270, 2270, 2270, 4191, 2270,
5403
5404      2270, 2270, 2270, 2270, 2270, 1812, 1812, 1812, 1812, 1812,
5405      1812, 1812, 1812, 1812, 1812, 1812, 4191, 1812, 1812, 1812,
5406      1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812,
5407      1812, 1812, 1812, 1812, 1812, 1812, 1812, 2272, 4191, 2272,
5408      2272, 2272, 2272, 2272, 2272, 2272, 2272, 4191, 4191, 2272,
5409      2272, 2272, 2272, 2272, 2272, 2272, 2272, 2272, 2272, 2272,
5410      2272, 2272, 4191, 2272, 2272, 2272, 2272, 2272, 2272, 1820,
5411      1820, 1820, 4191, 4191, 4191, 1820, 4191, 4191, 4191, 4191,
5412      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5413      4191, 1820, 1820, 4191, 4191, 4191, 4191, 4191, 4191, 1820,
5414
5415      2275, 2275, 2275, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5416      2275, 4191, 2275, 4191, 4191, 2275, 4191, 4191, 4191, 4191,
5417      4191, 4191, 2275, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5418      2275, 1827, 1827, 1827, 1827, 1827, 1827, 1827, 1827, 1827,
5419      1827, 1827, 1827, 1827, 1827, 1827, 1827, 1827, 1827, 1827,
5420      1827, 1827, 1827, 1827, 1827, 1827, 1827, 1827, 1827, 1827,
5421      1827, 1827, 1827, 1826, 1826, 1826, 4191, 4191, 4191, 4191,
5422      4191, 4191, 4191, 1826, 4191, 1826, 4191, 4191, 1826, 4191,
5423      4191, 4191, 4191, 4191, 4191, 1826, 4191, 4191, 4191, 4191,
5424      4191, 4191, 4191, 1826, 1831, 1831, 1831, 4191, 4191, 4191,
5425
5426      1831, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5427      4191, 4191, 4191, 4191, 4191, 4191, 1831, 4191, 4191, 4191,
5428      4191, 4191, 4191, 4191, 1831, 2279, 2279, 2279, 4191, 4191,
5429      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5430      2279, 4191, 4191, 4191, 4191, 4191, 4191, 2279, 4191, 4191,
5431      4191, 4191, 4191, 4191, 4191, 2279, 1835, 1835, 1835, 4191,
5432      4191, 4191, 4191, 4191, 4191, 1835, 4191, 4191, 4191, 4191,
5433      4191, 1835, 4191, 4191, 4191, 4191, 4191, 4191, 1835, 4191,
5434      4191, 4191, 4191, 4191, 4191, 4191, 1835, 1845, 1845, 1845,
5435      4191, 4191, 4191, 1845, 4191, 4191, 4191, 4191, 4191, 4191,
5436
5437      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 1845,
5438      4191, 4191, 4191, 4191, 4191, 4191, 4191, 1845, 1850, 1850,
5439      1850, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5440      4191, 4191, 4191, 1850, 1850, 4191, 4191, 4191, 4191, 4191,
5441      1850, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 1850, 1860,
5442      1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860,
5443      1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860,
5444      1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1860,
5445      1860, 1866, 1866, 4191, 1866, 1866, 1866, 1866, 1866, 1866,
5446      1866, 1866, 1866, 4191, 1866, 1866, 4191, 1866, 1866, 1866,
5447
5448      1866, 1866, 1866, 4191, 1866, 1866, 4191, 1866, 1866, 1866,
5449      1866, 1866, 1866, 1887, 1887, 1887, 1887, 1887, 1887, 1887,
5450      1887, 1887, 1887, 1887, 1887, 1887, 1887, 1887, 4191, 4191,
5451      1887, 1887, 1887, 1887, 1887, 1887, 4191, 1887, 1887, 1887,
5452      1887, 1887, 1887, 1887, 1887, 1890, 1890, 4191, 1890, 1890,
5453      1890, 1890, 4191, 1890, 1890, 1890, 1890, 4191, 1890, 1890,
5454      4191, 1890, 1890, 1890, 4191, 1890, 1890, 4191, 1890, 1890,
5455      4191, 4191, 1890, 1890, 1890, 1890, 1890, 1904, 1904, 1904,
5456      4191, 4191, 4191, 4191, 4191, 4191, 1904, 4191, 4191, 1904,
5457      4191, 4191, 1904, 4191, 1904, 1904, 4191, 4191, 4191, 1904,
5458
5459      4191, 4191, 4191, 4191, 4191, 4191, 4191, 1904, 2310, 2310,
5460      2310, 4191, 4191, 4191, 4191, 4191, 4191, 2310, 4191, 4191,
5461      2310, 4191, 4191, 2310, 2310, 2310, 2310, 4191, 4191, 4191,
5462      2310, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 2310, 1907,
5463      1907, 1907, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5464      4191, 4191, 1907, 4191, 1907, 4191, 4191, 4191, 4191, 4191,
5465      4191, 1907, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 1907,
5466      1910, 1910, 1910, 4191, 4191, 4191, 1910, 4191, 4191, 4191,
5467      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5468      4191, 4191, 1910, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5469
5470      1910, 1905, 1905, 1905, 1905, 4191, 4191, 1905, 4191, 4191,
5471      4191, 4191, 4191, 4191, 4191, 4191, 4191, 1905, 4191, 4191,
5472      4191, 4191, 4191, 1905, 4191, 4191, 4191, 4191, 4191, 4191,
5473      1905, 1905, 1912, 1912, 1912, 4191, 4191, 4191, 4191, 4191,
5474      4191, 1912, 4191, 4191, 1912, 4191, 4191, 1912, 4191, 1912,
5475      1912, 4191, 4191, 4191, 1912, 4191, 4191, 4191, 4191, 4191,
5476      4191, 4191, 1912, 1914, 1914, 1914, 4191, 4191, 4191, 4191,
5477      4191, 4191, 1914, 4191, 4191, 4191, 4191, 4191, 1914, 4191,
5478      4191, 4191, 4191, 4191, 4191, 1914, 4191, 4191, 4191, 4191,
5479      4191, 4191, 4191, 1914, 2312, 2312, 2312, 4191, 4191, 4191,
5480
5481      4191, 4191, 4191, 2312, 4191, 4191, 4191, 4191, 4191, 2312,
5482      2312, 4191, 4191, 4191, 4191, 4191, 2312, 4191, 4191, 4191,
5483      4191, 4191, 4191, 4191, 2312, 2313, 2313, 2313, 2313, 2313,
5484      2313, 2313, 2313, 2313, 2313, 2313, 2313, 4191, 2313, 2313,
5485      4191, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313,
5486      2313, 2313, 2313, 2313, 2313, 2313, 2313, 2315, 2315, 2315,
5487      2315, 2315, 2315, 2315, 2315, 2315, 2315, 2315, 2315, 2315,
5488      2315, 2315, 4191, 2315, 2315, 2315, 2315, 2315, 2315, 2315,
5489      2315, 2315, 2315, 2315, 2315, 2315, 2315, 2315, 2315, 1915,
5490      1915, 1915, 1915, 4191, 4191, 1915, 4191, 4191, 4191, 4191,
5491
5492      4191, 4191, 4191, 4191, 4191, 1915, 4191, 4191, 4191, 4191,
5493      4191, 1915, 4191, 4191, 4191, 4191, 4191, 4191, 1915, 1915,
5494      1268, 1268, 1268, 4191, 4191, 4191, 4191, 4191, 4191, 1268,
5495      4191, 4191, 4191, 4191, 4191, 1268, 1268, 4191, 4191, 4191,
5496      4191, 4191, 1268, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5497      1268, 1278, 4191, 4191, 4191, 1278, 4191, 1278, 4191, 4191,
5498      1278, 4191, 4191, 4191, 1278, 4191, 4191, 4191, 4191, 4191,
5499      4191, 4191, 1278, 2329, 2329, 2329, 2329, 4191, 4191, 2329,
5500      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 2329,
5501      4191, 4191, 4191, 4191, 4191, 2329, 4191, 4191, 4191, 4191,
5502
5503      4191, 4191, 2329, 2329, 1933, 1933, 1933, 4191, 4191, 4191,
5504      4191, 4191, 4191, 4191, 4191, 4191, 4191, 1933, 4191, 1933,
5505      1933, 4191, 4191, 4191, 4191, 4191, 1933, 4191, 4191, 4191,
5506      4191, 4191, 4191, 4191, 1933, 1937, 1937, 1937, 4191, 4191,
5507      4191, 1937, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5508      4191, 4191, 4191, 4191, 4191, 4191, 4191, 1937, 4191, 4191,
5509      4191, 4191, 4191, 4191, 4191, 1937, 2331, 2331, 2331, 4191,
5510      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5511      4191, 2331, 2331, 4191, 4191, 4191, 4191, 4191, 2331, 4191,
5512      4191, 4191, 4191, 4191, 4191, 4191, 2331, 2339, 2339, 4191,
5513
5514      2339, 2339, 2339, 2339, 2339, 2339, 2339, 2339, 2339, 2339,
5515      2339, 2339, 2339, 2339, 2339, 2339, 2339, 2339, 2339, 2339,
5516      2339, 2339, 4191, 2339, 2339, 2339, 2339, 2339, 2339, 1362,
5517      1362, 1362, 1362, 4191, 4191, 1362, 4191, 4191, 4191, 4191,
5518      4191, 4191, 4191, 4191, 4191, 1362, 4191, 4191, 4191, 4191,
5519      4191, 1362, 4191, 4191, 4191, 4191, 4191, 4191, 1362, 1362,
5520      1989, 1989, 1989, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5521      4191, 4191, 4191, 4191, 4191, 1989, 4191, 4191, 1989, 4191,
5522      4191, 4191, 1989, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5523      1989, 1993, 1993, 4191, 1993, 1993, 1993, 1993, 1993, 1993,
5524
5525      1993, 1993, 1993, 1993, 1993, 1993, 1993, 1993, 1993, 1993,
5526      1993, 1993, 1993, 1993, 1993, 1993, 1993, 1993, 1993, 1993,
5527      1993, 1993, 1993, 2391, 2391, 2391, 4191, 4191, 4191, 2391,
5528      2391, 4191, 4191, 4191, 2391, 4191, 4191, 4191, 4191, 2391,
5529      4191, 4191, 4191, 4191, 4191, 2391, 4191, 4191, 4191, 2391,
5530      4191, 4191, 4191, 2391, 2394, 2394, 2394, 4191, 4191, 4191,
5531      2394, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5532      2394, 4191, 4191, 4191, 4191, 4191, 2394, 4191, 4191, 4191,
5533      4191, 4191, 4191, 4191, 2394, 2400, 2400, 2400, 4191, 4191,
5534      4191, 2400, 4191, 4191, 4191, 2400, 4191, 4191, 4191, 4191,
5535
5536      4191, 4191, 4191, 4191, 4191, 4191, 4191, 2400, 4191, 4191,
5537      4191, 4191, 4191, 4191, 4191, 2400, 2000, 2000, 2000, 4191,
5538      4191, 4191, 4191, 4191, 4191, 4191, 2000, 2000, 4191, 4191,
5539      4191, 2000, 2000, 4191, 2000, 4191, 4191, 4191, 2000, 4191,
5540      4191, 4191, 4191, 4191, 4191, 4191, 2000, 2402, 4191, 4191,
5541      4191, 4191, 4191, 4191, 2402, 4191, 4191, 4191, 2402, 2402,
5542      4191, 4191, 2402, 2402, 4191, 4191, 4191, 2402, 4191, 2402,
5543      2404, 2404, 2404, 2404, 2404, 2404, 2404, 2404, 2404, 2404,
5544      2404, 2404, 4191, 2404, 2404, 4191, 2404, 2404, 2404, 2404,
5545      2404, 2404, 2404, 2404, 2404, 2404, 2404, 2404, 2404, 2404,
5546
5547      2404, 2404, 2410, 2410, 2410, 2410, 2410, 2410, 2410, 2410,
5548      2410, 2410, 2410, 2410, 2410, 2410, 2410, 4191, 2410, 2410,
5549      2410, 2410, 2410, 2410, 2410, 2410, 2410, 2410, 2410, 2410,
5550      2410, 2410, 2410, 2410, 2018, 2018, 2018, 4191, 4191, 4191,
5551      4191, 4191, 4191, 2018, 4191, 4191, 4191, 2018, 4191, 2018,
5552      4191, 4191, 4191, 4191, 4191, 4191, 2018, 4191, 4191, 4191,
5553      4191, 4191, 4191, 4191, 2018, 1388, 1388, 1388, 4191, 4191,
5554      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5555      1388, 1388, 4191, 1388, 4191, 4191, 4191, 1388, 4191, 4191,
5556      4191, 4191, 4191, 4191, 4191, 1388, 2075, 2075, 2075, 4191,
5557
5558      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5559      4191, 2075, 4191, 4191, 2075, 4191, 4191, 4191, 2075, 4191,
5560      4191, 4191, 4191, 4191, 4191, 4191, 2075, 1436, 1436, 1436,
5561      1436, 4191, 4191, 1436, 4191, 4191, 4191, 4191, 4191, 4191,
5562      4191, 4191, 4191, 1436, 4191, 4191, 4191, 4191, 4191, 1436,
5563      4191, 4191, 4191, 4191, 4191, 4191, 1436, 1436, 2500, 2500,
5564      2500, 2500, 2500, 2500, 2500, 2500, 2500, 2500, 2500, 2500,
5565      2500, 2500, 2500, 2500, 2500, 2500, 2500, 2500, 2500, 2500,
5566      2500, 2500, 2500, 2500, 2500, 2500, 2500, 2500, 2500, 2500,
5567      1488, 1488, 1488, 1488, 1488, 4191, 1488, 1488, 1488, 4191,
5568
5569      1488, 1488, 1488, 1488, 1488, 4191, 1488, 1488, 1488, 4191,
5570      1488, 1488, 4191, 1488, 1488, 1488, 1488, 1488, 4191, 4191,
5571      1488, 1488, 1492, 1492, 4191, 1492, 1492, 1492, 1492, 1492,
5572      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
5573      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
5574      1492, 1492, 1492, 1492, 2505, 2505, 4191, 2505, 2505, 2505,
5575      2505, 2505, 2505, 2505, 2505, 2505, 2505, 2505, 2505, 2505,
5576      2505, 2505, 2505, 2505, 2505, 2505, 2505, 2505, 2505, 4191,
5577      2505, 2505, 2505, 2505, 2505, 2505, 2124, 2124, 4191, 2124,
5578      2124, 2124, 2124, 2124, 2124, 2124, 2124, 2124, 2124, 2124,
5579
5580      2124, 2124, 2124, 2124, 2124, 2124, 2124, 2124, 2124, 2124,
5581      2124, 2124, 2124, 2124, 2124, 2124, 2124, 2124, 2130, 2130,
5582      2130, 4191, 4191, 4191, 2130, 4191, 4191, 4191, 4191, 4191,
5583      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5584      2130, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 2130, 2511,
5585      2511, 2511, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5586      4191, 4191, 2511, 4191, 2511, 2511, 4191, 4191, 4191, 4191,
5587      4191, 2511, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 2511,
5588      1505, 1505, 1505, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5589      4191, 4191, 4191, 1505, 4191, 1505, 1505, 4191, 4191, 4191,
5590
5591      4191, 4191, 1505, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5592      1505, 1515, 1515, 1515, 1515, 4191, 4191, 1515, 4191, 4191,
5593      4191, 4191, 4191, 4191, 4191, 4191, 4191, 1515, 4191, 4191,
5594      4191, 4191, 4191, 1515, 4191, 4191, 4191, 4191, 4191, 4191,
5595      1515, 1515, 2513, 2513, 4191, 2513, 2513, 2513, 2513, 2513,
5596      2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513, 2513,
5597      2513, 2513, 2513, 2513, 2513, 2513, 2513, 4191, 2513, 2513,
5598      2513, 2513, 2513, 2513, 1575, 4191, 4191, 4191, 1575, 1575,
5599      1575, 1575, 1575, 1575, 1575, 1575, 4191, 1575, 4191, 4191,
5600      1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575,
5601
5602      1575, 1575, 1575, 1575, 1575, 1575, 2525, 4191, 2525, 4191,
5603      4191, 4191, 4191, 4191, 4191, 2525, 4191, 2525, 4191, 4191,
5604      4191, 4191, 4191, 2525, 2157, 2157, 2157, 4191, 4191, 4191,
5605      2157, 4191, 4191, 4191, 4191, 2157, 4191, 4191, 4191, 4191,
5606      4191, 4191, 4191, 4191, 4191, 4191, 2157, 4191, 4191, 4191,
5607      4191, 4191, 4191, 4191, 2157, 2526, 2526, 2526, 4191, 4191,
5608      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 2526, 4191,
5609      2526, 4191, 4191, 4191, 4191, 4191, 4191, 2526, 4191, 4191,
5610      4191, 4191, 4191, 4191, 4191, 2526, 1590, 1590, 1590, 4191,
5611      4191, 4191, 1590, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5612
5613      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 1590, 4191,
5614      4191, 4191, 4191, 4191, 4191, 4191, 1590, 2186, 4191, 4191,
5615      4191, 4191, 4191, 4191, 2186, 4191, 4191, 4191, 2186, 2186,
5616      4191, 4191, 2186, 2186, 4191, 4191, 4191, 2186, 4191, 2186,
5617      1644, 1644, 4191, 1644, 4191, 4191, 4191, 1644, 4191, 4191,
5618      4191, 4191, 4191, 4191, 4191, 1644, 2551, 2551, 4191, 2551,
5619      2551, 2551, 2551, 2551, 2551, 2551, 2551, 2551, 2551, 2551,
5620      2551, 2551, 2551, 2551, 2551, 2551, 2551, 2551, 2551, 2551,
5621      2551, 4191, 2551, 2551, 2551, 2551, 2551, 2551, 2554, 4191,
5622      2554, 2554, 2554, 2554, 2554, 2554, 2554, 2554, 2554, 4191,
5623
5624      2554, 2554, 2554, 2554, 2554, 2554, 2554, 2554, 2554, 2554,
5625      2554, 2554, 2554, 4191, 2554, 2554, 2554, 2554, 2554, 2554,
5626      2207, 2207, 4191, 2207, 2207, 2207, 2207, 2207, 2207, 2207,
5627      2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207,
5628      2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207,
5629      2207, 2207, 2213, 2213, 2213, 4191, 4191, 4191, 2213, 4191,
5630      4191, 4191, 4191, 2213, 4191, 4191, 4191, 4191, 4191, 4191,
5631      4191, 4191, 4191, 4191, 2213, 4191, 4191, 4191, 4191, 4191,
5632      4191, 4191, 2213, 2557, 2557, 2557, 4191, 4191, 4191, 4191,
5633      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 2557, 2557,
5634
5635      4191, 4191, 4191, 4191, 4191, 2557, 4191, 4191, 4191, 4191,
5636      4191, 4191, 4191, 2557, 1697, 1697, 1697, 1697, 4191, 4191,
5637      1697, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5638      1697, 4191, 4191, 4191, 4191, 4191, 1697, 4191, 4191, 4191,
5639      4191, 4191, 4191, 1697, 1697, 2559, 2559, 4191, 2559, 2559,
5640      2559, 2559, 2559, 2559, 2559, 2559, 2559, 2559, 2559, 2559,
5641      2559, 2559, 2559, 2559, 2559, 2559, 2559, 2559, 2559, 2559,
5642      4191, 2559, 2559, 2559, 2559, 2559, 2559, 2565, 4191, 2565,
5643      2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 4191, 2565,
5644      2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565,
5645
5646      2565, 2565, 4191, 2565, 2565, 2565, 2565, 2565, 2565, 2567,
5647      2567, 4191, 2567, 2567, 2567, 2567, 2567, 2567, 2567, 2567,
5648      2567, 2567, 2567, 2567, 2567, 2567, 2567, 2567, 2567, 2567,
5649      2567, 2567, 2567, 2567, 4191, 2567, 2567, 2567, 2567, 2567,
5650      2567, 2570, 2570, 4191, 2570, 2570, 2570, 2570, 2570, 2570,
5651      2570, 2570, 2570, 2570, 2570, 2570, 2570, 2570, 2570, 2570,
5652      2570, 2570, 2570, 2570, 2570, 2570, 4191, 2570, 2570, 2570,
5653      2570, 2570, 2570, 2573, 2573, 4191, 2573, 2573, 2573, 2573,
5654      2573, 2573, 2573, 2573, 2573, 2573, 2573, 2573, 2573, 2573,
5655      2573, 2573, 2573, 2573, 2573, 2573, 2573, 2573, 4191, 2573,
5656
5657      2573, 2573, 2573, 2573, 2573, 2576, 2576, 4191, 2576, 2576,
5658      2576, 2576, 2576, 2576, 2576, 2576, 2576, 2576, 2576, 2576,
5659      2576, 2576, 2576, 2576, 2576, 2576, 2576, 2576, 2576, 2576,
5660      4191, 2576, 2576, 2576, 2576, 2576, 2576, 1746, 1746, 4191,
5661      1746, 1746, 4191, 1746, 1746, 1746, 4191, 1746, 1746, 1746,
5662      1746, 1746, 4191, 1746, 1746, 1746, 1746, 1746, 1746, 1746,
5663      1746, 1746, 1746, 1746, 1746, 4191, 4191, 1746, 1746, 2582,
5664      2582, 4191, 2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582,
5665      2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582, 2582,
5666      2582, 2582, 2582, 2582, 4191, 2582, 2582, 2582, 2582, 2582,
5667
5668      2582, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595,
5669      2595, 2595, 2595, 2595, 2595, 2595, 2595, 4191, 2595, 2595,
5670      2595, 2595, 2595, 2595, 4191, 2595, 2595, 2595, 2595, 2595,
5671      2595, 2595, 2595, 2596, 4191, 2596, 2596, 2596, 2596, 2596,
5672      2596, 2596, 2596, 4191, 4191, 2596, 2596, 2596, 2596, 2596,
5673      2596, 2596, 2596, 2596, 2596, 2596, 2596, 2596, 4191, 2596,
5674      2596, 2596, 2596, 2596, 2596, 2598, 4191, 2598, 2598, 2598,
5675      2598, 2598, 2598, 2598, 2598, 4191, 4191, 2598, 2598, 2598,
5676      2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598, 2598,
5677      4191, 2598, 2598, 2598, 2598, 2598, 2598, 2275, 2275, 2275,
5678
5679      4191, 4191, 4191, 4191, 4191, 4191, 4191, 2275, 4191, 2275,
5680      4191, 4191, 2275, 4191, 4191, 4191, 4191, 4191, 4191, 2275,
5681      4191, 4191, 4191, 4191, 4191, 4191, 4191, 2275, 2279, 2279,
5682      2279, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5683      4191, 4191, 4191, 2279, 4191, 4191, 4191, 4191, 4191, 4191,
5684      2279, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 2279, 1848,
5685      1848, 1848, 1848, 4191, 4191, 1848, 4191, 4191, 4191, 4191,
5686      4191, 4191, 4191, 4191, 4191, 1848, 4191, 4191, 4191, 4191,
5687      4191, 1848, 4191, 4191, 4191, 4191, 4191, 4191, 1848, 1848,
5688      1866, 1866, 4191, 1866, 1866, 1866, 1866, 1866, 1866, 1866,
5689
5690      1866, 1866, 4191, 1866, 1866, 4191, 1866, 1866, 1866, 1866,
5691      1866, 1866, 4191, 1866, 1866, 4191, 1866, 1866, 1866, 1866,
5692      1866, 1866, 2310, 2310, 2310, 4191, 4191, 4191, 4191, 4191,
5693      4191, 2310, 4191, 4191, 2310, 4191, 4191, 2310, 2310, 2310,
5694      2310, 4191, 4191, 4191, 2310, 4191, 4191, 4191, 4191, 4191,
5695      4191, 4191, 2310, 2312, 2312, 2312, 4191, 4191, 4191, 4191,
5696      4191, 4191, 2312, 4191, 4191, 4191, 4191, 4191, 2312, 2312,
5697      4191, 4191, 4191, 4191, 4191, 2312, 4191, 4191, 4191, 4191,
5698      4191, 4191, 4191, 2312, 1268, 1268, 1268, 4191, 4191, 4191,
5699      4191, 4191, 4191, 1268, 4191, 4191, 4191, 4191, 4191, 1268,
5700
5701      1268, 4191, 4191, 4191, 4191, 4191, 1268, 4191, 4191, 4191,
5702      4191, 4191, 4191, 4191, 1268, 1278, 4191, 4191, 4191, 1278,
5703      4191, 1278, 4191, 4191, 1278, 4191, 4191, 4191, 1278, 4191,
5704      4191, 4191, 4191, 4191, 4191, 4191, 1278, 2329, 2329, 2329,
5705      2329, 4191, 4191, 2329, 4191, 4191, 4191, 4191, 4191, 4191,
5706      4191, 4191, 4191, 2329, 4191, 4191, 4191, 4191, 4191, 2329,
5707      4191, 4191, 4191, 4191, 4191, 4191, 2329, 2329, 2628, 2628,
5708      2628, 4191, 4191, 4191, 2628, 4191, 4191, 4191, 4191, 4191,
5709      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5710      2628, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 2628, 2632,
5711
5712      2632, 2632, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5713      4191, 4191, 4191, 4191, 2632, 2632, 4191, 4191, 4191, 4191,
5714      4191, 2632, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 2632,
5715      1933, 1933, 1933, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5716      4191, 4191, 4191, 1933, 4191, 1933, 1933, 4191, 4191, 4191,
5717      4191, 4191, 1933, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5718      1933, 2331, 2331, 2331, 4191, 4191, 4191, 4191, 4191, 4191,
5719      4191, 4191, 4191, 4191, 4191, 4191, 2331, 2331, 4191, 4191,
5720      4191, 4191, 4191, 2331, 4191, 4191, 4191, 4191, 4191, 4191,
5721      4191, 2331, 1937, 1937, 1937, 4191, 4191, 4191, 1937, 4191,
5722
5723      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5724      4191, 4191, 4191, 4191, 1937, 4191, 4191, 4191, 4191, 4191,
5725      4191, 4191, 1937, 2639, 2639, 4191, 2639, 2639, 2639, 2639,
5726      2639, 2639, 2639, 2639, 2639, 2639, 2639, 2639, 2639, 2639,
5727      2639, 2639, 2639, 2639, 2639, 2639, 2639, 2639, 4191, 2639,
5728      2639, 2639, 2639, 2639, 2639, 2391, 2391, 2391, 4191, 4191,
5729      4191, 2391, 2391, 4191, 4191, 4191, 2391, 4191, 4191, 4191,
5730      4191, 2391, 4191, 4191, 4191, 4191, 4191, 2391, 4191, 4191,
5731      4191, 2391, 4191, 4191, 4191, 2391, 2691, 2691, 2691, 4191,
5732      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5733
5734      4191, 2691, 2691, 4191, 2691, 4191, 4191, 4191, 2691, 4191,
5735      4191, 4191, 4191, 4191, 4191, 4191, 2691, 2394, 2394, 2394,
5736      4191, 4191, 4191, 2394, 4191, 4191, 4191, 4191, 4191, 4191,
5737      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 2394,
5738      4191, 4191, 4191, 4191, 4191, 4191, 4191, 2394, 2695, 2695,
5739      2695, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 2695, 4191,
5740      4191, 4191, 4191, 2695, 2695, 4191, 2695, 4191, 4191, 4191,
5741      2695, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 2695, 2400,
5742      2400, 2400, 4191, 4191, 4191, 2400, 4191, 4191, 4191, 2400,
5743      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5744
5745      4191, 2400, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 2400,
5746      2698, 4191, 4191, 4191, 2698, 4191, 4191, 4191, 4191, 2698,
5747      4191, 4191, 4191, 4191, 4191, 4191, 2698, 4191, 4191, 4191,
5748      4191, 4191, 4191, 4191, 2698, 2402, 4191, 4191, 4191, 4191,
5749      4191, 4191, 2402, 4191, 4191, 4191, 2402, 2402, 4191, 4191,
5750      2402, 2402, 4191, 4191, 4191, 2402, 4191, 2402, 2699, 2699,
5751      2699, 2699, 2699, 2699, 2699, 2699, 2699, 2699, 2699, 2699,
5752      2699, 2699, 2699, 2699, 2699, 2699, 2699, 2699, 2699, 2699,
5753      2699, 2699, 2699, 2699, 2699, 2699, 2699, 2699, 2699, 2699,
5754      2701, 2701, 4191, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
5755
5756      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
5757      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
5758      2701, 2701, 2704, 2704, 2704, 4191, 4191, 4191, 4191, 4191,
5759      4191, 2704, 4191, 4191, 4191, 2704, 4191, 2704, 4191, 4191,
5760      4191, 4191, 4191, 4191, 2704, 4191, 4191, 4191, 4191, 4191,
5761      4191, 4191, 2704, 2018, 2018, 2018, 4191, 4191, 4191, 4191,
5762      4191, 4191, 2018, 4191, 4191, 4191, 2018, 4191, 2018, 4191,
5763      4191, 4191, 4191, 4191, 4191, 2018, 4191, 4191, 4191, 4191,
5764      4191, 4191, 4191, 2018, 1388, 1388, 1388, 4191, 4191, 4191,
5765      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 1388,
5766
5767      1388, 4191, 1388, 4191, 4191, 4191, 1388, 4191, 4191, 4191,
5768      4191, 4191, 4191, 4191, 1388, 2500, 2500, 2500, 2500, 2500,
5769      2500, 2500, 2500, 2500, 2500, 2500, 2500, 2500, 2500, 2500,
5770      2500, 2500, 2500, 2500, 2500, 2500, 2500, 2500, 2500, 2500,
5771      2500, 2500, 2500, 2500, 2500, 2500, 2500, 1488, 1488, 1488,
5772      1488, 1488, 4191, 1488, 1488, 1488, 4191, 1488, 1488, 1488,
5773      1488, 1488, 4191, 1488, 1488, 1488, 4191, 1488, 1488, 4191,
5774      1488, 1488, 1488, 1488, 1488, 4191, 4191, 1488, 1488, 1492,
5775      1492, 4191, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
5776      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
5777
5778      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
5779      1492, 2791, 2791, 4191, 2791, 2791, 2791, 2791, 2791, 2791,
5780      2791, 2791, 2791, 2791, 2791, 2791, 2791, 2791, 2791, 2791,
5781      2791, 2791, 2791, 2791, 2791, 2791, 4191, 2791, 2791, 2791,
5782      2791, 2791, 2791, 2794, 2794, 2794, 2794, 2794, 2794, 2794,
5783      2794, 2794, 2794, 2794, 2794, 2794, 2794, 2794, 2794, 4191,
5784      2794, 2794, 2794, 2794, 2794, 2794, 4191, 2794, 2794, 2794,
5785      2794, 2794, 2794, 2794, 2794, 2511, 2511, 2511, 4191, 4191,
5786      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 2511, 4191,
5787      2511, 2511, 4191, 4191, 4191, 4191, 4191, 2511, 4191, 4191,
5788
5789      4191, 4191, 4191, 4191, 4191, 2511, 1505, 1505, 1505, 4191,
5790      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 1505,
5791      4191, 1505, 1505, 4191, 4191, 4191, 4191, 4191, 1505, 4191,
5792      4191, 4191, 4191, 4191, 4191, 4191, 1505, 2796, 2796, 4191,
5793      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
5794      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
5795      2796, 2796, 4191, 2796, 2796, 2796, 2796, 2796, 2796, 1575,
5796      4191, 4191, 4191, 1575, 1575, 1575, 1575, 1575, 1575, 1575,
5797      1575, 4191, 1575, 4191, 4191, 1575, 1575, 1575, 1575, 1575,
5798      1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575,
5799
5800      1575, 2525, 4191, 2525, 4191, 4191, 4191, 4191, 4191, 4191,
5801      2525, 4191, 2525, 4191, 4191, 4191, 4191, 4191, 2525, 2526,
5802      2526, 2526, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5803      4191, 4191, 2526, 4191, 2526, 4191, 4191, 4191, 4191, 4191,
5804      4191, 2526, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 2526,
5805      1644, 1644, 4191, 1644, 4191, 4191, 4191, 1644, 4191, 4191,
5806      4191, 4191, 4191, 4191, 4191, 1644, 2824, 2824, 4191, 2824,
5807      2824, 2824, 2824, 2824, 2824, 2824, 2824, 2824, 2824, 2824,
5808      2824, 2824, 2824, 2824, 2824, 2824, 2824, 2824, 2824, 2824,
5809      2824, 4191, 2824, 2824, 2824, 2824, 2824, 2824, 2826, 4191,
5810
5811      2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 4191,
5812      2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826,
5813      2826, 2826, 2826, 4191, 2826, 2826, 2826, 2826, 2826, 2826,
5814      2557, 2557, 2557, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5815      4191, 4191, 4191, 4191, 4191, 2557, 2557, 4191, 4191, 4191,
5816      4191, 4191, 2557, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5817      2557, 2828, 2828, 4191, 2828, 2828, 2828, 2828, 2828, 2828,
5818      2828, 2828, 2828, 2828, 2828, 2828, 2828, 2828, 2828, 2828,
5819      2828, 2828, 2828, 2828, 2828, 2828, 4191, 2828, 2828, 2828,
5820      2828, 2828, 2828, 2831, 4191, 2831, 2831, 2831, 2831, 2831,
5821
5822      2831, 2831, 2831, 2831, 4191, 2831, 2831, 2831, 2831, 2831,
5823      2831, 2831, 2831, 2831, 2831, 2831, 2831, 2831, 4191, 2831,
5824      2831, 2831, 2831, 2831, 2831, 2832, 2832, 4191, 2832, 2832,
5825      2832, 2832, 2832, 2832, 2832, 2832, 2832, 2832, 2832, 2832,
5826      2832, 2832, 2832, 2832, 2832, 2832, 2832, 2832, 2832, 2832,
5827      4191, 2832, 2832, 2832, 2832, 2832, 2832, 2834, 2834, 4191,
5828      2834, 2834, 2834, 2834, 2834, 2834, 2834, 2834, 2834, 2834,
5829      2834, 2834, 2834, 2834, 2834, 2834, 2834, 2834, 2834, 2834,
5830      2834, 2834, 4191, 2834, 2834, 2834, 2834, 2834, 2834, 2836,
5831      2836, 4191, 2836, 2836, 2836, 2836, 2836, 2836, 2836, 2836,
5832
5833      2836, 2836, 2836, 2836, 2836, 2836, 2836, 2836, 2836, 2836,
5834      2836, 2836, 2836, 2836, 4191, 2836, 2836, 2836, 2836, 2836,
5835      2836, 2838, 2838, 4191, 2838, 2838, 2838, 2838, 2838, 2838,
5836      2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838,
5837      2838, 2838, 2838, 2838, 2838, 2838, 4191, 2838, 2838, 2838,
5838      2838, 2838, 2838, 1746, 1746, 4191, 1746, 1746, 1746, 1746,
5839      1746, 1746, 4191, 1746, 1746, 1746, 1746, 1746, 4191, 1746,
5840      1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746, 1746,
5841      1746, 4191, 4191, 1746, 1746, 2842, 2842, 4191, 2842, 2842,
5842      2842, 2842, 2842, 2842, 2842, 2842, 2842, 2842, 2842, 2842,
5843
5844      2842, 2842, 2842, 2842, 2842, 2842, 2842, 2842, 2842, 2842,
5845      4191, 2842, 2842, 2842, 2842, 2842, 2842, 2846, 2846, 2846,
5846      2846, 2846, 2846, 2846, 2846, 2846, 2846, 2846, 2846, 2846,
5847      2846, 2846, 2846, 4191, 2846, 2846, 2846, 2846, 2846, 2846,
5848      4191, 2846, 2846, 2846, 2846, 2846, 2846, 2846, 2846, 2859,
5849      4191, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 4191,
5850      4191, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859,
5851      2859, 2859, 2859, 2859, 4191, 2859, 2859, 2859, 2859, 2859,
5852      2859, 2861, 4191, 2861, 2861, 2861, 2861, 2861, 2861, 2861,
5853      2861, 4191, 4191, 2861, 2861, 2861, 2861, 2861, 2861, 2861,
5854
5855      2861, 2861, 2861, 2861, 2861, 2861, 4191, 2861, 2861, 2861,
5856      2861, 2861, 2861, 1839, 4191, 4191, 4191, 4191, 4191, 1839,
5857      1839, 4191, 4191, 4191, 1839, 4191, 4191, 4191, 4191, 4191,
5858      4191, 4191, 4191, 4191, 4191, 1839, 4191, 4191, 4191, 4191,
5859      4191, 4191, 4191, 1839, 1866, 1866, 4191, 1866, 1866, 1866,
5860      1866, 1866, 1866, 1866, 1866, 1866, 4191, 1866, 1866, 4191,
5861      1866, 1866, 1866, 1866, 1866, 1866, 4191, 1866, 1866, 4191,
5862      1866, 1866, 1866, 1866, 1866, 1866, 2871, 2871, 2871, 2871,
5863      2871, 2871, 2871, 2871, 2871, 2871, 2871, 2871, 2871, 2871,
5864      2871, 2871, 4191, 2871, 2871, 2871, 2871, 2871, 2871, 4191,
5865
5866      2871, 2871, 2871, 2871, 2871, 2871, 2871, 2871, 1268, 1268,
5867      1268, 4191, 4191, 4191, 4191, 4191, 4191, 1268, 4191, 4191,
5868      4191, 4191, 4191, 1268, 1268, 4191, 4191, 4191, 4191, 4191,
5869      1268, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 1268, 1278,
5870      4191, 4191, 4191, 1278, 4191, 1278, 4191, 4191, 1278, 4191,
5871      4191, 4191, 1278, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5872      1278, 2628, 2628, 2628, 4191, 4191, 4191, 2628, 4191, 4191,
5873      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5874      4191, 4191, 4191, 2628, 4191, 4191, 4191, 4191, 4191, 4191,
5875      4191, 2628, 2632, 2632, 2632, 4191, 4191, 4191, 4191, 4191,
5876
5877      4191, 4191, 4191, 4191, 4191, 4191, 4191, 2632, 2632, 4191,
5878      4191, 4191, 4191, 4191, 2632, 4191, 4191, 4191, 4191, 4191,
5879      4191, 4191, 2632, 1933, 1933, 1933, 4191, 4191, 4191, 4191,
5880      4191, 4191, 4191, 4191, 4191, 4191, 1933, 4191, 1933, 1933,
5881      4191, 4191, 4191, 4191, 4191, 1933, 4191, 4191, 4191, 4191,
5882      4191, 4191, 4191, 1933, 2391, 2391, 2391, 4191, 4191, 4191,
5883      2391, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5884      2391, 4191, 4191, 4191, 4191, 4191, 2391, 4191, 4191, 4191,
5885      4191, 4191, 4191, 4191, 2391, 2691, 2691, 2691, 4191, 4191,
5886      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5887
5888      2691, 2691, 4191, 2691, 4191, 4191, 4191, 2691, 4191, 4191,
5889      4191, 4191, 4191, 4191, 4191, 2691, 2943, 4191, 4191, 4191,
5890      4191, 4191, 4191, 2943, 4191, 4191, 4191, 2943, 2943, 4191,
5891      4191, 2943, 2943, 4191, 4191, 4191, 2943, 4191, 2943, 2695,
5892      2695, 2695, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 2695,
5893      4191, 4191, 4191, 4191, 2695, 2695, 4191, 2695, 4191, 4191,
5894      4191, 2695, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 2695,
5895      2698, 4191, 4191, 4191, 2698, 4191, 4191, 4191, 4191, 2698,
5896      4191, 4191, 4191, 4191, 4191, 4191, 2698, 4191, 4191, 4191,
5897      4191, 4191, 4191, 4191, 2698, 2699, 2699, 2699, 2699, 2699,
5898
5899      2699, 2699, 2699, 2699, 2699, 2699, 2699, 2699, 2699, 2699,
5900      2699, 2699, 2699, 2699, 2699, 2699, 2699, 2699, 2699, 2699,
5901      2699, 2699, 2699, 2699, 2699, 2699, 2699, 2701, 2701, 4191,
5902      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
5903      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
5904      2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2704,
5905      2704, 2704, 4191, 4191, 4191, 4191, 4191, 4191, 2704, 4191,
5906      4191, 4191, 2704, 4191, 2704, 4191, 4191, 4191, 4191, 4191,
5907      4191, 2704, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 2704,
5908      2018, 2018, 2018, 4191, 4191, 4191, 4191, 4191, 4191, 2018,
5909
5910      4191, 4191, 4191, 2018, 4191, 2018, 4191, 4191, 4191, 4191,
5911      4191, 4191, 2018, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5912      2018, 1388, 1388, 1388, 4191, 4191, 4191, 4191, 4191, 4191,
5913      4191, 4191, 4191, 4191, 4191, 4191, 1388, 1388, 4191, 1388,
5914      4191, 4191, 4191, 1388, 4191, 4191, 4191, 4191, 4191, 4191,
5915      4191, 1388, 1488, 1488, 1488, 1488, 1488, 4191, 1488, 1488,
5916      1488, 4191, 1488, 1488, 1488, 1488, 1488, 4191, 1488, 1488,
5917      1488, 4191, 1488, 1488, 4191, 1488, 1488, 1488, 1488, 1488,
5918      4191, 4191, 1488, 1488, 1492, 1492, 4191, 1492, 1492, 1492,
5919      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
5920
5921      1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
5922      1492, 1492, 1492, 1492, 1492, 1492, 1505, 1505, 1505, 4191,
5923      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 1505,
5924      4191, 1505, 1505, 4191, 4191, 4191, 4191, 4191, 1505, 4191,
5925      4191, 4191, 4191, 4191, 4191, 4191, 1505, 1569, 1569, 1569,
5926      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5927      4191, 4191, 1569, 4191, 4191, 4191, 4191, 4191, 4191, 1569,
5928      4191, 4191, 4191, 4191, 4191, 4191, 4191, 1569, 1575, 4191,
5929      4191, 4191, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575,
5930      4191, 1575, 4191, 4191, 1575, 1575, 1575, 1575, 1575, 1575,
5931
5932      1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575, 1575,
5933      1644, 1644, 4191, 1644, 4191, 4191, 4191, 1644, 4191, 4191,
5934      4191, 4191, 4191, 4191, 4191, 1644, 3051, 4191, 3051, 3051,
5935      3051, 3051, 3051, 3051, 3051, 3051, 3051, 4191, 3051, 3051,
5936      3051, 3051, 3051, 3051, 3051, 3051, 3051, 3051, 3051, 3051,
5937      3051, 4191, 3051, 3051, 3051, 3051, 3051, 3051, 2213, 2213,
5938      2213, 4191, 4191, 4191, 2213, 4191, 4191, 4191, 4191, 2213,
5939      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5940      2213, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 2213, 3052,
5941      4191, 3052, 3052, 3052, 3052, 3052, 3052, 3052, 3052, 3052,
5942
5943      4191, 3052, 3052, 3052, 3052, 3052, 3052, 3052, 3052, 3052,
5944      3052, 3052, 3052, 3052, 4191, 3052, 3052, 3052, 3052, 3052,
5945      3052, 3053, 3053, 4191, 3053, 3053, 4191, 3053, 3053, 3053,
5946      3053, 3053, 3053, 3053, 3053, 3053, 3053, 3053, 3053, 3053,
5947      3053, 3053, 3053, 3053, 3053, 3053, 3053, 3053, 3053, 3053,
5948      3053, 3053, 3053, 3068, 4191, 3068, 3068, 3068, 3068, 3068,
5949      3068, 3068, 3068, 4191, 4191, 3068, 3068, 3068, 3068, 3068,
5950      3068, 3068, 3068, 3068, 3068, 3068, 3068, 3068, 4191, 3068,
5951      3068, 3068, 3068, 3068, 3068, 3070, 4191, 3070, 3070, 3070,
5952      3070, 3070, 3070, 3070, 3070, 4191, 4191, 3070, 3070, 3070,
5953
5954      3070, 3070, 3070, 3070, 3070, 3070, 3070, 3070, 3070, 3070,
5955      4191, 3070, 3070, 3070, 3070, 3070, 3070, 1866, 1866, 4191,
5956      1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 4191,
5957      1866, 1866, 4191, 1866, 1866, 1866, 1866, 1866, 1866, 4191,
5958      1866, 1866, 4191, 1866, 1866, 1866, 1866, 1866, 1866, 1268,
5959      1268, 1268, 4191, 4191, 4191, 4191, 4191, 4191, 1268, 4191,
5960      4191, 4191, 4191, 4191, 1268, 1268, 4191, 4191, 4191, 4191,
5961      4191, 1268, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 1268,
5962      2329, 2329, 2329, 2329, 4191, 4191, 2329, 4191, 4191, 4191,
5963      4191, 4191, 4191, 4191, 4191, 4191, 2329, 4191, 4191, 4191,
5964
5965      4191, 4191, 2329, 4191, 4191, 4191, 4191, 4191, 4191, 2329,
5966      2329, 1933, 1933, 1933, 4191, 4191, 4191, 4191, 4191, 4191,
5967      4191, 4191, 4191, 4191, 1933, 4191, 1933, 1933, 4191, 4191,
5968      4191, 4191, 4191, 1933, 4191, 4191, 4191, 4191, 4191, 4191,
5969      4191, 1933, 2391, 2391, 2391, 4191, 4191, 4191, 2391, 4191,
5970      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
5971      4191, 4191, 4191, 4191, 2391, 4191, 4191, 4191, 4191, 4191,
5972      4191, 4191, 2391, 2943, 4191, 4191, 4191, 4191, 4191, 4191,
5973      2943, 4191, 4191, 4191, 2943, 2943, 4191, 4191, 2943, 2943,
5974      4191, 4191, 4191, 2943, 4191, 2943, 3249, 4191, 3249, 3249,
5975
5976      3249, 3249, 3249, 3249, 3249, 3249, 3249, 4191, 3249, 3249,
5977      3249, 3249, 3249, 3249, 3249, 3249, 3249, 3249, 3249, 3249,
5978      3249, 4191, 3249, 3249, 3249, 3249, 3249, 3249, 3250, 4191,
5979      3250, 3250, 3250, 3250, 3250, 3250, 3250, 3250, 3250, 4191,
5980      3250, 3250, 3250, 3250, 3250, 3250, 3250, 3250, 3250, 3250,
5981      3250, 3250, 3250, 4191, 3250, 3250, 3250, 3250, 3250, 3250,
5982      3265, 4191, 3265, 3265, 3265, 3265, 3265, 3265, 3265, 3265,
5983      4191, 4191, 3265, 3265, 3265, 3265, 3265, 3265, 3265, 3265,
5984      3265, 3265, 3265, 3265, 3265, 4191, 3265, 3265, 3265, 3265,
5985      3265, 3265, 3267, 4191, 3267, 3267, 3267, 3267, 3267, 3267,
5986
5987      3267, 3267, 4191, 4191, 3267, 3267, 3267, 3267, 3267, 3267,
5988      3267, 3267, 3267, 3267, 3267, 3267, 3267, 4191, 3267, 3267,
5989      3267, 3267, 3267, 3267, 3423, 4191, 3423, 3423, 3423, 3423,
5990      3423, 3423, 3423, 3423, 3423, 4191, 3423, 3423, 3423, 3423,
5991      3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 3423, 4191,
5992      3423, 3423, 3423, 3423, 3423, 3423, 3424, 4191, 3424, 3424,
5993      3424, 3424, 3424, 3424, 3424, 3424, 3424, 4191, 3424, 3424,
5994      3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424, 3424,
5995      3424, 4191, 3424, 3424, 3424, 3424, 3424, 3424, 3435, 4191,
5996      3435, 3435, 3435, 3435, 3435, 3435, 3435, 3435, 4191, 4191,
5997
5998      3435, 3435, 3435, 3435, 3435, 3435, 3435, 3435, 3435, 3435,
5999      3435, 3435, 3435, 4191, 3435, 3435, 3435, 3435, 3435, 3435,
6000      3437, 4191, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
6001      4191, 4191, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
6002      3437, 3437, 3437, 3437, 3437, 4191, 3437, 3437, 3437, 3437,
6003      3437, 3437, 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444,
6004      3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444, 4191, 3444,
6005      3444, 3444, 3444, 3444, 3444, 4191, 3444, 3444, 3444, 3444,
6006      3444, 3444, 3444, 3444, 3558, 4191, 3558, 3558, 3558, 3558,
6007      3558, 3558, 3558, 3558, 3558, 4191, 3558, 3558, 3558, 3558,
6008
6009      3558, 3558, 3558, 3558, 3558, 3558, 3558, 3558, 3558, 4191,
6010      3558, 3558, 3558, 3558, 3558, 3558, 3559, 4191, 3559, 3559,
6011      3559, 3559, 3559, 3559, 3559, 3559, 3559, 4191, 3559, 3559,
6012      3559, 3559, 3559, 3559, 3559, 3559, 3559, 3559, 3559, 3559,
6013      3559, 4191, 3559, 3559, 3559, 3559, 3559, 3559, 3569, 4191,
6014      3569, 3569, 3569, 3569, 3569, 3569, 3569, 3569, 4191, 4191,
6015      3569, 3569, 3569, 3569, 3569, 3569, 3569, 3569, 3569, 3569,
6016      3569, 3569, 3569, 4191, 3569, 3569, 3569, 3569, 3569, 3569,
6017      3571, 4191, 3571, 3571, 3571, 3571, 3571, 3571, 3571, 3571,
6018      4191, 4191, 3571, 3571, 3571, 3571, 3571, 3571, 3571, 3571,
6019
6020      3571, 3571, 3571, 3571, 3571, 4191, 3571, 3571, 3571, 3571,
6021      3571, 3571, 3664, 4191, 3664, 3664, 3664, 3664, 3664, 3664,
6022      3664, 3664, 3664, 4191, 3664, 3664, 3664, 3664, 3664, 3664,
6023      3664, 3664, 3664, 3664, 3664, 3664, 3664, 4191, 3664, 3664,
6024      3664, 3664, 3664, 3664, 3665, 4191, 3665, 3665, 3665, 3665,
6025      3665, 3665, 3665, 3665, 3665, 4191, 3665, 3665, 3665, 3665,
6026      3665, 3665, 3665, 3665, 3665, 3665, 3665, 3665, 3665, 4191,
6027      3665, 3665, 3665, 3665, 3665, 3665, 3675, 4191, 3675, 3675,
6028      3675, 3675, 3675, 3675, 3675, 3675, 4191, 4191, 3675, 3675,
6029      3675, 3675, 3675, 3675, 3675, 3675, 3675, 3675, 3675, 3675,
6030
6031      3675, 4191, 3675, 3675, 3675, 3675, 3675, 3675, 3677, 4191,
6032      3677, 3677, 3677, 3677, 3677, 3677, 3677, 3677, 4191, 4191,
6033      3677, 3677, 3677, 3677, 3677, 3677, 3677, 3677, 3677, 3677,
6034      3677, 3677, 3677, 4191, 3677, 3677, 3677, 3677, 3677, 3677,
6035      3634, 3634, 3634, 3634, 3634, 3634, 3634, 3634, 3634, 3634,
6036      3634, 3634, 3634, 3634, 3634, 3634, 4191, 3634, 3634, 3634,
6037      3634, 3634, 3634, 4191, 3634, 3634, 3634, 3634, 3634, 3634,
6038      3634, 3634, 3745, 4191, 3745, 3745, 3745, 3745, 3745, 3745,
6039      3745, 3745, 3745, 4191, 3745, 3745, 3745, 3745, 3745, 3745,
6040      3745, 3745, 3745, 3745, 3745, 3745, 3745, 4191, 3745, 3745,
6041
6042      3745, 3745, 3745, 3745, 3746, 4191, 3746, 3746, 3746, 3746,
6043      3746, 3746, 3746, 3746, 3746, 4191, 3746, 3746, 3746, 3746,
6044      3746, 3746, 3746, 3746, 3746, 3746, 3746, 3746, 3746, 4191,
6045      3746, 3746, 3746, 3746, 3746, 3746, 3750, 4191, 3750, 3750,
6046      3750, 3750, 3750, 3750, 3750, 3750, 4191, 4191, 3750, 3750,
6047      3750, 3750, 3750, 3750, 3750, 3750, 3750, 3750, 3750, 3750,
6048      3750, 4191, 3750, 3750, 3750, 3750, 3750, 3750, 3752, 4191,
6049      3752, 3752, 3752, 3752, 3752, 3752, 3752, 3752, 4191, 4191,
6050      3752, 3752, 3752, 3752, 3752, 3752, 3752, 3752, 3752, 3752,
6051      3752, 3752, 3752, 4191, 3752, 3752, 3752, 3752, 3752, 3752,
6052
6053      3779, 3779, 3779, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
6054      4191, 4191, 4191, 4191, 4191, 3779, 4191, 4191, 4191, 3779,
6055      4191, 4191, 3779, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
6056      3779, 3800, 4191, 3800, 3800, 3800, 3800, 3800, 3800, 3800,
6057      3800, 3800, 4191, 3800, 3800, 3800, 3800, 3800, 3800, 3800,
6058      3800, 3800, 3800, 3800, 3800, 3800, 4191, 3800, 3800, 3800,
6059      3800, 3800, 3800, 3801, 4191, 3801, 3801, 3801, 3801, 3801,
6060      3801, 3801, 3801, 3801, 4191, 3801, 3801, 3801, 3801, 3801,
6061      3801, 3801, 3801, 3801, 3801, 3801, 3801, 3801, 4191, 3801,
6062      3801, 3801, 3801, 3801, 3801, 3803, 4191, 3803, 3803, 3803,
6063
6064      3803, 3803, 3803, 3803, 3803, 4191, 4191, 3803, 3803, 3803,
6065      3803, 3803, 3803, 3803, 3803, 3803, 3803, 3803, 3803, 3803,
6066      4191, 3803, 3803, 3803, 3803, 3803, 3803, 3805, 4191, 3805,
6067      3805, 3805, 3805, 3805, 3805, 3805, 3805, 4191, 4191, 3805,
6068      3805, 3805, 3805, 3805, 3805, 3805, 3805, 3805, 3805, 3805,
6069      3805, 3805, 4191, 3805, 3805, 3805, 3805, 3805, 3805, 3837,
6070      4191, 3837, 3837, 3837, 3837, 3837, 3837, 3837, 3837, 3837,
6071      4191, 3837, 3837, 3837, 3837, 3837, 3837, 3837, 3837, 3837,
6072      3837, 3837, 3837, 3837, 4191, 3837, 3837, 3837, 3837, 3837,
6073      3837, 3838, 4191, 3838, 3838, 3838, 3838, 3838, 3838, 3838,
6074
6075      3838, 3838, 4191, 3838, 3838, 3838, 3838, 3838, 3838, 3838,
6076      3838, 3838, 3838, 3838, 3838, 3838, 4191, 3838, 3838, 3838,
6077      3838, 3838, 3838, 3839, 4191, 3839, 3839, 3839, 3839, 3839,
6078      3839, 3839, 3839, 4191, 4191, 3839, 3839, 3839, 3839, 3839,
6079      3839, 3839, 3839, 3839, 3839, 3839, 3839, 3839, 4191, 3839,
6080      3839, 3839, 3839, 3839, 3839, 3841, 4191, 3841, 3841, 3841,
6081      3841, 3841, 3841, 3841, 3841, 4191, 4191, 3841, 3841, 3841,
6082      3841, 3841, 3841, 3841, 3841, 3841, 3841, 3841, 3841, 3841,
6083      4191, 3841, 3841, 3841, 3841, 3841, 3841, 3861, 4191, 3861,
6084      3861, 3861, 3861, 3861, 3861, 3861, 3861, 3861, 4191, 3861,
6085
6086      3861, 3861, 3861, 3861, 3861, 3861, 3861, 3861, 3861, 3861,
6087      3861, 3861, 4191, 3861, 3861, 3861, 3861, 3861, 3861, 3862,
6088      4191, 3862, 3862, 3862, 3862, 3862, 3862, 3862, 3862, 3862,
6089      4191, 3862, 3862, 3862, 3862, 3862, 3862, 3862, 3862, 3862,
6090      3862, 3862, 3862, 3862, 4191, 3862, 3862, 3862, 3862, 3862,
6091      3862, 3863, 4191, 3863, 3863, 3863, 3863, 3863, 3863, 3863,
6092      3863, 4191, 4191, 3863, 3863, 3863, 3863, 3863, 3863, 3863,
6093      3863, 3863, 3863, 3863, 3863, 3863, 4191, 3863, 3863, 3863,
6094      3863, 3863, 3863, 3865, 4191, 3865, 3865, 3865, 3865, 3865,
6095      3865, 3865, 3865, 4191, 4191, 3865, 3865, 3865, 3865, 3865,
6096
6097      3865, 3865, 3865, 3865, 3865, 3865, 3865, 3865, 4191, 3865,
6098      3865, 3865, 3865, 3865, 3865, 3882, 4191, 3882, 3882, 3882,
6099      3882, 3882, 3882, 3882, 3882, 3882, 4191, 3882, 3882, 3882,
6100      3882, 3882, 3882, 3882, 3882, 3882, 3882, 3882, 3882, 3882,
6101      4191, 3882, 3882, 3882, 3882, 3882, 3882, 3883, 4191, 3883,
6102      3883, 3883, 3883, 3883, 3883, 3883, 3883, 3883, 4191, 3883,
6103      3883, 3883, 3883, 3883, 3883, 3883, 3883, 3883, 3883, 3883,
6104      3883, 3883, 4191, 3883, 3883, 3883, 3883, 3883, 3883, 3884,
6105      4191, 3884, 3884, 3884, 3884, 3884, 3884, 3884, 3884, 4191,
6106      4191, 3884, 3884, 3884, 3884, 3884, 3884, 3884, 3884, 3884,
6107
6108      3884, 3884, 3884, 3884, 4191, 3884, 3884, 3884, 3884, 3884,
6109      3884, 3886, 4191, 3886, 3886, 3886, 3886, 3886, 3886, 3886,
6110      3886, 4191, 4191, 3886, 3886, 3886, 3886, 3886, 3886, 3886,
6111      3886, 3886, 3886, 3886, 3886, 3886, 4191, 3886, 3886, 3886,
6112      3886, 3886, 3886, 3903, 4191, 3903, 3903, 3903, 3903, 3903,
6113      3903, 3903, 3903, 3903, 4191, 3903, 3903, 3903, 3903, 3903,
6114      3903, 3903, 3903, 3903, 3903, 3903, 3903, 3903, 4191, 3903,
6115      3903, 3903, 3903, 3903, 3903, 3904, 4191, 3904, 3904, 3904,
6116      3904, 3904, 3904, 3904, 3904, 3904, 4191, 3904, 3904, 3904,
6117      3904, 3904, 3904, 3904, 3904, 3904, 3904, 3904, 3904, 3904,
6118
6119      4191, 3904, 3904, 3904, 3904, 3904, 3904, 3905, 4191, 3905,
6120      3905, 3905, 3905, 3905, 3905, 3905, 3905, 4191, 4191, 3905,
6121      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
6122      3905, 3905, 4191, 3905, 3905, 3905, 3905, 3905, 3905, 3907,
6123      4191, 3907, 3907, 3907, 3907, 3907, 3907, 3907, 3907, 4191,
6124      4191, 3907, 3907, 3907, 3907, 3907, 3907, 3907, 3907, 3907,
6125      3907, 3907, 3907, 3907, 4191, 3907, 3907, 3907, 3907, 3907,
6126      3907, 3919, 4191, 3919, 3919, 3919, 3919, 3919, 3919, 3919,
6127      3919, 3919, 4191, 3919, 3919, 3919, 3919, 3919, 3919, 3919,
6128      3919, 3919, 3919, 3919, 3919, 3919, 4191, 3919, 3919, 3919,
6129
6130      3919, 3919, 3919, 3920, 4191, 3920, 3920, 3920, 3920, 3920,
6131      3920, 3920, 3920, 3920, 4191, 3920, 3920, 3920, 3920, 3920,
6132      3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 4191, 3920,
6133      3920, 3920, 3920, 3920, 3920, 3921, 4191, 3921, 3921, 3921,
6134      3921, 3921, 3921, 3921, 3921, 4191, 4191, 3921, 3921, 3921,
6135      3921, 3921, 3921, 3921, 3921, 3921, 3921, 3921, 3921, 3921,
6136      4191, 3921, 3921, 3921, 3921, 3921, 3921, 3923, 4191, 3923,
6137      3923, 3923, 3923, 3923, 3923, 3923, 3923, 4191, 4191, 3923,
6138      3923, 3923, 3923, 3923, 3923, 3923, 3923, 3923, 3923, 3923,
6139      3923, 3923, 4191, 3923, 3923, 3923, 3923, 3923, 3923, 3932,
6140
6141      4191, 3932, 3932, 3932, 3932, 3932, 3932, 3932, 3932, 3932,
6142      4191, 3932, 3932, 3932, 3932, 3932, 3932, 3932, 3932, 3932,
6143      3932, 3932, 3932, 3932, 4191, 3932, 3932, 3932, 3932, 3932,
6144      3932, 3933, 4191, 3933, 3933, 3933, 3933, 3933, 3933, 3933,
6145      3933, 3933, 4191, 3933, 3933, 3933, 3933, 3933, 3933, 3933,
6146      3933, 3933, 3933, 3933, 3933, 3933, 4191, 3933, 3933, 3933,
6147      3933, 3933, 3933,  275, 4191, 4191, 4191, 4191, 4191, 4191,
6148      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
6149      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
6150      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
6151
6152      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
6153      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
6154      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
6155      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
6156      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191
6157     } ;
6158
6159 static yyconst flex_int16_t yy_chk[32951] =
6160     {   0,
6161         0,    0,    1,    0,    2,    0,    1,    1,    2,    2,
6162       423,    1,    0,    2,  423,  281,  291,  291,    0,    1,
6163       281,    2,    3,    3,    3,    3,    3,    3,    3,    3,
6164         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
6165         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
6166         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
6167         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
6168         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
6169         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
6170         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
6171
6172         3,    3,    3,    3,    3,    3,    3,    3,    5,    5,
6173         5,    5,  290,    5,    5,  422,  422,  290,    5,    6,
6174         6,    6,    6,   19,    6,    6,    5,   19,   19,    6,
6175       432,  312,   19,   19,   19,  301,  312,    6,  301,  325,
6176        19,   33,  432,   20,  325,   33,   33,   20,   20,   19,
6177        33,   19,   20,   20,   20,   33,  283, 2402,   33,  283,
6178        20,    5,  310,  310,  310,  310,   33,  283,  821,   20,
6179       821,   20,    6,    7,    7,    7,    7,    7,    7,    7,
6180         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
6181         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
6182
6183         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
6184         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
6185         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
6186         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
6187         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
6188         7,    7,    7,    7,    7,    7,    7,    7,    7,    9,
6189         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
6190         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
6191         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
6192         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
6193
6194         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
6195         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
6196         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
6197         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
6198         9,    9,    9,    9,    9,   11,   11,   11,   11,   11,
6199        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
6200        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
6201        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
6202        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
6203        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
6204
6205        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
6206        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
6207        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
6208        11,   13,   13,   13,   13,   13,   13,   13,   13,   13,
6209        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
6210        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
6211        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
6212        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
6213        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
6214        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
6215
6216        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
6217        13,   13,   13,   13,   13,   13,   13,   15,  526,   16,
6218       343,   15,   15,   16,   16,  343,   15,  526,   16,  293,
6219       293,  293,  293,   34,   15,   39,   16,   34,   34,   39,
6220        39, 2408,   34,  330,   39,  347,  293,   34,  347,  330,
6221        34,  353,   39,  814,  293,  362,  353,  530,   34,  330,
6222       362,   39,  295,  295,  295,  295,  530,  814,   15,  295,
6223        16,   17,   17,   17,   17,   17,   17,   17,   17,   17,
6224        17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
6225        17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
6226
6227        17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
6228        17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
6229        17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
6230        17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
6231        17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
6232        17,   17,   17,   17,   17,   17,   17,   21,   21,   21,
6233        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
6234        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
6235        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
6236        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
6237
6238        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
6239        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
6240        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
6241        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
6242        21,   21,   21,   23,  854,   24,  370,   23,   23,   24,
6243        24,  370,   23, 2415,   24,  304,  304,  304,  304,   40,
6244        23,  390,   24,   40,   40, 1062,  390,  854,   40,   45,
6245        45,   45,   45,   51,   45,   45,   40,   51,   51,   45,
6246       304, 1062,   51,   51,   51,   40,  383,   45,  392,  383,
6247        51,  392,  405,  609,  609, 2416,   23,  405,   24,   25,
6248
6249        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
6250        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
6251        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
6252        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
6253        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
6254        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
6255        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
6256        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
6257        25,   25,   25,   25,   25,   27,   27,   27,   27,   27,
6258        27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
6259
6260        27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
6261        27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
6262        27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
6263        27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
6264        27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
6265        27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
6266        27,   27,   27,   27,   27,   27,   27,   27,   27,   27,
6267        27,   29,   29,   29,   29,  564,   29,   29,  564,  465,
6268       331,   29,   30,   30,   30,   30,  331,   30,   30,   29,
6269       413, 2471,   30,   31,  428,  413,  331,   31,   31,  428,
6270
6271        30,  464,   31,   31,  479,  572,  464,   31,  484,  479,
6272        31,  420,   32,  484,  420,   89,   32,   32,   31,   89,
6273        89,   32,   32,  465,   89,  475,   32,  596,  475,   32,
6274       596,  605,   89,  331,  605,   35,   29,   32,  499,   35,
6275        35,   36,   29,  499,   35,   36,   36,   30,   29,   35,
6276        36,  506,   35,   30, 2472,   36,  506,  727,   36,   30,
6277        35,  572,   46,   46,   46,   46,   36,   46,   46,  512,
6278       420,  420,   46,   31,  512, 1873,   49,   49,   49,   49,
6279        46,   49,   49, 2475,  475,  475,   49,   49,   49,  628,
6280       628,   49,   32,  727,   49,   50,   50,   50,   50,   90,
6281
6282        50,   50, 1873,   90,   90,   50,   50,   50,   90,  520,
6283        50,  633,  633,   50,  520,   35,   90,  425,  425,  425,
6284       425,   36,   37,   37,   37,   37,   37,   37,   37,   37,
6285        37,   37,   37,   37,   37,   37,   37,   37,   37,   37,
6286        37,   37,   37,   37,   37,   37,   37,   37,   37,   37,
6287        37,   37,   37,   37,   37,   37,   37,   37,   37,   37,
6288        37,   37,   37,   37,   37,   37,   37,   37,   37,   37,
6289        37,   37,   37,   37,   37,   37,   37,   37,   37,   37,
6290        37,   37,   37,   37,   37,   37,   37,   37,   37,   37,
6291        37,   37,   37,   37,   37,   37,   37,   37,   37,   37,
6292
6293        37,   37,   37,   37,   37,   37,   37,   37,   41,   41,
6294        41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
6295        41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
6296        41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
6297        41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
6298        41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
6299        41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
6300        41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
6301        41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
6302        41,   41,   41,   41,   43,   43,   43,   43,   43,   43,
6303
6304        43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
6305        43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
6306        43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
6307        43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
6308        43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
6309        43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
6310        43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
6311        43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
6312        47, 1218,   48,  538,   47,   47,   48,   48,  538,   47,
6313        47,   48,   48,  549,   47, 1218,   48,   47,  549,   48,
6314
6315       380,  380,  380,  380,   47,   47,   48,   48,   52,  556,
6316      2476,   53,   52,   52,  556,   53,   53,   52,   52,   52,
6317        53, 2478,   54,  641,  566,   52,   54,   54,   53,  566,
6318       584,   54,  915,   59, 2479,  584,   53,   59,   59,   54,
6319       598,  608,   59,   59,   60,  598,  608,   54,   60,   60,
6320        59,  617,  623,   60,   60,  915,  617,  623,   59,   59,
6321        47,   60,   48,   71,  921, 2480,  632,   71,   71,   60,
6322        60,  632,   71,   72, 1052,  641,  635,   72,   72,  635,
6323        71,  380,   72,  285,  285,  285,  285,  921,   71,  635,
6324        72,   53,  302,  302,  302,  302,  746, 1052,   72,  302,
6325
6326       746,  285,   54,   55,   55,   55,   55,   55,   55,   55,
6327        55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
6328        55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
6329        55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
6330        55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
6331        55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
6332        55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
6333        55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
6334        55,   55,   55,   55,   55,   55,   55,   55,   55,   57,
6335        57,   57,   57,   61,   57,   57,   62,   61,   61,   57,
6336
6337        62,   62,   61,  593, 1982,   62,  593,   57,  604,  593,
6338        61,  604,  643,   62,  604,   57,  644,   57, 1077, 1077,
6339      1982,   63,   63,   63,   63,  107,   63,   63,  640,  107,
6340       107,   63, 1637,  640,  107,   64,   64,   64,   64,   63,
6341        64,   64,  107, 2481,   61,   64,   61,   62,   63,   62,
6342      1637,   57,   63,   64,  305,  305,  305,  305,  658,   57,
6343       645, 1365,   64,  658,  643, 1365,   64, 2483,  644, 1217,
6344        57,   58,   58,   58,   58,  647,   58,   58, 1217,  305,
6345      2484,   58,   65,   65,   65,   65,  670,   65,   65,   58,
6346      1273,  670,   65,  303,  303,  303,  303,   58,  784,   58,
6347
6348        65,  784,   63,   63, 1273,   66,   66,   66,   66,   65,
6349        66,   66,  645,   65, 2485,   66,   64,   64,  303,   67,
6350        67,   67,   67,   66,   67,   67,   79,  647, 1349,   67,
6351        79,   79,   66,   58,  678,   79,   66,   67, 1349,  678,
6352        80,   58,  686,   79,   80,   80,   67,  686,  805,   80,
6353        67,  805,   58,  306,  306,  306,  306,   80,  818,  986,
6354       306,  818,  986,   65,   65,   68,   68,   68,   68, 2290,
6355        68,   68,   81,  694,  303,   68,   81,   81,  694, 1225,
6356       705,   81, 1225,   68,   81,  705,   66,   66, 1244,   81,
6357       713, 1244,   68,   82, 2290,  713,   68,   82,   82,  108,
6358
6359        67,   67,   82,  108,  108,   82,  723,   79,  108,  743,
6360        82,  723,   91,   91,  743,   91,  108,   91,   91, 1206,
6361      1206,   80,   91,  756,   81,   91,   92,   92,  756,   92,
6362        91,   92,   92,  758, 1292, 2486,   92, 1292,  758,   92,
6363       498,  498,  498,  498,   92,   82,   68,   68,   69,   69,
6364        69,   69,   69,   69,   69,   69,   69,   69,   69,   69,
6365        69,   69,   69,   69,   69,   69,   69,   69,   69,   69,
6366        69,   69,   69,   69,   69,   69,   69,   69,   69,   69,
6367        69,   69,   69,   69,   69,   69,   69,   69,   69,   69,
6368        69,   69,   69,   69,   69,   69,   69,   69,   69,   69,
6369
6370        69,   69,   69,   69,   69,   69,   69,   69,   69,   69,
6371        69,   69,   69,   69,   69,   69,   69,   69,   69,   69,
6372        69,   69,   69,   69,   69,   69,   69,   69,   69,   69,
6373        69,   69,   69,   69,   73,   73,   73,   73,   73,   73,
6374        73,   73,   73,   73,   73,   73,   73,   73,   73,   73,
6375        73,   73,   73,   73,   73,   73,   73,   73,   73,   73,
6376        73,   73,   73,   73,   73,   73,   73,   73,   73,   73,
6377        73,   73,   73,   73,   73,   73,   73,   73,   73,   73,
6378        73,   73,   73,   73,   73,   73,   73,   73,   73,   73,
6379        73,   73,   73,   73,   73,   73,   73,   73,   73,   73,
6380
6381        73,   73,   73,   73,   73,   73,   73,   73,   73,   73,
6382        73,   73,   73,   73,   73,   73,   73,   73,   73,   73,
6383        75,   75,  763,   75,  772,   75,   75,  763,  781,  772,
6384        75,   76,   76,  781,   76,   97,   76,   76,   75,   97,
6385        97,   76, 2487,  794,   97,   97,   97,   75,  794,   76,
6386      1063,   75,   97, 1063,   77,   77,  806,   77,   76,   77,
6387        77,  806,   76, 1063,   77,   78,   78, 1262,   78,  845,
6388        78,   78,   77,   75,  845,   78, 1262,  286,  286,  286,
6389       286,   77,   83,   78,   76,   77,   83,   83,  724, 1553,
6390       724,   83,   78,  868,   83,  286,   78, 1302,  868,   83,
6391
6392      1302,   75,   75,  880, 2304,   84,  724,   77,  880,   84,
6393        84,  891,   76,   76,   84,   85,  891,   84,   78,   85,
6394        85, 1272,   84, 1275,   85,  397,  397,  397,  397, 1275,
6395      1272, 2304,   85,   86,   83,   77,   77,   86,   86, 1275,
6396        85, 1553,   86,  397,   93,   85,   78,   78,   93,   93,
6397        86,   87,   87,   93, 2488,   87,   87,   84,   86,  860,
6398        87,   93,  860,   86,  860,   88,   88,   94,   87,   88,
6399        88,   94,   94,  822,   88,  822,   94,  548,  548,  548,
6400       548,   95,   88,   96,   94,   95,   95,   96,   96,  548,
6401        95, 1643,   96, 1643,  900,   85,   93,   98,   95,  900,
6402
6403        96,   98,   98,   87, 1534, 1534,   98,   98,   98,  417,
6404       417,  417,  417,   86,   98, 1544, 1544,   88,  822,   94,
6405        99,   99,   99,   99,  912,   99,   99,  101,  927,  912,
6406        99,  101,  101,  927,  417,  823,  101,  823,   99, 1457,
6407       100,  100,  100,  100,  101,  100,  100,   99, 1457,   99,
6408       100,  940,  950,  101,  961,  101,  940,  950,  100,  961,
6409       967,   95,   95,   96,   96,  967,  102,  100,  103,  100,
6410       102,  102,  103,  103, 2490,  102,  977,  103,  103,  103,
6411       823,  977,  983,  102,  105,  103,  104,  983,  105,  105,
6412       104,  104,  102,  105,  102,  104,  104,  104, 1341, 2491,
6413
6414       106,  105,  995,  104,  106,  106, 1341,  995, 1341,  106,
6415       109,  109,  109,  109,  133,  109,  109,  106,  133,  133,
6416       109,  109, 1966,  133,  117,  117,  117,  117,  109,  117,
6417       117,  133, 1966,  646,  117,  105, 1555,  105,  110,  110,
6418       110,  110,  117,  110,  110,  646, 1461, 1004,  110,  110,
6419       646,  106, 1004,  106, 2492, 1461,  110,  111,  111,  111,
6420       111,  131,  111,  111, 1014,  131,  131,  111,  111, 1014,
6421       131,  112,  112,  112,  112,  111,  112,  112,  131, 1024,
6422      2493,  112,  112,  117, 1024,  646, 2494,  131, 1555,  112,
6423       113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
6424
6425       113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
6426       113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
6427       113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
6428       113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
6429       113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
6430       113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
6431       113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
6432       113,  113,  113,  113,  113,  113,  115, 1191,  116, 1034,
6433       115,  115,  116,  116, 1034,  115, 2497,  116,  335,  335,
6434       335,  335, 1191,  115, 2498,  116,  118,  118,  118,  118,
6435
6436       988,  118,  118,  988, 1191, 2499,  118,  119,  119,  119,
6437       119,  988,  119,  119,  118,  335, 1041,  119, 1049, 1319,
6438       119, 1041, 1319, 1049,  119,  119,  120,  120,  120,  120,
6439      1061,  120,  120, 1546, 1546, 1061,  120,  132,  119,  120,
6440      1070,  132,  132,  120,  120, 1070,  132,  294,  294,  294,
6441       294, 1644, 2500, 1644,  132,  118,  115,  120,  116, 2505,
6442       119,  134, 1076,  132,  294,  134,  134, 1076, 1339,  335,
6443       134, 1339,  294,  561,  561,  561,  561, 2508,  134,  120,
6444       121,  121,  121,  121,  121,  121,  121,  121,  121,  121,
6445       121,  121,  121,  121,  121,  121,  121,  121,  121,  121,
6446
6447       121,  121,  121,  121,  121,  121,  121,  121,  121,  121,
6448       121,  121,  121,  121,  121,  121,  121,  121,  121,  121,
6449       121,  121,  121,  121,  121,  121,  121,  121,  121,  121,
6450       121,  121,  121,  121,  121,  121,  121,  121,  121,  121,
6451       121,  121,  121,  121,  121,  121,  121,  121,  121,  121,
6452       121,  121,  121,  121,  121,  121,  121,  121,  121,  121,
6453       121,  121,  121,  121,  121,  121,  123,  123,  123,  123,
6454       123,  123,  123,  123,  123,  123,  123,  123,  123,  123,
6455       123,  123,  123,  123,  123,  123,  123,  123,  123,  123,
6456       123,  123,  123,  123,  123,  123,  123,  123,  123,  123,
6457
6458       123,  123,  123,  123,  123,  123,  123,  123,  123,  123,
6459       123,  123,  123,  123,  123,  123,  123,  123,  123,  123,
6460       123,  123,  123,  123,  123,  123,  123,  123,  123,  123,
6461       123,  123,  123,  123,  123,  123,  123,  123,  123,  123,
6462       123,  123,  123,  123,  123,  123,  123,  123,  123,  123,
6463       123,  123,  125,  125,  125,  125,  125,  125,  125,  125,
6464       125,  125,  125,  125,  125,  125,  125,  125,  125,  125,
6465       125,  125,  125,  125,  125,  125,  125,  125,  125,  125,
6466       125,  125,  125,  125,  125,  125,  125,  125,  125,  125,
6467       125,  125,  125,  125,  125,  125,  125,  125,  125,  125,
6468
6469       125,  125,  125,  125,  125,  125,  125,  125,  125,  125,
6470       125,  125,  125,  125,  125,  125,  125,  125,  125,  125,
6471       125,  125,  125,  125,  125,  125,  125,  125,  125,  125,
6472       125,  125,  125,  125,  125,  125,  125,  125,  127,  127,
6473       127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
6474       127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
6475       127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
6476       127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
6477       127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
6478       127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
6479
6480       127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
6481       127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
6482       127,  127,  127,  127,  129, 1465,  130, 1085,  129,  129,
6483       130,  130, 1085,  129, 1465,  130,  418,  418,  418,  418,
6484       137,  129,  138,  130,  137,  137,  138,  138, 1971,  137,
6485      1971,  138,  316,  316,  316,  316, 1278,  137, 1971,  138,
6486      2513,  418, 1278,  316,  141,  137,  142,  138,  141,  141,
6487       142,  142, 1278,  141, 1096,  142, 1652,  316, 2516, 1096,
6488       129,  141,  130,  142, 1523,  171,  129, 1105,  130,  171,
6489       171, 1652, 1105, 1523,  171,  171,  129,  129,  130,  130,
6490
6491      1347, 2517,  171, 1347,  129,  129,  130,  130,  135,  135,
6492       135,  135,  135,  135,  135,  135,  135,  135,  135,  135,
6493       135,  135,  135,  135,  135,  135,  135,  135,  135,  135,
6494       135,  135,  135,  135,  135,  135,  135,  135,  135,  135,
6495       135,  135,  135,  135,  135,  135,  135,  135,  135,  135,
6496       135,  135,  135,  135,  135,  135,  135,  135,  135,  135,
6497       135,  135,  135,  135,  135,  135,  135,  135,  135,  135,
6498       135,  135,  135,  135,  135,  135,  135,  135,  135,  135,
6499       135,  135,  135,  135,  135,  135,  135,  135,  135,  135,
6500       135,  135,  135,  135,  139,  139,  139,  139,  139,  139,
6501
6502       139,  139,  139,  139,  139,  139,  139,  139,  139,  139,
6503       139,  139,  139,  139,  139,  139,  139,  139,  139,  139,
6504       139,  139,  139,  139,  139,  139,  139,  139,  139,  139,
6505       139,  139,  139,  139,  139,  139,  139,  139,  139,  139,
6506       139,  139,  139,  139,  139,  139,  139,  139,  139,  139,
6507       139,  139,  139,  139,  139,  139,  139,  139,  139,  139,
6508       139,  139,  139,  139,  139,  139,  139,  139,  139,  139,
6509       139,  139,  139,  139,  139,  139,  139,  139,  139,  139,
6510       143,  143,  143,  143,  143,  143,  143,  143,  143,  143,
6511       143,  143,  143,  143,  143,  143,  143,  143,  143,  143,
6512
6513       143,  143,  143,  143,  143,  143,  143,  143,  143,  143,
6514       143,  143,  143,  143,  143,  143,  143,  143,  143,  143,
6515       143,  143,  143,  143,  143,  143,  143,  143,  143,  143,
6516       143,  143,  143,  143,  143,  143,  143,  143,  143,  143,
6517       143,  143,  143,  143,  143,  143,  143,  143,  143,  143,
6518       143,  143,  143,  143,  143,  143,  143,  143,  143,  143,
6519       143,  143,  143,  143,  143,  143,  145, 1112, 2519,  146,
6520       145,  145, 1112,  146,  146,  145, 1117,  145,  146, 1127,
6521       146, 1117, 1491,  145, 1127, 1491,  146,  147,  147,  147,
6522       147,  147,  147,  147,  147,  147,  147,  147,  147,  147,
6523
6524       147,  147,  147,  147,  147,  147,  147,  147,  147,  147,
6525       147,  147,  147,  147,  147,  147,  147,  147,  147,  147,
6526       147,  147,  147,  147,  147,  147,  147,  147,  147,  147,
6527       147,  147,  147,  147,  147,  147,  147,  147,  147,  147,
6528       147,  147,  147,  147,  147,  147,  147,  147,  147,  147,
6529       147,  147,  147,  147,  147,  147,  147,  147,  147,  147,
6530       147,  147,  147,  147,  147,  147,  147,  147,  147,  147,
6531       147,  147,  147,  149, 1140, 1556,  150,  149,  149, 1140,
6532       150,  150,  149, 1152,  149,  150, 1161,  150, 1152, 1161,
6533       149,  151, 2520,  150,  152,  151,  151,  155,  152,  152,
6534
6535       151,  155,  155,  152, 1160, 1161,  155, 1156,  151, 1160,
6536      1156,  152, 1332, 1171,  155, 1332, 2521,  151, 1171,  156,
6537       152,  153,  155,  156,  156,  153,  153, 1556,  156, 1176,
6538       153, 2522,  153, 2374, 1176, 1156,  156, 2374,  153, 1178,
6539      1139,  161, 1178, 1139,  156,  161,  161, 1139, 1715, 1139,
6540       161,  172,  161, 1139, 1189,  172,  172, 1178,  161, 1189,
6541       172,  172, 1715, 1557, 1184,  173, 1156, 1184,  172,  173,
6542       173, 1332, 1332, 1190,  173,  161,  173,  153, 1190,  153,
6543      1182, 2524,  173,  153, 1156, 1530,  161,  161, 1530,  153,
6544       161, 1184, 1182,  153,  153, 1195,  153, 1182,  153,  154,
6545
6546      1195, 2529,  162,  154,  154, 2530,  162,  162,  154, 1196,
6547       154,  162, 2533,  162, 1196, 1557,  154,  174, 1204,  162,
6548       183,  174,  174, 1204,  183,  183,  174, 1216,  174,  183,
6549       183, 2535, 1216, 1321,  174,  177,  162,  183, 1321,  177,
6550       177,  191, 1958, 1958,  177,  191,  191,  162,  162,  177,
6551       191,  162,  177, 1207, 2536,  154, 1207,  154,  191, 1211,
6552       177,  154, 1211, 1327, 1329,  191, 1207,  154, 1327, 1329,
6553      1211,  154,  154, 2538,  154, 2539,  154,  157,  157,  157,
6554       157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
6555       157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
6556
6557       157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
6558       157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
6559       157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
6560       157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
6561       157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
6562       157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
6563       157,  157,  157,  159,  159,  159,  159,  159,  159,  159,
6564       159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
6565       159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
6566       159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
6567
6568       159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
6569       159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
6570       159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
6571       159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
6572       159,  159,  159,  159,  159,  159,  159,  159,  159,  163,
6573       163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
6574       163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
6575       163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
6576       163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
6577       163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
6578
6579       163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
6580       163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
6581       163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
6582       163,  163,  163,  163,  163,  165,  165,  165,  165,  165,
6583       165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
6584       165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
6585       165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
6586       165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
6587       165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
6588       165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
6589
6590       165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
6591       165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
6592       165,  167,  167,  167,  167,  184,  167,  167, 2540,  184,
6593       184,  167,  167,  167,  184,  184,  167,  167, 1528,  167,
6594       178, 1536,  184, 1528,  178,  178, 1536,  167,  167,  178,
6595       167,  167,  167, 1194,  178, 1352, 1194,  178,  560,  560,
6596       560,  560,  167, 1352,  560,  178, 1194,  167, 1352, 1605,
6597       167, 1194,  179,  167, 1605,  167,  179,  179, 1787, 1609,
6598      1194,  179,  179,  179,  419,  419,  419,  419, 1609,  179,
6599      1714,  419, 1900,  398,  398,  398,  398,  167,  179, 1714,
6600
6601       179, 1900,  167,  167,  168,  168,  168,  168,  192,  168,
6602       168,  398,  192,  192,  168,  168,  168,  192,  435,  168,
6603       168, 1541,  168, 1787, 1541,  192,  381,  381,  381,  381,
6604       168,  168,  192,  168,  168,  168, 2541,  180, 2546, 1541,
6605      2548,  180,  180,  381, 1607,  168,  180,  180,  180, 1607,
6606       168,  381, 1787,  168,  180,  243,  168,  205,  168,  243,
6607       243,  205,  205,  180,  243,  180,  205,  205,  205, 1901,
6608       435, 2549,  243, 2550,  205, 1617,  435, 2551, 1617,  381,
6609       168,  435,  435, 1901,  435,  168,  168,  169,  169,  169,
6610       169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
6611
6612       169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
6613       169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
6614       169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
6615       169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
6616       169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
6617       169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
6618       169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
6619       169,  169,  169,  175,  175,  175,  175,  175,  175,  175,
6620       175,  175,  175,  175,  175,  175,  175,  175,  175,  175,
6621       175,  175,  175,  175,  175,  175,  175,  175,  175,  175,
6622
6623       175,  175,  175,  175,  175,  175,  175,  175,  175,  175,
6624       175,  175,  175,  175,  175,  175,  175,  175,  175,  175,
6625       175,  175,  175,  175,  175,  175,  175,  175,  175,  175,
6626       175,  175,  175,  175,  175,  175,  175,  175,  175,  175,
6627       175,  175,  175,  175,  175,  175,  175,  175,  175,  175,
6628       175,  175,  175,  175,  175,  175,  175,  175,  175,  181,
6629       181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
6630       181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
6631       181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
6632       181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
6633
6634       181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
6635       181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
6636       181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
6637       181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
6638       181,  181,  181,  181,  181,  185, 2006, 2006,  186,  185,
6639       185, 1345,  186,  186,  185,  185,  185,  186,  186,  186,
6640      1345, 1583,  185,  197, 2554,  186, 1345,  197,  197,  198,
6641      2010, 2010,  197,  198,  198,  197, 1212, 2558,  198, 1212,
6642       197,  198,  373,  373,  373,  373,  198, 1212, 1648,  373,
6643      1648, 1585,  292,  292,  292,  292,  185, 1583, 2153,  186,
6644
6645       187,  187,  187,  187, 1263,  187,  187, 1263, 1263,  292,
6646       187,  187,  187, 1548, 2559,  197, 1548,  292,  187,  199,
6647      1713,  198, 1263,  199,  199, 1713, 1548, 1585,  199, 1214,
6648      1648,  199, 1214,  200, 2153, 2562,  199,  200,  200,  201,
6649      1214,  187,  200,  201,  201,  200,  187,  373,  201,  187,
6650       200,  201, 1926,  202, 1952,  203,  201,  202,  202,  203,
6651       203, 1926,  202,  373,  203,  202, 1630,  203, 1952, 1630,
6652       202,  199,  203,  292, 2565, 2305,  187,  188,  188,  188,
6653       188, 1642,  188,  188, 1642,  200, 1954,  188,  188,  188,
6654      1856,  201,  204, 1856,  207,  188,  204,  204,  207,  207,
6655
6656      1954,  204, 2305,  207,  204,  202, 2525,  203,  208,  204,
6657       206,  207,  208,  208,  206,  206, 1931,  208,  188,  206,
6658       206,  206, 1931,  188,  209,  208,  188,  206,  209,  209,
6659      2406, 2406, 1931,  209,  209,  209,  296,  296,  296,  296,
6660       296,  209, 2525,  296,  204,  404,  404,  404,  404,  562,
6661       562,  562,  562,  188,  189,  189,  189,  189, 2523,  189,
6662       189,  296,  221,  404,  189,  189,  221,  221, 2413, 2413,
6663      2140,  221,  189,  221,  207,  207, 2523, 1754, 1931,  221,
6664      1754,  189,  210,  189, 2140, 1869,  210,  210,  208,  208,
6665      1869,  210,  210,  210, 1466,  189, 2567, 1466, 1466,  210,
6666
6667       189,  211, 1754,  189,  212,  211,  211, 2570,  212,  212,
6668       211,  222, 1466,  212, 1779,  222,  222, 1779,  211,  296,
6669       222,  212,  222,  491,  491,  491,  491, 1779,  222, 2143,
6670       189,  190,  190,  190,  190,  247,  190,  190,  491,  247,
6671       247,  190,  190, 2143,  247,  213,  213, 2573,  213,  190,
6672       213,  213,  247, 1280, 2576,  213,  213,  213,  190, 1280,
6673       190, 1867,  249,  213, 1867, 1861,  249,  249, 1861, 1280,
6674      1334,  249,  190,  249, 2581, 1334, 1334,  190, 1334,  249,
6675       190,  211,  211, 1861,  212,  212,  214,  214, 1867,  214,
6676      1677,  214,  214, 1677, 2582, 1677,  214,  214,  214,  468,
6677
6678       468,  468,  468, 1280,  214, 2585,  468,  190,  193,  193,
6679       193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
6680       193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
6681       193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
6682       193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
6683       193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
6684       193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
6685       193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
6686       193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
6687       193,  193,  193,  193,  195,  195,  195,  195,  195,  195,
6688
6689       195,  195,  195,  195,  195,  195,  195,  195,  195,  195,
6690       195,  195,  195,  195,  195,  195,  195,  195,  195,  195,
6691       195,  195,  195,  195,  195,  195,  195,  195,  195,  195,
6692       195,  195,  195,  195,  195,  195,  195,  195,  195,  195,
6693       195,  195,  195,  195,  195,  195,  195,  195,  195,  195,
6694       195,  195,  195,  195,  195,  195,  195,  195,  195,  195,
6695       195,  195,  195,  195,  195,  195,  195,  195,  195,  195,
6696       195,  195,  195,  195,  195,  195,  195,  195,  195,  195,
6697       215,  215,  215,  215, 1888,  215,  215, 2586, 1951, 1888,
6698       215,  215,  215,  492,  492,  492,  492, 1951,  215, 1978,
6699
6700       219,  219,  219,  219, 1978,  219,  219,  215,  492,  215,
6701       219,  219,  219, 1889, 1960,  219, 1889, 1960,  219,  220,
6702       220,  220,  220,  227,  220,  220, 1889,  227,  227,  220,
6703       220,  220,  227, 1442,  220, 1519, 1442,  220, 1519, 1529,
6704       227, 1519, 1529,  250, 1953, 1529, 1524,  250,  250, 1524,
6705      1524, 2172,  250, 1953,  250,  215,  216,  216,  216,  216,
6706       250,  216,  216, 2587, 1524, 2172,  216,  216,  216, 2589,
6707       521,  521,  521,  521,  216,  227,  223,  223,  223,  223,
6708      2590,  223,  223,  216, 2591,  216,  223,  223,  223,  521,
6709      2224,  223, 1442, 1442,  223,  224,  224,  224,  224, 1610,
6710
6711       224,  224, 1610, 1610, 2224,  224,  224,  224, 2592, 1862,
6712       224,  251, 1862,  224, 2097,  251,  251, 1610, 1750, 2097,
6713       251, 1750,  251,  570,  570,  570,  570, 1862,  251, 1750,
6714       521,  216,  217,  217,  217,  217,  217,  217,  217,  217,
6715       217,  217,  217,  217,  217,  217,  217,  217,  217,  217,
6716       217,  217,  217,  217,  217,  217,  217,  217,  217,  217,
6717       217,  217,  217,  217,  217,  217,  217,  217,  217,  217,
6718       217,  217,  217,  217,  217,  217,  217,  217,  217,  217,
6719       217,  217,  217,  217,  217,  217,  217,  217,  217,  217,
6720       217,  217,  217,  217,  217,  217,  217,  217,  217,  217,
6721
6722       217,  217,  217,  217,  217,  217,  217,  217,  217,  217,
6723       217,  217,  217,  217,  217,  217,  217,  217,  225, 2593,
6724      1970,  226,  225,  225,  228,  226,  226,  225,  228,  228,
6725       226, 1852, 1970,  228, 1852,  225, 1970, 1443,  226,  229,
6726      1443,  228,  230,  229,  229, 2139,  230,  230,  229, 2285,
6727      1852,  230, 2285,  231, 2139, 1794,  229,  231,  231,  230,
6728      2596, 1878,  231,  231,  231,  653,  653,  653,  653,  225,
6729       231,  225,  226,  232,  226, 1894,  228,  232,  232, 1647,
6730      2597, 1647,  232,  232,  232, 1894,  466,  466,  466,  466,
6731       232,  229, 2598,  231,  230, 2599, 1443, 1443,  231,  233,
6732
6733      1894,  231, 1794,  233,  233,  234, 1878, 2602,  233,  234,
6734       234,  466, 1894,  232,  234,  252,  233, 1896,  232,  252,
6735       252,  232,  234, 1647,  252,  233,  252,  233,  231, 2142,
6736      1794,  234,  252,  234, 2544, 1878, 2544,  235, 2142,  233,
6737      1855,  235,  235, 1855,  233,  234,  235,  233,  232,  235,
6738       234, 2603, 2349,  234,  235,  236,  236, 2349,  236, 1855,
6739       236,  236, 2604, 2605, 1896,  236,  237,  235,  236, 1897,
6740       237,  237, 1897,  236,  233,  237,  317,  317,  317,  317,
6741       234, 2607, 1897,  237, 2544, 1918,  236,  317, 1918,  235,
6742       238, 2608, 1896,  239,  238,  238,  237,  239,  239,  238,
6743
6744       240,  317,  239, 1918,  240,  240, 2223,  238,  236,  240,
6745       239,  406,  406,  406,  406, 2223, 2226,  240,  237, 2189,
6746       238, 2189,  265,  239, 2612, 2226,  265,  265, 2614,  406,
6747       240,  265,  266,  265,  317, 1836,  266,  266, 1836,  265,
6748      2615,  266,  238,  266, 1836,  239, 2616, 2617, 1836,  266,
6749      2618, 2189,  240,  241,  241,  241,  241,  241,  241,  241,
6750       241,  241,  241,  241,  241,  241,  241,  241,  241,  241,
6751       241,  241,  241,  241,  241,  241,  241,  241,  241,  241,
6752       241,  241,  241,  241,  241,  241,  241,  241,  241,  241,
6753       241,  241,  241,  241,  241,  241,  241,  241,  241,  241,
6754
6755       241,  241,  241,  241,  241,  241,  241,  241,  241,  241,
6756       241,  241,  241,  241,  241,  241,  241,  241,  241,  241,
6757       241,  241,  241,  241,  241,  241,  241,  241,  241,  241,
6758       241,  241,  241,  241,  241,  241,  241,  241,  241,  244,
6759       244,  244,  244,  244,  244,  244,  244,  244,  244,  244,
6760       244,  244,  244,  244,  244,  244,  244,  244,  244,  244,
6761       244,  244,  244,  244,  244,  244,  244,  244,  244,  244,
6762       244,  244,  244,  244,  244,  244,  244,  244,  244,  244,
6763       244,  244,  244,  244,  244,  244,  244,  244,  244,  244,
6764       244,  244,  244,  244,  244,  244,  244,  244,  244,  244,
6765
6766       244,  244,  244,  244,  244,  244,  244,  244,  244,  244,
6767       244,  244,  244,  244,  244,  244,  244,  244,  244,  244,
6768       244,  244,  244,  244,  244,  245,  245,  245,  245,  245,
6769       245,  245,  245,  245,  245,  245,  245,  245,  245,  245,
6770       245,  245,  245,  245,  245,  245,  245,  245,  245,  245,
6771       245,  245,  245,  245,  245,  245,  245,  245,  245,  245,
6772       245,  245,  245,  245,  245,  245,  245,  245,  245,  245,
6773       245,  245,  245,  245,  245,  245,  245,  245,  245,  245,
6774       245,  245,  245,  245,  245,  245,  245,  245,  245,  245,
6775       245,  245,  245,  245,  245,  245,  245,  245,  245,  245,
6776
6777       245,  245,  245,  245,  245,  245,  245,  245,  245,  245,
6778       245,  248,  248,  248,  248,  248,  248,  248,  248,  248,
6779       248,  248,  248,  248,  248,  248,  248,  248,  248,  248,
6780       248,  248,  248,  248,  248,  248,  248,  248,  248,  248,
6781       248,  248,  248,  248,  248,  248,  248,  248,  248,  248,
6782       248,  248,  248,  248,  248,  248,  248,  248,  248,  248,
6783       248,  248,  248,  248,  248,  248,  248,  248,  248,  248,
6784       248,  248,  248,  248,  248,  248,  248,  248,  248,  248,
6785       248,  248,  248,  248,  248,  248,  248,  248,  248,  248,
6786       248,  248,  248,  248,  248,  248,  248,  253, 2188,  254,
6787
6788      2188,  253,  253,  254,  254, 2634,  253, 2289,  254,  412,
6789       412,  412,  412,  267,  253,  268,  254,  267,  267,  268,
6790       268, 2289,  267, 2635,  268, 2636, 2619,  412, 2316,  269,
6791       267,  270,  268,  269,  269,  270,  270, 2316,  269, 2637,
6792       270,  414,  414,  414,  414, 2638,  269, 2188,  270, 2412,
6793       253, 2619,  254,  588,  588,  588,  588, 2518, 2412,  414,
6794       588,  654,  654,  654,  654, 2639, 2518,  253, 2640,  254,
6795       255,  255,  255,  255,  255,  255,  255,  255,  255,  255,
6796       255,  255,  255,  255,  255,  255,  255,  255,  255,  255,
6797       255,  255,  255,  255,  255,  255,  255,  255,  255,  255,
6798
6799       255,  255,  255,  255,  255,  255,  255,  255,  255,  255,
6800       255,  255,  255,  255,  255,  255,  255,  255,  255,  255,
6801       255,  255,  255,  255,  255,  255,  255,  255,  255,  255,
6802       255,  255,  255,  255,  255,  255,  255,  255,  255,  255,
6803       255,  255,  255,  255,  255,  255,  255,  255,  255,  255,
6804       255,  255,  255,  255,  255,  255,  257,  257,  257,  257,
6805       257,  257,  257,  257,  257,  257,  257,  257,  257,  257,
6806       257,  257,  257,  257,  257,  257,  257,  257,  257,  257,
6807       257,  257,  257,  257,  257,  257,  257,  257,  257,  257,
6808       257,  257,  257,  257,  257,  257,  257,  257,  257,  257,
6809
6810       257,  257,  257,  257,  257,  257,  257,  257,  257,  257,
6811       257,  257,  257,  257,  257,  257,  257,  257,  257,  257,
6812       257,  257,  257,  257,  257,  257,  257,  257,  257,  257,
6813       257,  257,  257,  257,  257,  257,  257,  257,  257,  257,
6814       257,  257,  259, 2645,  260, 2646,  259,  259,  260,  260,
6815      2647,  259,  259,  260,  260, 2648, 2537,  271,  271,  259,
6816       271,  260,  271,  271, 2537, 2247, 2649,  271, 2247, 2650,
6817       271,  345,  345,  345,  345,  271,  300,  300,  300,  300,
6818       426,  426,  426,  426,  271, 2651, 1838,  300,  271, 1838,
6819      2247,  300, 2652,  300, 2093, 1838,  345, 2093,  426, 1838,
6820
6821       345,  300,  300,  300,  680,  680,  680,  680, 2653, 2654,
6822       271,  259, 2093,  260,  261,  261,  261,  261,  261,  261,
6823       261,  261,  261,  261,  261,  261,  261,  261,  261,  261,
6824       261,  261,  261,  261,  261,  261,  261,  261,  261,  261,
6825       261,  261,  261,  261,  261,  261,  261,  261,  261,  261,
6826       261,  261,  261,  261,  261,  261,  261,  261,  261,  261,
6827       261,  261,  261,  261,  261,  261,  261,  261,  261,  261,
6828       261,  261,  261,  261,  261,  261,  261,  261,  261,  261,
6829       261,  261,  261,  261,  261,  261,  261,  261,  261,  261,
6830       261,  261,  261,  261,  261,  261,  261,  261,  261,  261,
6831
6832       263,  263, 2655,  263, 2385,  263,  263, 2385, 2656, 2385,
6833       263,  264,  264, 2620,  264, 2657,  264,  264,  263, 2302,
6834      2003,  264, 2302, 2003,  431,  431,  431,  431,  263,  264,
6835       272,  272, 2302,  272, 2658,  272,  272, 2660, 2620,  264,
6836       272,  273,  431,  272, 2661,  273,  273,  273,  272, 2504,
6837       273, 2003, 2504,  273, 2504, 2662, 2663,  272,  273,  263,
6838      2600,  272,  297,  297,  297,  297, 2625,  273, 2600,  297,
6839       264,  273, 2625, 2003, 2324,  263, 2622,  263, 2664,  297,
6840      2324,  263, 2625,  272, 2303, 2622,  264, 2303,  264, 2665,
6841      2324, 2666,  264,  273,  273,  274,  274, 2303,  274, 2667,
6842
6843       274,  274,  274, 2668, 2669,  274, 2670, 2671,  274,  318,
6844       318,  318,  318,  274,  307,  307,  307,  307,  307, 2672,
6845       318,  307,  274, 2673, 2324, 2545,  274, 2545,  424,  424,
6846       424,  424, 2674, 2579,  318,  424, 2579,  424, 2579,  307,
6847      2675,  424, 2676, 2677, 2678,  297, 2679, 2680,  274,  274,
6848      2682, 2683, 2684,  424,  436,  436,  436,  436, 2677,  467,
6849       467,  467,  467,  471,  471,  471,  471, 2681, 2685, 2687,
6850       318,  472,  472,  472,  472, 2545, 2681,  472, 2688,  436,
6851      2692,  436, 2693,  424,  467, 2699, 2700, 2702,  471,  472,
6852       471,  681,  681,  681,  681, 2725, 2726,  307,  374,  374,
6853
6854       374,  374,  374,  374,  374,  374,  374,  374,  374,  374,
6855       374,  374,  374,  374, 2750,  374,  374,  374,  374,  374,
6856       374,  374,  374,  374,  374,  374,  374,  374,  374,  374,
6857       374,  374,  374,  374,  374,  374,  374,  374,  374,  374,
6858       374,  374,  374,  374,  374,  374,  374,  374,  374,  374,
6859       374,  374,  374,  374,  374,  374,  374,  374,  374,  374,
6860       374,  374,  374,  374,  374,  374,  374,  374,  374,  374,
6861       374,  374,  374,  374,  374,  374,  374,  374,  374,  374,
6862      2751,  374,  374,  374,  375,  375,  375,  375, 2765, 2766,
6863      2767,  375,  421,  421,  421,  421,  421, 2768, 2769,  421,
6864
6865       437,  437,  437,  437,  440,  440,  440,  440,  473,  473,
6866       473,  473,  441,  441,  441,  441, 2770,  421,  442,  442,
6867       442,  442, 2771, 2772, 2773,  437,  473,  437, 2774,  440,
6868      2775,  440,  445,  445,  445,  445, 2778,  441, 2779,  441,
6869      2780, 2781, 2783,  442, 2785,  442, 2791, 2792, 2793,  375,
6870      2796,  443,  443,  443,  443, 2797,  437,  445, 2804,  445,
6871       440,  586,  586,  586,  586,  375,  416,  416,  416,  416,
6872       441, 1884,  416, 2805, 1884,  421,  443, 2806,  443,  444,
6873       444,  444,  444, 2808, 1884,  442,  586, 2809,  442, 1884,
6874      2810,  416,  446,  446,  446,  446, 2811,  416, 1884,  587,
6875
6876       587,  587,  587, 2812,  444,  445,  444,  688,  688,  688,
6877       688,  416,  443, 2813, 2814, 2815,  443,  446,  416,  446,
6878      2816, 2817,  416,  416,  587,  416,  416,  416, 2818, 2820,
6879      2818,  416,  416,  416,  416,  416, 2822,  416,  444,  416,
6880       416,  416,  416,  416,  447,  447,  447,  447,  444,  448,
6881       448,  448,  448,  446, 2004, 2824,  444, 2004,  444,  449,
6882       449,  449,  449, 2825,  450,  450,  450,  450, 2826,  447,
6883      2821,  447, 2828, 2821,  448, 2829,  448, 2831, 2832,  451,
6884       451,  451,  451, 2833,  449, 2004,  449, 1851, 2834,  450,
6885      1851,  450,  452,  452,  452,  452,  453,  453,  453,  453,
6886
6887       474,  474,  474,  474,  451,  448,  451, 2004,  454,  454,
6888       454,  454, 2819,  447, 2819, 1851, 2835,  452,  474,  452,
6889      2836,  453, 2837,  453,  449,  450,  455,  455,  455,  455,
6890      2838, 2839, 2841,  454,  450,  454,  451, 2842, 2843, 2844,
6891       450, 2845,  456,  456,  456,  456, 1851,  457,  457,  457,
6892       457,  455, 2819,  455, 2847, 2848, 2849,  453, 2850,  469,
6893       469,  469,  469,  469, 1851,  452,  469,  456,  452,  456,
6894      2851, 2852,  457,  454,  457,  478,  478,  478,  478,  489,
6895       489,  489,  489,  454,  469, 2853, 2854,  455,  577,  577,
6896       577,  577, 2855,  478, 2856, 2857, 2858,  489,  533,  533,
6897
6898       533,  533, 2859, 2860,  457,  577,  455,  534,  534,  534,
6899       534,  456,  457,  577, 2861, 2862,  456,  457,  540,  540,
6900       540,  540,  578,  578,  578,  578,  533,  589,  589,  589,
6901       589,  589, 2863, 2864,  589,  534, 2865,  540, 2866,  578,
6902      2868, 2866,  469,  515,  515,  515,  515,  578,  591,  591,
6903       591,  591,  589, 2870,  603,  603,  603,  603, 2872,  515,
6904       533, 2873,  610,  610,  610,  610, 2874, 2875,  533,  534,
6905      2876,  515,  603,  591, 2877, 2878, 2879,  534,  540,  578,
6906       610,  689,  689,  689,  689,  708,  708,  708,  708,  709,
6907       709,  709,  709,  716,  716,  716,  716, 2880, 2881, 2877,
6908
6909       515, 2882,  515, 2883, 2884,  515,  717,  717,  717,  717,
6910       589, 2885,  515,  515, 2891, 2892,  515,  515,  515, 2893,
6911       515,  730,  730,  730,  730,  733,  733,  733,  733,  734,
6912       734,  734,  734,  735,  735,  735,  735, 2895,  730,  766,
6913       766,  766,  766, 2898,  708, 2899, 2900, 2901,  709,  771,
6914       771,  771,  771,  773,  773,  773,  773,  766,  785,  785,
6915       785,  785,  797,  797,  797,  797, 2867,  771, 2903, 2867,
6916      2904,  773,  799,  799,  799,  799, 2902, 2867,  733,  797,
6917       836,  836,  836,  836, 2905, 2902,  734, 2906, 2907, 2909,
6918       735,  837,  837,  837,  837, 2911, 2914,  799,  836,  843,
6919
6920       843,  843,  843,  846,  846,  846,  846, 2915, 2916,  837,
6921      2917,  856,  856,  856,  856, 2918, 1373,  843,  856, 1373,
6922      1373,  846,  857,  857,  857,  857, 2920, 2921, 2919,  857,
6923       858,  858,  858,  858, 1373, 2919, 2922,  858,  859,  859,
6924       859,  859, 2923,  862,  862,  862,  862, 1373, 2924, 2925,
6925       862,  859,  862, 2926, 2927, 2928,  862,  863,  863,  863,
6926       863, 2929, 2005, 2930,  863, 2005,  863, 2931, 2932, 1373,
6927       863,  864,  864,  864,  864, 2933, 2934, 2937,  864, 2936,
6928       864, 2938, 2939, 2940,  864,  865,  865,  865,  865, 2943,
6929      2946, 2967,  865, 2005,  865, 2968, 2990, 2991,  865,  867,
6930
6931       867,  867,  867,  869,  869,  869,  869,  871,  871,  871,
6932       871,  882,  882,  882,  882, 2005, 3006,  867, 3007, 3009,
6933      3010,  869,  882,  884,  884,  884,  884,  885,  885,  885,
6934       885,  886,  886,  886,  886, 3011,  882, 3013,  886, 3014,
6935       882, 3015,  889,  889,  889,  889,  889, 3016,  884,  889,
6936      3019, 2936,  885,  893,  893,  893,  893, 3020, 3026,  871,
6937       899,  899,  899,  899, 3027, 3030, 3034,  889,  902,  902,
6938       902,  902,  899,  905,  905,  905,  905, 3035,  893,  902,
6939       906,  906,  906,  906,  911,  911,  911,  911,  997,  997,
6940       997,  997, 3036, 3039,  902,  998,  998,  998,  998, 3040,
6941
6942      3041, 3042,  911, 1023, 1023, 1023, 1023, 1026, 1026, 1026,
6943      1026, 3044, 3046, 3048, 1023, 1027, 1027, 1027, 1027, 3050,
6944       902, 2007, 1026, 2008, 2007,  889, 2008, 3051, 3052, 1023,
6945      1027, 1033, 1033, 1033, 1033, 1064, 1064, 1064, 1064, 2007,
6946      3049, 1071, 1071, 3049, 1071, 3053, 1071, 3049, 1064, 1071,
6947      1071, 3054, 2007, 1064, 2008, 1023, 3047, 3055, 3047, 1071,
6948      3055, 1071, 1121, 1121, 1121, 1121, 3056, 3057, 3058, 1121,
6949      1122, 1122, 1122, 1122, 2007, 3059, 2008, 1122, 1129, 1129,
6950      1129, 1129, 3060, 3061, 1023, 1131, 1131, 1131, 1131, 3062,
6951      1129, 3063, 1131, 1129, 1132, 1132, 1132, 1132, 3047, 3064,
6952
6953      3065, 1132, 1134, 1134, 1134, 1134, 1143, 1143, 1143, 1143,
6954      3066, 3067, 3068, 1134, 1121, 1144, 1144, 1144, 1144, 1192,
6955      3069, 3070, 1122, 1145, 1145, 1145, 1145, 3071, 3072, 3073,
6956      1145, 1143, 1148, 1148, 1148, 1148, 1148, 3074, 3078, 1148,
6957      1144, 1154, 1154, 1154, 1154, 3080, 3075, 1192, 1192, 3075,
6958      1192, 3081, 1192, 3082, 3083, 1192, 1192, 1148, 1235, 1235,
6959      1235, 1235, 1193, 3084, 3085, 1192, 1154, 1192, 1193, 1193,
6960      3087, 1193, 3088, 1193, 3089, 1235, 1193, 1193, 1208, 1208,
6961      1208, 1208, 1215, 1215, 1215, 1215, 1193, 3076, 1193, 3090,
6962      3076, 1208, 1221, 1221, 1221, 1221, 1208, 3091, 3076, 3092,
6963
6964      1215, 1222, 1222, 1222, 1222, 1223, 1223, 1223, 1223, 1221,
6965      1372, 3093, 1223, 1372, 1372, 1148, 3096, 1221, 1222, 3099,
6966      3101, 3106, 1223, 1372, 3107, 3108, 1222, 1226, 1226, 1226,
6967      1226, 3109, 3110, 3111, 1226, 1227, 1227, 1227, 1227, 3112,
6968      3113, 1372, 1227, 1228, 1228, 1228, 1228, 1229, 1229, 1229,
6969      1229, 3114, 3115, 1446, 1228, 3116, 1446, 1446, 1228, 1230,
6970      1230, 1230, 1230, 1372, 3118, 3120, 1230, 3122, 3123, 1228,
6971      1228, 1446, 1229, 1221, 1232, 1232, 1232, 1232, 3125, 1233,
6972      1233, 1233, 1233, 3127, 1446, 1232, 1233, 3128, 1223, 1232,
6973      3130, 1232, 1261, 1261, 1261, 1261, 1233, 3131, 3133, 1232,
6974
6975      1232, 1232, 1234, 1234, 1234, 1234, 1446, 3134, 3135, 1234,
6976      1236, 1236, 1236, 1236, 3136, 3137, 3139, 1236, 3142, 1234,
6977      1237, 1237, 1237, 1237, 1237, 3143, 3146, 1237, 3145, 1238,
6978      1238, 1238, 1238, 3147, 1245, 1245, 1245, 1245, 3148, 3150,
6979      1238, 1245, 3165, 3145, 1238, 1237, 1238, 3166, 1241, 1241,
6980      1241, 1241, 3170, 3171, 1238, 1238, 1238, 3175, 3197, 1241,
6981      3198, 3199, 1233, 1241, 3207, 1241, 3208, 3213, 3214, 1246,
6982      1246, 1246, 1246, 1241, 1241, 1241, 1246, 3218, 1247, 1247,
6983      1247, 1247, 3219, 3221, 3222, 1234, 3223, 2199, 3228, 1247,
6984      2199, 3229, 3232, 1247, 1248, 1248, 1248, 1248, 1249, 1249,
6985
6986      1249, 1249, 3235, 1237, 1247, 1247, 1252, 1252, 1252, 1252,
6987      1253, 1253, 1253, 1253, 1255, 1255, 1255, 1255, 2199, 1248,
6988      3236, 1255, 3237, 1249, 3238, 1256, 1256, 1256, 1256, 3239,
6989      3240, 1252, 1256, 3241, 3242, 1253, 1257, 1257, 1257, 1257,
6990      2199, 1258, 1258, 1258, 1258, 3243, 3245, 1257, 1258, 1260,
6991      1260, 1260, 1260, 3248, 1264, 1264, 1264, 1264, 1264, 3249,
6992      1260, 1264, 1266, 1266, 1266, 1266, 1268, 1268, 1268, 1268,
6993      3250, 3252, 3254, 1266, 1260, 1248, 3255, 1268, 3256, 1264,
6994      3257, 1269, 1269, 1269, 1269, 1663, 3258, 1266, 1663, 1663,
6995      3259, 1268, 1269, 1270, 1270, 1270, 1270, 1284, 1284, 1284,
6996
6997      1284, 3260, 3251, 1663, 1270, 3251, 1269, 1289, 1289, 1289,
6998      1289, 3261, 1297, 1297, 1297, 1297, 1663, 3262, 1270, 1297,
6999      1298, 1298, 1298, 1298, 1284, 3263, 3264, 1298, 1299, 1299,
7000      1299, 1299, 1289, 3253, 3265, 1299, 3253, 1264, 1663, 1300,
7001      1300, 1300, 1300, 1301, 1301, 1301, 1301, 3244, 3266, 3244,
7002      1270, 1309, 1309, 1309, 1309, 1269, 1300, 3267, 1309, 3246,
7003      1301, 3268, 3246, 3271, 1300, 3272, 3246, 3273, 1301, 1306,
7004      1306, 1306, 1306, 1312, 1312, 1312, 1312, 1297, 1284, 1325,
7005      1325, 1325, 1325, 3244, 3274, 1298, 1306, 1326, 1326, 1326,
7006      1326, 3275, 3276, 1297, 1306, 3277, 3279, 2601, 1312, 3281,
7007
7008      2601, 1298, 3282, 3283, 2601, 1326, 2601, 3284, 3285, 1299,
7009      2601, 1301, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303,
7010      1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 3289, 1303,
7011      1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303,
7012      1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303,
7013      1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303,
7014      1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303,
7015      1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303,
7016      1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303,
7017      1303, 1303, 1303, 1303, 3293, 1303, 1303, 1303, 1305, 1305,
7018
7019      1305, 1305, 3294, 3295, 3296, 1305, 1307, 1307, 1307, 1307,
7020      1308, 1308, 1308, 1308, 1310, 1310, 1310, 1310, 3297, 1314,
7021      1314, 1314, 1314, 1307, 3298, 3300, 3301, 1308, 3302, 3303,
7022      3305, 1307, 3306, 3307, 3309, 1308, 1314, 1328, 1328, 1328,
7023      1328, 3311, 3312, 3319, 1314, 1331, 1331, 1331, 1331, 1353,
7024      1353, 1353, 1353, 3322, 3321, 1328, 1353, 1354, 1354, 1354,
7025      1354, 3325, 3326, 1308, 1354, 1355, 1355, 1355, 1355, 3321,
7026      1331, 3331, 1314, 3332, 1307, 1359, 1359, 1359, 1359, 1305,
7027      1371, 1371, 1371, 1371, 1356, 3334, 3335, 1356, 1362, 1362,
7028      1362, 1362, 1355, 3350, 3354, 1310, 1330, 1330, 1330, 1330,
7029
7030      1359, 3355, 1330, 1356, 1356, 1356, 1356, 1356, 1356, 1360,
7031      1360, 1360, 1360, 1362, 3359, 1362, 1360, 1381, 1381, 1381,
7032      1381, 1330, 1366, 1366, 1366, 1366, 3360, 1330, 1381, 1366,
7033      3361, 1366, 3363, 3383, 1381, 1366, 1441, 1441, 1441, 1441,
7034      3358, 1330, 1441, 1356, 1356, 3384, 3390, 1366, 1330, 3358,
7035      3391, 3395, 1330, 1330, 1441, 1330, 1330, 1330, 3396, 3397,
7036      3407, 1330, 1330, 1330, 1330, 1330, 3410, 1330, 3411, 1330,
7037      1330, 1330, 1330, 1330, 3412, 3414, 3416, 1366, 1367, 1367,
7038      1367, 1367, 3417, 3419, 3420, 1367, 3422, 1367, 3423, 2077,
7039      3424, 1367, 2077, 1368, 1368, 1368, 1368, 1370, 1370, 1370,
7040
7041      1370, 3427, 1368, 1367, 1368, 3428, 1368, 3429, 3430, 1370,
7042      1370, 1376, 1376, 1376, 1376, 1376, 2077, 3431, 1376, 3432,
7043      2077, 3433, 1370, 3434, 1370, 3435, 1382, 1382, 1382, 1382,
7044      3436, 3437, 3438, 1367, 3441, 3442, 1376, 1382, 1383, 1383,
7045      1383, 1383, 2077, 1382, 1387, 1387, 1387, 1387, 1368, 1383,
7046      1384, 1384, 1384, 1384, 3443, 1383, 3445, 1385, 1385, 1385,
7047      1385, 1384, 1386, 1386, 1386, 1386, 3446, 1384, 1385, 1387,
7048      3447, 1387, 3448, 1386, 1385, 1388, 1388, 1388, 1388, 1386,
7049      1392, 1392, 1392, 1392, 1390, 1390, 1390, 1390, 1393, 1393,
7050      1393, 1393, 3449, 1382, 1376, 1394, 1394, 1394, 1394, 3455,
7051
7052      1388, 3439, 1388, 3456, 3439, 3425, 1383, 1383, 3425, 1390,
7053      3457, 1390, 3439, 1393, 3459, 1393, 1449, 1449, 1449, 1449,
7054      1394, 1384, 1394, 1386, 3460, 3425, 3425, 1390, 1390, 3440,
7055      1385, 1390, 3440, 1385, 3462, 1395, 1395, 1395, 1395, 3463,
7056      3464, 1392, 3467, 1396, 1396, 1396, 1396, 1397, 1397, 1397,
7057      1397, 1398, 1398, 1398, 1398, 1399, 1399, 1399, 1399, 1393,
7058      1395, 3468, 1395, 1400, 1400, 1400, 1400, 3471, 1396, 1394,
7059      1396, 3476, 1397, 3479, 1397, 3480, 1398, 3481, 1398, 3483,
7060      1399, 3484, 1399, 1401, 1401, 1401, 1401, 3485, 1400, 3490,
7061      1400, 3503, 1395, 1402, 1402, 1402, 1402, 1403, 1403, 1403,
7062
7063      1403, 3504, 1396, 1404, 1404, 1404, 1404, 3508, 1401, 1397,
7064      1401, 3509, 1396, 1406, 1406, 1406, 1406, 3510, 1402, 1399,
7065      1402, 3511, 1403, 3528, 1403, 1398, 3531, 3532, 1404, 3531,
7066      1404, 1405, 1405, 1405, 1405, 3534, 3535, 3537, 1406, 1400,
7067      1406, 3550, 3555, 3556, 1401, 1429, 1429, 1429, 1429, 3557,
7068      3558, 3559, 1402, 3563, 3560, 3560, 1405, 3560, 1405, 3564,
7069      3561, 3561, 1403, 3561, 1402, 3565, 3566, 3567, 1402, 3568,
7070      1429, 3569, 1404, 1406, 1407, 1407, 1407, 1407, 1408, 1408,
7071      1408, 1408, 1409, 1409, 1409, 1409, 1410, 1410, 1410, 1410,
7072      1405, 1411, 1411, 1411, 1411, 3570, 1405, 3571, 1405, 1407,
7073
7074      3572, 1407, 3576, 1408, 3577, 1408, 1405, 1409, 3578, 1409,
7075      3579, 1410, 2202, 1410, 3575, 2202, 1411, 3575, 1411, 1412,
7076      1412, 1412, 1412, 1413, 1413, 1413, 1413, 1415, 1415, 1415,
7077      1415, 3580, 1407, 1414, 1414, 1414, 1414, 1416, 1416, 1416,
7078      1416, 3581, 1409, 2202, 1412, 3586, 1412, 3587, 1413, 3590,
7079      1413, 3593, 1415, 1408, 1415, 3595, 3603, 3604, 1414, 1411,
7080      1414, 1410, 1416, 3605, 1416, 2202, 1417, 1417, 1417, 1417,
7081      3608, 1418, 1418, 1418, 1418, 1419, 1419, 1419, 1419, 3609,
7082      3622, 1413, 3626, 3627, 1412, 1431, 1431, 1431, 1431, 1412,
7083      1415, 1417, 1431, 1417, 1416, 1414, 1418, 3628, 1418, 3629,
7084
7085      1419, 3636, 1419, 3637, 3652, 1414, 1420, 1420, 1420, 1420,
7086      1416, 1421, 1421, 1421, 1421, 3653, 1422, 1422, 1422, 1422,
7087      1423, 1423, 1423, 1423, 3654, 1432, 1432, 1432, 1432, 3655,
7088      3660, 1420, 1432, 1420, 1417, 3661, 1421, 3664, 1421, 3665,
7089      1419, 1422, 1418, 1422, 3670, 1423, 3671, 1423, 1433, 1433,
7090      1433, 1433, 1434, 1434, 1434, 1434, 3672, 3662, 3673, 1434,
7091      3662, 1436, 1436, 1436, 1436, 1437, 1437, 1437, 1437, 1437,
7092      1445, 1420, 1437, 1445, 1445, 1433, 3674, 3675, 1421, 1438,
7093      1438, 1438, 1438, 1445, 3676, 3677, 1436, 1423, 1436, 1422,
7094      1437, 1439, 1439, 1439, 1439, 1448, 1448, 1448, 1448, 3663,
7095
7096      3678, 1445, 3663, 3681, 1438, 3574, 1438, 3682, 3574, 3683,
7097      1448, 1450, 1450, 1450, 1450, 3684, 1439, 3574, 1439, 1453,
7098      1453, 1453, 1453, 1445, 1464, 1464, 1464, 1464, 1467, 1467,
7099      1467, 1467, 1468, 1468, 1468, 1468, 3685, 3689, 1453, 1482,
7100      1482, 1482, 1482, 1485, 1485, 1485, 1485, 1467, 1437, 1451,
7101      1451, 1451, 1451, 3666, 3666, 1485, 3666, 1486, 1486, 1486,
7102      1486, 1490, 1490, 1490, 1490, 1451, 3695, 1482, 1486, 1489,
7103      1489, 1489, 1489, 1493, 3696, 1489, 1493, 1451, 3701, 1453,
7104      1495, 1495, 1495, 1495, 1486, 3702, 1662, 3706, 1467, 1662,
7105      1662, 3707, 1493, 1493, 1493, 1493, 1493, 1493, 3708, 1662,
7106
7107      3709, 1482, 1496, 1496, 1496, 1496, 1451, 3715, 1451, 1482,
7108      3716, 1451, 1500, 1500, 1500, 1500, 3717, 1662, 1451, 1451,
7109      3719, 3720, 1451, 1451, 1451, 3737, 1451, 1502, 1502, 1502,
7110      1502, 1503, 1503, 1503, 1503, 1504, 1504, 1504, 1504, 1662,
7111      3573, 3738, 1504, 3573, 1502, 3741, 3668, 3668, 1503, 3668,
7112      2078, 3573, 1502, 2078, 3742, 3745, 1503, 1505, 1505, 1505,
7113      1505, 1507, 1507, 1507, 1507, 1508, 1508, 1508, 1508, 1510,
7114      1510, 1510, 1510, 3746, 1505, 3747, 1510, 2078, 1507, 3748,
7115      3749, 2078, 1505, 3750, 3751, 3679, 1507, 1500, 3679, 3752,
7116      1508, 1511, 1511, 1511, 1511, 3753, 3754, 3679, 1511, 1513,
7117
7118      1513, 1513, 1513, 2078, 3755, 3756, 1513, 1515, 1515, 1515,
7119      1515, 1516, 1516, 1516, 1516, 1516, 3760, 3763, 1516, 1517,
7120      1517, 1517, 1517, 1522, 1522, 1522, 1522, 1520, 3743, 1507,
7121      1520, 3743, 1515, 3764, 3765, 3743, 1516, 1527, 1527, 1527,
7122      1527, 3768, 3769, 3770, 1517, 3775, 1520, 1520, 1520, 1520,
7123      1520, 1520, 3776, 3777, 3792, 1527, 1535, 1535, 1535, 1535,
7124      1559, 1559, 1559, 1559, 1566, 1566, 1566, 1566, 1567, 1567,
7125      1567, 1567, 3795, 3800, 1535, 1572, 1572, 1572, 1572, 1576,
7126      1576, 1576, 1576, 1586, 1586, 1586, 1586, 1587, 1587, 1587,
7127      1587, 3801, 3802, 3803, 1516, 1588, 1588, 1588, 1588, 3804,
7128
7129      1586, 3805, 1588, 3806, 1587, 3807, 3810, 3811, 1588, 1589,
7130      1589, 1589, 1589, 1590, 1590, 1590, 1590, 1591, 1591, 1591,
7131      1591, 3812, 1592, 1592, 1592, 1592, 1589, 3814, 1593, 1593,
7132      1593, 1593, 3815, 3816, 1572, 1593, 1594, 1594, 1594, 1594,
7133      1606, 1606, 1606, 1606, 1618, 1618, 1618, 1618, 1623, 1623,
7134      1623, 1623, 3821, 3822, 3831, 1606, 3834, 3837, 3838, 1624,
7135      1624, 1624, 1624, 3839, 3744, 3796, 1590, 3744, 3796, 3840,
7136      1591, 3744, 3796, 1623, 1591, 1592, 1624, 1626, 1626, 1626,
7137      1626, 1627, 1627, 1627, 1627, 1660, 1660, 1660, 1660, 1671,
7138      1671, 1671, 1671, 1594, 3841, 3842, 1671, 1672, 1672, 1672,
7139
7140      1672, 3845, 2405, 3846, 1672, 2405, 1627, 1673, 1673, 1673,
7141      1673, 1674, 1674, 1674, 1674, 1676, 1676, 1676, 1676, 3798,
7142      1673, 3849, 3798, 3850, 1674, 1618, 3798, 3852, 1676, 1679,
7143      1679, 1679, 1679, 2405, 2009, 3853, 1679, 2009, 1679, 3857,
7144      3860, 3861, 1679, 1680, 1680, 1680, 1680, 2009, 3862, 3863,
7145      1680, 3864, 1680, 3865, 3866, 2405, 1680, 1681, 1681, 1681,
7146      1681, 3869, 3870, 3874, 1681, 2009, 1681, 3878, 3881, 3882,
7147      1681, 1682, 1682, 1682, 1682, 1683, 1683, 1683, 1683, 1684,
7148      1684, 1684, 1684, 1687, 1687, 1687, 1687, 2009, 1688, 1688,
7149      1688, 1688, 3883, 3884, 1687, 1688, 1690, 1690, 1690, 1690,
7150
7151      3885, 1688, 1692, 1692, 1692, 1692, 3886, 3887, 1687, 1692,
7152      1693, 1693, 1693, 1693, 3891, 3902, 3903, 1693, 3904, 3905,
7153      3906, 1690, 3907, 1682, 3908, 3919, 3920, 1683, 3921, 3922,
7154      3923, 1684, 1695, 1695, 1695, 1695, 3924, 3928, 3929, 1695,
7155      1697, 1697, 1697, 1697, 1698, 1698, 1698, 1698, 1698, 3932,
7156      3933, 1698, 1699, 1699, 1699, 1699, 1700, 1700, 1700, 1700,
7157      1701, 1701, 1701, 1701, 3938, 1697, 2399, 2390, 1700, 1698,
7158      2387, 1701, 1702, 1702, 1702, 1702, 2386, 1699, 1709, 1709,
7159      1709, 1709, 2384, 1702, 1711, 1711, 1711, 1711, 1712, 1712,
7160      1712, 1712, 1737, 1737, 1737, 1737, 4263, 4274, 1702, 1742,
7161
7162      1742, 1742, 1742, 2383, 4263, 4274, 1712, 1745, 1745, 1745,
7163      1745, 1748, 1748, 1748, 1748, 1749, 2382, 4276, 1749, 1752,
7164      1752, 1752, 1752, 2381, 1702, 4276, 2380, 1698, 1758, 1758,
7165      1758, 1758, 2379, 2378, 1749, 1749, 1749, 1749, 1749, 1749,
7166      1760, 1760, 1760, 1760, 1764, 1764, 1764, 1764, 2377, 4275,
7167      4279, 1760, 1765, 1765, 1765, 1765, 4275, 4281, 4279, 1764,
7168      1766, 1766, 1766, 1766, 4275, 4281, 1760, 1780, 1780, 1780,
7169      1780, 1781, 1781, 1781, 1781, 1818, 1818, 1818, 1818, 4283,
7170      1780, 4286, 1818, 1819, 1819, 1819, 1819, 4283, 2376, 4286,
7171      1819, 4288, 1760, 1820, 1820, 1820, 1820, 1822, 1822, 1822,
7172
7173      1822, 1823, 1823, 1823, 1823, 1820, 4301, 4288, 1820, 1822,
7174      2375, 2373, 1822, 1823, 4301, 4288, 1823, 1824, 1824, 1824,
7175      1824, 1760, 1826, 1826, 1826, 1826, 4293, 1818, 1828, 1828,
7176      1828, 1828, 2372, 2371, 1826, 1819, 4280, 1826, 1829, 1829,
7177      1829, 1829, 4293, 4280, 4303, 1829, 1830, 1830, 1830, 1830,
7178      4293, 4280, 4303, 1830, 1831, 1831, 1831, 1831, 1832, 1832,
7179      1832, 1832, 1833, 1833, 1833, 1833, 2370, 2369, 2409, 1832,
7180      2368, 2409, 2367, 1833, 1835, 1835, 1835, 1835, 1841, 1841,
7181      1841, 1841, 2366, 4282, 4294, 1835, 1843, 1843, 1843, 1843,
7182      4282, 2365, 2364, 1843, 1844, 1844, 1844, 1844, 4282, 2409,
7183
7184      4294, 1844, 4308, 1841, 1846, 1846, 1846, 1846, 4294, 2363,
7185      4308, 1846, 1848, 1848, 1848, 1848, 1849, 1849, 1849, 1849,
7186      1849, 2409, 2362, 1849, 1850, 1850, 1850, 1850, 2361, 1898,
7187      1898, 1898, 1898, 1899, 1899, 1899, 1899, 1848, 2360, 2359,
7188      4284, 1849, 1898, 1903, 1903, 1903, 1903, 4284, 4320, 1850,
7189      1904, 1904, 1904, 1904, 1903, 4284, 4320, 2358, 1903, 2357,
7190      4302, 1904, 2356, 2355, 2354, 1904, 2353, 4302, 2352, 1903,
7191      1903, 1905, 1905, 1905, 1905, 4302, 1904, 1904, 1906, 1906,
7192      1906, 1906, 1905, 2351, 2350, 2348, 1905, 1907, 1907, 1907,
7193      1907, 2030, 2030, 2030, 2030, 1906, 1905, 1905, 1905, 1849,
7194
7195      1908, 1908, 1908, 1908, 1907, 2347, 4304, 1908, 1909, 1909,
7196      1909, 1909, 2346, 4304, 4323, 1909, 1911, 1911, 1911, 1911,
7197      1911, 4304, 4323, 1911, 1912, 1912, 1912, 1912, 4325, 1913,
7198      1913, 1913, 1913, 2343, 2342, 1912, 4325, 2339, 2338, 1912,
7199      1913, 1911, 1914, 1914, 1914, 1914, 1915, 1915, 1915, 1915,
7200      1912, 1912, 2030, 1914, 2337, 4327, 4329, 1915, 1921, 1921,
7201      1921, 1921, 1921, 4327, 4329, 1921, 2336, 1923, 1923, 1923,
7202      1923, 1915, 2335, 1924, 1924, 1924, 1924, 4332, 1923, 1933,
7203      1933, 1933, 1933, 1921, 1924, 4332, 1932, 1932, 1932, 1932,
7204      1932, 2334, 1923, 1932, 2332, 2328, 1933, 2323, 1924, 1911,
7205
7206      1934, 1934, 1934, 1934, 1933, 1935, 1935, 1935, 1935, 2322,
7207      4334, 1932, 1935, 1936, 1936, 1936, 1936, 1934, 4334, 2314,
7208      1936, 1937, 1937, 1937, 1937, 1934, 1940, 1940, 1940, 1940,
7209      2306, 4337, 2301, 1940, 1956, 1956, 1956, 1956, 1950, 4337,
7210      1924, 1921, 1923, 2300, 2299, 2298, 1937, 1950, 1950, 1950,
7211      1950, 1957, 1957, 1957, 1957, 1957, 2297, 2295, 1957, 1956,
7212      1988, 1988, 1988, 1988, 1989, 1989, 1989, 1989, 2294, 1932,
7213      2291, 1934, 1955, 1955, 1955, 1955, 1957, 2288, 1955, 2287,
7214      2286, 1994, 1994, 1994, 1994, 1990, 2282, 1988, 1990, 2281,
7215      1994, 1989, 1994, 2280, 1994, 2274, 2273, 1955, 1997, 1997,
7216
7217      1997, 1997, 2272, 1955, 1990, 1990, 1990, 1990, 1990, 1990,
7218      1997, 1997, 2090, 2090, 2090, 2090, 2271, 1955, 2270, 1996,
7219      1996, 1996, 1996, 1997, 1955, 2269, 1996, 2079, 1955, 1955,
7220      2079, 1955, 1955, 1955, 1957, 2267, 1994, 1955, 1955, 1955,
7221      1955, 1955, 2264, 1955, 1996, 1955, 1955, 1955, 1955, 1955,
7222      1995, 1995, 1995, 1995, 2079, 2263, 4340, 1995, 2079, 1995,
7223      2262, 4343, 2261, 1995, 4340, 1998, 1998, 1998, 1998, 4343,
7224      1999, 1999, 1999, 1999, 2260, 1995, 1998, 1999, 2259, 2257,
7225      2079, 2256, 1999, 2000, 2000, 2000, 2000, 2012, 2012, 2012,
7226      2012, 2012, 2255, 2254, 2012, 2000, 2000, 2252, 2015, 2015,
7227
7228      2015, 2015, 2250, 4345, 2249, 1995, 2248, 2244, 2000, 2015,
7229      2000, 4345, 2012, 2018, 2018, 2018, 2018, 2019, 2019, 2019,
7230      2019, 4347, 2242, 4349, 2018, 4362, 2240, 2238, 2019, 4347,
7231      2018, 4349, 2236, 4362, 2019, 2020, 2020, 2020, 2020, 2021,
7232      2021, 2021, 2021, 4364, 2234, 2200, 2020, 4376, 2200, 4384,
7233      2021, 4364, 2020, 2232, 2230, 4376, 2021, 4384, 2022, 2022,
7234      2022, 2022, 2023, 2023, 2023, 2023, 2229, 2227, 2225, 2022,
7235      2012, 2221, 2200, 2023, 2019, 2022, 2200, 2219, 2208, 2023,
7236      2024, 2024, 2024, 2024, 2025, 2025, 2025, 2025, 2207, 2205,
7237      2204, 2024, 4321, 2411, 2201, 2025, 2411, 2024, 2200, 4321,
7238
7239      4387, 2025, 2096, 2096, 2096, 2096, 2020, 4321, 4387, 2027,
7240      2027, 2027, 2027, 2197, 2021, 2195, 2028, 2028, 2028, 2028,
7241      2029, 2029, 2029, 2029, 2411, 2194, 2193, 2023, 2032, 2032,
7242      2032, 2032, 2023, 2022, 2027, 2192, 2027, 4330, 2024, 2191,
7243      2190, 2028, 2027, 2028, 4330, 2029, 2411, 2029, 2033, 2033,
7244      2033, 2033, 4330, 2032, 2187, 2032, 2025, 2186, 2185, 2029,
7245      2184, 2183, 2028, 2034, 2034, 2034, 2034, 2035, 2035, 2035,
7246      2035, 2182, 2181, 2033, 2180, 2033, 2036, 2036, 2036, 2036,
7247      2037, 2037, 2037, 2037, 2038, 2038, 2038, 2038, 2034, 2179,
7248      2034, 4389, 2035, 4335, 2035, 2039, 2039, 2039, 2039, 4389,
7249
7250      4335, 2036, 4392, 2036, 2032, 2037, 2178, 2037, 4335, 2038,
7251      4392, 2038, 2177, 2040, 2040, 2040, 2040, 2176, 2175, 2174,
7252      2039, 4338, 2039, 2033, 2041, 2041, 2041, 2041, 4338, 2042,
7253      2042, 2042, 2042, 2171, 2035, 2170, 4338, 2034, 2040, 4399,
7254      2040, 2043, 2043, 2043, 2043, 2037, 2169, 4399, 2165, 2041,
7255      2036, 2041, 2164, 2158, 2042, 2038, 2042, 2044, 2044, 2044,
7256      2044, 2045, 2045, 2045, 2045, 2039, 2043, 4385, 2043, 2046,
7257      2046, 2046, 2046, 2047, 2047, 2047, 2047, 2048, 2048, 2048,
7258      2048, 2040, 2044, 4385, 2044, 2151, 2045, 4403, 2045, 4417,
7259      2042, 4385, 4346, 2041, 2046, 4403, 2046, 4417, 2047, 4346,
7260
7261      2047, 2150, 2048, 2149, 2048, 2148, 4348, 4346, 2043, 2049,
7262      2049, 2049, 2049, 4348, 2050, 2050, 2050, 2050, 2044, 2147,
7263      4350, 4348, 2045, 2051, 2051, 2051, 2051, 4350, 2146, 4426,
7264      2046, 4363, 2145, 4390, 2049, 4350, 2049, 4426, 4363, 2050,
7265      2047, 2050, 2052, 2052, 2052, 2052, 4363, 2144, 2051, 4390,
7266      2051, 2141, 2048, 2053, 2053, 2053, 2053, 4390, 2054, 2054,
7267      2054, 2054, 2055, 2055, 2055, 2055, 2136, 2052, 4448, 2052,
7268      2056, 2056, 2056, 2056, 2049, 2050, 4448, 2134, 2053, 2127,
7269      2053, 4378, 2051, 2054, 2126, 2054, 2119, 2055, 4378, 2055,
7270      2117, 2057, 2057, 2057, 2057, 2056, 4378, 2056, 2058, 2058,
7271
7272      2058, 2058, 2113, 2059, 2059, 2059, 2059, 4386, 2060, 2060,
7273      2060, 2060, 4453, 4455, 4386, 2052, 2057, 2053, 2057, 2055,
7274      4453, 4455, 4386, 2058, 4460, 2058, 2110, 2109, 2059, 2108,
7275      2059, 2056, 4460, 2060, 2054, 2060, 2061, 2061, 2061, 2061,
7276      2062, 2062, 2062, 2062, 2106, 2105, 2104, 2063, 2063, 2063,
7277      2063, 2064, 2064, 2064, 2064, 2065, 2065, 2065, 2065, 2103,
7278      2102, 2061, 2100, 2061, 4388, 2062, 2099, 2062, 2057, 2058,
7279      2059, 4388, 2063, 2058, 2063, 2098, 2064, 2095, 2064, 4388,
7280      2065, 2089, 2065, 2066, 2066, 2066, 2066, 2088, 2067, 2067,
7281      2067, 2067, 2068, 2068, 2068, 2068, 2069, 2069, 2069, 2069,
7282
7283      4430, 2087, 2086, 2070, 2070, 2070, 2070, 2085, 2066, 2062,
7284      2066, 2084, 2061, 2067, 2083, 2067, 4430, 2068, 2082, 2068,
7285      2081, 2069, 2063, 2069, 4430, 2073, 2065, 2064, 2070, 2072,
7286      2070, 2031, 2071, 2071, 2071, 2071, 2074, 2074, 2074, 2074,
7287      2075, 2075, 2075, 2075, 2066, 2076, 2076, 2076, 2076, 2076,
7288      2017, 2014, 2076, 2080, 2013, 2002, 2080, 2071, 2067, 2071,
7289      4473, 2068, 4391, 2074, 4365, 4365, 2080, 2075, 4473, 4391,
7290      2076, 4365, 2069, 2101, 2101, 2101, 2101, 4391, 2070, 4365,
7291      2080, 2001, 1992, 4431, 2080, 2107, 2107, 2107, 2107, 2071,
7292      2111, 2111, 2111, 2111, 2114, 2114, 2114, 2114, 1991, 4431,
7293
7294      2114, 2111, 2115, 2115, 2115, 2115, 2080, 4431, 4515, 2120,
7295      2107, 2116, 1987, 1986, 2116, 1985, 4515, 2111, 2120, 2120,
7296      2120, 2120, 2121, 2121, 2121, 2121, 1984, 1983, 2076, 4440,
7297      2116, 2116, 2116, 2116, 2116, 2116, 2123, 2123, 2123, 2123,
7298      2128, 2128, 2128, 2128, 4544, 4440, 1981, 2128, 2129, 2129,
7299      2129, 2129, 4544, 4440, 4441, 2129, 2130, 2130, 2130, 2130,
7300      2131, 2131, 2131, 2131, 2133, 2133, 2133, 2133, 2133, 4393,
7301      4441, 2133, 4428, 2130, 1980, 4548, 4393, 2131, 4441, 4428,
7302      4562, 2130, 2137, 4548, 4393, 2131, 1979, 4428, 4562, 2133,
7303      1977, 2137, 2137, 2137, 2137, 2154, 2154, 2154, 2154, 1976,
7304
7305      4433, 1975, 2154, 2155, 2155, 2155, 2155, 4433, 2154, 4485,
7306      2155, 2157, 2157, 2157, 2157, 4433, 2155, 2159, 2159, 2159,
7307      2159, 2131, 1974, 1973, 2159, 4485, 4566, 4586, 2157, 2160,
7308      2160, 2160, 2160, 4485, 4566, 4586, 2160, 2161, 2161, 2161,
7309      2161, 2167, 2167, 2167, 2167, 1972, 1969, 2133, 2168, 2168,
7310      2168, 2168, 2198, 4570, 2203, 1968, 2167, 2203, 1967, 1965,
7311      1964, 2198, 2198, 2198, 2198, 2210, 2210, 2210, 2210, 4570,
7312      1963, 4587, 2210, 2211, 2211, 2211, 2211, 4570, 2210, 4587,
7313      2211, 2203, 1962, 1961, 1959, 2203, 2211, 2212, 2212, 2212,
7314      2212, 2213, 2213, 2213, 2213, 2216, 2216, 2216, 2216, 2216,
7315
7316      2212, 2222, 2216, 2217, 2217, 2217, 2217, 2203, 1949, 4594,
7317      2222, 2222, 2222, 2222, 2217, 2233, 2213, 4594, 2246, 2237,
7318      2216, 2246, 1947, 2241, 2233, 2233, 2233, 2233, 2237, 2237,
7319      2237, 2237, 2241, 2241, 2241, 2241, 2245, 2246, 2246, 2246,
7320      2246, 2246, 2246, 2253, 1946, 2245, 2245, 2245, 2245, 1945,
7321      1944, 1943, 2253, 2253, 2253, 2253, 2275, 2275, 2275, 2275,
7322      2276, 2276, 2276, 2276, 2277, 2277, 2277, 2277, 2275, 4628,
7323      1942, 2275, 2278, 2278, 2278, 2278, 1941, 4628, 2216, 2279,
7324      2279, 2279, 2279, 2284, 2284, 2284, 2284, 2284, 4434, 1939,
7325      2284, 2309, 2309, 2309, 2309, 4434, 2310, 2310, 2310, 2310,
7326
7327      1930, 4663, 2309, 4434, 1925, 1922, 2309, 2310, 2284, 4663,
7328      1920, 2310, 2326, 2326, 2326, 2326, 2309, 2309, 2309, 2326,
7329      1902, 2310, 2310, 2310, 2312, 2312, 2312, 2312, 2329, 2329,
7330      2329, 2329, 1895, 1886, 4609, 2312, 2331, 2331, 2331, 2331,
7331      2333, 2333, 2333, 2333, 4435, 2341, 1885, 2333, 1883, 2312,
7332      4609, 4435, 4687, 2329, 2341, 2341, 2341, 2341, 4609, 4435,
7333      4687, 2331, 2477, 2477, 2477, 2477, 2284, 2293, 2293, 2293,
7334      2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293,
7335      2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293,
7336      2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293,
7337
7338      2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293,
7339      2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293,
7340      2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293,
7341      2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293,
7342      2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293, 2293,
7343      2293, 2293, 2293, 2318, 2318, 2318, 2318, 2319, 2319, 2319,
7344      2319, 1882, 1881, 1880, 2318, 1879, 1877, 4704, 2319, 2325,
7345      2325, 2325, 2325, 2325, 4454, 4704, 2325, 1876, 2318, 1875,
7346      4711, 4454, 2319, 2327, 2327, 2327, 2327, 2327, 4711, 4454,
7347      2327, 1874, 1868, 1865, 2325, 2330, 2330, 2330, 2330, 2345,
7348
7349      2345, 2345, 2345, 1864, 2388, 2388, 2388, 2388, 2327, 1863,
7350      1860, 2388, 2330, 2388, 4728, 4789, 1859, 2388, 2319, 1858,
7351      2330, 1857, 4728, 4789, 2345, 1854, 2318, 4442, 1853, 2388,
7352      2389, 2389, 2389, 2389, 4442, 1842, 4442, 2389, 4462, 2389,
7353      1840, 4633, 4442, 2389, 1839, 4462, 1827, 2391, 2391, 2391,
7354      2391, 1821, 2325, 4462, 1817, 2389, 4463, 4633, 1814, 2388,
7355      1813, 1809, 2330, 4463, 1808, 4633, 2327, 2344, 2344, 2344,
7356      2344, 4463, 2391, 2344, 2391, 2392, 2392, 2392, 2392, 1803,
7357      1797, 1793, 2392, 1792, 1791, 2389, 2393, 2393, 2393, 2393,
7358      1790, 1789, 2344, 2393, 2489, 2489, 2489, 2489, 2344, 2395,
7359
7360      2395, 2395, 2395, 1788, 2394, 2394, 2394, 2394, 1786, 1785,
7361      2395, 1778, 2344, 1777, 1773, 4472, 2394, 1772, 1757, 2344,
7362      1755, 1747, 4472, 2344, 2344, 1744, 2344, 2344, 2344, 2394,
7363      4472, 2394, 2344, 2344, 2344, 2344, 2344, 1741, 2344, 1736,
7364      2344, 2344, 2344, 2344, 2344, 2397, 2397, 2397, 2397, 1726,
7365      1725, 1724, 2397, 2398, 2398, 2398, 2398, 2397, 2400, 1720,
7366      2398, 1719, 1718, 2400, 4645, 2398, 2495, 2495, 2495, 2495,
7367      2400, 2400, 2400, 2400, 2400, 2400, 2401, 2401, 2401, 2401,
7368      4645, 1717, 1716, 2401, 1710, 2401, 1706, 1691, 4645, 2401,
7369      2403, 2403, 2403, 2403, 2418, 2418, 2418, 2418, 4766, 1689,
7370
7371      4767, 2401, 2403, 1686, 1685, 2418, 2419, 2419, 2419, 2419,
7372      1670, 2418, 1669, 1668, 4766, 2403, 4767, 2419, 2420, 2420,
7373      2420, 2420, 4766, 2419, 4767, 2421, 2421, 2421, 2421, 2420,
7374      1659, 2401, 1654, 1653, 1651, 2420, 2421, 2422, 2422, 2422,
7375      2422, 1646, 2421, 1645, 2423, 2423, 2423, 2423, 2422, 2424,
7376      2424, 2424, 2424, 1641, 2422, 2423, 2425, 2425, 2425, 2425,
7377      2424, 2423, 2502, 2502, 2502, 2502, 2424, 2425, 2502, 2427,
7378      2427, 2427, 2427, 2425, 1640, 1639, 2426, 2426, 2426, 2426,
7379      2419, 2429, 2429, 2429, 2429, 2420, 2421, 2426, 2428, 2428,
7380      2428, 2428, 1638, 2426, 2427, 4761, 2427, 2482, 2482, 2482,
7381
7382      2482, 4761, 2422, 4482, 1636, 4490, 2429, 1635, 2429, 2427,
7383      4482, 1634, 4490, 2428, 1633, 2428, 1625, 4761, 4482, 2429,
7384      4490, 2423, 2482, 2425, 2424, 4761, 2430, 2430, 2430, 2430,
7385      1603, 2428, 2431, 2431, 2431, 2431, 2432, 2432, 2432, 2432,
7386      2433, 2433, 2433, 2433, 2434, 2434, 2434, 2434, 1602, 4493,
7387      1601, 2430, 2426, 2430, 1600, 4495, 4493, 2431, 1599, 2431,
7388      1598, 2432, 4495, 2432, 4493, 2433, 1595, 2433, 1584, 2434,
7389      4495, 2434, 1582, 2435, 2435, 2435, 2435, 1581, 1580, 2436,
7390      2436, 2436, 2436, 1574, 2430, 1573, 2438, 2438, 2438, 2438,
7391      2439, 2439, 2439, 2439, 2594, 2594, 1571, 2433, 2435, 2594,
7392
7393      2435, 4501, 2594, 2594, 2436, 2431, 2436, 1570, 4501, 1549,
7394      2432, 2438, 2594, 2438, 2594, 2439, 4501, 2439, 1545, 2434,
7395      2501, 2501, 2501, 2501, 2503, 2503, 2503, 2503, 2507, 1543,
7396      1542, 2501, 2528, 2528, 2528, 2528, 1533, 2507, 2507, 2507,
7397      2507, 1525, 2435, 1521, 2436, 2437, 2437, 2437, 2437, 2437,
7398      2437, 2437, 2437, 2437, 2437, 2437, 2437, 2437, 2437, 2437,
7399      2437, 2437, 2437, 2437, 2437, 2439, 1509, 2438, 1506, 1501,
7400      1498, 2437, 1494, 2437, 2437, 2437, 2437, 2437, 2440, 2440,
7401      2440, 2440, 2441, 2441, 2441, 2441, 2442, 2442, 2442, 2442,
7402      1484, 2443, 2443, 2443, 2443, 4502, 1483, 4503, 2437, 2437,
7403
7404      2437, 2437, 4502, 2440, 4503, 2440, 1481, 2441, 1480, 2441,
7405      4502, 2442, 4503, 2442, 1479, 1478, 2443, 1477, 2443, 2444,
7406      2444, 2444, 2444, 2445, 2445, 2445, 2445, 2437, 2437, 2437,
7407      2437, 2446, 2446, 2446, 2446, 1476, 2447, 2447, 2447, 2447,
7408      2448, 2448, 2448, 2448, 2444, 1475, 2444, 2441, 2445, 2440,
7409      2445, 2449, 2449, 2449, 2449, 1474, 2446, 1473, 2446, 2442,
7410      2443, 2447, 1472, 2447, 1471, 2448, 1469, 2448, 2450, 2450,
7411      2450, 2450, 2531, 2531, 2531, 2531, 2449, 1462, 2449, 2451,
7412      2451, 2451, 2451, 2452, 2452, 2452, 2452, 2453, 2453, 2453,
7413      2453, 1460, 2444, 2450, 1459, 2450, 4514, 1458, 1456, 2445,
7414
7415      1455, 2446, 1454, 4514, 2451, 2447, 2451, 1452, 2452, 1430,
7416      2452, 4514, 2453, 2448, 2453, 2454, 2454, 2454, 2454, 1428,
7417      1427, 2449, 1391, 1389, 1378, 2450, 2455, 2455, 2455, 2455,
7418      2456, 2456, 2456, 2456, 2457, 2457, 2457, 2457, 2621, 2621,
7419      2454, 1377, 2454, 2621, 1369, 2453, 2621, 2621, 1358, 2451,
7420      2452, 2455, 1357, 2455, 1351, 2456, 2621, 2456, 2621, 2457,
7421      1350, 2457, 1348, 2458, 2458, 2458, 2458, 2459, 2459, 2459,
7422      2459, 2460, 2460, 2460, 2460, 2461, 2461, 2461, 2461, 2462,
7423      2462, 2462, 2462, 2455, 2463, 2463, 2463, 2463, 2458, 2454,
7424      2458, 2456, 2459, 1346, 2459, 2457, 2460, 1344, 2460, 1343,
7425
7426      2461, 1342, 2461, 1340, 2462, 1338, 2462, 2515, 1337, 2463,
7427      1336, 2463, 2464, 2464, 2464, 2464, 2515, 2515, 2515, 2515,
7428      2465, 2465, 2465, 2465, 1335, 1333, 2459, 4522, 2458, 1324,
7429      1323, 4536, 2461, 1322, 4522, 1320, 2460, 2464, 4536, 2464,
7430      1318, 2459, 4522, 2463, 2462, 2465, 4536, 2465, 2466, 2466,
7431      2466, 2466, 2556, 2556, 2556, 2556, 2467, 2467, 2467, 2467,
7432      2468, 2468, 2468, 2468, 1317, 2469, 2469, 2469, 2469, 2470,
7433      2470, 2470, 2470, 2466, 1316, 2466, 1315, 2556, 1313, 2464,
7434      2465, 2467, 1290, 2467, 1281, 2468, 1279, 2468, 1277, 2465,
7435      2469, 1276, 2469, 1265, 2470, 1254, 2470, 2510, 2510, 2510,
7436
7437      2510, 2511, 2511, 2511, 2511, 1250, 2512, 2512, 2512, 2512,
7438      2526, 2526, 2526, 2526, 2510, 1224, 1220, 2466, 2511, 2467,
7439      1205, 2468, 2510, 2512, 2553, 1203, 2511, 2526, 1181, 1180,
7440      1179, 2512, 1177, 2553, 2553, 2553, 2553, 2555, 2555, 2555,
7441      2555, 2469, 2561, 1164, 2470, 2557, 2557, 2557, 2557, 2569,
7442      2555, 2561, 2561, 2561, 2561, 2572, 1163, 1162, 2569, 2569,
7443      2569, 2569, 2575, 1153, 2572, 2572, 2572, 2572, 1141, 1130,
7444      2557, 2575, 2575, 2575, 2575, 2578, 1119, 1111, 1104, 2584,
7445      2512, 1089, 1079, 1060, 2578, 2578, 2578, 2578, 2584, 2584,
7446      2584, 2584, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610,
7447
7448      2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610,
7449      2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610,
7450      2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610,
7451      2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610,
7452      2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610,
7453      2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610,
7454      2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610,
7455      2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2623, 2623,
7456      2623, 2623, 2624, 2624, 2624, 2624, 1051, 1050, 1013, 2623,
7457      1007, 4523, 4523, 2624, 2626, 2626, 2626, 2626, 4523, 1006,
7458
7459      1005, 2626,  982, 2623,  974,  966, 4523, 2624, 2627, 2627,
7460      2627, 2627,  958,  949,  939, 2627, 2629, 2629, 2629, 2629,
7461      2631, 2631, 2631, 2631, 2631,  933,  928, 2631, 2632, 2632,
7462      2632, 2632,  920,  919,  914, 2623, 4543, 2633, 2633, 2633,
7463      2633, 2629, 2624, 4543,  913, 2631, 2644, 2644, 2644, 2644,
7464       909, 4543, 4546, 2632, 2633, 2659, 2659, 2659, 2659, 4546,
7465       903, 4547, 2633, 2689, 2689, 2689, 2689, 4546, 4547,  892,
7466      2689, 2644, 2690, 2690, 2690, 2690, 4547, 2694, 2694, 2694,
7467      2694,  881,  852,  851, 2691, 2691, 2691, 2691, 2689, 2694,
7468       850, 2713, 2713, 2713, 2713, 4791,  849, 2690, 2633,  848,
7469
7470       847, 4791, 2694, 2631, 2643, 2643, 2643, 2643,  844, 2691,
7471      2643, 2691, 2695, 2695, 2695, 2695, 2713, 4791, 2713, 2776,
7472      2776, 2776, 2776, 4550, 2695, 4791,  840, 2713, 2697, 2643,
7473      4550,  830,  829, 2697,  828, 2643, 2659, 2695, 4550, 2695,
7474      2697, 2697, 2697, 2697, 2697, 2697,  827,  816,  815, 2643,
7475       813, 2704, 2704, 2704, 2704,  812, 2643,  811,  810, 4565,
7476      2643, 2643, 2704, 2643, 2643, 2643, 4565,  809, 2704, 2643,
7477      2643, 2643, 2643, 2643, 4565, 2643,  778, 2643, 2643, 2643,
7478      2643, 2643, 2698, 2777, 2777, 2777, 2777, 2698,  753, 2705,
7479      2705, 2705, 2705,  747, 2698, 2698, 2698, 2698, 2698, 2698,
7480
7481      2705, 2706, 2706, 2706, 2706,  745, 2705,  744, 2707, 2707,
7482      2707, 2707, 2706, 2708, 2708, 2708, 2708,  721, 2706, 2707,
7483      2709, 2709, 2709, 2709, 2708, 2707, 2714, 2714, 2714, 2714,
7484      2708, 2709, 2710, 2710, 2710, 2710,  714, 2709,  699, 2711,
7485      2711, 2711, 2711, 2710, 2712, 2712, 2712, 2712,  698, 2710,
7486      2711, 2714,  639, 2714,  627, 2712, 2711, 2715, 2715, 2715,
7487      2715, 2712, 2706, 2705, 2716, 2716, 2716, 2716,  616,  600,
7488      2714, 2717, 2717, 2717, 2717,  599,  597, 2709,  590,  568,
7489       567, 2707, 2715, 2708, 2715, 2718, 2718, 2718, 2718, 2716,
7490       565, 2716,  551, 2710,  542,  541, 2717,  531, 2717, 2715,
7491
7492       529,  528, 2710,  527, 2711, 2719, 2719, 2719, 2719, 2712,
7493      2718,  525, 2718, 2720, 2720, 2720, 2720, 2721, 2721, 2721,
7494      2721, 2722, 2722, 2722, 2722,  524,  523,  519, 2717,  470,
7495      2719, 2716, 2719, 2724, 2724, 2724, 2724,  438, 2720,  434,
7496      2720,  430, 2721,  429, 2721,  395, 2722,  393, 2722, 2727,
7497      2727, 2727, 2727, 2784, 2784, 2784, 2784,  391, 2724,  382,
7498      2724, 2728, 2728, 2728, 2728, 4792, 2718, 2730, 2730, 2730,
7499      2730, 4792,  378,  344, 2727,  333, 2727,  315, 2721, 2719,
7500      2731, 2731, 2731, 2731,  313,  298, 2728, 4792, 2728,  275,
7501      2722,    0, 2730,    0, 2730, 4792,    0, 2732, 2732, 2732,
7502
7503      2732, 2733, 2733, 2733, 2733, 2731,    0, 2731,    0, 2734,
7504      2734, 2734, 2734, 2735, 2735, 2735, 2735,    0, 4563, 4563,
7505      2728,    0, 2732,    0, 2732, 4563, 2733,    0, 2733, 2789,
7506      2789, 2789, 2789, 4563, 2734, 2728, 2734,    0, 2735,    0,
7507      2735, 2736, 2736, 2736, 2736,    0, 2737, 2737, 2737, 2737,
7508      2738, 2738, 2738, 2738,    0, 2731, 2732, 2739, 2739, 2739,
7509      2739, 2740, 2740, 2740, 2740, 4545, 2736,    0, 2736, 2734,
7510      2733, 2737, 4545, 2737,    0, 2738,    0, 2738, 2735, 4545,
7511         0,    0, 2739,    0, 2739,    0, 2740, 4545, 2740, 2741,
7512      2741, 2741, 2741, 2742, 2742, 2742, 2742, 2743, 2743, 2743,
7513
7514      2743, 2736, 2744, 2744, 2744, 2744, 2745, 2745, 2745, 2745,
7515      4577, 2738,    0,    0, 2741, 2737, 2741, 4577, 2742, 2739,
7516      2742,    0, 2743,    0, 2743, 4577, 2739, 2744,    0, 2744,
7517         0, 2745, 2740, 2745, 2746, 2746, 2746, 2746, 2747, 2747,
7518      2747, 2747,    0, 2748, 2748, 2748, 2748, 2749, 2749, 2749,
7519      2749,    0,    0, 2742, 2752, 2752, 2752, 2752, 2743, 2746,
7520      4608, 2746, 2741, 2747,    0, 2747,    0, 4608, 2748, 2744,
7521      2748,    0, 2749,    0, 2749, 4608,    0, 2745,    0, 2752,
7522         0, 2752,    0, 2753, 2753, 2753, 2753, 2754, 2754, 2754,
7523      2754, 2755, 2755, 2755, 2755, 2756, 2756, 2756, 2756,    0,
7524
7525      4588,    0, 2748,    0,    0, 4588, 2749, 4588, 2753, 2746,
7526      2753, 2747, 2754,    0, 2754, 4588, 2755,    0, 2755,    0,
7527      2756,    0, 2756, 2800, 2800, 2800, 2800, 2752, 2757, 2757,
7528      2757, 2757,    0, 2758, 2758, 2758, 2758, 2759, 2759, 2759,
7529      2759, 4614, 2760, 2760, 2760, 2760, 2754,    0, 4614,    0,
7530      2753,    0, 2756, 2757,    0, 2757, 4614,    0, 2758,    0,
7531      2758,    0, 2759,    0, 2759,    0, 2755, 2760,    0, 2760,
7532      2761, 2761, 2761, 2761, 2762, 2762, 2762, 2762, 2763, 2763,
7533      2763, 2763, 2782, 2782, 2782, 2782,    0, 4596,    0, 2757,
7534      2758,    0,    0, 2782, 4596, 2761, 4596, 2761,    0, 2762,
7535
7536         0, 2762, 4596, 2763,    0, 2763, 2786, 2786, 2786, 2786,
7537      2788, 2788, 2788, 2788,    0,    0, 2788, 2786, 2759, 2795,
7538      2795, 2795, 2795, 2801, 2801, 2801, 2801, 2827, 2827, 2827,
7539      2827, 2762,    0,    0, 2827,    0, 2795,    0,    0,    0,
7540      2827,    0,    0, 2763, 2795, 2761, 2886, 2886, 2886, 2886,
7541      2887, 2887, 2887, 2887,    0,    0, 2782, 2886,    0,    0,
7542         0, 2887, 2889, 2889, 2889, 2889, 2889,    0,    0, 2889,
7543         0, 2886,    0,    0,    0, 2887, 2890, 2890, 2890, 2890,
7544      2894, 2894, 2894, 2894, 4623, 4626,    0, 2889, 2801,    0,
7545      2795, 4623, 4626, 2890, 2897, 2897, 2897, 2897,    0, 4623,
7546
7547      4626, 2890,    0,    0,    0, 2886, 2908, 2908, 2908, 2908,
7548      2910, 2910, 2910, 2910, 2912, 2912, 2912, 2912,    0, 2897,
7549      2913, 2913, 2913, 2913,    0,    0,    0, 2935, 2935, 2935,
7550      2935, 2887, 2941, 2941, 2941, 2941,    0,    0,    0, 2941,
7551      2944, 2944, 2944, 2944, 2890, 2889, 2896, 2896, 2896, 2896,
7552         0, 4595, 2896, 4595, 2942, 2942, 2942, 2942,    0, 4641,
7553      4595, 2942,    0, 2942,    0, 2944, 4641, 2942, 4595,    0,
7554         0, 2896,    0, 2912, 4641,    0,    0, 2896,    0, 2942,
7555         0,    0, 2947, 2947, 2947, 2947,    0, 2908, 2912,    0,
7556         0, 2896,    0, 2947, 3008, 3008, 3008, 3008, 2896, 2947,
7557
7558         0,    0, 2896, 2896,    0, 2896, 2896, 2896, 2935, 2942,
7559         0, 2896, 2896, 2896, 2896, 2896,    0, 2896,    0, 2896,
7560      2896, 2896, 2896, 2896, 2948, 2948, 2948, 2948, 2949, 2949,
7561      2949, 2949,    0,    0,    0, 2948,    0,    0,    0, 2949,
7562         0, 2948,    0,    0,    0, 2949, 2950, 2950, 2950, 2950,
7563      2951, 2951, 2951, 2951,    0,    0,    0, 2950,    0,    0,
7564         0, 2951,    0, 2950,    0,    0,    0, 2951, 2952, 2952,
7565      2952, 2952, 2953, 2953, 2953, 2953,    0,    0,    0, 2952,
7566         0,    0,    0, 2953,    0, 2952,    0,    0,    0, 2953,
7567      2949,    0, 2948, 2954, 2954, 2954, 2954, 2955, 2955, 2955,
7568
7569      2955,    0,    0,    0, 2954,    0,    0,    0, 2955,    0,
7570      2954,    0,    0,    0, 2955, 2950, 2956, 2956, 2956, 2956,
7571      2957, 2957, 2957, 2957,    0, 2951,    0, 2952,    0,    0,
7572         0, 2953, 2958, 2958, 2958, 2958, 2959, 2959, 2959, 2959,
7573         0, 2956,    0, 2956,    0, 2957,    0, 2957,    0,    0,
7574      2956,    0, 2954,    0,    0,    0, 2957, 2958,    0, 2958,
7575         0, 2959,    0, 2959, 2958, 2960, 2960, 2960, 2960,    0,
7576      2955, 2961, 2961, 2961, 2961, 2963, 2963, 2963, 2963, 2964,
7577      2964, 2964, 2964, 2965, 2965, 2965, 2965,    0, 4659, 4659,
7578      2960,    0, 2960,    0, 2965, 4659, 2961,    0, 2961,    0,
7579
7580      2963, 2959, 2963, 4659, 2964,    0, 2964,    0, 2965,    0,
7581      2965,    0, 2966, 2966, 2966, 2966, 2969, 2969, 2969, 2969,
7582      2970, 2970, 2970, 2970, 2960, 2971, 2971, 2971, 2971, 4660,
7583         0, 2964, 3017, 3017, 3017, 3017, 4660, 2966, 2964, 2966,
7584      2964, 2969,    0, 2969, 4660, 2970,    0, 2970,    0, 2963,
7585      2971,    0, 2971, 2964,    0, 2964, 2972, 2972, 2972, 2972,
7586         0, 2972,    0,    0, 2973, 2973, 2973, 2973, 2974, 2974,
7587      2974, 2974, 2975, 2975, 2975, 2975, 2976, 2976, 2976, 2976,
7588         0, 2972,    0, 2972,    0, 2970,    0, 2966,    0, 2973,
7589      2971, 2973,    0, 2974,    0, 2974,    0, 2975,    0, 2975,
7590
7591         0, 2976,    0, 2976, 2977, 2977, 2977, 2977,    0, 2978,
7592      2978, 2978, 2978, 2979, 2979, 2979, 2979, 2980, 2980, 2980,
7593      2980, 2981, 2981, 2981, 2981, 4549,    0, 2974,    0, 2977,
7594      4665, 2977, 4549, 2975, 2978,    0, 2978, 4665, 2979, 4549,
7595      2979,    0, 2980, 2976, 2980, 4665, 2981, 4549, 2981, 2982,
7596      2982, 2982, 2982, 2983, 2983, 2983, 2983, 2984, 2984, 2984,
7597      2984, 4653, 2985, 2985, 2985, 2985, 2978,    0, 4653,    0,
7598      2979,    0, 4654,    0, 2982, 4653, 2982,    0, 2983, 4654,
7599      2983,    0, 2984, 4653, 2984,    0, 4654, 2985,    0, 2985,
7600      2986, 2986, 2986, 2986, 4654, 2987, 2987, 2987, 2987,    0,
7601
7602         0, 2981, 2988, 2988, 2988, 2988,    0, 2989, 2989, 2989,
7603      2989, 2992, 2992, 2992, 2992, 2986,    0, 2986, 2984, 2985,
7604      2987,    0, 2987, 2982,    0,    0,    0, 2988, 4668, 2988,
7605         0,    0, 2989, 4668, 2989, 4668, 2992,    0, 2992, 2993,
7606      2993, 2993, 2993, 4668, 2994, 2994, 2994, 2994,    0,    0,
7607         0, 2986, 2989, 2995, 2995, 2995, 2995, 2996, 2996, 2996,
7608      2996,    0,    0,    0, 2993,    0, 2993,    0,    0, 2994,
7609      2987, 2994, 2992, 2997, 2997, 2997, 2997, 2988, 2995,    0,
7610      2995, 2989, 2996,    0, 2996, 2998, 2998, 2998, 2998, 2999,
7611      2999, 2999, 2999, 3001, 3001, 3001, 3001,    0, 2997,    0,
7612
7613      2997, 3002, 3002, 3002, 3002,    0, 3003, 3003, 3003, 3003,
7614      2998,    0, 2998, 2993, 2999,    0, 2999,    0, 3001,    0,
7615      3001, 3004, 3004, 3004, 3004,    0, 3002,    0, 3002,    0,
7616         0, 3003, 2996, 3003, 2995, 2997, 3005, 3005, 3005, 3005,
7617      3012, 3012, 3012, 3012,    0,    0, 3004,    0, 3004,    0,
7618         0, 3012,    0, 2998, 3018, 3018, 3018, 3018,    0,    0,
7619      3002, 3005,    0, 3005,    0, 3021, 3021, 3021, 3021, 3022,
7620      3022, 3022, 3022,    0,    0, 3002, 3021,    0, 3023, 3023,
7621      3023, 3023, 3025, 3025, 3025, 3025, 3003, 4691, 3004, 3023,
7622      3028, 3028, 3028, 3028, 4691,    0, 3028, 3029, 3029, 3029,
7623
7624      3029,    0, 4691, 3005, 3031, 3031, 3031, 3031, 3033, 3033,
7625      3033, 3033, 4700, 4727, 3012, 3094, 3094, 3094, 3094, 4700,
7626      4727, 3031, 3095, 3095, 3095, 3095, 3094, 4700, 4727, 3031,
7627         0, 4741,    0, 3095, 3098, 3098, 3098, 3098, 4741,    0,
7628      3094, 3100, 3100, 3100, 3100,    0, 4741, 3095,    0,    0,
7629         0, 3098, 3102, 3102, 3102, 3102,    0,    0,    0, 3098,
7630         0, 3031, 3103, 3103, 3103, 3103, 3104, 3104, 3104, 3104,
7631         0, 3105, 3105, 3105, 3105, 3033, 3117, 3117, 3117, 3117,
7632      3119, 3119, 3119, 3119, 3121, 3121, 3121, 3121,    0,    0,
7633      3094, 3124, 3124, 3124, 3124, 3098, 3105, 3126, 3126, 3126,
7634
7635      3126,    0,    0, 3095, 3129, 3129, 3129, 3129, 3132, 3132,
7636      3132, 3132, 3138, 3138, 3138, 3138, 3140, 3140, 3140, 3140,
7637      3141, 3141, 3141, 3141, 3144, 3144, 3144, 3144,    0, 3129,
7638         0,    0, 3119, 3151, 3151, 3151, 3151, 3138,    0, 3119,
7639         0, 3119,    0,    0, 3151, 3159, 3159, 3159, 3159,    0,
7640      3151,    0,    0,    0, 3119,    0, 3119, 3138, 3152, 3152,
7641      3152, 3152, 3153, 3153, 3153, 3153,    0,    0,    0, 3152,
7642      3159,    0, 3159, 3153,    0, 3152,    0, 4756,    0, 3153,
7643      3154, 3154, 3154, 3154, 4756,    0, 3138, 3155, 3155, 3155,
7644      3155, 3154, 4756, 3159, 3151,    0,    0, 3154, 3155,    0,
7645
7646         0, 3141,    0,    0, 3155, 3156, 3156, 3156, 3156, 3157,
7647      3157, 3157, 3157,    0,    0, 3152, 3156,    0,    0, 3153,
7648      3157,    0, 3156,    0,    0,    0, 3157, 3158, 3158, 3158,
7649      3158, 3160, 3160, 3160, 3160,    0,    0,    0, 3158,    0,
7650         0, 3154,    0,    0, 3158, 3161, 3161, 3161, 3161, 3162,
7651      3162, 3162, 3162, 4768, 4774,    0, 3160,    0, 3160,    0,
7652      4768, 4774, 3155,    0, 3163, 3163, 3163, 3163, 4768, 4774,
7653      3161,    0, 3161,    0, 3162, 3156, 3162, 3160, 3164, 3164,
7654      3164, 3164, 3167, 3167, 3167, 3167, 3161,    0, 3158, 3163,
7655         0, 3163,    0, 3167, 3168, 3168, 3168, 3168,    0, 3168,
7656
7657         0,    0,    0, 3164, 3168, 3164,    0, 3167,    0, 3167,
7658      3169, 3169, 3169, 3169,    0, 3172, 3172, 3172, 3172, 3173,
7659      3173, 3173, 3173, 3162, 3174, 3174, 3174, 3174,    0, 3174,
7660      3176, 3176, 3176, 3176,    0, 3169, 4675, 3169, 4675, 3163,
7661      3172, 4775, 3172, 4797, 3173, 4675, 3173,    0, 4775, 3174,
7662      4797, 3174,    0, 4675,    0, 3176, 4775, 3176, 4797, 3177,
7663      3177, 3177, 3177, 3179, 3179, 3179, 3179, 3184, 3184, 3184,
7664      3184, 3169, 3180, 3180, 3180, 3180, 4798,    0, 3182, 3182,
7665      3182, 3182,    0, 4798, 3177, 3172, 3177,    0, 3179, 3176,
7666      3179, 4798, 3184,    0, 3173,    0,    0, 3180,    0, 3180,
7667
7668         0,    0,    0, 3182, 3176, 3182, 3176, 3178, 3178, 3178,
7669      3178, 3178, 3178, 3178, 3178, 3178, 3178, 3178, 3178, 3178,
7670      3178, 3178, 3178, 3178, 3178, 3178, 3178, 3181, 3181, 3181,
7671      3181,    0,    0, 3178,    0, 3178, 3178, 3178, 3178, 3178,
7672         0,    0,    0, 3179,    0, 3182, 3183, 3183, 3183, 3183,
7673         0,    0, 3181,    0, 3181, 3185, 3185, 3185, 3185,    0,
7674      3178, 3178, 3178, 3178, 3178, 3212, 3212, 3212, 3212,    0,
7675         0, 3183,    0, 3183, 3186, 3186, 3186, 3186,    0,    0,
7676      3185,    0, 3185,    0,    0,    0, 3181,    0,    0, 3178,
7677      3178, 3178, 3178, 3187, 3187, 3187, 3187,    0,    0, 3186,
7678
7679         0, 3186, 3188, 3188, 3188, 3188, 3189, 3189, 3189, 3189,
7680      3190, 3190, 3190, 3190, 3191, 3191, 3191, 3191, 3187,    0,
7681      3187, 3192, 3192, 3192, 3192,    0,    0, 3188,    0, 3188,
7682         0, 3189,    0, 3189,    0, 3190,    0, 3190,    0, 3191,
7683         0, 3191, 3193, 3193, 3193, 3193, 3192,    0, 3192, 3194,
7684      3194, 3194, 3194,    0,    0, 3190, 3195, 3195, 3195, 3195,
7685         0, 3196, 3196, 3196, 3196, 3189,    0, 3193,    0, 3193,
7686      3200, 3200, 3200, 3200, 3194, 3201, 3201, 3201, 3201, 3191,
7687         0, 3195, 3192, 3195, 3190,    0, 3196, 3193, 3196,    0,
7688      3202, 3202, 3202, 3202, 3191, 3200,    0, 3200,    0,    0,
7689
7690      3201,    0, 3201,    0, 3204, 3204, 3204, 3204, 3205, 3205,
7691      3205, 3205, 3195,    0,    0, 3202, 3193, 3202, 3206, 3206,
7692      3206, 3206, 3209, 3209, 3209, 3209,    0,    0, 3196, 3204,
7693         0, 3204,    0, 3205,    0, 3205, 3210, 3210, 3210, 3210,
7694         0,    0,    0, 3206,    0, 3206,    0, 3209,    0, 3209,
7695      3211, 3211, 3211, 3211,    0, 3215, 3215, 3215, 3215,    0,
7696         0, 3210,    0, 3210,    0, 3204, 3215, 3216, 3216, 3216,
7697      3216, 3217, 3217, 3217, 3217, 3211,    0, 3211,    0, 3206,
7698      3220, 3220, 3220, 3220, 3224, 3224, 3224, 3224, 3226, 3226,
7699      3226, 3226,    0, 3209,    0, 3224, 3227, 3227, 3227, 3227,
7700
7701      3230, 3230, 3230, 3230,    0,    0, 3230, 3231, 3231, 3231,
7702      3231, 3211, 3233, 3233, 3233, 3233, 3234, 3234, 3234, 3234,
7703         0, 3286, 3286, 3286, 3286, 3287, 3287, 3287, 3287, 3233,
7704      3288, 3288, 3288, 3288,    0,    0,    0, 3233, 3286, 3290,
7705      3290, 3290, 3290,    0,    0,    0, 3286, 3291, 3291, 3291,
7706      3291, 3292, 3292, 3292, 3292, 3299, 3299, 3299, 3299, 3304,
7707      3304, 3304, 3304, 3308, 3308, 3308, 3308, 3310, 3310, 3310,
7708      3310, 3233, 3313, 3313, 3313, 3313, 3292, 3234, 3314, 3314,
7709      3314, 3314, 3315, 3315, 3315, 3315, 3316, 3316, 3316, 3316,
7710      3286, 3317, 3317, 3317, 3317,    0,    0, 3313, 3318, 3318,
7711
7712      3318, 3318, 3320, 3320, 3320, 3320, 3323, 3323, 3323, 3323,
7713         0, 3316, 3324, 3324, 3324, 3324, 3327, 3327, 3327, 3327,
7714      3328, 3328, 3328, 3328,    0,    0,    0, 3320,    0,    0,
7715         0, 3323, 3329, 3329, 3329, 3329, 3330, 3330, 3330, 3330,
7716         0, 3327, 3333, 3333, 3333, 3333,    0, 3320,    0,    0,
7717         0, 3323, 3336, 3336, 3336, 3336, 3337, 3337, 3337, 3337,
7718         0,    0,    0, 3336,    0,    0,    0, 3337,    0, 3336,
7719         0,    0,    0, 3337,    0,    0, 3320,    0,    0,    0,
7720      3323, 3338, 3338, 3338, 3338, 3339, 3339, 3339, 3339,    0,
7721         0,    0, 3338,    0,    0,    0, 3339,    0, 3338,    0,
7722
7723         0,    0, 3339, 3340, 3340, 3340, 3340, 3341, 3341, 3341,
7724      3341,    0,    0,    0, 3340, 3337,    0,    0, 3341,    0,
7725      3340, 3336,    0,    0, 3341, 3342, 3342, 3342, 3342, 3343,
7726      3343, 3343, 3343,    0,    0,    0, 3342,    0,    0,    0,
7727      3343, 3344, 3344, 3344, 3344,    0, 3343,    0, 3338,    0,
7728      3345, 3345, 3345, 3345, 3346, 3346, 3346, 3346, 3347, 3347,
7729      3347, 3347,    0,    0, 3340,    0, 3344,    0, 3344, 3348,
7730      3348, 3348, 3348,    0, 3341, 3345,    0, 3345,    0, 3346,
7731         0, 3346,    0, 3347,    0, 3347,    0,    0,    0, 3343,
7732      3349, 3349, 3349, 3349, 3348,    0, 3348,    0, 3345,    0,
7733
7734         0, 3346, 3351, 3351, 3351, 3351,    0, 3351, 3353, 3353,
7735      3353, 3353, 3351,    0,    0, 3349,    0, 3349, 3356, 3356,
7736      3356, 3356, 3347, 3357, 3357, 3357, 3357, 3362, 3362, 3362,
7737      3362,    0,    0, 3353,    0, 3353, 3364, 3364, 3364, 3364,
7738         0,    0,    0, 3356,    0, 3356,    0,    0, 3357,    0,
7739      3357,    0, 3362,    0, 3362, 3365, 3365, 3365, 3365,    0,
7740         0, 3364,    0, 3364, 3366, 3366, 3366, 3366, 3367, 3367,
7741      3367, 3367, 3368, 3368, 3368, 3368, 3369, 3369, 3369, 3369,
7742      3365, 3353, 3365, 3370, 3370, 3370, 3370, 3356,    0, 3366,
7743         0, 3366,    0, 3367,    0, 3367, 3371, 3371, 3371, 3371,
7744
7745         0, 3369,    0, 3369,    0,    0, 3364,    0, 3370,    0,
7746      3370, 3372, 3372, 3372, 3372, 3373, 3373, 3373, 3373,    0,
7747         0, 3371,    0, 3371,    0, 3366, 3374, 3374, 3374, 3374,
7748      3375, 3375, 3375, 3375,    0,    0, 3372,    0, 3372,    0,
7749      3373,    0, 3373, 3376, 3376, 3376, 3376, 3380, 3380, 3380,
7750      3380, 3374,    0,    0,    0, 3375,    0, 3375,    0,    0,
7751      3373,    0,    0, 3377, 3377, 3377, 3377,    0, 3376,    0,
7752      3376,    0, 3372, 3378, 3378, 3378, 3378, 3379, 3379, 3379,
7753      3379, 3381, 3381, 3381, 3381,    0, 3375,    0, 3377, 3373,
7754      3377, 3382, 3382, 3382, 3382,    0,    0,    0, 3378,    0,
7755
7756      3378,    0, 3379,    0, 3379,    0, 3381,    0, 3381,    0,
7757      3376, 3385, 3385, 3385, 3385,    0, 3382,    0, 3382, 3386,
7758      3386, 3386, 3386,    0, 3377,    0,    0,    0, 3381, 3387,
7759      3387, 3387, 3387,    0,    0,    0, 3385, 3379, 3385, 3388,
7760      3388, 3388, 3388,    0, 3386,    0, 3386, 3389, 3389, 3389,
7761      3389,    0,    0,    0, 3387,    0,    0, 3392, 3392, 3392,
7762      3392, 3382,    0,    0, 3388,    0, 3388, 3393, 3393, 3393,
7763      3393,    0, 3389,    0, 3389, 3394, 3394, 3394, 3394,    0,
7764         0, 3385, 3392,    0, 3392, 3398, 3398, 3398, 3398,    0,
7765         0, 3388, 3393,    0, 3393,    0,    0,    0, 3388,    0,
7766
7767      3388, 3399, 3399, 3399, 3399, 3400, 3400, 3400, 3400, 3401,
7768      3401, 3401, 3401, 3388,    0, 3388, 3388,    0, 3392, 3402,
7769      3402, 3402, 3402, 3403, 3403, 3403, 3403, 3404, 3404, 3404,
7770      3404, 3405, 3405, 3405, 3405,    0,    0, 3405, 3406, 3406,
7771      3406, 3406, 3394, 3408, 3408, 3408, 3408, 3426, 3426, 3426,
7772      3426,    0, 3450, 3450, 3450, 3450, 3451, 3451, 3451, 3451,
7773      3408, 3452, 3452, 3452, 3452,    0,    0,    0, 3408, 3450,
7774      3453, 3453, 3453, 3453,    0,    0,    0, 3450, 3454, 3454,
7775      3454, 3454, 3458, 3458, 3458, 3458, 3461, 3461, 3461, 3461,
7776      3465, 3465, 3465, 3465, 3466, 3466, 3466, 3466, 3469, 3469,
7777
7778      3469, 3469,    0, 3454, 3408, 3470, 3470, 3470, 3470, 3472,
7779      3472, 3472, 3472, 3473, 3473, 3473, 3473, 3474, 3474, 3474,
7780      3474, 3475, 3475, 3475, 3475,    0,    0, 3450, 3477, 3477,
7781      3477, 3477,    0,    0, 3472, 3478, 3478, 3478, 3478,    0,
7782         0,    0, 3474, 3482, 3482, 3482, 3482, 3486, 3486, 3486,
7783      3486,    0,    0, 3477, 3487, 3487, 3487, 3487, 3488, 3488,
7784      3488, 3488, 3489, 3489, 3489, 3489, 3491, 3491, 3491, 3491,
7785         0,    0, 3486, 3477, 3492, 3492, 3492, 3492, 3493, 3493,
7786      3493, 3493,    0,    0,    0, 3492,    0,    0,    0, 3493,
7787         0, 3492,    0,    0,    0, 3493, 3494, 3494, 3494, 3494,
7788
7789         0,    0, 3477, 3495, 3495, 3495, 3495, 3494,    0,    0,
7790      3488,    0,    0, 3494, 3495,    0,    0, 3488,    0, 3488,
7791      3496, 3496, 3496, 3496,    0, 3497, 3497, 3497, 3497,    0,
7792         0, 3496, 3488,    0, 3488, 3488, 3497, 3496,    0, 3493,
7793         0,    0, 3497, 3498, 3498, 3498, 3498,    0,    0, 3492,
7794      3499, 3499, 3499, 3499, 3498,    0, 3500, 3500, 3500, 3500,
7795      3498, 3501, 3501, 3501, 3501, 3502, 3502, 3502, 3502, 3505,
7796      3505, 3505, 3505,    0,    0, 3499,    0, 3499,    0,    0,
7797      3496, 3500,    0, 3500,    0,    0, 3501,    0, 3501,    0,
7798      3502,    0, 3502,    0, 3505,    0, 3505, 3506, 3506, 3506,
7799
7800      3506, 3499, 3507, 3507, 3507, 3507, 3513, 3513, 3513, 3513,
7801      3514, 3514, 3514, 3514,    0,    0,    0, 3500, 3515, 3515,
7802      3515, 3515, 3506,    0, 3506,    0,    0, 3502,    0,    0,
7803         0, 3513,    0, 3513,    0, 3514,    0, 3514, 3516, 3516,
7804      3516, 3516,    0, 3515,    0, 3515, 3517, 3517, 3517, 3517,
7805      3519, 3519, 3519, 3519, 3527, 3527, 3527, 3527, 3530, 3530,
7806      3530, 3530,    0, 3516,    0, 3516, 3538, 3538, 3538, 3538,
7807         0, 3517,    0,    0,    0, 3513,    0,    0,    0, 3520,
7808      3520, 3520, 3520, 3507, 3518, 3518, 3518, 3518, 3518, 3518,
7809      3518, 3518, 3518, 3518, 3518, 3518, 3518, 3518, 3518, 3518,
7810
7811      3518, 3518, 3518, 3518, 3520,    0, 3520,    0,    0,    0,
7812      3518, 3518, 3518, 3518, 3518, 3518, 3518, 3521, 3521, 3521,
7813      3521, 3522, 3522, 3522, 3522,    0, 3520, 3523, 3523, 3523,
7814      3523, 3524, 3524, 3524, 3524, 3527,    0, 3518, 3518, 3518,
7815      3518,    0, 3521,    0, 3521,    0, 3522,    0, 3522,    0,
7816         0,    0, 3523,    0, 3523,    0, 3524,    0, 3524, 3525,
7817      3525, 3525, 3525,    0,    0,    0, 3518, 3518, 3518, 3518,
7818         0, 3526, 3526, 3526, 3526,    0, 3524,    0,    0, 3529,
7819      3529, 3529, 3529,    0, 3525,    0, 3525, 3521, 3533, 3533,
7820      3533, 3533,    0,    0,    0, 3522, 3526,    0, 3526,    0,
7821
7822      3525,    0,    0,    0, 3529, 3524, 3529, 3536, 3536, 3536,
7823      3536,    0,    0, 3533,    0, 3533, 3539, 3539, 3539, 3539,
7824      3540, 3540, 3540, 3540, 3541, 3541, 3541, 3541, 3542, 3542,
7825      3542, 3542, 3536,    0, 3536, 3543, 3543, 3543, 3543, 3544,
7826      3544, 3544, 3544,    0,    0,    0, 3526,    0, 3529, 3545,
7827      3545, 3545, 3545, 3546, 3546, 3546, 3546,    0,    0, 3546,
7828      3547, 3547, 3547, 3547, 3548, 3548, 3548, 3548, 3549, 3549,
7829      3549, 3549, 3562, 3562, 3562, 3562,    0, 3582, 3582, 3582,
7830      3582, 3583, 3583, 3583, 3583, 3549, 3584, 3584, 3584, 3584,
7831         0,    0,    0, 3549, 3582, 3585, 3585, 3585, 3585,    0,
7832
7833         0,    0, 3582, 3588, 3588, 3588, 3588, 3589, 3589, 3589,
7834      3589, 3591, 3591, 3591, 3591, 3592, 3592, 3592, 3592,    0,
7835      3585, 3594, 3594, 3594, 3594, 3596, 3596, 3596, 3596, 3597,
7836      3597, 3597, 3597, 3598, 3598, 3598, 3598, 3599, 3599, 3599,
7837      3599, 3600, 3600, 3600, 3600, 3601, 3601, 3601, 3601,    0,
7838         0, 3582, 3602, 3602, 3602, 3602, 3606, 3606, 3606, 3606,
7839      3607, 3607, 3607, 3607,    0,    0, 3600, 3610, 3610, 3610,
7840      3610, 3611, 3611, 3611, 3611, 3612, 3612, 3612, 3612, 3613,
7841      3613, 3613, 3613,    0,    0, 3607, 3612,    0,    0,    0,
7842      3613,    0, 3612,    0,    0,    0, 3613, 3614, 3614, 3614,
7843
7844      3614, 3615, 3615, 3615, 3615, 3607,    0,    0, 3614,    0,
7845         0,    0, 3615, 3616, 3616, 3616, 3616,    0, 3615, 3617,
7846      3617, 3617, 3617,    0, 3616, 3618, 3618, 3618, 3618,    0,
7847      3617,    0, 3612,    0, 3607, 3619, 3619, 3619, 3619, 3620,
7848      3620, 3620, 3620, 3621, 3621, 3621, 3621,    0,    0,    0,
7849      3618,    0, 3618, 3623, 3623, 3623, 3623,    0,    0,    0,
7850      3619,    0, 3619,    0, 3620,    0, 3620, 3624, 3624, 3624,
7851      3624,    0, 3630, 3630, 3630, 3630,    0,    0, 3623,    0,
7852      3623, 3631, 3631, 3631, 3631, 3632, 3632, 3632, 3632, 3633,
7853      3633, 3633, 3633,    0,    0, 3619, 3620, 3630,    0, 3630,
7854
7855      3638, 3638, 3638, 3638,    0,    0, 3631,    0, 3631,    0,
7856      3632,    0, 3632, 3639, 3639, 3639, 3639,    0, 3641, 3641,
7857      3641, 3641,    0,    0, 3621, 3638,    0, 3638,    0,    0,
7858         0, 3630, 3643, 3643, 3643, 3643,    0,    0, 3639,    0,
7859      3639,    0,    0, 3641, 3632, 3641,    0,    0, 3624, 3648,
7860      3648, 3648, 3648,    0, 3639,    0,    0, 3643,    0, 3632,
7861      3635, 3635, 3635, 3635, 3635, 3635, 3635, 3635, 3635, 3635,
7862      3635, 3635, 3635, 3635, 3635, 3635, 3635, 3635, 3635, 3635,
7863      3657, 3657, 3657, 3657,    0,    0, 3635, 3635, 3635, 3635,
7864      3635, 3635, 3635, 3635, 3635, 3635, 3635, 3635, 3635, 3635,
7865
7866      3635, 3635, 3635, 3635, 3635, 3635, 3635, 3635, 3635, 3635,
7867      3635, 3635, 3635, 3635, 3635, 3635, 3635, 3635, 3635, 3635,
7868      3635, 3635, 3635, 3635, 3635, 3635, 3635, 3635, 3635, 3635,
7869      3635, 3635, 3635, 3635, 3635, 3635, 3635, 3635, 3635, 3635,
7870      3635, 3635, 3635, 3635, 3635, 3635, 3640, 3640, 3640, 3640,
7871      3642, 3642, 3642, 3642, 3644, 3644, 3644, 3644, 3645, 3645,
7872      3645, 3645, 3646, 3646, 3646, 3646, 3647, 3647, 3647, 3647,
7873         0, 3640,    0, 3640,    0, 3642,    0, 3642,    0, 3644,
7874         0, 3644,    0, 3645,    0, 3645,    0, 3646,    0, 3646,
7875         0, 3647,    0, 3647,    0, 3642, 3650, 3650, 3650, 3650,
7876
7877         0, 3651, 3651, 3651, 3651, 3646, 3656, 3656, 3656, 3656,
7878      3644,    0, 3656, 3658, 3658, 3658, 3658, 3659, 3659, 3659,
7879      3659, 3640,    0,    0, 3642, 3645, 3651,    0, 3651, 3686,
7880      3686, 3686, 3686,    0, 3659, 3687, 3687, 3687, 3687,    0,
7881      3647,    0, 3659,    0,    0,    0, 3686, 3688, 3688, 3688,
7882      3688,    0,    0,    0, 3686, 3690, 3690, 3690, 3690,    0,
7883      3651, 3691, 3691, 3691, 3691, 3692, 3692, 3692, 3692,    0,
7884         0,    0, 3688, 3693, 3693, 3693, 3693, 3650, 3694, 3694,
7885      3694, 3694, 3697, 3697, 3697, 3697, 3698, 3698, 3698, 3698,
7886      3699, 3699, 3699, 3699, 3700, 3700, 3700, 3700, 3703, 3703,
7887
7888      3703, 3703, 3704, 3704, 3704, 3704, 3705, 3705, 3705, 3705,
7889         0, 3710, 3710, 3710, 3710, 3711, 3711, 3711, 3711,    0,
7890         0,    0, 3710, 3703,    0,    0, 3711, 3704, 3710, 3712,
7891      3712, 3712, 3712, 3713, 3713, 3713, 3713,    0,    0,    0,
7892      3712, 3714, 3714, 3714, 3714,    0,    0, 3704,    0, 3699,
7893      3718, 3718, 3718, 3718, 3722, 3722, 3722, 3722, 3713,    0,
7894      3713,    0,    0,    0, 3699, 3723, 3723, 3723, 3723, 3724,
7895      3724, 3724, 3724,    0,    0, 3718, 3704, 3718, 3725, 3725,
7896      3725, 3725, 3722,    0,    0,    0, 3710,    0, 3726, 3726,
7897      3726, 3726, 3713, 3723, 3724,    0, 3724, 3727, 3727, 3727,
7898
7899      3727,    0,    0, 3725,    0, 3725, 3728, 3728, 3728, 3728,
7900         0, 3718, 3724, 3726,    0, 3726, 3729, 3729, 3729, 3729,
7901         0,    0, 3727, 3730, 3730, 3730, 3730,    0, 3731, 3731,
7902      3731, 3731, 3732, 3732, 3732, 3732, 3733, 3733, 3733, 3733,
7903         0, 3729,    0, 3729, 3735, 3735, 3735, 3735, 3730,    0,
7904      3730,    0, 3725, 3731,    0, 3731,    0, 3732,    0, 3732,
7905         0,    0,    0, 3729, 3736, 3736, 3736, 3736,    0, 3735,
7906         0, 3735, 3739, 3739, 3739, 3739, 3731,    0, 3739, 3740,
7907      3740, 3740, 3740, 3757, 3757, 3757, 3757, 3758, 3758, 3758,
7908      3758,    0,    0, 3730, 3759, 3759, 3759, 3759, 3761, 3761,
7909
7910      3761, 3761,    0,    0,    0, 3735,    0,    0, 3757, 3762,
7911      3762, 3762, 3762, 3766, 3766, 3766, 3766,    0,    0, 3759,
7912      3767, 3767, 3767, 3767, 3771, 3771, 3771, 3771,    0, 3772,
7913      3772, 3772, 3772,    0, 3773, 3773, 3773, 3773, 3766,    0,
7914      3772, 3774, 3774, 3774, 3774, 3736, 3772,    0,    0, 3771,
7915      3778, 3778, 3778, 3778, 3779, 3779, 3779, 3779,    0, 3773,
7916         0, 3773, 3781, 3781, 3781, 3781, 3782, 3782, 3782, 3782,
7917      3783, 3783, 3783, 3783, 3784, 3784, 3784, 3784, 3778,    0,
7918         0,    0, 3779, 3789, 3789, 3789, 3789, 3781,    0, 3781,
7919         0, 3782,    0, 3782, 3772, 3773,    0,    0,    0, 3784,
7920
7921         0, 3784, 3785, 3785, 3785, 3785, 3786, 3786, 3786, 3786,
7922      3781, 3787, 3787, 3787, 3787, 3784, 3788, 3788, 3788, 3788,
7923      3791, 3791, 3791, 3791,    0,    0,    0, 3785,    0, 3785,
7924         0, 3786,    0, 3786,    0,    0, 3787,    0, 3787,    0,
7925         0, 3788, 3793, 3793, 3793, 3793,    0,    0, 3793, 3794,
7926      3794, 3794, 3794, 3786, 3808, 3808, 3808, 3808, 3809, 3809,
7927      3809, 3809, 3813, 3813, 3813, 3813, 3817, 3817, 3817, 3817,
7928      3818, 3818, 3818, 3818,    0,    0,    0, 3785, 3819, 3819,
7929      3819, 3819,    0, 3809,    0,    0,    0, 3813,    0, 3819,
7930         0, 3817,    0,    0,    0, 3819, 3820, 3820, 3820, 3820,
7931
7932         0, 3791, 3823, 3823, 3823, 3823, 3824, 3824, 3824, 3824,
7933      3825, 3825, 3825, 3825, 3826, 3826, 3826, 3826, 3827, 3827,
7934      3827, 3827, 3828, 3828, 3828, 3828,    0, 3823,    0, 3823,
7935         0, 3824,    0, 3824,    0, 3825,    0,    0,    0, 3826,
7936         0, 3826,    0, 3827,    0, 3827,    0,    0, 3819, 3823,
7937      3829, 3829, 3829, 3829,    0,    0,    0, 3826, 3832, 3832,
7938      3832, 3832,    0,    0, 3832, 3833, 3833, 3833, 3833, 3843,
7939      3843, 3843, 3843, 3844, 3844, 3844, 3844, 3847, 3847, 3847,
7940      3847, 3848, 3848, 3848, 3848,    0, 3851, 3851, 3851, 3851,
7941         0,    0, 3827, 3854, 3854, 3854, 3854, 3851, 3844,    0,
7942
7943         0,    0, 3847, 3851, 3855, 3855, 3855, 3855, 3856, 3856,
7944      3856, 3856, 3858, 3858, 3858, 3858,    0,    0, 3858, 3859,
7945      3859, 3859, 3859, 3867, 3867, 3867, 3867,    0,    0, 3855,
7946         0, 3855,    0, 3856,    0, 3856, 3868, 3868, 3868, 3868,
7947      3871, 3871, 3871, 3871,    0, 3872, 3872, 3872, 3872,    0,
7948         0,    0, 3855,    0,    0, 3851, 3872, 3873, 3873, 3873,
7949      3873, 3868, 3872,    0,    0, 3871, 3875, 3875, 3875, 3875,
7950      3876, 3876, 3876, 3876, 3877, 3877, 3877, 3877, 3879, 3879,
7951      3879, 3879,    0,    0, 3879, 3880, 3880, 3880, 3880,    0,
7952         0, 3875,    0, 3875,    0, 3876,    0, 3876,    0, 3877,
7953
7954      3888, 3888, 3888, 3888, 3889, 3889, 3889, 3889, 3890, 3890,
7955      3890, 3890,    0, 3875, 3892, 3892, 3892, 3892, 3893, 3893,
7956      3893, 3893, 3894, 3894, 3894, 3894,    0,    0,    0, 3889,
7957         0,    0,    0, 3894, 3895, 3895, 3895, 3895, 3873, 3892,
7958      3897, 3897, 3897, 3897, 3898, 3898, 3898, 3898, 3899, 3899,
7959      3899, 3899, 3900, 3900, 3900, 3900,    0,    0, 3900, 3901,
7960      3901, 3901, 3901, 3909, 3909, 3909, 3909, 3910, 3910, 3910,
7961      3910, 3911, 3911, 3911, 3911,    0, 3899, 3912, 3912, 3912,
7962      3912, 3914, 3914, 3914, 3914, 3915, 3915, 3915, 3915,    0,
7963      3915,    0, 3910,    0,    0, 3915, 3916, 3916, 3916, 3916,
7964
7965         0,    0, 3916, 3917, 3917, 3917, 3917,    0,    0, 3914,
7966      3925, 3925, 3925, 3925, 3926, 3926, 3926, 3926,    0,    0,
7967         0, 3897, 3927, 3927, 3927, 3927,    0, 3927, 3930, 3930,
7968      3930, 3930, 3927,    0, 3930, 3931, 3931, 3931, 3931, 3926,
7969      3936, 3936, 3936, 3936, 3937, 3937, 3937, 3937, 3939, 3939,
7970      3939, 3939,    0,    0, 3939,    0, 3915, 3940, 3940, 3940,
7971      3940, 3941, 3941, 3941, 3941, 3942, 3942, 3942, 3942, 3937,
7972      3943, 3943, 3943, 3943,    0, 3943, 3944, 3944, 3944, 3944,
7973      3943,    0, 3944, 3945, 3945, 3945, 3945,    0,    0,    0,
7974      3942,    0,    0, 3927, 3946, 3946, 3946, 3946,    0, 3943,
7975
7976      3947, 3947, 3947, 3947, 3948, 3948, 3948, 3948, 3949, 3949,
7977      3949, 3949, 3951, 3951, 3951, 3951,    0,    0, 3951, 3952,
7978      3952, 3952, 3952,    0,    0, 3947, 3953, 3953, 3953, 3953,
7979         0,    0,    0, 3948,    0,    0,    0, 3949, 3954, 3954,
7980      3954, 3954, 3955, 3955, 3955, 3955,    0,    0, 3955, 3956,
7981      3956, 3956, 3956, 3957, 3957, 3957, 3957, 3958, 3958, 3958,
7982      3958,    0,    0, 3954, 3959, 3959, 3959, 3959,    0,    0,
7983      3959, 3960, 3960, 3960, 3960, 3961, 3961, 3961, 3961,    0,
7984         0,    0, 3958, 3962, 3962, 3962, 3962, 3963, 3963, 3963,
7985      3963,    0,    0, 3963, 3964, 3964, 3964, 3964, 3965, 3965,
7986
7987      3965, 3965, 3966, 3966, 3966, 3966,    0,    0, 3962, 3967,
7988      3967, 3967, 3967,    0,    0, 3967, 3968, 3968, 3968, 3968,
7989      3969, 3969, 3969, 3969,    0,    0,    0, 3966, 3970, 3970,
7990      3970, 3970, 3971, 3971, 3971, 3971,    0,    0, 3971, 3972,
7991      3972, 3972, 3972, 3973, 3973, 3973, 3973, 3974, 3974, 3974,
7992      3974,    0,    0, 3970, 3975, 3975, 3975, 3975,    0,    0,
7993      3975, 3976, 3976, 3976, 3976, 3977, 3977, 3977, 3977,    0,
7994         0,    0, 3974, 3978, 3978, 3978, 3978, 3979, 3979, 3979,
7995      3979,    0,    0, 3979, 3980, 3980, 3980, 3980, 3981, 3981,
7996      3981, 3981, 3982, 3982, 3982, 3982,    0,    0, 3978, 3983,
7997
7998      3983, 3983, 3983,    0,    0, 3983, 3984, 3984, 3984, 3984,
7999      3985, 3985, 3985, 3985,    0,    0,    0, 3982, 3986, 3986,
8000      3986, 3986, 3987, 3987, 3987, 3987,    0,    0, 3987, 3988,
8001      3988, 3988, 3988, 3989, 3989, 3989, 3989, 3990, 3990, 3990,
8002      3990,    0,    0, 3986, 3991, 3991, 3991, 3991,    0,    0,
8003      3991, 3992, 3992, 3992, 3992, 3993, 3993, 3993, 3993,    0,
8004         0,    0, 3990, 3994, 3994, 3994, 3994, 3995, 3995, 3995,
8005      3995,    0,    0, 3995, 3996, 3996, 3996, 3996, 3997, 3997,
8006      3997, 3997, 3998, 3998, 3998, 3998,    0,    0, 3994, 3999,
8007      3999, 3999, 3999,    0,    0, 3999, 4000, 4000, 4000, 4000,
8008
8009      4001, 4001, 4001, 4001,    0,    0,    0, 3998, 4002, 4002,
8010      4002, 4002, 4003, 4003, 4003, 4003,    0,    0, 4003, 4004,
8011      4004, 4004, 4004, 4005, 4005, 4005, 4005, 4006, 4006, 4006,
8012      4006,    0,    0, 4002, 4007, 4007, 4007, 4007,    0,    0,
8013      4007, 4008, 4008, 4008, 4008, 4009, 4009, 4009, 4009,    0,
8014         0,    0, 4006, 4010, 4010, 4010, 4010, 4011, 4011, 4011,
8015      4011,    0,    0, 4011, 4012, 4012, 4012, 4012, 4013, 4013,
8016      4013, 4013, 4014, 4014, 4014, 4014,    0,    0, 4010, 4015,
8017      4015, 4015, 4015,    0,    0, 4015, 4016, 4016, 4016, 4016,
8018      4017, 4017, 4017, 4017,    0,    0,    0, 4014, 4018, 4018,
8019
8020      4018, 4018, 4019, 4019, 4019, 4019,    0,    0, 4019, 4020,
8021      4020, 4020, 4020, 4021, 4021, 4021, 4021, 4022, 4022, 4022,
8022      4022,    0,    0, 4018, 4023, 4023, 4023, 4023,    0,    0,
8023      4023, 4024, 4024, 4024, 4024, 4025, 4025, 4025, 4025,    0,
8024         0,    0, 4022, 4026, 4026, 4026, 4026, 4027, 4027, 4027,
8025      4027,    0,    0, 4027, 4028, 4028, 4028, 4028, 4029, 4029,
8026      4029, 4029, 4030, 4030, 4030, 4030,    0,    0, 4026, 4031,
8027      4031, 4031, 4031,    0,    0, 4031, 4032, 4032, 4032, 4032,
8028      4033, 4033, 4033, 4033,    0,    0,    0, 4030, 4034, 4034,
8029      4034, 4034, 4035, 4035, 4035, 4035,    0,    0, 4035, 4036,
8030
8031      4036, 4036, 4036, 4037, 4037, 4037, 4037, 4038, 4038, 4038,
8032      4038,    0,    0, 4034, 4039, 4039, 4039, 4039,    0,    0,
8033      4039, 4040, 4040, 4040, 4040, 4041, 4041, 4041, 4041,    0,
8034         0,    0, 4038, 4042, 4042, 4042, 4042, 4043, 4043, 4043,
8035      4043,    0,    0, 4043, 4044, 4044, 4044, 4044, 4045, 4045,
8036      4045, 4045, 4046, 4046, 4046, 4046,    0,    0, 4042, 4047,
8037      4047, 4047, 4047,    0,    0, 4047, 4048, 4048, 4048, 4048,
8038      4049, 4049, 4049, 4049,    0,    0,    0, 4046, 4050, 4050,
8039      4050, 4050, 4051, 4051, 4051, 4051,    0,    0, 4051, 4052,
8040      4052, 4052, 4052, 4053, 4053, 4053, 4053, 4054, 4054, 4054,
8041
8042      4054,    0,    0, 4050, 4055, 4055, 4055, 4055,    0,    0,
8043      4055, 4056, 4056, 4056, 4056, 4057, 4057, 4057, 4057,    0,
8044         0,    0, 4054, 4058, 4058, 4058, 4058, 4059, 4059, 4059,
8045      4059,    0,    0, 4059, 4060, 4060, 4060, 4060, 4061, 4061,
8046      4061, 4061, 4062, 4062, 4062, 4062,    0,    0, 4058, 4063,
8047      4063, 4063, 4063,    0,    0, 4063, 4064, 4064, 4064, 4064,
8048      4065, 4065, 4065, 4065,    0,    0,    0, 4062, 4066, 4066,
8049      4066, 4066, 4067, 4067, 4067, 4067,    0,    0, 4067, 4068,
8050      4068, 4068, 4068, 4069, 4069, 4069, 4069, 4070, 4070, 4070,
8051      4070,    0,    0, 4066, 4071, 4071, 4071, 4071,    0,    0,
8052
8053      4071, 4072, 4072, 4072, 4072, 4073, 4073, 4073, 4073,    0,
8054         0,    0, 4070, 4074, 4074, 4074, 4074, 4075, 4075, 4075,
8055      4075,    0,    0, 4075, 4076, 4076, 4076, 4076, 4077, 4077,
8056      4077, 4077, 4078, 4078, 4078, 4078,    0,    0, 4074, 4079,
8057      4079, 4079, 4079,    0,    0, 4079, 4080, 4080, 4080, 4080,
8058      4081, 4081, 4081, 4081,    0,    0,    0, 4078, 4082, 4082,
8059      4082, 4082, 4083, 4083, 4083, 4083,    0,    0, 4083, 4084,
8060      4084, 4084, 4084, 4085, 4085, 4085, 4085, 4086, 4086, 4086,
8061      4086,    0,    0, 4082, 4087, 4087, 4087, 4087,    0,    0,
8062      4087, 4088, 4088, 4088, 4088, 4089, 4089, 4089, 4089,    0,
8063
8064         0,    0, 4086, 4090, 4090, 4090, 4090, 4091, 4091, 4091,
8065      4091,    0,    0, 4091, 4092, 4092, 4092, 4092, 4093, 4093,
8066      4093, 4093, 4094, 4094, 4094, 4094,    0,    0, 4090, 4095,
8067      4095, 4095, 4095,    0,    0, 4095, 4096, 4096, 4096, 4096,
8068      4097, 4097, 4097, 4097,    0,    0,    0, 4094, 4098, 4098,
8069      4098, 4098, 4099, 4099, 4099, 4099,    0,    0, 4099, 4100,
8070      4100, 4100, 4100, 4101, 4101, 4101, 4101, 4102, 4102, 4102,
8071      4102,    0,    0, 4098, 4103, 4103, 4103, 4103,    0,    0,
8072      4103, 4104, 4104, 4104, 4104, 4105, 4105, 4105, 4105,    0,
8073         0,    0, 4102, 4106, 4106, 4106, 4106, 4107, 4107, 4107,
8074
8075      4107,    0,    0, 4107, 4108, 4108, 4108, 4108, 4109, 4109,
8076      4109, 4109, 4110, 4110, 4110, 4110,    0,    0, 4106, 4111,
8077      4111, 4111, 4111,    0,    0, 4111, 4112, 4112, 4112, 4112,
8078      4113, 4113, 4113, 4113,    0,    0,    0, 4110, 4114, 4114,
8079      4114, 4114, 4115, 4115, 4115, 4115,    0,    0, 4115, 4116,
8080      4116, 4116, 4116, 4117, 4117, 4117, 4117, 4118, 4118, 4118,
8081      4118,    0,    0, 4114, 4119, 4119, 4119, 4119,    0,    0,
8082      4119, 4120, 4120, 4120, 4120, 4121, 4121, 4121, 4121,    0,
8083         0,    0, 4118, 4122, 4122, 4122, 4122, 4123, 4123, 4123,
8084      4123,    0,    0, 4123, 4124, 4124, 4124, 4124, 4125, 4125,
8085
8086      4125, 4125, 4126, 4126, 4126, 4126,    0,    0, 4122, 4127,
8087      4127, 4127, 4127,    0,    0, 4127, 4128, 4128, 4128, 4128,
8088      4129, 4129, 4129, 4129,    0,    0,    0, 4126, 4130, 4130,
8089      4130, 4130, 4131, 4131, 4131, 4131,    0,    0, 4131, 4132,
8090      4132, 4132, 4132, 4133, 4133, 4133, 4133, 4134, 4134, 4134,
8091      4134,    0,    0, 4130, 4135, 4135, 4135, 4135,    0,    0,
8092      4135, 4136, 4136, 4136, 4136, 4137, 4137, 4137, 4137,    0,
8093         0,    0, 4134, 4138, 4138, 4138, 4138, 4139, 4139, 4139,
8094      4139,    0,    0, 4139, 4140, 4140, 4140, 4140, 4141, 4141,
8095      4141, 4141, 4142, 4142, 4142, 4142,    0,    0, 4138, 4143,
8096
8097      4143, 4143, 4143,    0,    0, 4143, 4144, 4144, 4144, 4144,
8098      4145, 4145, 4145, 4145,    0,    0,    0, 4142, 4146, 4146,
8099      4146, 4146, 4147, 4147, 4147, 4147,    0,    0, 4147, 4148,
8100      4148, 4148, 4148, 4149, 4149, 4149, 4149, 4150, 4150, 4150,
8101      4150,    0,    0, 4146, 4151, 4151, 4151, 4151,    0,    0,
8102      4151, 4152, 4152, 4152, 4152, 4153, 4153, 4153, 4153,    0,
8103         0,    0, 4150, 4154, 4154, 4154, 4154, 4155, 4155, 4155,
8104      4155,    0,    0, 4155, 4156, 4156, 4156, 4156, 4157, 4157,
8105      4157, 4157, 4158, 4158, 4158, 4158,    0,    0, 4154, 4159,
8106      4159, 4159, 4159,    0,    0, 4159, 4160, 4160, 4160, 4160,
8107
8108      4161, 4161, 4161, 4161,    0,    0,    0, 4158, 4162, 4162,
8109      4162, 4162, 4163, 4163, 4163, 4163,    0,    0, 4163, 4164,
8110      4164, 4164, 4164, 4165, 4165, 4165, 4165, 4166, 4166, 4166,
8111      4166,    0,    0, 4162, 4167, 4167, 4167, 4167,    0,    0,
8112      4167, 4168, 4168, 4168, 4168, 4169, 4169, 4169, 4169,    0,
8113         0,    0, 4166, 4170, 4170, 4170, 4170, 4171, 4171, 4171,
8114      4171,    0,    0, 4171, 4172, 4172, 4172, 4172, 4173, 4173,
8115      4173, 4173, 4174, 4174, 4174, 4174,    0,    0, 4170, 4175,
8116      4175, 4175, 4175,    0,    0, 4175, 4176, 4176, 4176, 4176,
8117      4177, 4177, 4177, 4177,    0,    0,    0, 4174, 4178, 4178,
8118
8119      4178, 4178, 4179, 4179, 4179, 4179,    0,    0, 4179, 4180,
8120      4180, 4180, 4180, 4181, 4181, 4181, 4181, 4182, 4182, 4182,
8121      4182,    0,    0, 4178, 4183, 4183, 4183, 4183,    0,    0,
8122      4183, 4184, 4184, 4184, 4184, 4185, 4185, 4185, 4185,    0,
8123         0,    0, 4182, 4186, 4186, 4186, 4186, 4187, 4187, 4187,
8124      4187,    0,    0, 4187, 4189, 4189, 4189, 4189, 4190, 4190,
8125      4190, 4190,    0,    0, 4190,    0,    0,    0, 4186, 4192,
8126      4192, 4192, 4192, 4192, 4192, 4192, 4192, 4192, 4192, 4192,
8127      4192, 4192, 4192, 4192, 4192, 4192, 4192, 4192, 4192, 4192,
8128      4192, 4192, 4192, 4192, 4192, 4192, 4192, 4192, 4192, 4192,
8129
8130      4192, 4193, 4193, 4193, 4193, 4193, 4193, 4193, 4193, 4193,
8131      4193, 4193, 4193, 4193, 4193, 4193, 4193, 4193, 4193, 4193,
8132      4193, 4193, 4193, 4193, 4193, 4193, 4193, 4193, 4193, 4193,
8133      4193, 4193, 4193, 4194, 4194, 4194, 4194, 4194, 4194, 4194,
8134      4194, 4194, 4194, 4194, 4194, 4194, 4194, 4194, 4194, 4194,
8135      4194, 4194, 4194, 4194, 4194, 4194, 4194, 4194, 4194, 4194,
8136      4194, 4194, 4194, 4194, 4194, 4195, 4195, 4195, 4195, 4195,
8137      4195, 4195, 4195, 4195, 4195, 4195, 4195, 4195, 4195, 4195,
8138      4195, 4195, 4195, 4195, 4195, 4195, 4195, 4195, 4195, 4195,
8139      4195, 4195, 4195, 4195, 4195, 4195, 4195, 4196, 4196, 4196,
8140
8141      4196, 4196, 4196, 4196, 4196, 4196, 4196, 4196, 4196, 4196,
8142      4196, 4196, 4196, 4196, 4196, 4196, 4196, 4196, 4196, 4196,
8143      4196, 4196, 4196, 4196, 4196, 4196, 4196, 4196, 4196, 4197,
8144      4197, 4197, 4197, 4197, 4197, 4197, 4197, 4197, 4197, 4197,
8145      4197, 4197, 4197, 4197, 4197, 4197, 4197, 4197, 4197, 4197,
8146      4197, 4197, 4197, 4197, 4197, 4197, 4197, 4197, 4197, 4197,
8147      4197, 4198, 4198, 4198, 4198, 4198, 4198, 4198, 4198, 4198,
8148      4198, 4198, 4198, 4198, 4198, 4198, 4198, 4198, 4198, 4198,
8149      4198, 4198, 4198, 4198, 4198, 4198, 4198, 4198, 4198, 4198,
8150      4198, 4198, 4198, 4199, 4199, 4199, 4199, 4199, 4199, 4199,
8151
8152      4199, 4199, 4199, 4199, 4199, 4199, 4199, 4199, 4199, 4199,
8153      4199, 4199, 4199, 4199, 4199, 4199, 4199, 4199, 4199, 4199,
8154      4199, 4199, 4199, 4199, 4199, 4200, 4200, 4200, 4200, 4200,
8155      4200, 4200, 4200, 4200, 4200, 4200, 4200, 4200, 4200, 4200,
8156      4200, 4200, 4200, 4200, 4200, 4200, 4200, 4200, 4200, 4200,
8157      4200, 4200, 4200, 4200, 4200, 4200, 4200, 4201, 4201, 4201,
8158      4201, 4201, 4201, 4201, 4201, 4201, 4201, 4201, 4201, 4201,
8159      4201, 4201, 4201, 4201, 4201, 4201, 4201, 4201, 4201, 4201,
8160      4201, 4201, 4201, 4201, 4201, 4201, 4201, 4201, 4201, 4202,
8161      4202, 4202, 4202, 4202, 4202, 4202, 4202, 4202, 4202, 4202,
8162
8163      4202, 4202, 4202, 4202, 4202, 4202, 4202, 4202, 4202, 4202,
8164      4202, 4202, 4202, 4202, 4202, 4202, 4202, 4202, 4202, 4202,
8165      4202, 4203, 4203, 4203, 4203, 4203, 4203, 4203, 4203, 4203,
8166      4203, 4203, 4203, 4203, 4203, 4203, 4203, 4203, 4203, 4203,
8167      4203, 4203, 4203, 4203, 4203, 4203, 4203, 4203, 4203, 4203,
8168      4203, 4203, 4203, 4204, 4204, 4204, 4204, 4204, 4204, 4204,
8169      4204, 4204, 4204, 4204, 4204, 4204, 4204, 4204, 4204, 4204,
8170      4204, 4204, 4204, 4204, 4204, 4204, 4204, 4204, 4204, 4204,
8171      4204, 4204, 4204, 4204, 4204, 4205, 4205, 4205, 4205, 4205,
8172      4205, 4205, 4205, 4205, 4205, 4205, 4205, 4205, 4205, 4205,
8173
8174      4205, 4205, 4205, 4205, 4205, 4205, 4205, 4205, 4205, 4205,
8175      4205, 4205, 4205, 4205, 4205, 4205, 4205, 4206, 4206, 4206,
8176      4206, 4206, 4206, 4206, 4206, 4206, 4206, 4206, 4206, 4206,
8177      4206, 4206, 4206, 4206, 4206, 4206, 4206, 4206, 4206, 4206,
8178      4206, 4206, 4206, 4206, 4206, 4206, 4206, 4206, 4206, 4207,
8179      4207, 4207, 4207, 4207, 4207, 4207, 4207, 4207, 4207, 4207,
8180      4207, 4207, 4207, 4207, 4207, 4207, 4207, 4207, 4207, 4207,
8181      4207, 4207, 4207, 4207, 4207, 4207, 4207, 4207, 4207, 4207,
8182      4207, 4208, 4208, 4208, 4208, 4208, 4208, 4208, 4208, 4208,
8183      4208, 4208, 4208, 4208, 4208, 4208, 4208, 4208, 4208, 4208,
8184
8185      4208, 4208, 4208, 4208, 4208, 4208, 4208, 4208, 4208, 4208,
8186      4208, 4208, 4208, 4209, 4209, 4209, 4209, 4209, 4209, 4209,
8187      4209, 4209, 4209, 4209, 4209, 4209, 4209, 4209, 4209, 4209,
8188      4209, 4209, 4209, 4209, 4209, 4209, 4209, 4209, 4209, 4209,
8189      4209, 4209, 4209, 4209, 4209, 4210, 4210, 4210, 4210, 4210,
8190      4210, 4210, 4210, 4210, 4210, 4210, 4210, 4210, 4210, 4210,
8191      4210, 4210, 4210, 4210, 4210, 4210, 4210, 4210, 4210, 4210,
8192      4210, 4210, 4210, 4210, 4210, 4210, 4210, 4211, 4211, 4211,
8193      4211, 4211, 4211, 4211, 4211, 4211, 4211, 4211, 4211, 4211,
8194      4211, 4211, 4211, 4211, 4211, 4211, 4211, 4211, 4211, 4211,
8195
8196      4211, 4211, 4211, 4211, 4211, 4211, 4211, 4211, 4211, 4212,
8197      4212, 4212, 4212, 4212, 4212, 4212, 4212, 4212, 4212, 4212,
8198      4212, 4212, 4212, 4212, 4212, 4212, 4212, 4212, 4212, 4212,
8199      4212, 4212, 4212, 4212, 4212, 4212, 4212, 4212, 4212, 4212,
8200      4212, 4213, 4213, 4213, 4213, 4213, 4213, 4213, 4213, 4213,
8201      4213, 4213, 4213, 4213, 4213, 4213, 4213, 4213, 4213, 4213,
8202      4213, 4213, 4213, 4213, 4213, 4213, 4213, 4213, 4213, 4213,
8203      4213, 4213, 4213, 4214, 4214, 4214, 4214, 4214, 4214, 4214,
8204      4214, 4214, 4214, 4214, 4214, 4214, 4214, 4214, 4214, 4214,
8205      4214, 4214, 4214, 4214, 4214, 4214, 4214, 4214, 4214, 4214,
8206
8207      4214, 4214, 4214, 4214, 4214, 4215, 4215, 4215, 4215, 4215,
8208      4215, 4215, 4215, 4215, 4215, 4215, 4215, 4215, 4215, 4215,
8209      4215, 4215, 4215, 4215, 4215, 4215, 4215, 4215, 4215, 4215,
8210      4215, 4215, 4215, 4215, 4215, 4215, 4215, 4216, 4216, 4216,
8211      4216, 4216, 4216, 4216, 4216, 4216, 4216, 4216, 4216, 4216,
8212      4216, 4216, 4216, 4216, 4216, 4216, 4216, 4216, 4216, 4216,
8213      4216, 4216, 4216, 4216, 4216, 4216, 4216, 4216, 4216, 4217,
8214      4217, 4217, 4217, 4217, 4217, 4217, 4217, 4217, 4217, 4217,
8215      4217, 4217, 4217, 4217, 4217, 4217, 4217, 4217, 4217, 4217,
8216      4217, 4217, 4217, 4217, 4217, 4217, 4217, 4217, 4217, 4217,
8217
8218      4217, 4218, 4218, 4218, 4218, 4218, 4218, 4218, 4218, 4218,
8219      4218, 4218, 4218, 4218, 4218, 4218, 4218, 4218, 4218, 4218,
8220      4218, 4218, 4218, 4218, 4218, 4218, 4218, 4218, 4218, 4218,
8221      4218, 4218, 4218, 4219, 4219, 4219, 4219, 4219, 4219, 4219,
8222      4219, 4219, 4219, 4219, 4219, 4219, 4219, 4219, 4219, 4219,
8223      4219, 4219, 4219, 4219, 4219, 4219, 4219, 4219, 4219, 4219,
8224      4219, 4219, 4219, 4219, 4219, 4220, 4220, 4220, 4220, 4220,
8225      4220, 4220, 4220, 4220, 4220, 4220, 4220, 4220, 4220, 4220,
8226      4220, 4220, 4220, 4220, 4220, 4220, 4220, 4220, 4220, 4220,
8227      4220, 4220, 4220, 4220, 4220, 4220, 4220, 4221, 4221, 4221,
8228
8229      4221, 4221, 4221, 4221, 4221, 4221, 4221, 4221, 4221, 4221,
8230      4221, 4221, 4221, 4221, 4221, 4221, 4221, 4221, 4221, 4221,
8231      4221, 4221, 4221, 4221, 4221, 4221, 4221, 4221, 4221, 4222,
8232      4222, 4222, 4222, 4222, 4222, 4222, 4222, 4222, 4222, 4222,
8233      4222, 4222, 4222, 4222, 4222, 4222, 4222, 4222, 4222, 4222,
8234      4222, 4222, 4222, 4222, 4222, 4222, 4222, 4222, 4222, 4222,
8235      4222, 4223, 4223, 4223, 4223, 4223, 4223, 4223, 4223, 4223,
8236      4223, 4223, 4223, 4223, 4223, 4223, 4223, 4223, 4223, 4223,
8237      4223, 4223, 4223, 4223, 4223, 4223, 4223, 4223, 4223, 4223,
8238      4223, 4223, 4223, 4224, 4224, 4224, 4224, 4224, 4224, 4224,
8239
8240      4224, 4224, 4224, 4224, 4224, 4224, 4224, 4224, 4224, 4224,
8241      4224, 4224, 4224, 4224, 4224, 4224, 4224, 4224, 4224, 4224,
8242      4224, 4224, 4224, 4224, 4224, 4225, 4225, 4225, 4225, 4225,
8243      4225, 4225, 4225, 4225, 4225, 4225, 4225, 4225, 4225, 4225,
8244      4225, 4225, 4225, 4225, 4225, 4225, 4225, 4225, 4225, 4225,
8245      4225, 4225, 4225, 4225, 4225, 4225, 4225, 4226, 4226, 4226,
8246      4226, 4226, 4226, 4226, 4226, 4226, 4226, 4226, 4226, 4226,
8247      4226, 4226, 4226, 4226, 4226, 4226, 4226, 4226, 4226, 4226,
8248      4226, 4226, 4226, 4226, 4226, 4226, 4226, 4226, 4226, 4227,
8249      4227, 4227, 4227, 4227, 4227, 4227, 4227, 4227, 4227, 4227,
8250
8251      4227, 4227, 4227, 4227, 4227, 4227, 4227, 4227, 4227, 4227,
8252      4227, 4227, 4227, 4227, 4227, 4227, 4227, 4227, 4227, 4227,
8253      4227, 4228, 4228, 4228, 4228, 4228, 4228, 4228, 4228, 4228,
8254      4228, 4228, 4228, 4228, 4228, 4228, 4228, 4228, 4228, 4228,
8255      4228, 4228, 4228, 4228, 4228, 4228, 4228, 4228, 4228, 4228,
8256      4228, 4228, 4228, 4229, 4229, 4229, 4229, 4229, 4229, 4229,
8257      4229, 4229, 4229, 4229, 4229, 4229, 4229, 4229, 4229, 4229,
8258      4229, 4229, 4229, 4229, 4229, 4229, 4229, 4229, 4229, 4229,
8259      4229, 4229, 4229, 4229, 4229, 4230, 4230, 4230, 4230, 4230,
8260      4230, 4230, 4230, 4230, 4230, 4230, 4230, 4230, 4230, 4230,
8261
8262      4230, 4230, 4230, 4230, 4230, 4230, 4230, 4230, 4230, 4230,
8263      4230, 4230, 4230, 4230, 4230, 4230, 4230, 4231, 4231, 4231,
8264      4231, 4231, 4231, 4231, 4231, 4231, 4231, 4231, 4231, 4231,
8265      4231, 4231, 4231, 4231, 4231, 4231, 4231, 4231, 4231, 4231,
8266      4231, 4231, 4231, 4231, 4231, 4231, 4231, 4231, 4231, 4232,
8267      4232, 4232, 4232, 4232, 4232, 4232, 4232, 4232, 4232, 4232,
8268      4232, 4232, 4232, 4232, 4232, 4232, 4232, 4232, 4232, 4232,
8269      4232, 4232, 4232, 4232, 4232, 4232, 4232, 4232, 4232, 4232,
8270      4232, 4233, 4233, 4233, 4233, 4233, 4233, 4233, 4233, 4233,
8271      4233, 4233, 4233, 4233, 4233, 4233, 4233, 4233, 4233, 4233,
8272
8273      4233, 4233, 4233, 4233, 4233, 4233, 4233, 4233, 4233, 4233,
8274      4233, 4233, 4233, 4234, 4234, 4234, 4234, 4234, 4234, 4234,
8275      4234, 4234, 4234, 4234, 4234, 4234, 4234, 4234, 4234, 4234,
8276      4234, 4234, 4234, 4234, 4234, 4234, 4234, 4234, 4234, 4234,
8277      4234, 4234, 4234, 4234, 4234, 4235, 4235, 4235, 4235, 4235,
8278      4235, 4235, 4235, 4235, 4235, 4235, 4235, 4235, 4235, 4235,
8279      4235, 4235, 4235, 4235, 4235, 4235, 4235, 4235, 4235, 4235,
8280      4235, 4235, 4235, 4235, 4235, 4235, 4235, 4236, 4236, 4236,
8281      4236, 4236, 4236, 4236, 4236, 4236, 4236, 4236, 4236, 4236,
8282      4236, 4236, 4236, 4236, 4236, 4236, 4236, 4236, 4236, 4236,
8283
8284      4236, 4236, 4236, 4236, 4236, 4236, 4236, 4236, 4236, 4237,
8285      4237, 4237, 4237, 4237, 4237, 4237, 4237, 4237, 4237, 4237,
8286      4237, 4237, 4237, 4237, 4237, 4237, 4237, 4237, 4237, 4237,
8287      4237, 4237, 4237, 4237, 4237, 4237, 4237, 4237, 4237, 4237,
8288      4237, 4238, 4238, 4238, 4238, 4238, 4238, 4238, 4238, 4238,
8289      4238, 4238, 4238, 4238, 4238, 4238, 4238, 4238, 4238, 4238,
8290      4238, 4238, 4238, 4238, 4238, 4238, 4238, 4238, 4238, 4238,
8291      4238, 4238, 4238, 4239, 4239, 4239, 4239, 4239, 4239, 4239,
8292      4239, 4239, 4239, 4239, 4239, 4239, 4239, 4239, 4239, 4239,
8293      4239, 4239, 4239, 4239, 4239, 4239, 4239, 4239, 4239, 4239,
8294
8295      4239, 4239, 4239, 4239, 4239, 4240, 4240, 4240, 4240, 4240,
8296      4240, 4240, 4240, 4240, 4240, 4240, 4240, 4240, 4240, 4240,
8297      4240, 4240, 4240, 4240, 4240, 4240, 4240, 4240, 4240, 4240,
8298      4240, 4240, 4240, 4240, 4240, 4240, 4240, 4241, 4241, 4241,
8299      4241, 4241, 4241, 4241, 4241, 4241, 4241, 4241, 4241, 4241,
8300      4241, 4241, 4241, 4241, 4241, 4241, 4241, 4241, 4241, 4241,
8301      4241, 4241, 4241, 4241, 4241, 4241, 4241, 4241, 4241, 4242,
8302      4242, 4242, 4242, 4242, 4242, 4242, 4242, 4242, 4242, 4242,
8303      4242, 4242, 4242, 4242, 4242, 4242, 4242, 4242, 4242, 4242,
8304      4242, 4242, 4242, 4242, 4242, 4242, 4242, 4242, 4242, 4242,
8305
8306      4242, 4243, 4243, 4243, 4243, 4243, 4243, 4243, 4243, 4243,
8307      4243, 4243, 4243, 4243, 4243, 4243, 4243, 4243, 4243, 4243,
8308      4243, 4243, 4243, 4243, 4243, 4243, 4243, 4243, 4243, 4243,
8309      4243, 4243, 4243, 4244, 4244, 4244, 4244, 4244, 4244, 4244,
8310      4244, 4244, 4244, 4244, 4244, 4244, 4244, 4244, 4244, 4244,
8311      4244, 4244, 4244, 4244, 4244, 4244, 4244, 4244, 4244, 4244,
8312      4244, 4244, 4244, 4244, 4244, 4245, 4245, 4245, 4245, 4245,
8313      4245, 4245, 4245, 4245, 4245, 4245, 4245, 4245, 4245, 4245,
8314      4245, 4245, 4245, 4245, 4245, 4245, 4245, 4245, 4245, 4245,
8315      4245, 4245, 4245, 4245, 4245, 4245, 4245, 4246, 4246, 4246,
8316
8317      4246, 4246, 4246, 4246, 4246, 4246, 4246, 4246, 4246, 4246,
8318      4246, 4246, 4246, 4246, 4246, 4246, 4246, 4246, 4246, 4246,
8319      4246, 4246, 4246, 4246, 4246, 4246, 4246, 4246, 4246, 4247,
8320      4247, 4247, 4247, 4247, 4247, 4247, 4247, 4247, 4247, 4247,
8321      4247, 4247, 4247, 4247, 4247, 4247, 4247, 4247, 4247, 4247,
8322      4247, 4247, 4247, 4247, 4247, 4247, 4247, 4247, 4247, 4247,
8323      4247, 4248, 4248, 4248, 4248, 4248, 4248, 4248, 4248, 4248,
8324      4248, 4248, 4248, 4248, 4248, 4248, 4248, 4248, 4248, 4248,
8325      4248, 4248, 4248, 4248, 4248, 4248, 4248, 4248, 4248, 4248,
8326      4248, 4248, 4248, 4249, 4249, 4249, 4249, 4249, 4249, 4249,
8327
8328      4249, 4249, 4249, 4249, 4249, 4249, 4249, 4249, 4249, 4249,
8329      4249, 4249, 4249, 4249, 4249, 4249, 4249, 4249, 4249, 4249,
8330      4249, 4249, 4249, 4249, 4249, 4250, 4250, 4250, 4250, 4250,
8331      4250, 4250, 4250, 4250, 4250, 4250, 4250, 4250, 4250, 4250,
8332      4250, 4250, 4250, 4250, 4250, 4250, 4250, 4250, 4250, 4250,
8333      4250, 4250, 4250, 4250, 4250, 4250, 4250, 4251, 4251, 4251,
8334      4251, 4251, 4251, 4251, 4251, 4251, 4251, 4251, 4251, 4251,
8335      4251, 4251, 4251, 4251, 4251, 4251, 4251, 4251, 4251, 4251,
8336      4251, 4251, 4251, 4251, 4251, 4251, 4251, 4251, 4251, 4252,
8337      4252, 4252, 4252, 4252, 4252, 4252, 4252, 4252, 4252, 4252,
8338
8339      4252, 4252, 4252, 4252, 4252, 4252, 4252, 4252, 4252, 4252,
8340      4252, 4252, 4252, 4252, 4252, 4252, 4252, 4252, 4252, 4252,
8341      4252, 4253, 4253, 4253, 4253, 4253, 4253, 4253, 4253, 4253,
8342      4253, 4253, 4253, 4253, 4253, 4253, 4253, 4253, 4253, 4253,
8343      4253, 4253, 4253, 4253, 4253, 4253, 4253, 4253, 4253, 4253,
8344      4253, 4253, 4253, 4254, 4254, 4254, 4254, 4254, 4254, 4254,
8345      4254, 4254, 4254, 4254, 4254, 4254, 4254, 4254, 4254, 4254,
8346      4254, 4254, 4254, 4254, 4254, 4254, 4254, 4254, 4254, 4254,
8347      4254, 4254, 4254, 4254, 4254, 4255, 4255, 4255, 4255, 4255,
8348      4255, 4255, 4255, 4255, 4255, 4255, 4255, 4255, 4255, 4255,
8349
8350      4255, 4255, 4255, 4255, 4255, 4255, 4255, 4255, 4255, 4255,
8351      4255, 4255, 4255, 4255, 4255, 4255, 4255, 4256, 4256, 4256,
8352      4256, 4256, 4256, 4256, 4256, 4256, 4256, 4256, 4256, 4256,
8353      4256, 4256, 4256, 4256, 4256, 4256, 4256, 4256, 4256, 4256,
8354      4256, 4256, 4256, 4256, 4256, 4256, 4256, 4256, 4256, 4257,
8355      4257, 4257, 4257, 4257, 4257, 4257, 4257, 4257, 4257, 4257,
8356      4257, 4257, 4257, 4257, 4257, 4257, 4257, 4257, 4257, 4257,
8357      4257, 4257, 4257, 4257, 4257, 4257, 4257, 4257, 4257, 4257,
8358      4257, 4258, 4258, 4258, 4258, 4258, 4258, 4258, 4258, 4258,
8359      4258, 4258, 4258, 4258, 4258, 4258, 4258, 4258, 4258, 4258,
8360
8361      4258, 4258, 4258, 4258, 4258, 4258, 4258, 4258, 4258, 4258,
8362      4258, 4258, 4258, 4259, 4259, 4259, 4259, 4259, 4259, 4259,
8363      4259, 4259, 4259, 4259, 4259, 4259, 4259, 4259, 4259, 4259,
8364      4259, 4259, 4259, 4259, 4259, 4259, 4259, 4259, 4259, 4259,
8365      4259, 4259, 4259, 4259, 4259, 4260, 4260, 4260, 4260, 4260,
8366      4260, 4260, 4260, 4260, 4260, 4260, 4260, 4260, 4260, 4260,
8367      4260, 4260, 4260, 4260, 4260, 4260, 4260, 4260, 4260, 4260,
8368      4260, 4260, 4260, 4260, 4260, 4260, 4260, 4261, 4261, 4261,
8369      4261, 4261, 4261, 4261, 4261, 4261, 4261, 4261, 4261, 4261,
8370      4261, 4261, 4261, 4261, 4261, 4261, 4261, 4261, 4261, 4261,
8371
8372      4261, 4261, 4261, 4261, 4261, 4261, 4261, 4261, 4261, 4262,
8373      4262, 4262, 4262, 4262, 4262, 4262, 4262, 4262, 4262, 4262,
8374      4262, 4262, 4262, 4262, 4262, 4262, 4262, 4262, 4262, 4262,
8375      4262, 4262, 4262, 4262, 4262, 4262, 4262, 4262, 4262, 4262,
8376      4262, 4264,    0,    0,    0,    0,    0,    0,    0,    0,
8377      4264,    0,    0,    0,    0,    0, 4264,    0,    0,    0,
8378         0,    0,    0, 4264,    0,    0,    0,    0,    0,    0,
8379         0, 4264, 4265, 4265, 4265,    0,    0,    0, 4265,    0,
8380         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
8381         0,    0,    0,    0, 4265,    0,    0,    0,    0,    0,
8382
8383         0,    0, 4265, 4266, 4266, 4266, 4266,    0,    0, 4266,
8384         0,    0,    0,    0,    0,    0,    0,    0,    0, 4266,
8385         0,    0,    0,    0,    0, 4266,    0,    0,    0,    0,
8386         0,    0, 4266, 4266, 4267, 4267, 4267,    0,    0,    0,
8387      4267,    0,    0,    0,    0,    0,    0, 4267,    0,    0,
8388         0,    0,    0,    0,    0,    0, 4267,    0,    0,    0,
8389         0,    0,    0, 4267, 4267, 4268, 4268, 4268,    0,    0,
8390         0,    0,    0,    0, 4268,    0,    0, 4268, 4268,    0,
8391      4268, 4268, 4268, 4268,    0,    0,    0, 4268,    0,    0,
8392         0,    0,    0,    0,    0, 4268, 4269, 4269, 4269,    0,
8393
8394         0,    0, 4269,    0,    0,    0,    0,    0,    0,    0,
8395         0,    0,    0,    0,    0,    0,    0,    0, 4269,    0,
8396         0,    0,    0,    0,    0,    0, 4269, 4270, 4270, 4270,
8397      4270, 4270, 4270, 4270, 4270, 4270, 4270, 4270, 4270, 4270,
8398         0, 4270, 4270, 4270, 4270, 4270, 4270, 4270, 4270, 4270,
8399      4270, 4270, 4270, 4270, 4270,    0, 4270, 4270, 4270, 4271,
8400      4271, 4271,    0,    0,    0, 4271,    0,    0,    0,    0,
8401         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
8402         0, 4271,    0,    0,    0,    0,    0,    0,    0, 4271,
8403      4272, 4272, 4272, 4272,    0,    0, 4272,    0,    0,    0,
8404
8405         0,    0,    0,    0,    0,    0, 4272,    0,    0,    0,
8406         0,    0, 4272,    0,    0,    0,    0,    0,    0, 4272,
8407      4272, 4273, 4273, 4273,    0,    0,    0,    0,    0,    0,
8408      4273,    0,    0,    0,    0,    0, 4273, 4273,    0,    0,
8409         0,    0,    0, 4273,    0,    0,    0,    0,    0,    0,
8410         0, 4273, 4277,    0,    0,    0, 4277,    0, 4277,    0,
8411         0, 4277,    0,    0,    0, 4277,    0,    0,    0,    0,
8412         0,    0,    0, 4277, 4278, 4278,    0, 4278, 4278, 4278,
8413      4278, 4278, 4278, 4278, 4278, 4278, 4278, 4278, 4278, 4278,
8414      4278, 4278, 4278, 4278, 4278, 4278, 4278, 4278, 4278, 4278,
8415
8416      4278, 4278, 4278, 4278, 4278, 4278, 4285, 4285, 4285,    0,
8417         0,    0, 4285,    0,    0,    0,    0,    0,    0,    0,
8418         0,    0,    0,    0,    0,    0,    0,    0, 4285,    0,
8419         0,    0,    0, 4285,    0,    0, 4285, 4287, 4287, 4287,
8420         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
8421      4287,    0, 4287, 4287,    0,    0,    0,    0,    0, 4287,
8422         0, 4287,    0,    0,    0,    0,    0, 4287, 4289, 4289,
8423         0, 4289, 4289, 4289, 4289, 4289, 4289,    0, 4289, 4289,
8424      4289, 4289, 4289, 4289, 4289, 4289, 4289, 4289, 4289, 4289,
8425      4289, 4289, 4289, 4289, 4289, 4289, 4289, 4289, 4289, 4289,
8426
8427      4290, 4290, 4290,    0,    0,    0, 4290,    0,    0,    0,
8428         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
8429         0,    0, 4290,    0,    0,    0,    0,    0,    0,    0,
8430      4290, 4291, 4291, 4291, 4291,    0,    0, 4291,    0,    0,
8431         0,    0,    0,    0,    0,    0,    0, 4291,    0,    0,
8432         0,    0,    0, 4291,    0,    0,    0,    0,    0,    0,
8433      4291, 4291, 4292, 4292, 4292,    0,    0,    0, 4292, 4292,
8434         0,    0,    0, 4292,    0,    0,    0,    0, 4292,    0,
8435         0,    0,    0,    0, 4292,    0,    0,    0, 4292,    0,
8436         0,    0, 4292, 4295, 4295, 4295,    0,    0,    0,    0,
8437
8438         0,    0,    0,    0,    0,    0,    0,    0, 4295, 4295,
8439         0, 4295,    0,    0,    0, 4295,    0,    0,    0,    0,
8440         0,    0,    0, 4295, 4296, 4296, 4296, 4296, 4296, 4296,
8441      4296, 4296, 4296, 4296, 4296, 4296, 4296, 4296, 4296, 4296,
8442      4296, 4296, 4296, 4296, 4296, 4296, 4296, 4296, 4296, 4296,
8443      4296, 4296, 4296, 4296, 4296, 4296, 4297, 4297,    0, 4297,
8444      4297, 4297, 4297, 4297, 4297, 4297, 4297, 4297, 4297, 4297,
8445      4297, 4297, 4297, 4297, 4297,    0, 4297, 4297, 4297, 4297,
8446      4297, 4297, 4297, 4297, 4297, 4297, 4297, 4297, 4298, 4298,
8447      4298,    0,    0,    0, 4298,    0,    0,    0,    0,    0,
8448
8449         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
8450      4298,    0,    0,    0,    0,    0,    0,    0, 4298, 4299,
8451      4299, 4299, 4299,    0,    0, 4299,    0,    0,    0,    0,
8452         0,    0,    0,    0,    0, 4299,    0,    0,    0,    0,
8453         0, 4299,    0,    0,    0,    0,    0,    0, 4299, 4299,
8454      4300, 4300, 4300,    0,    0,    0,    0,    0,    0,    0,
8455         0,    0,    0,    0,    0, 4300, 4300,    0, 4300,    0,
8456         0,    0, 4300,    0,    0,    0,    0,    0,    0,    0,
8457      4300, 4305, 4305,    0,    0, 4305,    0,    0, 4305, 4305,
8458         0, 4305, 4305, 4305, 4305, 4305,    0, 4305, 4305, 4305,
8459
8460         0, 4305, 4305,    0, 4305, 4305, 4305, 4305, 4305,    0,
8461         0, 4305, 4305, 4306, 4306,    0, 4306, 4306, 4306, 4306,
8462      4306, 4306, 4306, 4306, 4306, 4306, 4306, 4306, 4306, 4306,
8463      4306, 4306, 4306, 4306, 4306, 4306, 4306, 4306, 4306, 4306,
8464      4306, 4306, 4306, 4306, 4306, 4307, 4307,    0, 4307, 4307,
8465      4307, 4307, 4307, 4307,    0, 4307, 4307, 4307, 4307, 4307,
8466      4307, 4307, 4307, 4307, 4307, 4307, 4307, 4307, 4307, 4307,
8467      4307, 4307, 4307, 4307, 4307, 4307, 4307, 4309, 4309, 4309,
8468         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
8469      4309,    0, 4309, 4309,    0,    0,    0,    0,    0, 4309,
8470
8471         0,    0,    0,    0,    0,    0,    0, 4309, 4310, 4310,
8472      4310,    0,    0,    0, 4310,    0,    0,    0,    0,    0,
8473         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
8474      4310,    0,    0,    0,    0,    0,    0,    0, 4310, 4311,
8475      4311, 4311, 4311,    0,    0, 4311,    0,    0,    0,    0,
8476         0,    0,    0,    0,    0, 4311,    0,    0,    0,    0,
8477         0, 4311,    0,    0,    0,    0,    0,    0, 4311, 4311,
8478      4312, 4312, 4312,    0,    0,    0,    0,    0,    0,    0,
8479         0,    0,    0,    0,    0, 4312, 4312,    0,    0,    0,
8480         0,    0, 4312,    0,    0,    0,    0,    0,    0,    0,
8481
8482      4312, 4313, 4313,    0, 4313, 4313,    0,    0, 4313, 4313,
8483         0, 4313, 4313, 4313, 4313, 4313,    0, 4313, 4313, 4313,
8484         0, 4313, 4313,    0, 4313, 4313,    0, 4313, 4313,    0,
8485         0, 4313, 4313, 4314, 4314,    0, 4314, 4314, 4314, 4314,
8486      4314, 4314,    0, 4314, 4314, 4314, 4314, 4314, 4314, 4314,
8487      4314, 4314, 4314, 4314, 4314, 4314, 4314, 4314, 4314, 4314,
8488      4314, 4314, 4314, 4314, 4314, 4315, 4315,    0, 4315, 4315,
8489      4315, 4315, 4315, 4315, 4315, 4315, 4315, 4315, 4315, 4315,
8490      4315, 4315, 4315, 4315, 4315, 4315, 4315, 4315, 4315, 4315,
8491      4315, 4315, 4315, 4315, 4315, 4315, 4315, 4316, 4316,    0,
8492
8493      4316, 4316, 4316, 4316, 4316, 4316, 4316, 4316, 4316,    0,
8494      4316, 4316, 4316, 4316, 4316, 4316, 4316, 4316, 4316, 4316,
8495      4316, 4316, 4316, 4316, 4316, 4316, 4316, 4316, 4316, 4317,
8496      4317, 4317, 4317, 4317, 4317, 4317, 4317, 4317, 4317, 4317,
8497      4317, 4317, 4317, 4317, 4317, 4317, 4317, 4317, 4317, 4317,
8498      4317, 4317, 4317, 4317, 4317, 4317, 4317, 4317, 4317, 4317,
8499      4317, 4318, 4318,    0, 4318, 4318,    0, 4318, 4318, 4318,
8500      4318, 4318, 4318, 4318, 4318, 4318, 4318, 4318, 4318, 4318,
8501      4318, 4318, 4318, 4318, 4318,    0, 4318,    0, 4318, 4318,
8502      4318, 4318, 4318, 4319, 4319,    0, 4319, 4319, 4319, 4319,
8503
8504      4319, 4319, 4319, 4319, 4319, 4319, 4319, 4319, 4319, 4319,
8505      4319, 4319, 4319, 4319, 4319, 4319, 4319, 4319, 4319, 4319,
8506      4319, 4319, 4319, 4319, 4319, 4322,    0,    0,    0, 4322,
8507      4322, 4322, 4322, 4322, 4322, 4322, 4322,    0, 4322,    0,
8508         0, 4322, 4322, 4322, 4322, 4322, 4322, 4322, 4322, 4322,
8509      4322, 4322, 4322, 4322, 4322, 4322, 4322, 4324,    0, 4324,
8510         0,    0,    0,    0,    0,    0, 4324,    0, 4324,    0,
8511         0,    0,    0,    0, 4324, 4326, 4326, 4326,    0,    0,
8512         0,    0,    0,    0,    0,    0,    0,    0, 4326,    0,
8513      4326,    0,    0,    0,    0,    0,    0, 4326,    0,    0,
8514
8515         0,    0,    0,    0,    0, 4326, 4328, 4328, 4328,    0,
8516         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
8517         0, 4328,    0,    0,    0,    0,    0,    0, 4328,    0,
8518      4328,    0,    0,    0,    0,    0, 4328, 4331, 4331,    0,
8519      4331, 4331, 4331, 4331, 4331, 4331, 4331, 4331, 4331, 4331,
8520      4331, 4331, 4331, 4331, 4331, 4331, 4331, 4331, 4331, 4331,
8521      4331, 4331, 4331, 4331, 4331, 4331, 4331, 4331, 4331, 4333,
8522         0,    0,    0, 4333,    0,    0,    0,    0,    0,    0,
8523      4333,    0,    0,    0,    0,    0,    0, 4333,    0,    0,
8524         0,    0,    0,    0,    0, 4333, 4336, 4336,    0, 4336,
8525
8526      4336,    0, 4336, 4336, 4336, 4336, 4336, 4336, 4336, 4336,
8527      4336, 4336, 4336, 4336, 4336, 4336, 4336, 4336, 4336, 4336,
8528      4336, 4336, 4336, 4336, 4336, 4336, 4336, 4336, 4339, 4339,
8529      4339, 4339, 4339, 4339, 4339, 4339, 4339, 4339, 4339,    0,
8530      4339, 4339, 4339, 4339, 4339, 4339, 4339, 4339, 4339, 4339,
8531      4339, 4339, 4339, 4339, 4339, 4339, 4339, 4339, 4339, 4339,
8532      4341, 4341, 4341,    0,    0,    0,    0,    0,    0,    0,
8533         0,    0,    0,    0,    0, 4341, 4341,    0,    0,    0,
8534         0,    0, 4341,    0,    0,    0,    0,    0,    0,    0,
8535      4341, 4342, 4342, 4342, 4342, 4342, 4342, 4342, 4342, 4342,
8536
8537      4342, 4342,    0, 4342, 4342, 4342, 4342, 4342, 4342, 4342,
8538      4342, 4342, 4342, 4342, 4342, 4342, 4342, 4342, 4342, 4342,
8539      4342, 4342, 4342, 4344, 4344,    0, 4344,    0,    0,    0,
8540      4344,    0,    0,    0,    0,    0,    0,    0, 4344, 4351,
8541      4351,    0, 4351, 4351, 4351, 4351, 4351, 4351,    0, 4351,
8542      4351, 4351, 4351, 4351, 4351, 4351, 4351, 4351, 4351, 4351,
8543      4351, 4351, 4351, 4351, 4351, 4351, 4351, 4351, 4351, 4351,
8544      4351, 4352, 4352, 4352,    0,    0,    0, 4352,    0,    0,
8545         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
8546         0,    0,    0, 4352,    0,    0,    0,    0,    0,    0,
8547
8548         0, 4352, 4353, 4353, 4353,    0,    0,    0,    0,    0,
8549         0,    0,    0, 4353,    0,    0,    0, 4353,    0,    0,
8550         0,    0,    0,    0, 4353,    0,    0,    0,    0,    0,
8551         0,    0, 4353, 4354, 4354, 4354,    0,    0,    0, 4354,
8552      4354,    0,    0,    0, 4354,    0,    0,    0,    0,    0,
8553         0,    0,    0,    0,    0, 4354,    0,    0,    0,    0,
8554         0,    0,    0, 4354, 4355, 4355, 4355,    0,    0,    0,
8555         0,    0,    0,    0,    0,    0,    0,    0,    0, 4355,
8556         0,    0,    0,    0,    0,    0, 4355, 4355,    0,    0,
8557         0,    0,    0,    0, 4355, 4356, 4356, 4356,    0,    0,
8558
8559         0, 4356,    0,    0,    0,    0,    0,    0,    0,    0,
8560         0,    0,    0,    0,    0,    0,    0, 4356,    0,    0,
8561         0,    0,    0,    0,    0, 4356, 4357, 4357, 4357, 4357,
8562         0,    0, 4357,    0,    0,    0,    0,    0,    0,    0,
8563         0,    0, 4357,    0,    0,    0,    0,    0, 4357,    0,
8564         0,    0,    0,    0,    0, 4357, 4357, 4358, 4358, 4358,
8565         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
8566         0,    0, 4358, 4358,    0,    0,    0,    0,    0, 4358,
8567         0,    0,    0,    0,    0,    0,    0, 4358, 4359, 4359,
8568         0, 4359, 4359, 4359, 4359, 4359, 4359, 4359, 4359, 4359,
8569
8570      4359, 4359, 4359, 4359, 4359, 4359, 4359, 4359, 4359, 4359,
8571      4359, 4359, 4359, 4359, 4359, 4359, 4359, 4359, 4359, 4359,
8572      4360,    0,    0,    0, 4360,    0,    0, 4360, 4360,    0,
8573         0,    0, 4360, 4360, 4360,    0, 4360, 4360, 4360, 4360,
8574      4360, 4360, 4360, 4360, 4360, 4360, 4360, 4360, 4360, 4360,
8575      4360, 4360, 4361, 4361,    0, 4361, 4361, 4361, 4361, 4361,
8576      4361,    0, 4361, 4361, 4361, 4361, 4361, 4361, 4361, 4361,
8577      4361, 4361, 4361, 4361, 4361, 4361, 4361, 4361, 4361, 4361,
8578      4361, 4361, 4361, 4361, 4366, 4366,    0, 4366, 4366, 4366,
8579      4366, 4366, 4366, 4366, 4366, 4366, 4366, 4366, 4366, 4366,
8580
8581      4366, 4366, 4366, 4366, 4366, 4366, 4366, 4366, 4366, 4366,
8582      4366, 4366, 4366, 4366, 4366, 4366, 4367, 4367,    0, 4367,
8583      4367, 4367, 4367, 4367, 4367, 4367, 4367, 4367, 4367, 4367,
8584      4367, 4367, 4367, 4367, 4367, 4367, 4367, 4367, 4367, 4367,
8585      4367, 4367, 4367, 4367, 4367, 4367, 4367, 4367, 4368, 4368,
8586         0, 4368, 4368,    0, 4368, 4368, 4368,    0,    0,    0,
8587      4368, 4368, 4368, 4368, 4368, 4368, 4368, 4368, 4368, 4368,
8588      4368, 4368, 4368, 4368, 4368, 4368, 4368, 4368, 4368, 4368,
8589      4369, 4369,    0, 4369, 4369, 4369, 4369, 4369, 4369,    0,
8590      4369, 4369, 4369, 4369, 4369, 4369, 4369, 4369, 4369, 4369,
8591
8592      4369, 4369, 4369, 4369, 4369, 4369, 4369, 4369, 4369, 4369,
8593      4369, 4369, 4370, 4370,    0, 4370, 4370,    0, 4370, 4370,
8594      4370,    0, 4370, 4370, 4370, 4370, 4370,    0, 4370, 4370,
8595      4370, 4370, 4370, 4370, 4370, 4370, 4370, 4370, 4370, 4370,
8596         0,    0, 4370, 4370, 4371, 4371,    0, 4371, 4371, 4371,
8597      4371, 4371, 4371,    0, 4371, 4371, 4371, 4371, 4371, 4371,
8598      4371, 4371, 4371, 4371, 4371, 4371, 4371, 4371, 4371, 4371,
8599      4371, 4371, 4371, 4371, 4371, 4371, 4372, 4372,    0, 4372,
8600      4372,    0, 4372, 4372, 4372,    0,    0,    0, 4372, 4372,
8601      4372,    0, 4372, 4372, 4372, 4372, 4372, 4372, 4372, 4372,
8602
8603      4372, 4372, 4372, 4372, 4372, 4372, 4372, 4372, 4373, 4373,
8604         0, 4373, 4373, 4373, 4373, 4373, 4373,    0, 4373, 4373,
8605      4373, 4373, 4373, 4373, 4373, 4373, 4373, 4373, 4373, 4373,
8606      4373, 4373, 4373, 4373, 4373, 4373, 4373, 4373, 4373, 4373,
8607      4374, 4374,    0, 4374, 4374,    0, 4374, 4374, 4374,    0,
8608      4374, 4374, 4374, 4374, 4374,    0, 4374, 4374, 4374, 4374,
8609      4374, 4374, 4374, 4374, 4374, 4374, 4374, 4374,    0,    0,
8610      4374, 4374, 4375, 4375,    0, 4375, 4375, 4375, 4375, 4375,
8611      4375,    0, 4375, 4375, 4375, 4375, 4375, 4375, 4375, 4375,
8612      4375, 4375, 4375, 4375, 4375, 4375, 4375, 4375, 4375, 4375,
8613
8614      4375, 4375, 4375, 4375, 4377, 4377,    0, 4377, 4377, 4377,
8615      4377, 4377, 4377,    0, 4377, 4377, 4377, 4377, 4377, 4377,
8616      4377, 4377, 4377, 4377, 4377, 4377, 4377, 4377, 4377, 4377,
8617      4377, 4377, 4377, 4377, 4377, 4377, 4379, 4379,    0, 4379,
8618      4379,    0, 4379, 4379, 4379,    0, 4379, 4379, 4379, 4379,
8619      4379, 4379, 4379, 4379, 4379, 4379, 4379, 4379, 4379, 4379,
8620      4379,    0, 4379, 4379, 4379, 4379, 4379, 4379, 4380, 4380,
8621         0, 4380, 4380, 4380, 4380, 4380, 4380, 4380, 4380, 4380,
8622      4380, 4380, 4380, 4380, 4380, 4380, 4380, 4380, 4380, 4380,
8623      4380, 4380, 4380, 4380, 4380, 4380, 4380, 4380, 4380, 4380,
8624
8625      4381, 4381,    0, 4381, 4381,    0, 4381, 4381, 4381,    0,
8626         0,    0, 4381, 4381, 4381,    0, 4381, 4381, 4381, 4381,
8627      4381, 4381, 4381, 4381, 4381, 4381, 4381, 4381, 4381, 4381,
8628      4381, 4381, 4382, 4382,    0, 4382, 4382, 4382, 4382, 4382,
8629      4382, 4382, 4382, 4382,    0, 4382, 4382, 4382, 4382, 4382,
8630      4382, 4382, 4382, 4382,    0, 4382, 4382,    0, 4382, 4382,
8631      4382, 4382, 4382, 4382, 4383, 4383,    0, 4383, 4383, 4383,
8632      4383, 4383, 4383, 4383, 4383, 4383, 4383, 4383, 4383, 4383,
8633      4383, 4383, 4383, 4383, 4383, 4383,    0, 4383, 4383,    0,
8634      4383, 4383, 4383, 4383, 4383, 4383, 4394, 4394, 4394, 4394,
8635
8636      4394, 4394, 4394, 4394, 4394, 4394, 4394,    0, 4394, 4394,
8637      4394, 4394, 4394, 4394, 4394, 4394, 4394, 4394, 4394, 4394,
8638      4394, 4394, 4394, 4394, 4394, 4394, 4394, 4394, 4395,    0,
8639      4395, 4395, 4395, 4395, 4395, 4395, 4395, 4395,    0,    0,
8640      4395, 4395, 4395, 4395, 4395, 4395, 4395, 4395, 4395, 4395,
8641      4395, 4395, 4395,    0, 4395, 4395, 4395, 4395, 4395, 4395,
8642      4396, 4396, 4396, 4396, 4396, 4396, 4396, 4396, 4396, 4396,
8643      4396,    0, 4396, 4396, 4396, 4396, 4396, 4396, 4396, 4396,
8644      4396, 4396, 4396, 4396, 4396, 4396, 4396, 4396, 4396, 4396,
8645      4396, 4396, 4397,    0, 4397, 4397, 4397, 4397, 4397, 4397,
8646
8647      4397, 4397,    0,    0, 4397, 4397, 4397, 4397, 4397, 4397,
8648      4397, 4397, 4397, 4397, 4397, 4397, 4397,    0, 4397, 4397,
8649      4397, 4397, 4397, 4397, 4398, 4398, 4398,    0,    0,    0,
8650      4398,    0,    0,    0,    0,    0,    0,    0,    0,    0,
8651         0,    0,    0,    0,    0,    0, 4398, 4398,    0,    0,
8652         0,    0,    0,    0, 4398, 4400, 4400, 4400,    0,    0,
8653         0,    0,    0,    0,    0, 4400,    0, 4400,    0,    0,
8654      4400,    0,    0,    0,    0,    0,    0, 4400,    0,    0,
8655         0,    0,    0,    0,    0, 4400, 4401, 4401, 4401, 4401,
8656      4401, 4401, 4401, 4401, 4401, 4401, 4401, 4401, 4401, 4401,
8657
8658      4401, 4401, 4401, 4401, 4401, 4401, 4401, 4401, 4401, 4401,
8659      4401, 4401, 4401, 4401, 4401, 4401, 4401, 4401, 4402, 4402,
8660      4402,    0,    0,    0, 4402,    0,    0,    0,    0,    0,
8661         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
8662      4402,    0,    0,    0,    0,    0,    0,    0, 4402, 4404,
8663      4404, 4404,    0,    0,    0,    0,    0,    0, 4404,    0,
8664         0,    0,    0,    0, 4404,    0,    0,    0,    0,    0,
8665         0, 4404,    0,    0,    0,    0,    0,    0,    0, 4404,
8666      4405,    0,    0,    0,    0,    0, 4405, 4405,    0,    0,
8667         0, 4405,    0,    0,    0,    0,    0,    0,    0,    0,
8668
8669         0,    0, 4405,    0,    0,    0,    0,    0,    0,    0,
8670      4405, 4406, 4406, 4406,    0,    0,    0, 4406,    0,    0,
8671         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
8672         0,    0,    0, 4406,    0,    0,    0,    0,    0,    0,
8673         0, 4406, 4407, 4407, 4407, 4407,    0,    0, 4407,    0,
8674         0,    0,    0,    0,    0,    0,    0,    0, 4407,    0,
8675         0,    0,    0,    0, 4407,    0,    0,    0,    0,    0,
8676         0, 4407, 4407, 4408, 4408, 4408,    0,    0,    0,    0,
8677         0,    0,    0,    0,    0,    0,    0,    0, 4408, 4408,
8678         0,    0,    0,    0,    0, 4408,    0,    0,    0,    0,
8679
8680         0,    0,    0, 4408, 4409, 4409, 4409, 4409, 4409, 4409,
8681      4409, 4409, 4409, 4409, 4409, 4409, 4409, 4409, 4409, 4409,
8682      4409, 4409, 4409, 4409, 4409, 4409, 4409, 4409, 4409, 4409,
8683      4409, 4409, 4409, 4409, 4409, 4409, 4410, 4410,    0, 4410,
8684      4410, 4410, 4410, 4410, 4410, 4410, 4410, 4410,    0, 4410,
8685      4410,    0, 4410, 4410, 4410, 4410, 4410, 4410,    0, 4410,
8686      4410,    0, 4410, 4410, 4410, 4410, 4410, 4410, 4411, 4411,
8687      4411, 4411, 4411, 4411, 4411, 4411, 4411, 4411, 4411, 4411,
8688      4411, 4411, 4411, 4411,    0, 4411, 4411, 4411, 4411, 4411,
8689      4411,    0, 4411, 4411, 4411, 4411, 4411, 4411, 4411, 4411,
8690
8691      4412, 4412,    0, 4412, 4412, 4412, 4412,    0, 4412, 4412,
8692      4412, 4412,    0, 4412, 4412,    0, 4412, 4412, 4412,    0,
8693      4412, 4412,    0, 4412, 4412,    0,    0, 4412, 4412, 4412,
8694      4412, 4412, 4413,    0,    0,    0,    0,    0,    0,    0,
8695         0, 4413,    0,    0,    0,    0,    0, 4413,    0,    0,
8696         0,    0,    0,    0, 4413,    0,    0,    0,    0,    0,
8697         0,    0, 4413, 4414, 4414, 4414,    0,    0,    0, 4414,
8698         0,    0,    0,    0,    0,    0, 4414,    0,    0,    0,
8699         0,    0,    0,    0,    0, 4414,    0,    0,    0,    0,
8700         0,    0, 4414, 4414, 4415, 4415, 4415,    0,    0,    0,
8701
8702      4415,    0,    0,    0,    0,    0,    0,    0,    0,    0,
8703         0,    0,    0,    0,    0,    0, 4415,    0,    0,    0,
8704         0,    0,    0,    0, 4415, 4416, 4416, 4416,    0,    0,
8705         0,    0,    0,    0, 4416,    0,    0, 4416,    0,    0,
8706      4416,    0, 4416, 4416,    0,    0,    0, 4416,    0,    0,
8707         0,    0,    0,    0,    0, 4416, 4418, 4418, 4418,    0,
8708         0,    0,    0,    0,    0, 4418,    0,    0, 4418, 4418,
8709         0, 4418, 4418, 4418, 4418,    0,    0,    0, 4418,    0,
8710         0,    0,    0,    0,    0,    0, 4418, 4419, 4419, 4419,
8711         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
8712
8713      4419,    0, 4419,    0,    0,    0,    0,    0,    0, 4419,
8714         0,    0,    0,    0,    0,    0,    0, 4419, 4420, 4420,
8715      4420,    0,    0,    0, 4420,    0,    0,    0,    0,    0,
8716         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
8717      4420,    0,    0,    0,    0,    0,    0,    0, 4420, 4421,
8718      4421, 4421,    0,    0,    0, 4421,    0,    0,    0,    0,
8719         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
8720         0, 4421,    0,    0,    0,    0,    0,    0,    0, 4421,
8721      4422, 4422, 4422,    0,    0,    0,    0,    0,    0, 4422,
8722         0,    0, 4422,    0,    0, 4422,    0, 4422, 4422,    0,
8723
8724         0,    0, 4422,    0,    0,    0,    0,    0,    0,    0,
8725      4422, 4423, 4423, 4423, 4423, 4423, 4423, 4423, 4423, 4423,
8726      4423, 4423, 4423, 4423,    0, 4423, 4423, 4423, 4423, 4423,
8727      4423, 4423, 4423, 4423, 4423, 4423, 4423, 4423, 4423,    0,
8728      4423, 4423, 4423, 4424, 4424, 4424,    0,    0,    0, 4424,
8729         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
8730         0,    0,    0,    0,    0, 4424,    0,    0,    0,    0,
8731         0,    0,    0, 4424, 4425, 4425, 4425,    0,    0,    0,
8732         0,    0,    0, 4425,    0,    0,    0,    0,    0, 4425,
8733         0,    0,    0,    0,    0,    0, 4425,    0,    0,    0,
8734
8735         0,    0,    0,    0, 4425, 4427, 4427, 4427,    0,    0,
8736         0,    0,    0,    0, 4427,    0,    0,    0,    0,    0,
8737      4427, 4427,    0,    0,    0,    0,    0, 4427,    0,    0,
8738         0,    0,    0,    0,    0, 4427, 4429,    0,    0,    0,
8739      4429,    0, 4429,    0,    0, 4429,    0,    0,    0, 4429,
8740         0,    0,    0,    0,    0,    0,    0, 4429, 4432, 4432,
8741         0, 4432, 4432, 4432, 4432, 4432, 4432, 4432, 4432, 4432,
8742      4432, 4432, 4432, 4432, 4432, 4432, 4432, 4432, 4432, 4432,
8743      4432, 4432, 4432, 4432, 4432, 4432, 4432, 4432, 4432, 4432,
8744      4436, 4436, 4436,    0,    0,    0, 4436,    0,    0,    0,
8745
8746         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
8747         0,    0, 4436,    0,    0,    0,    0, 4436,    0,    0,
8748      4436, 4437, 4437, 4437,    0,    0,    0,    0,    0,    0,
8749         0,    0,    0,    0, 4437,    0, 4437, 4437,    0,    0,
8750         0,    0,    0, 4437,    0,    0,    0,    0,    0,    0,
8751         0, 4437, 4438, 4438, 4438,    0,    0,    0,    0,    0,
8752         0,    0,    0,    0,    0, 4438,    0, 4438, 4438,    0,
8753         0,    0,    0,    0, 4438,    0, 4438,    0,    0,    0,
8754         0,    0, 4438, 4439, 4439, 4439,    0,    0,    0, 4439,
8755         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
8756
8757         0,    0,    0,    0,    0, 4439,    0,    0,    0,    0,
8758         0,    0,    0, 4439, 4443, 4443,    0, 4443, 4443, 4443,
8759      4443, 4443, 4443, 4443, 4443, 4443, 4443, 4443, 4443, 4443,
8760      4443, 4443, 4443, 4443, 4443, 4443, 4443, 4443, 4443,    0,
8761      4443, 4443, 4443, 4443, 4443, 4443, 4444, 4444,    0, 4444,
8762      4444, 4444, 4444, 4444, 4444, 4444, 4444, 4444, 4444, 4444,
8763      4444, 4444, 4444, 4444, 4444, 4444, 4444, 4444, 4444, 4444,
8764      4444, 4444, 4444, 4444, 4444, 4444, 4444, 4444, 4445, 4445,
8765      4445, 4445, 4445, 4445, 4445, 4445, 4445, 4445, 4445, 4445,
8766      4445, 4445, 4445, 4445, 4445, 4445, 4445, 4445, 4445, 4445,
8767
8768      4445, 4445, 4445, 4445, 4445, 4445, 4445, 4445, 4445, 4445,
8769      4446, 4446, 4446,    0,    0,    0, 4446,    0,    0,    0,
8770         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
8771         0,    0, 4446,    0,    0,    0,    0,    0,    0,    0,
8772      4446, 4447, 4447, 4447,    0,    0,    0,    0,    0,    0,
8773         0,    0,    0,    0,    0,    0, 4447,    0,    0, 4447,
8774         0,    0,    0, 4447,    0,    0,    0,    0,    0,    0,
8775         0, 4447, 4449, 4449, 4449,    0,    0,    0,    0,    0,
8776         0,    0,    0,    0,    0,    0,    0, 4449, 4449,    0,
8777      4449,    0,    0,    0, 4449,    0,    0,    0,    0,    0,
8778
8779         0,    0, 4449, 4450, 4450,    0, 4450, 4450, 4450, 4450,
8780      4450, 4450, 4450, 4450, 4450, 4450, 4450, 4450, 4450, 4450,
8781      4450, 4450, 4450, 4450, 4450, 4450, 4450, 4450, 4450, 4450,
8782      4450, 4450, 4450, 4450, 4450, 4451, 4451, 4451,    0,    0,
8783         0, 4451, 4451,    0,    0,    0, 4451,    0,    0,    0,
8784         0, 4451,    0,    0,    0,    0,    0, 4451,    0,    0,
8785         0, 4451,    0,    0,    0, 4451, 4452, 4452, 4452,    0,
8786         0,    0,    0,    0,    0,    0, 4452, 4452,    0,    0,
8787         0, 4452, 4452,    0, 4452,    0,    0,    0, 4452,    0,
8788         0,    0,    0,    0,    0,    0, 4452, 4456, 4456, 4456,
8789
8790         0,    0,    0,    0,    0,    0, 4456,    0,    0,    0,
8791      4456,    0, 4456,    0,    0,    0,    0,    0,    0, 4456,
8792         0,    0,    0,    0,    0,    0,    0, 4456, 4457, 4457,
8793         0, 4457, 4457, 4457, 4457, 4457, 4457, 4457, 4457, 4457,
8794      4457, 4457, 4457, 4457, 4457, 4457, 4457,    0, 4457, 4457,
8795      4457, 4457, 4457, 4457, 4457, 4457, 4457, 4457, 4457, 4457,
8796      4458, 4458, 4458,    0,    0,    0, 4458,    0,    0,    0,
8797         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
8798         0,    0, 4458,    0,    0,    0,    0,    0,    0,    0,
8799      4458, 4459, 4459, 4459,    0,    0,    0,    0,    0,    0,
8800
8801         0,    0,    0,    0,    0,    0, 4459,    0,    0, 4459,
8802         0,    0,    0, 4459,    0,    0,    0,    0,    0,    0,
8803         0, 4459, 4461, 4461, 4461,    0,    0,    0,    0,    0,
8804         0,    0,    0,    0,    0,    0,    0, 4461, 4461,    0,
8805      4461,    0,    0,    0, 4461,    0,    0,    0,    0,    0,
8806         0,    0, 4461, 4464, 4464,    0,    0, 4464,    0,    0,
8807      4464, 4464,    0, 4464, 4464, 4464, 4464, 4464,    0, 4464,
8808      4464, 4464,    0, 4464, 4464,    0, 4464, 4464, 4464, 4464,
8809      4464,    0,    0, 4464, 4464, 4465, 4465,    0, 4465, 4465,
8810      4465, 4465, 4465, 4465, 4465, 4465, 4465, 4465, 4465, 4465,
8811
8812      4465, 4465, 4465, 4465, 4465, 4465, 4465, 4465, 4465, 4465,
8813      4465, 4465, 4465, 4465, 4465, 4465, 4465, 4466, 4466,    0,
8814      4466, 4466, 4466, 4466, 4466, 4466, 4466, 4466, 4466, 4466,
8815      4466, 4466, 4466, 4466, 4466, 4466, 4466, 4466, 4466, 4466,
8816      4466, 4466,    0, 4466, 4466, 4466, 4466, 4466, 4466, 4467,
8817      4467,    0, 4467, 4467, 4467, 4467, 4467, 4467, 4467, 4467,
8818      4467, 4467, 4467, 4467, 4467, 4467, 4467, 4467, 4467, 4467,
8819      4467, 4467, 4467, 4467, 4467, 4467, 4467, 4467, 4467, 4467,
8820      4467, 4468, 4468,    0, 4468, 4468, 4468, 4468, 4468, 4468,
8821      4468, 4468, 4468, 4468, 4468, 4468, 4468, 4468, 4468, 4468,
8822
8823      4468, 4468, 4468, 4468, 4468, 4468, 4468, 4468, 4468, 4468,
8824      4468, 4468, 4468, 4469, 4469, 4469,    0,    0,    0,    0,
8825         0,    0,    0,    0,    0,    0, 4469,    0, 4469, 4469,
8826         0,    0,    0,    0,    0, 4469,    0,    0,    0,    0,
8827         0,    0,    0, 4469, 4470, 4470, 4470,    0,    0,    0,
8828      4470,    0,    0,    0,    0,    0,    0,    0,    0,    0,
8829         0,    0,    0,    0,    0,    0, 4470,    0,    0,    0,
8830         0,    0,    0,    0, 4470, 4471, 4471, 4471,    0,    0,
8831         0, 4471,    0,    0,    0,    0,    0,    0,    0,    0,
8832         0,    0,    0,    0,    0,    0,    0, 4471,    0,    0,
8833
8834         0,    0,    0,    0,    0, 4471, 4474, 4474, 4474,    0,
8835         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
8836         0, 4474, 4474,    0,    0,    0,    0,    0, 4474,    0,
8837         0,    0,    0,    0,    0,    0, 4474, 4475, 4475,    0,
8838      4475, 4475,    0,    0, 4475, 4475,    0, 4475, 4475, 4475,
8839      4475, 4475,    0, 4475, 4475, 4475,    0, 4475, 4475,    0,
8840      4475, 4475,    0, 4475, 4475,    0,    0, 4475, 4475, 4476,
8841      4476,    0, 4476, 4476, 4476, 4476, 4476, 4476, 4476, 4476,
8842      4476, 4476, 4476, 4476, 4476, 4476, 4476, 4476, 4476, 4476,
8843      4476, 4476, 4476, 4476,    0, 4476, 4476, 4476, 4476, 4476,
8844
8845      4476, 4477, 4477,    0, 4477, 4477, 4477, 4477, 4477, 4477,
8846      4477, 4477, 4477, 4477, 4477, 4477, 4477, 4477, 4477, 4477,
8847      4477, 4477, 4477, 4477, 4477, 4477, 4477, 4477, 4477, 4477,
8848      4477, 4477, 4477, 4478, 4478,    0, 4478, 4478, 4478, 4478,
8849      4478, 4478, 4478, 4478, 4478,    0, 4478, 4478, 4478, 4478,
8850      4478, 4478, 4478, 4478, 4478, 4478, 4478, 4478, 4478, 4478,
8851      4478, 4478, 4478, 4478, 4478, 4479, 4479, 4479, 4479, 4479,
8852      4479, 4479, 4479, 4479, 4479, 4479, 4479, 4479, 4479, 4479,
8853      4479, 4479, 4479, 4479, 4479, 4479, 4479, 4479, 4479, 4479,
8854      4479, 4479, 4479, 4479, 4479, 4479, 4479, 4480, 4480,    0,
8855
8856      4480, 4480,    0, 4480, 4480, 4480, 4480, 4480, 4480, 4480,
8857      4480, 4480, 4480, 4480, 4480, 4480, 4480, 4480, 4480, 4480,
8858      4480,    0, 4480,    0, 4480, 4480, 4480, 4480, 4480, 4481,
8859      4481,    0, 4481, 4481, 4481, 4481, 4481, 4481, 4481, 4481,
8860      4481, 4481, 4481, 4481, 4481, 4481, 4481, 4481, 4481, 4481,
8861      4481, 4481, 4481, 4481, 4481, 4481, 4481, 4481, 4481, 4481,
8862      4481, 4483,    0,    0,    0, 4483, 4483, 4483, 4483, 4483,
8863      4483, 4483, 4483,    0, 4483,    0,    0, 4483, 4483, 4483,
8864      4483, 4483, 4483, 4483, 4483, 4483, 4483, 4483, 4483, 4483,
8865      4483, 4483, 4483, 4484,    0, 4484,    0,    0,    0,    0,
8866
8867         0,    0, 4484,    0, 4484,    0,    0,    0,    0,    0,
8868      4484, 4486, 4486, 4486,    0,    0,    0,    0,    0,    0,
8869         0,    0,    0,    0, 4486,    0, 4486,    0,    0,    0,
8870         0,    0,    0, 4486,    0,    0,    0,    0,    0,    0,
8871         0, 4486, 4487, 4487, 4487,    0,    0,    0, 4487,    0,
8872         0,    0,    0, 4487,    0,    0,    0,    0,    0,    0,
8873         0,    0,    0,    0, 4487,    0,    0,    0,    0,    0,
8874         0,    0, 4487, 4488, 4488, 4488,    0,    0,    0,    0,
8875         0,    0,    0,    0,    0,    0,    0,    0, 4488,    0,
8876         0,    0,    0,    0,    0, 4488,    0, 4488,    0,    0,
8877
8878         0,    0,    0, 4488, 4489, 4489, 4489,    0,    0,    0,
8879      4489,    0,    0,    0,    0,    0,    0,    0,    0,    0,
8880         0,    0,    0,    0,    0,    0, 4489,    0,    0,    0,
8881         0,    0,    0,    0, 4489, 4491, 4491,    0, 4491, 4491,
8882      4491, 4491, 4491, 4491, 4491, 4491, 4491, 4491, 4491, 4491,
8883      4491, 4491, 4491, 4491, 4491, 4491, 4491, 4491, 4491, 4491,
8884      4491, 4491, 4491, 4491, 4491, 4491, 4491, 4492,    0,    0,
8885         0, 4492,    0,    0,    0,    0,    0,    0, 4492,    0,
8886         0,    0,    0,    0,    0, 4492,    0,    0,    0,    0,
8887         0,    0,    0, 4492, 4494, 4494,    0, 4494, 4494,    0,
8888
8889      4494, 4494, 4494, 4494, 4494, 4494, 4494, 4494, 4494, 4494,
8890      4494, 4494, 4494, 4494, 4494, 4494, 4494, 4494, 4494, 4494,
8891      4494, 4494, 4494, 4494, 4494, 4494, 4496, 4496, 4496, 4496,
8892      4496, 4496, 4496, 4496, 4496, 4496, 4496,    0, 4496, 4496,
8893      4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496,
8894      4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4497, 4497,
8895      4497,    0,    0,    0,    0,    0,    0,    0,    0,    0,
8896         0,    0,    0, 4497, 4497,    0,    0,    0,    0,    0,
8897      4497,    0,    0,    0,    0,    0,    0,    0, 4497, 4498,
8898      4498, 4498, 4498, 4498, 4498, 4498, 4498, 4498, 4498, 4498,
8899
8900         0, 4498, 4498, 4498, 4498, 4498, 4498, 4498, 4498, 4498,
8901      4498, 4498, 4498, 4498, 4498, 4498, 4498, 4498, 4498, 4498,
8902      4498, 4499, 4499,    0, 4499,    0,    0,    0, 4499,    0,
8903         0,    0,    0,    0,    0,    0, 4499, 4500,    0,    0,
8904         0,    0,    0,    0, 4500,    0,    0,    0, 4500, 4500,
8905         0,    0, 4500, 4500,    0,    0,    0, 4500,    0, 4500,
8906      4504, 4504,    0, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
8907      4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504, 4504,
8908      4504, 4504, 4504, 4504, 4504,    0, 4504, 4504, 4504, 4504,
8909      4504, 4504, 4505, 4505,    0, 4505, 4505, 4505, 4505, 4505,
8910
8911      4505, 4505, 4505, 4505, 4505, 4505, 4505, 4505, 4505, 4505,
8912      4505, 4505, 4505, 4505, 4505, 4505, 4505, 4505, 4505, 4505,
8913      4505, 4505, 4505, 4505, 4506,    0, 4506, 4506, 4506, 4506,
8914      4506, 4506, 4506, 4506, 4506,    0, 4506, 4506, 4506, 4506,
8915      4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506, 4506,    0,
8916      4506, 4506, 4506, 4506, 4506, 4506, 4507, 4507, 4507,    0,
8917         0,    0, 4507,    0,    0,    0,    0,    0,    0,    0,
8918         0,    0,    0,    0,    0,    0,    0,    0, 4507,    0,
8919         0,    0,    0,    0,    0,    0, 4507, 4508, 4508, 4508,
8920         0,    0,    0,    0,    0,    0,    0,    0, 4508,    0,
8921
8922         0,    0, 4508,    0,    0,    0,    0,    0,    0, 4508,
8923         0,    0,    0,    0,    0,    0,    0, 4508, 4509, 4509,
8924      4509,    0,    0,    0, 4509, 4509,    0,    0,    0, 4509,
8925         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
8926      4509,    0,    0,    0,    0,    0,    0,    0, 4509, 4510,
8927      4510, 4510,    0,    0,    0,    0,    0,    0,    0,    0,
8928         0,    0,    0,    0, 4510,    0,    0,    0,    0,    0,
8929         0, 4510, 4510,    0,    0,    0,    0,    0,    0, 4510,
8930      4511, 4511,    0, 4511, 4511, 4511, 4511, 4511, 4511, 4511,
8931      4511, 4511, 4511, 4511, 4511, 4511, 4511, 4511, 4511, 4511,
8932
8933      4511, 4511, 4511, 4511, 4511, 4511, 4511, 4511, 4511, 4511,
8934      4511, 4511, 4512, 4512, 4512,    0,    0,    0, 4512,    0,
8935         0,    0,    0, 4512,    0,    0,    0,    0,    0,    0,
8936         0,    0,    0,    0, 4512,    0,    0,    0,    0,    0,
8937         0,    0, 4512, 4513, 4513, 4513,    0,    0,    0, 4513,
8938         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
8939         0,    0,    0,    0,    0, 4513,    0,    0,    0,    0,
8940         0,    0,    0, 4513, 4516, 4516, 4516,    0,    0,    0,
8941         0,    0,    0,    0,    0,    0,    0,    0,    0, 4516,
8942      4516,    0,    0,    0,    0,    0, 4516,    0,    0,    0,
8943
8944         0,    0,    0,    0, 4516, 4517, 4517,    0, 4517, 4517,
8945      4517, 4517, 4517, 4517, 4517, 4517, 4517, 4517, 4517, 4517,
8946      4517, 4517, 4517, 4517, 4517, 4517, 4517, 4517, 4517, 4517,
8947      4517, 4517, 4517, 4517, 4517, 4517, 4517, 4518,    0,    0,
8948         0, 4518,    0,    0, 4518, 4518,    0,    0,    0, 4518,
8949      4518, 4518,    0, 4518, 4518, 4518, 4518, 4518, 4518, 4518,
8950      4518, 4518, 4518, 4518, 4518, 4518, 4518, 4518, 4518, 4519,
8951      4519,    0, 4519, 4519, 4519, 4519, 4519, 4519, 4519, 4519,
8952      4519, 4519, 4519, 4519, 4519, 4519, 4519, 4519, 4519, 4519,
8953      4519, 4519, 4519, 4519,    0, 4519, 4519, 4519, 4519, 4519,
8954
8955      4519, 4520, 4520,    0, 4520, 4520, 4520, 4520, 4520, 4520,
8956      4520, 4520, 4520, 4520, 4520, 4520, 4520, 4520, 4520, 4520,
8957      4520, 4520, 4520, 4520, 4520, 4520, 4520, 4520, 4520, 4520,
8958      4520, 4520, 4520, 4521,    0, 4521, 4521, 4521, 4521, 4521,
8959      4521, 4521, 4521, 4521,    0, 4521, 4521, 4521, 4521, 4521,
8960      4521, 4521, 4521, 4521, 4521, 4521, 4521, 4521,    0, 4521,
8961      4521, 4521, 4521, 4521, 4521, 4524, 4524,    0, 4524, 4524,
8962         0, 4524, 4524, 4524,    0,    0,    0, 4524, 4524, 4524,
8963      4524, 4524, 4524, 4524, 4524, 4524, 4524, 4524, 4524, 4524,
8964      4524, 4524, 4524, 4524, 4524, 4524, 4524, 4525, 4525,    0,
8965
8966      4525, 4525, 4525, 4525, 4525, 4525, 4525, 4525, 4525, 4525,
8967      4525, 4525, 4525, 4525, 4525, 4525, 4525, 4525, 4525, 4525,
8968      4525, 4525,    0, 4525, 4525, 4525, 4525, 4525, 4525, 4526,
8969      4526,    0, 4526, 4526, 4526, 4526, 4526, 4526, 4526, 4526,
8970      4526, 4526, 4526, 4526, 4526, 4526, 4526, 4526, 4526, 4526,
8971      4526, 4526, 4526, 4526, 4526, 4526, 4526, 4526, 4526, 4526,
8972      4526, 4527, 4527,    0, 4527, 4527,    0, 4527, 4527, 4527,
8973         0, 4527, 4527, 4527, 4527, 4527,    0, 4527, 4527, 4527,
8974      4527, 4527, 4527, 4527, 4527, 4527, 4527, 4527, 4527,    0,
8975         0, 4527, 4527, 4528, 4528,    0, 4528, 4528, 4528, 4528,
8976
8977      4528, 4528, 4528, 4528, 4528, 4528, 4528, 4528, 4528, 4528,
8978      4528, 4528, 4528, 4528, 4528, 4528, 4528, 4528,    0, 4528,
8979      4528, 4528, 4528, 4528, 4528, 4529, 4529,    0, 4529, 4529,
8980      4529, 4529, 4529, 4529, 4529, 4529, 4529, 4529, 4529, 4529,
8981      4529, 4529, 4529, 4529, 4529, 4529, 4529, 4529, 4529, 4529,
8982      4529, 4529, 4529, 4529, 4529, 4529, 4529, 4530, 4530,    0,
8983      4530, 4530,    0, 4530, 4530, 4530,    0,    0,    0, 4530,
8984      4530, 4530,    0, 4530, 4530, 4530, 4530, 4530, 4530, 4530,
8985      4530, 4530, 4530, 4530, 4530, 4530, 4530, 4530, 4530, 4531,
8986      4531,    0, 4531, 4531, 4531, 4531, 4531, 4531, 4531, 4531,
8987
8988      4531, 4531, 4531, 4531, 4531, 4531, 4531, 4531, 4531, 4531,
8989      4531, 4531, 4531, 4531,    0, 4531, 4531, 4531, 4531, 4531,
8990      4531, 4532, 4532,    0, 4532, 4532, 4532, 4532, 4532, 4532,
8991      4532, 4532, 4532, 4532, 4532, 4532, 4532, 4532, 4532, 4532,
8992      4532, 4532, 4532, 4532, 4532, 4532, 4532, 4532, 4532, 4532,
8993      4532, 4532, 4532, 4533, 4533,    0, 4533, 4533,    0, 4533,
8994      4533, 4533,    0, 4533, 4533, 4533, 4533, 4533,    0, 4533,
8995      4533, 4533, 4533, 4533, 4533, 4533, 4533, 4533, 4533, 4533,
8996      4533,    0,    0, 4533, 4533, 4534, 4534,    0, 4534, 4534,
8997      4534, 4534, 4534, 4534, 4534, 4534, 4534, 4534, 4534, 4534,
8998
8999      4534, 4534, 4534, 4534, 4534, 4534, 4534, 4534, 4534, 4534,
9000         0, 4534, 4534, 4534, 4534, 4534, 4534, 4535, 4535,    0,
9001      4535, 4535, 4535, 4535, 4535, 4535, 4535, 4535, 4535, 4535,
9002      4535, 4535, 4535, 4535, 4535, 4535, 4535, 4535, 4535, 4535,
9003      4535, 4535, 4535, 4535, 4535, 4535, 4535, 4535, 4535, 4537,
9004      4537,    0, 4537, 4537, 4537, 4537, 4537, 4537, 4537, 4537,
9005      4537, 4537, 4537, 4537, 4537, 4537, 4537, 4537, 4537, 4537,
9006      4537, 4537, 4537, 4537,    0, 4537, 4537, 4537, 4537, 4537,
9007      4537, 4538, 4538,    0, 4538, 4538, 4538, 4538, 4538, 4538,
9008      4538, 4538, 4538, 4538, 4538, 4538, 4538, 4538, 4538, 4538,
9009
9010      4538, 4538, 4538, 4538, 4538, 4538, 4538, 4538, 4538, 4538,
9011      4538, 4538, 4538, 4539, 4539,    0, 4539, 4539,    0, 4539,
9012      4539, 4539,    0, 4539, 4539, 4539, 4539, 4539, 4539, 4539,
9013      4539, 4539, 4539, 4539, 4539, 4539, 4539, 4539,    0, 4539,
9014      4539, 4539, 4539, 4539, 4539, 4540, 4540,    0, 4540, 4540,
9015         0, 4540, 4540, 4540,    0,    0,    0, 4540, 4540, 4540,
9016         0, 4540, 4540, 4540, 4540, 4540, 4540, 4540, 4540, 4540,
9017      4540, 4540, 4540, 4540, 4540, 4540, 4540, 4541, 4541,    0,
9018      4541, 4541, 4541, 4541, 4541, 4541, 4541, 4541, 4541,    0,
9019      4541, 4541, 4541, 4541, 4541, 4541, 4541, 4541, 4541,    0,
9020
9021      4541, 4541,    0, 4541, 4541, 4541, 4541, 4541, 4541, 4542,
9022      4542,    0, 4542, 4542, 4542, 4542, 4542, 4542, 4542, 4542,
9023      4542, 4542, 4542, 4542, 4542, 4542, 4542, 4542, 4542, 4542,
9024      4542,    0, 4542, 4542,    0, 4542, 4542, 4542, 4542, 4542,
9025      4542, 4551, 4551, 4551, 4551, 4551, 4551, 4551, 4551, 4551,
9026      4551, 4551,    0, 4551, 4551, 4551, 4551, 4551, 4551, 4551,
9027      4551, 4551, 4551, 4551, 4551, 4551, 4551, 4551, 4551, 4551,
9028      4551, 4551, 4551, 4552,    0, 4552, 4552, 4552, 4552, 4552,
9029      4552, 4552, 4552,    0,    0, 4552, 4552, 4552, 4552, 4552,
9030      4552, 4552, 4552, 4552, 4552, 4552, 4552, 4552,    0, 4552,
9031
9032      4552, 4552, 4552, 4552, 4552, 4553, 4553, 4553, 4553, 4553,
9033      4553, 4553, 4553, 4553, 4553, 4553,    0, 4553, 4553, 4553,
9034      4553, 4553, 4553, 4553, 4553, 4553, 4553, 4553, 4553, 4553,
9035      4553, 4553, 4553, 4553, 4553, 4553, 4553, 4554,    0, 4554,
9036      4554, 4554, 4554, 4554, 4554, 4554, 4554,    0,    0, 4554,
9037      4554, 4554, 4554, 4554, 4554, 4554, 4554, 4554, 4554, 4554,
9038      4554, 4554,    0, 4554, 4554, 4554, 4554, 4554, 4554, 4555,
9039      4555, 4555,    0,    0,    0, 4555,    0,    0,    0,    0,
9040         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
9041         0, 4555, 4555,    0,    0,    0,    0,    0,    0, 4555,
9042
9043      4556, 4556, 4556,    0,    0,    0,    0,    0,    0,    0,
9044      4556,    0, 4556,    0,    0, 4556,    0,    0,    0,    0,
9045         0,    0, 4556,    0,    0,    0,    0,    0,    0,    0,
9046      4556, 4557, 4557, 4557, 4557, 4557, 4557, 4557, 4557, 4557,
9047      4557, 4557, 4557, 4557, 4557, 4557, 4557, 4557, 4557, 4557,
9048      4557, 4557, 4557, 4557, 4557, 4557, 4557, 4557, 4557, 4557,
9049      4557, 4557, 4557, 4558, 4558, 4558,    0,    0,    0,    0,
9050         0,    0,    0, 4558,    0, 4558,    0,    0, 4558,    0,
9051         0,    0,    0,    0,    0, 4558,    0,    0,    0,    0,
9052         0,    0,    0, 4558, 4559, 4559, 4559,    0,    0,    0,
9053
9054      4559,    0,    0,    0,    0,    0,    0,    0,    0,    0,
9055         0,    0,    0,    0,    0,    0, 4559,    0,    0,    0,
9056         0,    0,    0,    0, 4559, 4560, 4560, 4560,    0,    0,
9057         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
9058      4560,    0,    0,    0,    0,    0,    0, 4560,    0,    0,
9059         0,    0,    0,    0,    0, 4560, 4561, 4561, 4561,    0,
9060         0,    0,    0,    0,    0, 4561,    0,    0,    0,    0,
9061         0, 4561,    0,    0,    0,    0,    0,    0, 4561,    0,
9062         0,    0,    0,    0,    0,    0, 4561, 4564, 4564, 4564,
9063         0,    0,    0, 4564,    0,    0,    0,    0,    0,    0,
9064
9065         0,    0,    0,    0,    0,    0,    0,    0,    0, 4564,
9066         0,    0,    0,    0,    0,    0,    0, 4564, 4567, 4567,
9067      4567,    0,    0,    0,    0,    0,    0,    0,    0,    0,
9068         0,    0,    0, 4567, 4567,    0,    0,    0,    0,    0,
9069      4567,    0,    0,    0,    0,    0,    0,    0, 4567, 4568,
9070      4568, 4568, 4568, 4568, 4568, 4568, 4568, 4568, 4568, 4568,
9071      4568, 4568, 4568, 4568, 4568, 4568, 4568, 4568, 4568, 4568,
9072      4568, 4568, 4568, 4568, 4568, 4568, 4568, 4568, 4568, 4568,
9073      4568, 4569, 4569,    0, 4569, 4569, 4569, 4569, 4569, 4569,
9074      4569, 4569, 4569,    0, 4569, 4569,    0, 4569, 4569, 4569,
9075
9076      4569, 4569, 4569,    0, 4569, 4569,    0, 4569, 4569, 4569,
9077      4569, 4569, 4569, 4571, 4571, 4571, 4571, 4571, 4571, 4571,
9078      4571, 4571, 4571, 4571, 4571, 4571, 4571, 4571,    0,    0,
9079      4571, 4571, 4571, 4571, 4571, 4571,    0, 4571, 4571, 4571,
9080      4571, 4571, 4571, 4571, 4571, 4572, 4572,    0, 4572, 4572,
9081      4572, 4572,    0, 4572, 4572, 4572, 4572,    0, 4572, 4572,
9082         0, 4572, 4572, 4572,    0, 4572, 4572,    0, 4572, 4572,
9083         0,    0, 4572, 4572, 4572, 4572, 4572, 4573, 4573, 4573,
9084         0,    0,    0,    0,    0,    0, 4573,    0,    0, 4573,
9085         0,    0, 4573,    0, 4573, 4573,    0,    0,    0, 4573,
9086
9087         0,    0,    0,    0,    0,    0,    0, 4573, 4574, 4574,
9088      4574,    0,    0,    0,    0,    0,    0, 4574,    0,    0,
9089      4574,    0,    0, 4574, 4574, 4574, 4574,    0,    0,    0,
9090      4574,    0,    0,    0,    0,    0,    0,    0, 4574, 4575,
9091      4575, 4575,    0,    0,    0,    0,    0,    0,    0,    0,
9092         0,    0, 4575,    0, 4575,    0,    0,    0,    0,    0,
9093         0, 4575,    0,    0,    0,    0,    0,    0,    0, 4575,
9094      4576, 4576, 4576,    0,    0,    0, 4576,    0,    0,    0,
9095         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
9096         0,    0, 4576,    0,    0,    0,    0,    0,    0,    0,
9097
9098      4576, 4578, 4578, 4578, 4578,    0,    0, 4578,    0,    0,
9099         0,    0,    0,    0,    0,    0,    0, 4578,    0,    0,
9100         0,    0,    0, 4578,    0,    0,    0,    0,    0,    0,
9101      4578, 4578, 4579, 4579, 4579,    0,    0,    0,    0,    0,
9102         0, 4579,    0,    0, 4579,    0,    0, 4579,    0, 4579,
9103      4579,    0,    0,    0, 4579,    0,    0,    0,    0,    0,
9104         0,    0, 4579, 4580, 4580, 4580,    0,    0,    0,    0,
9105         0,    0, 4580,    0,    0,    0,    0,    0, 4580,    0,
9106         0,    0,    0,    0,    0, 4580,    0,    0,    0,    0,
9107         0,    0,    0, 4580, 4581, 4581, 4581,    0,    0,    0,
9108
9109         0,    0,    0, 4581,    0,    0,    0,    0,    0, 4581,
9110      4581,    0,    0,    0,    0,    0, 4581,    0,    0,    0,
9111         0,    0,    0,    0, 4581, 4582, 4582, 4582, 4582, 4582,
9112      4582, 4582, 4582, 4582, 4582, 4582, 4582,    0, 4582, 4582,
9113         0, 4582, 4582, 4582, 4582, 4582, 4582, 4582, 4582, 4582,
9114      4582, 4582, 4582, 4582, 4582, 4582, 4582, 4583, 4583, 4583,
9115      4583, 4583, 4583, 4583, 4583, 4583, 4583, 4583, 4583, 4583,
9116      4583, 4583,    0, 4583, 4583, 4583, 4583, 4583, 4583, 4583,
9117      4583, 4583, 4583, 4583, 4583, 4583, 4583, 4583, 4583, 4584,
9118      4584, 4584, 4584,    0,    0, 4584,    0,    0,    0,    0,
9119
9120         0,    0,    0,    0,    0, 4584,    0,    0,    0,    0,
9121         0, 4584,    0,    0,    0,    0,    0,    0, 4584, 4584,
9122      4585, 4585, 4585,    0,    0,    0,    0,    0,    0, 4585,
9123         0,    0,    0,    0,    0, 4585, 4585,    0,    0,    0,
9124         0,    0, 4585,    0,    0,    0,    0,    0,    0,    0,
9125      4585, 4589,    0,    0,    0, 4589,    0, 4589,    0,    0,
9126      4589,    0,    0,    0, 4589,    0,    0,    0,    0,    0,
9127         0,    0, 4589, 4590, 4590, 4590, 4590,    0,    0, 4590,
9128         0,    0,    0,    0,    0,    0,    0,    0,    0, 4590,
9129         0,    0,    0,    0,    0, 4590,    0,    0,    0,    0,
9130
9131         0,    0, 4590, 4590, 4591, 4591, 4591,    0,    0,    0,
9132         0,    0,    0,    0,    0,    0,    0, 4591,    0, 4591,
9133      4591,    0,    0,    0,    0,    0, 4591,    0,    0,    0,
9134         0,    0,    0,    0, 4591, 4592, 4592, 4592,    0,    0,
9135         0, 4592,    0,    0,    0,    0,    0,    0,    0,    0,
9136         0,    0,    0,    0,    0,    0,    0, 4592,    0,    0,
9137         0,    0,    0,    0,    0, 4592, 4593, 4593, 4593,    0,
9138         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
9139         0, 4593, 4593,    0,    0,    0,    0,    0, 4593,    0,
9140         0,    0,    0,    0,    0,    0, 4593, 4597, 4597,    0,
9141
9142      4597, 4597, 4597, 4597, 4597, 4597, 4597, 4597, 4597, 4597,
9143      4597, 4597, 4597, 4597, 4597, 4597, 4597, 4597, 4597, 4597,
9144      4597, 4597,    0, 4597, 4597, 4597, 4597, 4597, 4597, 4598,
9145      4598, 4598, 4598,    0,    0, 4598,    0,    0,    0,    0,
9146         0,    0,    0,    0,    0, 4598,    0,    0,    0,    0,
9147         0, 4598,    0,    0,    0,    0,    0,    0, 4598, 4598,
9148      4599, 4599, 4599,    0,    0,    0,    0,    0,    0,    0,
9149         0,    0,    0,    0,    0, 4599,    0,    0, 4599,    0,
9150         0,    0, 4599,    0,    0,    0,    0,    0,    0,    0,
9151      4599, 4600, 4600,    0, 4600, 4600, 4600, 4600, 4600, 4600,
9152
9153      4600, 4600, 4600, 4600, 4600, 4600, 4600, 4600, 4600, 4600,
9154      4600, 4600, 4600, 4600, 4600, 4600, 4600, 4600, 4600, 4600,
9155      4600, 4600, 4600, 4601, 4601, 4601,    0,    0,    0, 4601,
9156      4601,    0,    0,    0, 4601,    0,    0,    0,    0, 4601,
9157         0,    0,    0,    0,    0, 4601,    0,    0,    0, 4601,
9158         0,    0,    0, 4601, 4602, 4602, 4602,    0,    0,    0,
9159      4602,    0,    0,    0,    0,    0,    0,    0,    0,    0,
9160      4602,    0,    0,    0,    0,    0, 4602,    0,    0,    0,
9161         0,    0,    0,    0, 4602, 4603, 4603, 4603,    0,    0,
9162         0, 4603,    0,    0,    0, 4603,    0,    0,    0,    0,
9163
9164         0,    0,    0,    0,    0,    0,    0, 4603,    0,    0,
9165         0,    0,    0,    0,    0, 4603, 4604, 4604, 4604,    0,
9166         0,    0,    0,    0,    0,    0, 4604, 4604,    0,    0,
9167         0, 4604, 4604,    0, 4604,    0,    0,    0, 4604,    0,
9168         0,    0,    0,    0,    0,    0, 4604, 4605,    0,    0,
9169         0,    0,    0,    0, 4605,    0,    0,    0, 4605, 4605,
9170         0,    0, 4605, 4605,    0,    0,    0, 4605,    0, 4605,
9171      4606, 4606, 4606, 4606, 4606, 4606, 4606, 4606, 4606, 4606,
9172      4606, 4606,    0, 4606, 4606,    0, 4606, 4606, 4606, 4606,
9173      4606, 4606, 4606, 4606, 4606, 4606, 4606, 4606, 4606, 4606,
9174
9175      4606, 4606, 4607, 4607, 4607, 4607, 4607, 4607, 4607, 4607,
9176      4607, 4607, 4607, 4607, 4607, 4607, 4607,    0, 4607, 4607,
9177      4607, 4607, 4607, 4607, 4607, 4607, 4607, 4607, 4607, 4607,
9178      4607, 4607, 4607, 4607, 4610, 4610, 4610,    0,    0,    0,
9179         0,    0,    0, 4610,    0,    0,    0, 4610,    0, 4610,
9180         0,    0,    0,    0,    0,    0, 4610,    0,    0,    0,
9181         0,    0,    0,    0, 4610, 4611, 4611, 4611,    0,    0,
9182         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
9183      4611, 4611,    0, 4611,    0,    0,    0, 4611,    0,    0,
9184         0,    0,    0,    0,    0, 4611, 4612, 4612, 4612,    0,
9185
9186         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
9187         0, 4612,    0,    0, 4612,    0,    0,    0, 4612,    0,
9188         0,    0,    0,    0,    0,    0, 4612, 4613, 4613, 4613,
9189      4613,    0,    0, 4613,    0,    0,    0,    0,    0,    0,
9190         0,    0,    0, 4613,    0,    0,    0,    0,    0, 4613,
9191         0,    0,    0,    0,    0,    0, 4613, 4613, 4615, 4615,
9192      4615, 4615, 4615, 4615, 4615, 4615, 4615, 4615, 4615, 4615,
9193      4615, 4615, 4615, 4615, 4615, 4615, 4615, 4615, 4615, 4615,
9194      4615, 4615, 4615, 4615, 4615, 4615, 4615, 4615, 4615, 4615,
9195      4616, 4616, 4616, 4616, 4616,    0, 4616, 4616, 4616,    0,
9196
9197      4616, 4616, 4616, 4616, 4616,    0, 4616, 4616, 4616,    0,
9198      4616, 4616,    0, 4616, 4616, 4616, 4616, 4616,    0,    0,
9199      4616, 4616, 4617, 4617,    0, 4617, 4617, 4617, 4617, 4617,
9200      4617, 4617, 4617, 4617, 4617, 4617, 4617, 4617, 4617, 4617,
9201      4617, 4617, 4617, 4617, 4617, 4617, 4617, 4617, 4617, 4617,
9202      4617, 4617, 4617, 4617, 4618, 4618,    0, 4618, 4618, 4618,
9203      4618, 4618, 4618, 4618, 4618, 4618, 4618, 4618, 4618, 4618,
9204      4618, 4618, 4618, 4618, 4618, 4618, 4618, 4618, 4618,    0,
9205      4618, 4618, 4618, 4618, 4618, 4618, 4619, 4619,    0, 4619,
9206      4619, 4619, 4619, 4619, 4619, 4619, 4619, 4619, 4619, 4619,
9207
9208      4619, 4619, 4619, 4619, 4619, 4619, 4619, 4619, 4619, 4619,
9209      4619, 4619, 4619, 4619, 4619, 4619, 4619, 4619, 4620, 4620,
9210      4620,    0,    0,    0, 4620,    0,    0,    0,    0,    0,
9211         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
9212      4620,    0,    0,    0,    0,    0,    0,    0, 4620, 4621,
9213      4621, 4621,    0,    0,    0,    0,    0,    0,    0,    0,
9214         0,    0, 4621,    0, 4621, 4621,    0,    0,    0,    0,
9215         0, 4621,    0,    0,    0,    0,    0,    0,    0, 4621,
9216      4622, 4622, 4622,    0,    0,    0,    0,    0,    0,    0,
9217         0,    0,    0, 4622,    0, 4622, 4622,    0,    0,    0,
9218
9219         0,    0, 4622,    0,    0,    0,    0,    0,    0,    0,
9220      4622, 4624, 4624, 4624, 4624,    0,    0, 4624,    0,    0,
9221         0,    0,    0,    0,    0,    0,    0, 4624,    0,    0,
9222         0,    0,    0, 4624,    0,    0,    0,    0,    0,    0,
9223      4624, 4624, 4625, 4625,    0, 4625, 4625, 4625, 4625, 4625,
9224      4625, 4625, 4625, 4625, 4625, 4625, 4625, 4625, 4625, 4625,
9225      4625, 4625, 4625, 4625, 4625, 4625, 4625,    0, 4625, 4625,
9226      4625, 4625, 4625, 4625, 4627,    0,    0,    0, 4627, 4627,
9227      4627, 4627, 4627, 4627, 4627, 4627,    0, 4627,    0,    0,
9228      4627, 4627, 4627, 4627, 4627, 4627, 4627, 4627, 4627, 4627,
9229
9230      4627, 4627, 4627, 4627, 4627, 4627, 4629,    0, 4629,    0,
9231         0,    0,    0,    0,    0, 4629,    0, 4629,    0,    0,
9232         0,    0,    0, 4629, 4630, 4630, 4630,    0,    0,    0,
9233      4630,    0,    0,    0,    0, 4630,    0,    0,    0,    0,
9234         0,    0,    0,    0,    0,    0, 4630,    0,    0,    0,
9235         0,    0,    0,    0, 4630, 4631, 4631, 4631,    0,    0,
9236         0,    0,    0,    0,    0,    0,    0,    0, 4631,    0,
9237      4631,    0,    0,    0,    0,    0,    0, 4631,    0,    0,
9238         0,    0,    0,    0,    0, 4631, 4632, 4632, 4632,    0,
9239         0,    0, 4632,    0,    0,    0,    0,    0,    0,    0,
9240
9241         0,    0,    0,    0,    0,    0,    0,    0, 4632,    0,
9242         0,    0,    0,    0,    0,    0, 4632, 4634,    0,    0,
9243         0,    0,    0,    0, 4634,    0,    0,    0, 4634, 4634,
9244         0,    0, 4634, 4634,    0,    0,    0, 4634,    0, 4634,
9245      4635, 4635,    0, 4635,    0,    0,    0, 4635,    0,    0,
9246         0,    0,    0,    0,    0, 4635, 4636, 4636,    0, 4636,
9247      4636, 4636, 4636, 4636, 4636, 4636, 4636, 4636, 4636, 4636,
9248      4636, 4636, 4636, 4636, 4636, 4636, 4636, 4636, 4636, 4636,
9249      4636,    0, 4636, 4636, 4636, 4636, 4636, 4636, 4637,    0,
9250      4637, 4637, 4637, 4637, 4637, 4637, 4637, 4637, 4637,    0,
9251
9252      4637, 4637, 4637, 4637, 4637, 4637, 4637, 4637, 4637, 4637,
9253      4637, 4637, 4637,    0, 4637, 4637, 4637, 4637, 4637, 4637,
9254      4638, 4638,    0, 4638, 4638, 4638, 4638, 4638, 4638, 4638,
9255      4638, 4638, 4638, 4638, 4638, 4638, 4638, 4638, 4638, 4638,
9256      4638, 4638, 4638, 4638, 4638, 4638, 4638, 4638, 4638, 4638,
9257      4638, 4638, 4639, 4639, 4639,    0,    0,    0, 4639,    0,
9258         0,    0,    0, 4639,    0,    0,    0,    0,    0,    0,
9259         0,    0,    0,    0, 4639,    0,    0,    0,    0,    0,
9260         0,    0, 4639, 4640, 4640, 4640,    0,    0,    0,    0,
9261         0,    0,    0,    0,    0,    0,    0,    0, 4640, 4640,
9262
9263         0,    0,    0,    0,    0, 4640,    0,    0,    0,    0,
9264         0,    0,    0, 4640, 4642, 4642, 4642, 4642,    0,    0,
9265      4642,    0,    0,    0,    0,    0,    0,    0,    0,    0,
9266      4642,    0,    0,    0,    0,    0, 4642,    0,    0,    0,
9267         0,    0,    0, 4642, 4642, 4643, 4643,    0, 4643, 4643,
9268      4643, 4643, 4643, 4643, 4643, 4643, 4643, 4643, 4643, 4643,
9269      4643, 4643, 4643, 4643, 4643, 4643, 4643, 4643, 4643, 4643,
9270         0, 4643, 4643, 4643, 4643, 4643, 4643, 4644,    0, 4644,
9271      4644, 4644, 4644, 4644, 4644, 4644, 4644, 4644,    0, 4644,
9272      4644, 4644, 4644, 4644, 4644, 4644, 4644, 4644, 4644, 4644,
9273
9274      4644, 4644,    0, 4644, 4644, 4644, 4644, 4644, 4644, 4646,
9275      4646,    0, 4646, 4646, 4646, 4646, 4646, 4646, 4646, 4646,
9276      4646, 4646, 4646, 4646, 4646, 4646, 4646, 4646, 4646, 4646,
9277      4646, 4646, 4646, 4646,    0, 4646, 4646, 4646, 4646, 4646,
9278      4646, 4647, 4647,    0, 4647, 4647, 4647, 4647, 4647, 4647,
9279      4647, 4647, 4647, 4647, 4647, 4647, 4647, 4647, 4647, 4647,
9280      4647, 4647, 4647, 4647, 4647, 4647,    0, 4647, 4647, 4647,
9281      4647, 4647, 4647, 4648, 4648,    0, 4648, 4648, 4648, 4648,
9282      4648, 4648, 4648, 4648, 4648, 4648, 4648, 4648, 4648, 4648,
9283      4648, 4648, 4648, 4648, 4648, 4648, 4648, 4648,    0, 4648,
9284
9285      4648, 4648, 4648, 4648, 4648, 4649, 4649,    0, 4649, 4649,
9286      4649, 4649, 4649, 4649, 4649, 4649, 4649, 4649, 4649, 4649,
9287      4649, 4649, 4649, 4649, 4649, 4649, 4649, 4649, 4649, 4649,
9288         0, 4649, 4649, 4649, 4649, 4649, 4649, 4650, 4650,    0,
9289      4650, 4650,    0, 4650, 4650, 4650,    0, 4650, 4650, 4650,
9290      4650, 4650,    0, 4650, 4650, 4650, 4650, 4650, 4650, 4650,
9291      4650, 4650, 4650, 4650, 4650,    0,    0, 4650, 4650, 4651,
9292      4651,    0, 4651, 4651, 4651, 4651, 4651, 4651, 4651, 4651,
9293      4651, 4651, 4651, 4651, 4651, 4651, 4651, 4651, 4651, 4651,
9294      4651, 4651, 4651, 4651,    0, 4651, 4651, 4651, 4651, 4651,
9295
9296      4651, 4652, 4652, 4652, 4652, 4652, 4652, 4652, 4652, 4652,
9297      4652, 4652, 4652, 4652, 4652, 4652, 4652,    0, 4652, 4652,
9298      4652, 4652, 4652, 4652,    0, 4652, 4652, 4652, 4652, 4652,
9299      4652, 4652, 4652, 4655,    0, 4655, 4655, 4655, 4655, 4655,
9300      4655, 4655, 4655,    0,    0, 4655, 4655, 4655, 4655, 4655,
9301      4655, 4655, 4655, 4655, 4655, 4655, 4655, 4655,    0, 4655,
9302      4655, 4655, 4655, 4655, 4655, 4656,    0, 4656, 4656, 4656,
9303      4656, 4656, 4656, 4656, 4656,    0,    0, 4656, 4656, 4656,
9304      4656, 4656, 4656, 4656, 4656, 4656, 4656, 4656, 4656, 4656,
9305         0, 4656, 4656, 4656, 4656, 4656, 4656, 4657, 4657, 4657,
9306
9307         0,    0,    0,    0,    0,    0,    0, 4657,    0, 4657,
9308         0,    0, 4657,    0,    0,    0,    0,    0,    0, 4657,
9309         0,    0,    0,    0,    0,    0,    0, 4657, 4658, 4658,
9310      4658,    0,    0,    0,    0,    0,    0,    0,    0,    0,
9311         0,    0,    0, 4658,    0,    0,    0,    0,    0,    0,
9312      4658,    0,    0,    0,    0,    0,    0,    0, 4658, 4661,
9313      4661, 4661, 4661,    0,    0, 4661,    0,    0,    0,    0,
9314         0,    0,    0,    0,    0, 4661,    0,    0,    0,    0,
9315         0, 4661,    0,    0,    0,    0,    0,    0, 4661, 4661,
9316      4662, 4662,    0, 4662, 4662, 4662, 4662, 4662, 4662, 4662,
9317
9318      4662, 4662,    0, 4662, 4662,    0, 4662, 4662, 4662, 4662,
9319      4662, 4662,    0, 4662, 4662,    0, 4662, 4662, 4662, 4662,
9320      4662, 4662, 4664, 4664, 4664,    0,    0,    0,    0,    0,
9321         0, 4664,    0,    0, 4664,    0,    0, 4664, 4664, 4664,
9322      4664,    0,    0,    0, 4664,    0,    0,    0,    0,    0,
9323         0,    0, 4664, 4666, 4666, 4666,    0,    0,    0,    0,
9324         0,    0, 4666,    0,    0,    0,    0,    0, 4666, 4666,
9325         0,    0,    0,    0,    0, 4666,    0,    0,    0,    0,
9326         0,    0,    0, 4666, 4667, 4667, 4667,    0,    0,    0,
9327         0,    0,    0, 4667,    0,    0,    0,    0,    0, 4667,
9328
9329      4667,    0,    0,    0,    0,    0, 4667,    0,    0,    0,
9330         0,    0,    0,    0, 4667, 4669,    0,    0,    0, 4669,
9331         0, 4669,    0,    0, 4669,    0,    0,    0, 4669,    0,
9332         0,    0,    0,    0,    0,    0, 4669, 4670, 4670, 4670,
9333      4670,    0,    0, 4670,    0,    0,    0,    0,    0,    0,
9334         0,    0,    0, 4670,    0,    0,    0,    0,    0, 4670,
9335         0,    0,    0,    0,    0,    0, 4670, 4670, 4671, 4671,
9336      4671,    0,    0,    0, 4671,    0,    0,    0,    0,    0,
9337         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
9338      4671,    0,    0,    0,    0,    0,    0,    0, 4671, 4672,
9339
9340      4672, 4672,    0,    0,    0,    0,    0,    0,    0,    0,
9341         0,    0,    0,    0, 4672, 4672,    0,    0,    0,    0,
9342         0, 4672,    0,    0,    0,    0,    0,    0,    0, 4672,
9343      4673, 4673, 4673,    0,    0,    0,    0,    0,    0,    0,
9344         0,    0,    0, 4673,    0, 4673, 4673,    0,    0,    0,
9345         0,    0, 4673,    0,    0,    0,    0,    0,    0,    0,
9346      4673, 4674, 4674, 4674,    0,    0,    0,    0,    0,    0,
9347         0,    0,    0,    0,    0,    0, 4674, 4674,    0,    0,
9348         0,    0,    0, 4674,    0,    0,    0,    0,    0,    0,
9349         0, 4674, 4676, 4676, 4676,    0,    0,    0, 4676,    0,
9350
9351         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
9352         0,    0,    0,    0, 4676,    0,    0,    0,    0,    0,
9353         0,    0, 4676, 4677, 4677,    0, 4677, 4677, 4677, 4677,
9354      4677, 4677, 4677, 4677, 4677, 4677, 4677, 4677, 4677, 4677,
9355      4677, 4677, 4677, 4677, 4677, 4677, 4677, 4677,    0, 4677,
9356      4677, 4677, 4677, 4677, 4677, 4678, 4678, 4678,    0,    0,
9357         0, 4678, 4678,    0,    0,    0, 4678,    0,    0,    0,
9358         0, 4678,    0,    0,    0,    0,    0, 4678,    0,    0,
9359         0, 4678,    0,    0,    0, 4678, 4679, 4679, 4679,    0,
9360         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
9361
9362         0, 4679, 4679,    0, 4679,    0,    0,    0, 4679,    0,
9363         0,    0,    0,    0,    0,    0, 4679, 4680, 4680, 4680,
9364         0,    0,    0, 4680,    0,    0,    0,    0,    0,    0,
9365         0,    0,    0,    0,    0,    0,    0,    0,    0, 4680,
9366         0,    0,    0,    0,    0,    0,    0, 4680, 4681, 4681,
9367      4681,    0,    0,    0,    0,    0,    0,    0, 4681,    0,
9368         0,    0,    0, 4681, 4681,    0, 4681,    0,    0,    0,
9369      4681,    0,    0,    0,    0,    0,    0,    0, 4681, 4682,
9370      4682, 4682,    0,    0,    0, 4682,    0,    0,    0, 4682,
9371         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
9372
9373         0, 4682,    0,    0,    0,    0,    0,    0,    0, 4682,
9374      4683,    0,    0,    0, 4683,    0,    0,    0,    0, 4683,
9375         0,    0,    0,    0,    0,    0, 4683,    0,    0,    0,
9376         0,    0,    0,    0, 4683, 4684,    0,    0,    0,    0,
9377         0,    0, 4684,    0,    0,    0, 4684, 4684,    0,    0,
9378      4684, 4684,    0,    0,    0, 4684,    0, 4684, 4685, 4685,
9379      4685, 4685, 4685, 4685, 4685, 4685, 4685, 4685, 4685, 4685,
9380      4685, 4685, 4685, 4685, 4685, 4685, 4685, 4685, 4685, 4685,
9381      4685, 4685, 4685, 4685, 4685, 4685, 4685, 4685, 4685, 4685,
9382      4686, 4686,    0, 4686, 4686, 4686, 4686, 4686, 4686, 4686,
9383
9384      4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686,
9385      4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686,
9386      4686, 4686, 4688, 4688, 4688,    0,    0,    0,    0,    0,
9387         0, 4688,    0,    0,    0, 4688,    0, 4688,    0,    0,
9388         0,    0,    0,    0, 4688,    0,    0,    0,    0,    0,
9389         0,    0, 4688, 4689, 4689, 4689,    0,    0,    0,    0,
9390         0,    0, 4689,    0,    0,    0, 4689,    0, 4689,    0,
9391         0,    0,    0,    0,    0, 4689,    0,    0,    0,    0,
9392         0,    0,    0, 4689, 4690, 4690, 4690,    0,    0,    0,
9393         0,    0,    0,    0,    0,    0,    0,    0,    0, 4690,
9394
9395      4690,    0, 4690,    0,    0,    0, 4690,    0,    0,    0,
9396         0,    0,    0,    0, 4690, 4692, 4692, 4692, 4692, 4692,
9397      4692, 4692, 4692, 4692, 4692, 4692, 4692, 4692, 4692, 4692,
9398      4692, 4692, 4692, 4692, 4692, 4692, 4692, 4692, 4692, 4692,
9399      4692, 4692, 4692, 4692, 4692, 4692, 4692, 4693, 4693, 4693,
9400      4693, 4693,    0, 4693, 4693, 4693,    0, 4693, 4693, 4693,
9401      4693, 4693,    0, 4693, 4693, 4693,    0, 4693, 4693,    0,
9402      4693, 4693, 4693, 4693, 4693,    0,    0, 4693, 4693, 4694,
9403      4694,    0, 4694, 4694, 4694, 4694, 4694, 4694, 4694, 4694,
9404      4694, 4694, 4694, 4694, 4694, 4694, 4694, 4694, 4694, 4694,
9405
9406      4694, 4694, 4694, 4694, 4694, 4694, 4694, 4694, 4694, 4694,
9407      4694, 4695, 4695,    0, 4695, 4695, 4695, 4695, 4695, 4695,
9408      4695, 4695, 4695, 4695, 4695, 4695, 4695, 4695, 4695, 4695,
9409      4695, 4695, 4695, 4695, 4695, 4695,    0, 4695, 4695, 4695,
9410      4695, 4695, 4695, 4696, 4696, 4696, 4696, 4696, 4696, 4696,
9411      4696, 4696, 4696, 4696, 4696, 4696, 4696, 4696, 4696,    0,
9412      4696, 4696, 4696, 4696, 4696, 4696,    0, 4696, 4696, 4696,
9413      4696, 4696, 4696, 4696, 4696, 4697, 4697, 4697,    0,    0,
9414         0,    0,    0,    0,    0,    0,    0,    0, 4697,    0,
9415      4697, 4697,    0,    0,    0,    0,    0, 4697,    0,    0,
9416
9417         0,    0,    0,    0,    0, 4697, 4698, 4698, 4698,    0,
9418         0,    0,    0,    0,    0,    0,    0,    0,    0, 4698,
9419         0, 4698, 4698,    0,    0,    0,    0,    0, 4698,    0,
9420         0,    0,    0,    0,    0,    0, 4698, 4699, 4699,    0,
9421      4699, 4699, 4699, 4699, 4699, 4699, 4699, 4699, 4699, 4699,
9422      4699, 4699, 4699, 4699, 4699, 4699, 4699, 4699, 4699, 4699,
9423      4699, 4699,    0, 4699, 4699, 4699, 4699, 4699, 4699, 4701,
9424         0,    0,    0, 4701, 4701, 4701, 4701, 4701, 4701, 4701,
9425      4701,    0, 4701,    0,    0, 4701, 4701, 4701, 4701, 4701,
9426      4701, 4701, 4701, 4701, 4701, 4701, 4701, 4701, 4701, 4701,
9427
9428      4701, 4702,    0, 4702,    0,    0,    0,    0,    0,    0,
9429      4702,    0, 4702,    0,    0,    0,    0,    0, 4702, 4703,
9430      4703, 4703,    0,    0,    0,    0,    0,    0,    0,    0,
9431         0,    0, 4703,    0, 4703,    0,    0,    0,    0,    0,
9432         0, 4703,    0,    0,    0,    0,    0,    0,    0, 4703,
9433      4705, 4705,    0, 4705,    0,    0,    0, 4705,    0,    0,
9434         0,    0,    0,    0,    0, 4705, 4706, 4706,    0, 4706,
9435      4706, 4706, 4706, 4706, 4706, 4706, 4706, 4706, 4706, 4706,
9436      4706, 4706, 4706, 4706, 4706, 4706, 4706, 4706, 4706, 4706,
9437      4706,    0, 4706, 4706, 4706, 4706, 4706, 4706, 4707,    0,
9438
9439      4707, 4707, 4707, 4707, 4707, 4707, 4707, 4707, 4707,    0,
9440      4707, 4707, 4707, 4707, 4707, 4707, 4707, 4707, 4707, 4707,
9441      4707, 4707, 4707,    0, 4707, 4707, 4707, 4707, 4707, 4707,
9442      4708, 4708, 4708,    0,    0,    0,    0,    0,    0,    0,
9443         0,    0,    0,    0,    0, 4708, 4708,    0,    0,    0,
9444         0,    0, 4708,    0,    0,    0,    0,    0,    0,    0,
9445      4708, 4709, 4709,    0, 4709, 4709, 4709, 4709, 4709, 4709,
9446      4709, 4709, 4709, 4709, 4709, 4709, 4709, 4709, 4709, 4709,
9447      4709, 4709, 4709, 4709, 4709, 4709,    0, 4709, 4709, 4709,
9448      4709, 4709, 4709, 4710,    0, 4710, 4710, 4710, 4710, 4710,
9449
9450      4710, 4710, 4710, 4710,    0, 4710, 4710, 4710, 4710, 4710,
9451      4710, 4710, 4710, 4710, 4710, 4710, 4710, 4710,    0, 4710,
9452      4710, 4710, 4710, 4710, 4710, 4712, 4712,    0, 4712, 4712,
9453      4712, 4712, 4712, 4712, 4712, 4712, 4712, 4712, 4712, 4712,
9454      4712, 4712, 4712, 4712, 4712, 4712, 4712, 4712, 4712, 4712,
9455         0, 4712, 4712, 4712, 4712, 4712, 4712, 4713, 4713,    0,
9456      4713, 4713, 4713, 4713, 4713, 4713, 4713, 4713, 4713, 4713,
9457      4713, 4713, 4713, 4713, 4713, 4713, 4713, 4713, 4713, 4713,
9458      4713, 4713,    0, 4713, 4713, 4713, 4713, 4713, 4713, 4714,
9459      4714,    0, 4714, 4714, 4714, 4714, 4714, 4714, 4714, 4714,
9460
9461      4714, 4714, 4714, 4714, 4714, 4714, 4714, 4714, 4714, 4714,
9462      4714, 4714, 4714, 4714,    0, 4714, 4714, 4714, 4714, 4714,
9463      4714, 4715, 4715,    0, 4715, 4715, 4715, 4715, 4715, 4715,
9464      4715, 4715, 4715, 4715, 4715, 4715, 4715, 4715, 4715, 4715,
9465      4715, 4715, 4715, 4715, 4715, 4715,    0, 4715, 4715, 4715,
9466      4715, 4715, 4715, 4716, 4716,    0, 4716, 4716, 4716, 4716,
9467      4716, 4716,    0, 4716, 4716, 4716, 4716, 4716,    0, 4716,
9468      4716, 4716, 4716, 4716, 4716, 4716, 4716, 4716, 4716, 4716,
9469      4716,    0,    0, 4716, 4716, 4717, 4717,    0, 4717, 4717,
9470      4717, 4717, 4717, 4717, 4717, 4717, 4717, 4717, 4717, 4717,
9471
9472      4717, 4717, 4717, 4717, 4717, 4717, 4717, 4717, 4717, 4717,
9473         0, 4717, 4717, 4717, 4717, 4717, 4717, 4718, 4718, 4718,
9474      4718, 4718, 4718, 4718, 4718, 4718, 4718, 4718, 4718, 4718,
9475      4718, 4718, 4718,    0, 4718, 4718, 4718, 4718, 4718, 4718,
9476         0, 4718, 4718, 4718, 4718, 4718, 4718, 4718, 4718, 4719,
9477         0, 4719, 4719, 4719, 4719, 4719, 4719, 4719, 4719,    0,
9478         0, 4719, 4719, 4719, 4719, 4719, 4719, 4719, 4719, 4719,
9479      4719, 4719, 4719, 4719,    0, 4719, 4719, 4719, 4719, 4719,
9480      4719, 4720,    0, 4720, 4720, 4720, 4720, 4720, 4720, 4720,
9481      4720,    0,    0, 4720, 4720, 4720, 4720, 4720, 4720, 4720,
9482
9483      4720, 4720, 4720, 4720, 4720, 4720,    0, 4720, 4720, 4720,
9484      4720, 4720, 4720, 4721,    0,    0,    0,    0,    0, 4721,
9485      4721,    0,    0,    0, 4721,    0,    0,    0,    0,    0,
9486         0,    0,    0,    0,    0, 4721,    0,    0,    0,    0,
9487         0,    0,    0, 4721, 4722, 4722,    0, 4722, 4722, 4722,
9488      4722, 4722, 4722, 4722, 4722, 4722,    0, 4722, 4722,    0,
9489      4722, 4722, 4722, 4722, 4722, 4722,    0, 4722, 4722,    0,
9490      4722, 4722, 4722, 4722, 4722, 4722, 4723, 4723, 4723, 4723,
9491      4723, 4723, 4723, 4723, 4723, 4723, 4723, 4723, 4723, 4723,
9492      4723, 4723,    0, 4723, 4723, 4723, 4723, 4723, 4723,    0,
9493
9494      4723, 4723, 4723, 4723, 4723, 4723, 4723, 4723, 4724, 4724,
9495      4724,    0,    0,    0,    0,    0,    0, 4724,    0,    0,
9496         0,    0,    0, 4724, 4724,    0,    0,    0,    0,    0,
9497      4724,    0,    0,    0,    0,    0,    0,    0, 4724, 4725,
9498         0,    0,    0, 4725,    0, 4725,    0,    0, 4725,    0,
9499         0,    0, 4725,    0,    0,    0,    0,    0,    0,    0,
9500      4725, 4726, 4726, 4726,    0,    0,    0, 4726,    0,    0,
9501         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
9502         0,    0,    0, 4726,    0,    0,    0,    0,    0,    0,
9503         0, 4726, 4729, 4729, 4729,    0,    0,    0,    0,    0,
9504
9505         0,    0,    0,    0,    0,    0,    0, 4729, 4729,    0,
9506         0,    0,    0,    0, 4729,    0,    0,    0,    0,    0,
9507         0,    0, 4729, 4730, 4730, 4730,    0,    0,    0,    0,
9508         0,    0,    0,    0,    0,    0, 4730,    0, 4730, 4730,
9509         0,    0,    0,    0,    0, 4730,    0,    0,    0,    0,
9510         0,    0,    0, 4730, 4731, 4731, 4731,    0,    0,    0,
9511      4731,    0,    0,    0,    0,    0,    0,    0,    0,    0,
9512      4731,    0,    0,    0,    0,    0, 4731,    0,    0,    0,
9513         0,    0,    0,    0, 4731, 4732, 4732, 4732,    0,    0,
9514         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
9515
9516      4732, 4732,    0, 4732,    0,    0,    0, 4732,    0,    0,
9517         0,    0,    0,    0,    0, 4732, 4733,    0,    0,    0,
9518         0,    0,    0, 4733,    0,    0,    0, 4733, 4733,    0,
9519         0, 4733, 4733,    0,    0,    0, 4733,    0, 4733, 4734,
9520      4734, 4734,    0,    0,    0,    0,    0,    0,    0, 4734,
9521         0,    0,    0,    0, 4734, 4734,    0, 4734,    0,    0,
9522         0, 4734,    0,    0,    0,    0,    0,    0,    0, 4734,
9523      4735,    0,    0,    0, 4735,    0,    0,    0,    0, 4735,
9524         0,    0,    0,    0,    0,    0, 4735,    0,    0,    0,
9525         0,    0,    0,    0, 4735, 4736, 4736, 4736, 4736, 4736,
9526
9527      4736, 4736, 4736, 4736, 4736, 4736, 4736, 4736, 4736, 4736,
9528      4736, 4736, 4736, 4736, 4736, 4736, 4736, 4736, 4736, 4736,
9529      4736, 4736, 4736, 4736, 4736, 4736, 4736, 4737, 4737,    0,
9530      4737, 4737, 4737, 4737, 4737, 4737, 4737, 4737, 4737, 4737,
9531      4737, 4737, 4737, 4737, 4737, 4737, 4737, 4737, 4737, 4737,
9532      4737, 4737, 4737, 4737, 4737, 4737, 4737, 4737, 4737, 4738,
9533      4738, 4738,    0,    0,    0,    0,    0,    0, 4738,    0,
9534         0,    0, 4738,    0, 4738,    0,    0,    0,    0,    0,
9535         0, 4738,    0,    0,    0,    0,    0,    0,    0, 4738,
9536      4739, 4739, 4739,    0,    0,    0,    0,    0,    0, 4739,
9537
9538         0,    0,    0, 4739,    0, 4739,    0,    0,    0,    0,
9539         0,    0, 4739,    0,    0,    0,    0,    0,    0,    0,
9540      4739, 4740, 4740, 4740,    0,    0,    0,    0,    0,    0,
9541         0,    0,    0,    0,    0,    0, 4740, 4740,    0, 4740,
9542         0,    0,    0, 4740,    0,    0,    0,    0,    0,    0,
9543         0, 4740, 4742, 4742, 4742, 4742, 4742,    0, 4742, 4742,
9544      4742,    0, 4742, 4742, 4742, 4742, 4742,    0, 4742, 4742,
9545      4742,    0, 4742, 4742,    0, 4742, 4742, 4742, 4742, 4742,
9546         0,    0, 4742, 4742, 4743, 4743,    0, 4743, 4743, 4743,
9547      4743, 4743, 4743, 4743, 4743, 4743, 4743, 4743, 4743, 4743,
9548
9549      4743, 4743, 4743, 4743, 4743, 4743, 4743, 4743, 4743, 4743,
9550      4743, 4743, 4743, 4743, 4743, 4743, 4744, 4744, 4744,    0,
9551         0,    0,    0,    0,    0,    0,    0,    0,    0, 4744,
9552         0, 4744, 4744,    0,    0,    0,    0,    0, 4744,    0,
9553         0,    0,    0,    0,    0,    0, 4744, 4745, 4745, 4745,
9554         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
9555         0,    0, 4745,    0,    0,    0,    0,    0,    0, 4745,
9556         0,    0,    0,    0,    0,    0,    0, 4745, 4746,    0,
9557         0,    0, 4746, 4746, 4746, 4746, 4746, 4746, 4746, 4746,
9558         0, 4746,    0,    0, 4746, 4746, 4746, 4746, 4746, 4746,
9559
9560      4746, 4746, 4746, 4746, 4746, 4746, 4746, 4746, 4746, 4746,
9561      4747, 4747,    0, 4747,    0,    0,    0, 4747,    0,    0,
9562         0,    0,    0,    0,    0, 4747, 4748,    0, 4748, 4748,
9563      4748, 4748, 4748, 4748, 4748, 4748, 4748,    0, 4748, 4748,
9564      4748, 4748, 4748, 4748, 4748, 4748, 4748, 4748, 4748, 4748,
9565      4748,    0, 4748, 4748, 4748, 4748, 4748, 4748, 4749, 4749,
9566      4749,    0,    0,    0, 4749,    0,    0,    0,    0, 4749,
9567         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
9568      4749,    0,    0,    0,    0,    0,    0,    0, 4749, 4750,
9569         0, 4750, 4750, 4750, 4750, 4750, 4750, 4750, 4750, 4750,
9570
9571         0, 4750, 4750, 4750, 4750, 4750, 4750, 4750, 4750, 4750,
9572      4750, 4750, 4750, 4750,    0, 4750, 4750, 4750, 4750, 4750,
9573      4750, 4751, 4751,    0, 4751, 4751,    0, 4751, 4751, 4751,
9574      4751, 4751, 4751, 4751, 4751, 4751, 4751, 4751, 4751, 4751,
9575      4751, 4751, 4751, 4751, 4751, 4751, 4751, 4751, 4751, 4751,
9576      4751, 4751, 4751, 4752,    0, 4752, 4752, 4752, 4752, 4752,
9577      4752, 4752, 4752,    0,    0, 4752, 4752, 4752, 4752, 4752,
9578      4752, 4752, 4752, 4752, 4752, 4752, 4752, 4752,    0, 4752,
9579      4752, 4752, 4752, 4752, 4752, 4753,    0, 4753, 4753, 4753,
9580      4753, 4753, 4753, 4753, 4753,    0,    0, 4753, 4753, 4753,
9581
9582      4753, 4753, 4753, 4753, 4753, 4753, 4753, 4753, 4753, 4753,
9583         0, 4753, 4753, 4753, 4753, 4753, 4753, 4754, 4754,    0,
9584      4754, 4754, 4754, 4754, 4754, 4754, 4754, 4754, 4754,    0,
9585      4754, 4754,    0, 4754, 4754, 4754, 4754, 4754, 4754,    0,
9586      4754, 4754,    0, 4754, 4754, 4754, 4754, 4754, 4754, 4755,
9587      4755, 4755,    0,    0,    0,    0,    0,    0, 4755,    0,
9588         0,    0,    0,    0, 4755, 4755,    0,    0,    0,    0,
9589         0, 4755,    0,    0,    0,    0,    0,    0,    0, 4755,
9590      4757, 4757, 4757, 4757,    0,    0, 4757,    0,    0,    0,
9591         0,    0,    0,    0,    0,    0, 4757,    0,    0,    0,
9592
9593         0,    0, 4757,    0,    0,    0,    0,    0,    0, 4757,
9594      4757, 4758, 4758, 4758,    0,    0,    0,    0,    0,    0,
9595         0,    0,    0,    0, 4758,    0, 4758, 4758,    0,    0,
9596         0,    0,    0, 4758,    0,    0,    0,    0,    0,    0,
9597         0, 4758, 4759, 4759, 4759,    0,    0,    0, 4759,    0,
9598         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
9599         0,    0,    0,    0, 4759,    0,    0,    0,    0,    0,
9600         0,    0, 4759, 4760,    0,    0,    0,    0,    0,    0,
9601      4760,    0,    0,    0, 4760, 4760,    0,    0, 4760, 4760,
9602         0,    0,    0, 4760,    0, 4760, 4762,    0, 4762, 4762,
9603
9604      4762, 4762, 4762, 4762, 4762, 4762, 4762,    0, 4762, 4762,
9605      4762, 4762, 4762, 4762, 4762, 4762, 4762, 4762, 4762, 4762,
9606      4762,    0, 4762, 4762, 4762, 4762, 4762, 4762, 4763,    0,
9607      4763, 4763, 4763, 4763, 4763, 4763, 4763, 4763, 4763,    0,
9608      4763, 4763, 4763, 4763, 4763, 4763, 4763, 4763, 4763, 4763,
9609      4763, 4763, 4763,    0, 4763, 4763, 4763, 4763, 4763, 4763,
9610      4764,    0, 4764, 4764, 4764, 4764, 4764, 4764, 4764, 4764,
9611         0,    0, 4764, 4764, 4764, 4764, 4764, 4764, 4764, 4764,
9612      4764, 4764, 4764, 4764, 4764,    0, 4764, 4764, 4764, 4764,
9613      4764, 4764, 4765,    0, 4765, 4765, 4765, 4765, 4765, 4765,
9614
9615      4765, 4765,    0,    0, 4765, 4765, 4765, 4765, 4765, 4765,
9616      4765, 4765, 4765, 4765, 4765, 4765, 4765,    0, 4765, 4765,
9617      4765, 4765, 4765, 4765, 4769,    0, 4769, 4769, 4769, 4769,
9618      4769, 4769, 4769, 4769, 4769,    0, 4769, 4769, 4769, 4769,
9619      4769, 4769, 4769, 4769, 4769, 4769, 4769, 4769, 4769,    0,
9620      4769, 4769, 4769, 4769, 4769, 4769, 4770,    0, 4770, 4770,
9621      4770, 4770, 4770, 4770, 4770, 4770, 4770,    0, 4770, 4770,
9622      4770, 4770, 4770, 4770, 4770, 4770, 4770, 4770, 4770, 4770,
9623      4770,    0, 4770, 4770, 4770, 4770, 4770, 4770, 4771,    0,
9624      4771, 4771, 4771, 4771, 4771, 4771, 4771, 4771,    0,    0,
9625
9626      4771, 4771, 4771, 4771, 4771, 4771, 4771, 4771, 4771, 4771,
9627      4771, 4771, 4771,    0, 4771, 4771, 4771, 4771, 4771, 4771,
9628      4772,    0, 4772, 4772, 4772, 4772, 4772, 4772, 4772, 4772,
9629         0,    0, 4772, 4772, 4772, 4772, 4772, 4772, 4772, 4772,
9630      4772, 4772, 4772, 4772, 4772,    0, 4772, 4772, 4772, 4772,
9631      4772, 4772, 4773, 4773, 4773, 4773, 4773, 4773, 4773, 4773,
9632      4773, 4773, 4773, 4773, 4773, 4773, 4773, 4773,    0, 4773,
9633      4773, 4773, 4773, 4773, 4773,    0, 4773, 4773, 4773, 4773,
9634      4773, 4773, 4773, 4773, 4776,    0, 4776, 4776, 4776, 4776,
9635      4776, 4776, 4776, 4776, 4776,    0, 4776, 4776, 4776, 4776,
9636
9637      4776, 4776, 4776, 4776, 4776, 4776, 4776, 4776, 4776,    0,
9638      4776, 4776, 4776, 4776, 4776, 4776, 4777,    0, 4777, 4777,
9639      4777, 4777, 4777, 4777, 4777, 4777, 4777,    0, 4777, 4777,
9640      4777, 4777, 4777, 4777, 4777, 4777, 4777, 4777, 4777, 4777,
9641      4777,    0, 4777, 4777, 4777, 4777, 4777, 4777, 4778,    0,
9642      4778, 4778, 4778, 4778, 4778, 4778, 4778, 4778,    0,    0,
9643      4778, 4778, 4778, 4778, 4778, 4778, 4778, 4778, 4778, 4778,
9644      4778, 4778, 4778,    0, 4778, 4778, 4778, 4778, 4778, 4778,
9645      4779,    0, 4779, 4779, 4779, 4779, 4779, 4779, 4779, 4779,
9646         0,    0, 4779, 4779, 4779, 4779, 4779, 4779, 4779, 4779,
9647
9648      4779, 4779, 4779, 4779, 4779,    0, 4779, 4779, 4779, 4779,
9649      4779, 4779, 4780,    0, 4780, 4780, 4780, 4780, 4780, 4780,
9650      4780, 4780, 4780,    0, 4780, 4780, 4780, 4780, 4780, 4780,
9651      4780, 4780, 4780, 4780, 4780, 4780, 4780,    0, 4780, 4780,
9652      4780, 4780, 4780, 4780, 4781,    0, 4781, 4781, 4781, 4781,
9653      4781, 4781, 4781, 4781, 4781,    0, 4781, 4781, 4781, 4781,
9654      4781, 4781, 4781, 4781, 4781, 4781, 4781, 4781, 4781,    0,
9655      4781, 4781, 4781, 4781, 4781, 4781, 4782,    0, 4782, 4782,
9656      4782, 4782, 4782, 4782, 4782, 4782,    0,    0, 4782, 4782,
9657      4782, 4782, 4782, 4782, 4782, 4782, 4782, 4782, 4782, 4782,
9658
9659      4782,    0, 4782, 4782, 4782, 4782, 4782, 4782, 4783,    0,
9660      4783, 4783, 4783, 4783, 4783, 4783, 4783, 4783,    0,    0,
9661      4783, 4783, 4783, 4783, 4783, 4783, 4783, 4783, 4783, 4783,
9662      4783, 4783, 4783,    0, 4783, 4783, 4783, 4783, 4783, 4783,
9663      4784, 4784, 4784, 4784, 4784, 4784, 4784, 4784, 4784, 4784,
9664      4784, 4784, 4784, 4784, 4784, 4784,    0, 4784, 4784, 4784,
9665      4784, 4784, 4784,    0, 4784, 4784, 4784, 4784, 4784, 4784,
9666      4784, 4784, 4785,    0, 4785, 4785, 4785, 4785, 4785, 4785,
9667      4785, 4785, 4785,    0, 4785, 4785, 4785, 4785, 4785, 4785,
9668      4785, 4785, 4785, 4785, 4785, 4785, 4785,    0, 4785, 4785,
9669
9670      4785, 4785, 4785, 4785, 4786,    0, 4786, 4786, 4786, 4786,
9671      4786, 4786, 4786, 4786, 4786,    0, 4786, 4786, 4786, 4786,
9672      4786, 4786, 4786, 4786, 4786, 4786, 4786, 4786, 4786,    0,
9673      4786, 4786, 4786, 4786, 4786, 4786, 4787,    0, 4787, 4787,
9674      4787, 4787, 4787, 4787, 4787, 4787,    0,    0, 4787, 4787,
9675      4787, 4787, 4787, 4787, 4787, 4787, 4787, 4787, 4787, 4787,
9676      4787,    0, 4787, 4787, 4787, 4787, 4787, 4787, 4788,    0,
9677      4788, 4788, 4788, 4788, 4788, 4788, 4788, 4788,    0,    0,
9678      4788, 4788, 4788, 4788, 4788, 4788, 4788, 4788, 4788, 4788,
9679      4788, 4788, 4788,    0, 4788, 4788, 4788, 4788, 4788, 4788,
9680
9681      4790, 4790, 4790,    0,    0,    0,    0,    0,    0,    0,
9682         0,    0,    0,    0,    0, 4790,    0,    0,    0, 4790,
9683         0,    0, 4790,    0,    0,    0,    0,    0,    0,    0,
9684      4790, 4793,    0, 4793, 4793, 4793, 4793, 4793, 4793, 4793,
9685      4793, 4793,    0, 4793, 4793, 4793, 4793, 4793, 4793, 4793,
9686      4793, 4793, 4793, 4793, 4793, 4793,    0, 4793, 4793, 4793,
9687      4793, 4793, 4793, 4794,    0, 4794, 4794, 4794, 4794, 4794,
9688      4794, 4794, 4794, 4794,    0, 4794, 4794, 4794, 4794, 4794,
9689      4794, 4794, 4794, 4794, 4794, 4794, 4794, 4794,    0, 4794,
9690      4794, 4794, 4794, 4794, 4794, 4795,    0, 4795, 4795, 4795,
9691
9692      4795, 4795, 4795, 4795, 4795,    0,    0, 4795, 4795, 4795,
9693      4795, 4795, 4795, 4795, 4795, 4795, 4795, 4795, 4795, 4795,
9694         0, 4795, 4795, 4795, 4795, 4795, 4795, 4796,    0, 4796,
9695      4796, 4796, 4796, 4796, 4796, 4796, 4796,    0,    0, 4796,
9696      4796, 4796, 4796, 4796, 4796, 4796, 4796, 4796, 4796, 4796,
9697      4796, 4796,    0, 4796, 4796, 4796, 4796, 4796, 4796, 4799,
9698         0, 4799, 4799, 4799, 4799, 4799, 4799, 4799, 4799, 4799,
9699         0, 4799, 4799, 4799, 4799, 4799, 4799, 4799, 4799, 4799,
9700      4799, 4799, 4799, 4799,    0, 4799, 4799, 4799, 4799, 4799,
9701      4799, 4800,    0, 4800, 4800, 4800, 4800, 4800, 4800, 4800,
9702
9703      4800, 4800,    0, 4800, 4800, 4800, 4800, 4800, 4800, 4800,
9704      4800, 4800, 4800, 4800, 4800, 4800,    0, 4800, 4800, 4800,
9705      4800, 4800, 4800, 4801,    0, 4801, 4801, 4801, 4801, 4801,
9706      4801, 4801, 4801,    0,    0, 4801, 4801, 4801, 4801, 4801,
9707      4801, 4801, 4801, 4801, 4801, 4801, 4801, 4801,    0, 4801,
9708      4801, 4801, 4801, 4801, 4801, 4802,    0, 4802, 4802, 4802,
9709      4802, 4802, 4802, 4802, 4802,    0,    0, 4802, 4802, 4802,
9710      4802, 4802, 4802, 4802, 4802, 4802, 4802, 4802, 4802, 4802,
9711         0, 4802, 4802, 4802, 4802, 4802, 4802, 4803,    0, 4803,
9712      4803, 4803, 4803, 4803, 4803, 4803, 4803, 4803,    0, 4803,
9713
9714      4803, 4803, 4803, 4803, 4803, 4803, 4803, 4803, 4803, 4803,
9715      4803, 4803,    0, 4803, 4803, 4803, 4803, 4803, 4803, 4804,
9716         0, 4804, 4804, 4804, 4804, 4804, 4804, 4804, 4804, 4804,
9717         0, 4804, 4804, 4804, 4804, 4804, 4804, 4804, 4804, 4804,
9718      4804, 4804, 4804, 4804,    0, 4804, 4804, 4804, 4804, 4804,
9719      4804, 4805,    0, 4805, 4805, 4805, 4805, 4805, 4805, 4805,
9720      4805,    0,    0, 4805, 4805, 4805, 4805, 4805, 4805, 4805,
9721      4805, 4805, 4805, 4805, 4805, 4805,    0, 4805, 4805, 4805,
9722      4805, 4805, 4805, 4806,    0, 4806, 4806, 4806, 4806, 4806,
9723      4806, 4806, 4806,    0,    0, 4806, 4806, 4806, 4806, 4806,
9724
9725      4806, 4806, 4806, 4806, 4806, 4806, 4806, 4806,    0, 4806,
9726      4806, 4806, 4806, 4806, 4806, 4807,    0, 4807, 4807, 4807,
9727      4807, 4807, 4807, 4807, 4807, 4807,    0, 4807, 4807, 4807,
9728      4807, 4807, 4807, 4807, 4807, 4807, 4807, 4807, 4807, 4807,
9729         0, 4807, 4807, 4807, 4807, 4807, 4807, 4808,    0, 4808,
9730      4808, 4808, 4808, 4808, 4808, 4808, 4808, 4808,    0, 4808,
9731      4808, 4808, 4808, 4808, 4808, 4808, 4808, 4808, 4808, 4808,
9732      4808, 4808,    0, 4808, 4808, 4808, 4808, 4808, 4808, 4809,
9733         0, 4809, 4809, 4809, 4809, 4809, 4809, 4809, 4809,    0,
9734         0, 4809, 4809, 4809, 4809, 4809, 4809, 4809, 4809, 4809,
9735
9736      4809, 4809, 4809, 4809,    0, 4809, 4809, 4809, 4809, 4809,
9737      4809, 4810,    0, 4810, 4810, 4810, 4810, 4810, 4810, 4810,
9738      4810,    0,    0, 4810, 4810, 4810, 4810, 4810, 4810, 4810,
9739      4810, 4810, 4810, 4810, 4810, 4810,    0, 4810, 4810, 4810,
9740      4810, 4810, 4810, 4811,    0, 4811, 4811, 4811, 4811, 4811,
9741      4811, 4811, 4811, 4811,    0, 4811, 4811, 4811, 4811, 4811,
9742      4811, 4811, 4811, 4811, 4811, 4811, 4811, 4811,    0, 4811,
9743      4811, 4811, 4811, 4811, 4811, 4812,    0, 4812, 4812, 4812,
9744      4812, 4812, 4812, 4812, 4812, 4812,    0, 4812, 4812, 4812,
9745      4812, 4812, 4812, 4812, 4812, 4812, 4812, 4812, 4812, 4812,
9746
9747         0, 4812, 4812, 4812, 4812, 4812, 4812, 4813,    0, 4813,
9748      4813, 4813, 4813, 4813, 4813, 4813, 4813,    0,    0, 4813,
9749      4813, 4813, 4813, 4813, 4813, 4813, 4813, 4813, 4813, 4813,
9750      4813, 4813,    0, 4813, 4813, 4813, 4813, 4813, 4813, 4814,
9751         0, 4814, 4814, 4814, 4814, 4814, 4814, 4814, 4814,    0,
9752         0, 4814, 4814, 4814, 4814, 4814, 4814, 4814, 4814, 4814,
9753      4814, 4814, 4814, 4814,    0, 4814, 4814, 4814, 4814, 4814,
9754      4814, 4815,    0, 4815, 4815, 4815, 4815, 4815, 4815, 4815,
9755      4815, 4815,    0, 4815, 4815, 4815, 4815, 4815, 4815, 4815,
9756      4815, 4815, 4815, 4815, 4815, 4815,    0, 4815, 4815, 4815,
9757
9758      4815, 4815, 4815, 4816,    0, 4816, 4816, 4816, 4816, 4816,
9759      4816, 4816, 4816, 4816,    0, 4816, 4816, 4816, 4816, 4816,
9760      4816, 4816, 4816, 4816, 4816, 4816, 4816, 4816,    0, 4816,
9761      4816, 4816, 4816, 4816, 4816, 4817,    0, 4817, 4817, 4817,
9762      4817, 4817, 4817, 4817, 4817,    0,    0, 4817, 4817, 4817,
9763      4817, 4817, 4817, 4817, 4817, 4817, 4817, 4817, 4817, 4817,
9764         0, 4817, 4817, 4817, 4817, 4817, 4817, 4818,    0, 4818,
9765      4818, 4818, 4818, 4818, 4818, 4818, 4818,    0,    0, 4818,
9766      4818, 4818, 4818, 4818, 4818, 4818, 4818, 4818, 4818, 4818,
9767      4818, 4818,    0, 4818, 4818, 4818, 4818, 4818, 4818, 4819,
9768
9769         0, 4819, 4819, 4819, 4819, 4819, 4819, 4819, 4819, 4819,
9770         0, 4819, 4819, 4819, 4819, 4819, 4819, 4819, 4819, 4819,
9771      4819, 4819, 4819, 4819,    0, 4819, 4819, 4819, 4819, 4819,
9772      4819, 4820,    0, 4820, 4820, 4820, 4820, 4820, 4820, 4820,
9773      4820, 4820,    0, 4820, 4820, 4820, 4820, 4820, 4820, 4820,
9774      4820, 4820, 4820, 4820, 4820, 4820,    0, 4820, 4820, 4820,
9775      4820, 4820, 4820, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
9776      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
9777      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
9778      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
9779
9780      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
9781      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
9782      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
9783      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
9784      4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191
9785     } ;
9786
9787 extern int scanYY_flex_debug;
9788 int scanYY_flex_debug = 0;
9789
9790 static yy_state_type *yy_state_buf=0, *yy_state_ptr=0;
9791 static char *yy_full_match;
9792 static int yy_lp;
9793 static int yy_looking_for_trail_begin = 0;
9794 static int yy_full_lp;
9795 static int *yy_full_state;
9796 #define YY_TRAILING_MASK 0x2000
9797 #define YY_TRAILING_HEAD_MASK 0x4000
9798 #define REJECT \
9799 { \
9800 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */ \
9801 yy_cp = (yy_full_match); /* restore poss. backed-over text */ \
9802 (yy_lp) = (yy_full_lp); /* restore orig. accepting pos. */ \
9803 (yy_state_ptr) = (yy_full_state); /* restore orig. state */ \
9804 yy_current_state = *(yy_state_ptr); /* restore curr. state */ \
9805 ++(yy_lp); \
9806 goto find_rule; \
9807 }
9808
9809 #define yymore() yymore_used_but_not_detected
9810 #define YY_MORE_ADJ 0
9811 #define YY_RESTORE_YY_MORE_OFFSET
9812 char *scanYYtext;
9813 #line 1 "scanner.l"
9814 /*****************************************************************************
9815  *
9816  * $Id: scanner.l,v 1.80 2001/03/19 19:27:41 root Exp $
9817  *
9818  * Copyright (C) 1997-2012 by Dimitri van Heesch.
9819  *
9820  * Permission to use, copy, modify, and distribute this software and its
9821  * documentation under the terms of the GNU General Public License is hereby 
9822  * granted. No representations are made about the suitability of this software 
9823  * for any purpose. It is provided "as is" without express or implied warranty.
9824  * See the GNU General Public License for more details.
9825  *
9826  * Documents produced by Doxygen are derivative works derived from the
9827  * input used in their production; they are not affected by this license.
9828  *
9829  */
9830 #line 19 "scanner.l"
9831
9832 /*
9833  *      includes
9834  */
9835 #include <stdio.h>
9836 #include <stdlib.h>
9837 #include <assert.h>
9838 #include <ctype.h>
9839
9840 #include "qtbc.h"
9841 #include <qarray.h>
9842 #include <qstack.h>
9843 #include <qregexp.h>
9844 #include <unistd.h>
9845 #include <qfile.h>
9846   
9847 #include "scanner.h"
9848 #include "entry.h"
9849 #include "message.h"
9850 #include "config.h"
9851 #include "doxygen.h"
9852 #include "util.h"
9853 #include "defargs.h"
9854 #include "language.h"
9855 #include "commentscan.h"
9856 #include "code.h"
9857 #include "arguments.h"
9858
9859 #define YY_NEVER_INTERACTIVE 1
9860 #define YY_NO_INPUT 1
9861
9862 /* -----------------------------------------------------------------
9863  *
9864  *      statics
9865  */
9866 static ParserInterface *g_thisParser;
9867 static const char *     inputString;
9868 static int              inputPosition;
9869 static QFile            inputFile;
9870 static int              lastContext;
9871 static int              lastCContext;
9872 static int              lastDocContext;
9873 static int              lastCPPContext;
9874 static int              lastSkipSharpContext;
9875 static int              lastSkipRoundContext;
9876 static int              lastStringContext;
9877 static int              lastCurlyContext;
9878 static int              lastRoundContext;
9879 static int              lastSquareContext;
9880 static int              lastInitializerContext;
9881 static int              lastClassTemplSpecContext;
9882 static int              lastPreLineCtrlContext;
9883 static int              lastSkipVerbStringContext;
9884 static int              lastCommentInArgContext;
9885 static int              lastRawStringContext;
9886 static int              lastCSConstraint;
9887 static int              lastHereDocContext;
9888 static int              lastDefineContext;
9889 static Protection       protection;
9890 static Protection       baseProt;
9891 static int              sharpCount   = 0 ;
9892 static int              roundCount   = 0 ;
9893 static int              curlyCount   = 0 ;
9894 static int              squareCount  = 0 ;
9895 static int              padCount     = 0 ;
9896 static QCString         slString;
9897 static Entry*           current_root = 0 ;
9898 static Entry*           global_root  = 0 ;
9899 static Entry*           current      = 0 ;
9900 static Entry*           previous     = 0 ;
9901 static Entry*           tempEntry    = 0 ;
9902 static Entry*           firstTypedefEntry = 0 ;
9903 static Entry*           memspecEntry = 0 ;
9904 static int              yyLineNr     = 1 ;
9905 static int              anonCount    = 0 ;        
9906 static int              anonNSCount  = 0 ;        
9907 static QCString         yyFileName;
9908 static MethodTypes      mtype;
9909 static bool             gstat;
9910 static bool             removeSlashes;
9911 static Specifier        virt;
9912 static Specifier        baseVirt;
9913 static QCString         msType,msName,msArgs;
9914 static bool             isTypedef;
9915 static int              tmpDocType;
9916 static QCString         sectionLabel;
9917 static QCString         sectionTitle;
9918 static QCString         funcPtrType;
9919 static QCString         templateStr;
9920 static QCString         aliasName;
9921 static QCString         baseName;
9922 static QCString*        specName;
9923 static QCString         formulaText;
9924 static QCString         formulaEnd;
9925 static bool             useOverrideCommands = FALSE;
9926
9927 static SrcLangExt       language;
9928 static bool             insideIDL   = FALSE;            //!< processing IDL code?
9929 static bool             insideJava  = FALSE;            //!< processing Java code?
9930 static bool             insideCS    = FALSE;            //!< processing C# code?
9931 static bool             insideD     = FALSE;            //!< processing D code?
9932 static bool             insidePHP   = FALSE;            //!< processing PHP code?
9933 static bool             insideObjC  = FALSE;            //!< processing Objective C code?
9934 static bool             insideCli   = FALSE;            //!< processing C++/CLI code?
9935 static bool             insideJS    = FALSE;            //!< processing JavaScript code?
9936 static bool             insideCpp   = TRUE;             //!< processing C/C++ code
9937
9938 static bool             insideCppQuote = FALSE;
9939 static bool             insideProtocolList = FALSE;
9940
9941 static int              argRoundCount;
9942 static int              argSharpCount;
9943 static int              currentArgumentContext;
9944 static int              lastCopyArgStringContext;
9945 static int              lastCopyArgContext;
9946 static QCString         *copyArgString;
9947 static QCString         fullArgString;
9948
9949 static ArgumentList     *currentArgumentList;
9950 static char             lastCopyArgChar;
9951
9952 static QCString         *pCopyQuotedString;
9953 static QCString         *pCopyRoundString;
9954 static QCString         *pCopyCurlyString;
9955 static QCString         *pCopyRawString;
9956
9957 static QGString         *pCopyCurlyGString;
9958 static QGString         *pCopyRoundGString;
9959 static QGString         *pCopyQuotedGString;
9960 static QGString         *pCopyHereDocGString;
9961 static QGString         *pCopyRawGString;
9962 static QGString         *pSkipVerbString;
9963 static QStack<Grouping> autoGroupStack;
9964
9965 static bool             insideFormula;
9966 static bool             insideTryBlock=FALSE;
9967 static bool             insideCode;
9968 static bool             needsSemi;
9969
9970 //static int              depthIf;
9971 static int              initBracketCount;
9972 static QCString         memberGroupRelates;
9973 static QCString         memberGroupInside;
9974 static QCString         xrefItemKey;
9975 static QCString         xrefItemTitle;
9976 static QCString         xrefListTitle;
9977
9978 static QCString         g_skipBlockName;
9979 static QCString         oldStyleArgType;
9980 static QCString         docBackup;
9981 static QCString         briefBackup;
9982 static bool             g_inputFromFile;
9983
9984 static int              docBlockContext;
9985 static QGString         docBlock;
9986 static QCString         docBlockName;
9987 static bool             docBlockInBody;
9988 static bool             docBlockAutoBrief;
9989 static char             docBlockTerm;
9990
9991 static QCString         idlAttr;
9992 static QCString         idlProp;
9993
9994 static bool             g_lexInit = FALSE;
9995 static bool             externC;
9996
9997 static QCString         g_delimiter;
9998
9999 static int              g_column;
10000
10001 //-----------------------------------------------------------------------------
10002
10003 // forward declarations
10004 //static void handleGroupStartCommand(const char *header);
10005 //static void handleGroupEndCommand();
10006
10007 //-----------------------------------------------------------------------------
10008
10009 static void initParser()
10010 {
10011   sectionLabel.resize(0);
10012   sectionTitle.resize(0);
10013   baseName.resize(0);
10014   formulaText.resize(0);
10015   protection = Public;
10016   baseProt = Public;
10017   sharpCount = 0;
10018   roundCount = 0;
10019   curlyCount = 0;
10020   mtype = Method;
10021   gstat = FALSE;
10022   virt = Normal;
10023   baseVirt = Normal;
10024   isTypedef = FALSE;
10025   autoGroupStack.clear();
10026   insideTryBlock = FALSE;
10027   autoGroupStack.setAutoDelete(TRUE);
10028   insideFormula = FALSE;
10029   insideCode=FALSE;
10030   insideCli=Config_getBool("CPP_CLI_SUPPORT");
10031   previous = 0;
10032 }
10033
10034 static void initEntry()
10035 {
10036   if (insideJava) 
10037   {
10038     protection = (current_root->spec & (Entry::Interface|Entry::Enum)) ?  Public : Package;
10039   }
10040   current->protection = protection ;
10041   current->mtype      = mtype;
10042   current->virt       = virt;
10043   current->stat       = gstat;
10044   current->lang       = language;
10045   //printf("*** initEntry() language=%d\n",language);
10046   //if (!autoGroupStack.isEmpty())
10047   //{
10048   //  //printf("Appending group %s\n",autoGroupStack.top()->groupname.data());
10049   //  current->groups->append(new Grouping(*autoGroupStack.top()));
10050   //}
10051   initGroupInfo(current);
10052   isTypedef=FALSE;
10053 }
10054
10055
10056 //-----------------------------------------------------------------------------
10057
10058 ///// remove any automatic grouping and add new one (if given)
10059 //static void setCurrentGroup( QCString *newgroup, Grouping::GroupPri_t pri )
10060 //{
10061 //   /* remove auto group name from current entry and discard it */
10062 //   Grouping *g = current->groups->first();
10063 //   int i=0; 
10064 //   while (g)
10065 //   {
10066 //     if (g->pri <= Grouping::GROUPING_AUTO_DEF)
10067 //     {
10068 //       current->groups->remove(i);
10069 //       i--;
10070 //     }
10071 //     g=current->groups->next();
10072 //     i++;
10073 //   }
10074 //
10075 //   /* use new group name instead? */
10076 //   if ( newgroup )
10077 //   {
10078 //      current->groups->append(new Grouping(*newgroup, pri));
10079 //   } 
10080 //}
10081 //
10082 //static int newMemberGroupId()
10083 //{
10084 //  static int curGroupId=0;
10085 //  return curGroupId++;
10086 //}
10087 //
10088 // forward declarations
10089 //static void startGroupInDoc();
10090 //static void endGroup();
10091
10092 //-----------------------------------------------------------------------------
10093
10094 static void lineCount()
10095 {
10096   static int tabSize = Config_getInt("TAB_SIZE");
10097   const char *p;
10098   for (p = scanYYtext ; *p ; ++p )
10099   {
10100     if (*p=='\n') 
10101       yyLineNr++,g_column=0;
10102     else if (*p=='\t') 
10103       g_column+=tabSize - (g_column%tabSize);
10104     else 
10105       g_column++;
10106   }
10107 }
10108
10109 static inline int computeIndent(const char *s,int startIndent)
10110 {
10111   int col=startIndent;
10112   static int tabSize=Config_getInt("TAB_SIZE");
10113   const char *p=s;
10114   char c;
10115   while ((c=*p++))
10116   {
10117     if (c=='\t') col+=tabSize-(col%tabSize);
10118     else col++;
10119   }
10120   return col;
10121 }
10122
10123 static void addType( Entry* current )
10124 {
10125     uint tl=current->type.length();
10126     if( tl>0 && !current->name.isEmpty() && current->type.at(tl-1)!='.') 
10127     {
10128       current->type += ' ' ;
10129     }
10130     current->type += current->name ;
10131     current->name.resize(0) ;
10132     tl=current->type.length();
10133     if( tl>0 && !current->args.isEmpty() && current->type.at(tl-1)!='.') 
10134     {
10135       current->type += ' ' ;
10136     }
10137     current->type += current->args ;
10138     current->args.resize(0) ;
10139     current->argList->clear();
10140 }
10141
10142
10143 static QCString stripQuotes(const char *s)
10144 {
10145   QCString name;
10146   if (s==0 || *s==0) return name;
10147   name=s;
10148   if (name.at(0)=='"' && name.at(name.length()-1)=='"')
10149   {
10150     name=name.mid(1,name.length()-2);
10151   }
10152   return name;
10153 }
10154
10155 //-----------------------------------------------------------------
10156
10157 static void startCommentBlock(bool);
10158 static void handleCommentBlock(const QCString &doc,bool brief);
10159 static void handleParametersCommentBlocks(ArgumentList *al);
10160
10161 //-----------------------------------------------------------------
10162
10163 static bool nameIsOperator(QCString &name)
10164 {
10165   int i=name.find("operator");
10166   if (i==-1) return FALSE;
10167   if (i==0 && !isId(name.at(8))) return TRUE; // case operator ::X
10168   if (i>0 && !isId(name.at(i-1)) && !isId(name.at(i+8))) return TRUE; // case X::operator
10169   return FALSE; // case TEXToperatorTEXT
10170 }
10171
10172 //-----------------------------------------------------------------------------
10173
10174 static void setContext()
10175 {
10176   QCString fileName = yyFileName;
10177   language   = getLanguageFromFileName(fileName);
10178   insideIDL  = language==SrcLangExt_IDL;
10179   insideJava = language==SrcLangExt_Java;
10180   insideCS   = language==SrcLangExt_CSharp; 
10181   insideD    = language==SrcLangExt_D;
10182   insidePHP  = language==SrcLangExt_PHP;
10183   insideObjC = language==SrcLangExt_ObjC;
10184   insideJS   = language==SrcLangExt_JS;
10185   insideCpp  = language==SrcLangExt_Cpp;
10186   if ( insidePHP )
10187   {
10188     useOverrideCommands = TRUE;
10189   }
10190   //printf("setContext(%s) insideIDL=%d insideJava=%d insideCS=%d "
10191   //       "insideD=%d insidePHP=%d insideObjC=%d\n",
10192   //       yyFileName.data(),insideIDL,insideJava,insideCS,insideD,insidePHP,insideObjC
10193   //    );
10194 }
10195
10196 //-----------------------------------------------------------------------------
10197
10198 static void prependScope()
10199 {
10200   if (current_root->section & Entry::SCOPE_MASK)
10201   {
10202     //printf("--- prependScope %s to %s\n",current_root->name.data(),current->name.data());
10203     current->name.prepend(current_root->name+"::");
10204     if (current_root->tArgLists)
10205     {
10206       if (current->tArgLists==0)
10207       {
10208         current->tArgLists = new QList<ArgumentList>;
10209         current->tArgLists->setAutoDelete(TRUE);
10210       }
10211       //printf("prependScope #=%d #current=%d\n",current_root->tArgLists->count(),current->tArgLists->count());
10212       QListIterator<ArgumentList> talsi(*current_root->tArgLists);
10213       ArgumentList *srcAl=0;
10214       for (talsi.toLast();(srcAl=talsi.current());--talsi)
10215       {
10216         ArgumentList *dstAl = new ArgumentList;
10217         QListIterator<Argument> tali(*srcAl);
10218         Argument *a;
10219         for (;(a=tali.current());++tali)
10220         {
10221           dstAl->append(new Argument(*a));
10222         //printf("appending argument %s %s\n",a->type.data(),a->name.data());
10223         }         
10224         current->tArgLists->insert(0,dstAl);    
10225       }
10226     }
10227   }
10228 }
10229
10230 //-----------------------------------------------------------------------------
10231
10232 /*! Returns TRUE iff the current entry could be a K&R style C function */
10233 static bool checkForKnRstyleC()
10234 {
10235   if (((QCString)yyFileName).right(2).lower()!=".c") return FALSE; // must be a C file
10236   if (!current->argList) return FALSE; // must have arguments
10237   ArgumentListIterator ali(*current->argList);
10238   Argument *a;
10239   for (ali.toFirst();(a=ali.current());++ali)
10240   {
10241     // in K&R style argument do not have a type, but doxygen expects a type
10242     // so it will think the argument has no name
10243     if (a->type.isEmpty() || !a->name.isEmpty()) return FALSE;
10244   }
10245   return TRUE;
10246 }
10247
10248 //-----------------------------------------------------------------------------
10249
10250 static void splitKnRArg(QCString &oldStyleArgPtr,QCString &oldStyleArgName)
10251 {
10252   int si = current->args.length();
10253   if (oldStyleArgType.isEmpty()) // new argument
10254   {
10255     static QRegExp re("([^)]*)");
10256     int bi1 = current->args.findRev(re);
10257     int bi2 = bi1!=-1 ? current->args.findRev(re,bi1-1) : -1; 
10258     char c;
10259     if (bi1!=-1 && bi2!=-1) // found something like "int (*func)(int arg)"
10260     {
10261       int s=bi2+1;
10262       oldStyleArgType = current->args.left(s);
10263       int i=s;
10264       while (i<si && ((c=current->args.at(i))=='*' || isspace((uchar)c))) i++;
10265       oldStyleArgType += current->args.mid(s,i-s);
10266       s=i;
10267       while (i<si && isId(current->args.at(i))) i++;
10268       oldStyleArgName = current->args.mid(s,i-s);
10269       oldStyleArgType+=current->args.mid(i);
10270     }
10271     else if (bi1!=-1) // redundant braces like in "int (*var)"
10272     {
10273       int s=bi1;
10274       oldStyleArgType = current->args.left(s);
10275       s++;
10276       int i=s+1;
10277       while (i<si && ((c=current->args.at(i))=='*' || isspace((uchar)c))) i++;
10278       oldStyleArgType += current->args.mid(s,i-s);
10279       s=i;
10280       while (i<si && isId(current->args.at(i))) i++;
10281       oldStyleArgName = current->args.mid(s,i-s);
10282     }
10283     else // normal "int *var"
10284     {
10285       int l=si,i=l-1,j;
10286       char c;
10287       // look for start of name in "type *name"
10288       while (i>=0 && isId(current->args.at(i))) i--;
10289       j=i+1;
10290       // look for start of *'s
10291       while (i>=0 && ((c=current->args.at(i))=='*' || isspace((uchar)c))) i--;
10292       i++;
10293       if (i!=l)
10294       {
10295         oldStyleArgType=current->args.left(i);
10296         oldStyleArgPtr=current->args.mid(i,j-i);
10297         oldStyleArgName=current->args.mid(j).stripWhiteSpace();
10298       }
10299       else
10300       {
10301         oldStyleArgName=current->args.copy().stripWhiteSpace();
10302       }
10303     }
10304   }
10305   else // continuation like *arg2 in "int *args,*arg2"
10306   {
10307     int l=si,j=0;
10308     char c;
10309     while (j<l && ((c=current->args.at(j))=='*' || isspace((uchar)c))) j++;
10310     if (j>0)
10311     {
10312       oldStyleArgPtr=current->args.left(j);
10313       oldStyleArgName=current->args.mid(j).stripWhiteSpace();
10314     }
10315     else
10316     {
10317       oldStyleArgName=current->args.copy().stripWhiteSpace();
10318     }
10319   }
10320   //fprintf(stderr,"type=%s ptr=%s name=%s\n",oldStyleArgType.data(),oldStyleArgPtr.data(),oldStyleArgName.data());
10321 }
10322
10323 //-----------------------------------------------------------------------------
10324
10325 /*! Update the argument \a name with additional \a type info. For K&R style
10326  *  function the type is found \e after the argument list, so this routine
10327  *  in needed to fix up.
10328  */
10329 static void addKnRArgInfo(const QCString &type,const QCString &name,
10330                           const QCString &brief,const QCString &docs)
10331 {
10332   if (current->argList==0) return;
10333   ArgumentListIterator ali(*current->argList);
10334   Argument *a;
10335   for (ali.toFirst();(a=ali.current());++ali)
10336   {
10337     if (a->type==name)
10338     {
10339       a->type=type.stripWhiteSpace();
10340       if (a->type.left(9)=="register ") // strip keyword
10341       {
10342         a->type=a->type.mid(9);
10343       }
10344       a->name=name.stripWhiteSpace();
10345       if (!brief.isEmpty() && !docs.isEmpty())
10346       {
10347         a->docs=brief+"\n\n"+docs;
10348       }
10349       else if (!brief.isEmpty())
10350       {
10351         a->docs=brief;
10352       }
10353       else
10354       {
10355         a->docs=docs;
10356       }
10357     }
10358   }
10359 }
10360
10361 //-----------------------------------------------------------------------------
10362
10363
10364 void fixArgumentListForJavaScript(ArgumentList *al)
10365 {
10366   if (al==0) return;
10367   ArgumentListIterator ali(*al);
10368   Argument *a;
10369   for (ali.toFirst();(a=ali.current());++ali)
10370   {
10371     if (!a->type.isEmpty() && a->name.isEmpty())
10372     { // a->type is actually the (typeless) parameter name, so move it
10373       a->name=a->type;
10374       a->type.resize(0);
10375     }
10376   }
10377 }
10378
10379 /* ----------------------------------------------------------------- */
10380 #undef  YY_INPUT
10381 #define YY_INPUT(buf,result,max_size) result=yyread(buf,max_size);
10382
10383 static int yyread(char *buf,int max_size)
10384 {
10385     int c=0;
10386     if (g_inputFromFile)
10387     {
10388        c = inputFile.readBlock(buf,max_size);
10389        if (c==-1) yy_fatal_error("input in flex scanner failed");
10390     }
10391     else
10392     {
10393       while( c < max_size && inputString[inputPosition] )
10394       {
10395         *buf = inputString[inputPosition++] ;
10396         //printf("%d (%c)\n",*buf,*buf);
10397         c++; buf++;
10398       }
10399     }
10400     return c;
10401 }
10402
10403 /* start command character */
10404 /* language parsing states */
10405
10406
10407
10408
10409
10410
10411
10412
10413
10414
10415
10416
10417
10418
10419
10420
10421
10422
10423
10424
10425
10426
10427
10428
10429
10430
10431
10432
10433
10434
10435
10436
10437
10438
10439
10440
10441
10442
10443
10444
10445
10446
10447
10448
10449
10450
10451
10452
10453
10454
10455
10456
10457
10458
10459
10460
10461
10462
10463
10464
10465
10466
10467
10468
10469
10470
10471
10472
10473
10474
10475
10476
10477
10478
10479
10480
10481
10482
10483
10484
10485
10486
10487
10488
10489
10490
10491
10492
10493
10494
10495
10496
10497
10498
10499
10500
10501
10502
10503
10504
10505
10506
10507
10508
10509
10510
10511
10512
10513
10514
10515
10516
10517
10518
10519
10520
10521
10522
10523
10524
10525
10526
10527
10528
10529
10530
10531
10532
10533 /** Prototype scanner states */
10534
10535
10536
10537
10538
10539 /** comment parsing states */
10540
10541
10542
10543 #line 10544 "<stdout>"
10544
10545 #define INITIAL 0
10546 #define Define 1
10547 #define DefineEnd 2
10548 #define CompoundName 3
10549 #define ClassVar 4
10550 #define CSConstraintName 5
10551 #define CSConstraintType 6
10552 #define CSIndexer 7
10553 #define ClassCategory 8
10554 #define ClassTemplSpec 9
10555 #define CliPropertyType 10
10556 #define CliPropertyIndex 11
10557 #define CliOverride 12
10558 #define Bases 13
10559 #define BasesProt 14
10560 #define NextSemi 15
10561 #define BitFields 16
10562 #define EnumBaseType 17
10563 #define FindMembers 18
10564 #define FindMembersPHP 19
10565 #define FindMemberName 20
10566 #define FindFields 21
10567 #define FindFieldArg 22
10568 #define Function 23
10569 #define FuncRound 24
10570 #define ExcpRound 25
10571 #define ExcpList 26
10572 #define FuncQual 27
10573 #define TrailingReturn 28
10574 #define Operator 29
10575 #define Array 30
10576 #define ReadBody 31
10577 #define ReadNSBody 32
10578 #define ReadBodyIntf 33
10579 #define Using 34
10580 #define UsingAlias 35
10581 #define UsingDirective 36
10582 #define SkipCurly 37
10583 #define SkipCurlyCpp 38
10584 #define SkipCurlyEndDoc 39
10585 #define SkipString 40
10586 #define SkipPHPString 41
10587 #define SkipInits 42
10588 #define SkipCPP 43
10589 #define SkipCPPBlock 44
10590 #define SkipComment 45
10591 #define SkipCxxComment 46
10592 #define SkipCurlyBlock 47
10593 #define SkipRoundBlock 48
10594 #define Sharp 49
10595 #define SkipSharp 50
10596 #define SkipRound 51
10597 #define SkipSquare 52
10598 #define SkipRemainder 53
10599 #define StaticAssert 54
10600 #define DeclType 55
10601 #define TypedefName 56
10602 #define TryFunctionBlock 57
10603 #define TryFunctionBlockEnd 58
10604 #define Comment 59
10605 #define PackageName 60
10606 #define JavaImport 61
10607 #define PHPUse 62
10608 #define PHPUseAs 63
10609 #define CSAccessorDecl 64
10610 #define CSGeneric 65
10611 #define PreLineCtrl 66
10612 #define DefinePHP 67
10613 #define DefinePHPEnd 68
10614 #define OldStyleArgs 69
10615 #define SkipVerbString 70
10616 #define ObjCMethod 71
10617 #define ObjCReturnType 72
10618 #define ObjCParams 73
10619 #define ObjCParamType 74
10620 #define ObjCProtocolList 75
10621 #define ObjCPropAttr 76
10622 #define ObjCSkipStatement 77
10623 #define QtPropType 78
10624 #define QtPropName 79
10625 #define QtPropAttr 80
10626 #define QtPropRead 81
10627 #define QtPropWrite 82
10628 #define ReadInitializer 83
10629 #define GetCallType 84
10630 #define CppQuote 85
10631 #define EndCppQuote 86
10632 #define MemberSpec 87
10633 #define MemberSpecSkip 88
10634 #define EndTemplate 89
10635 #define FuncPtr 90
10636 #define FuncPtrOperator 91
10637 #define EndFuncPtr 92
10638 #define ReadFuncArgType 93
10639 #define ReadTempArgs 94
10640 #define IDLUnionCase 95
10641 #define NSAliasName 96
10642 #define NSAliasArg 97
10643 #define CopyString 98
10644 #define CopyPHPString 99
10645 #define CopyGString 100
10646 #define CopyPHPGString 101
10647 #define CopyRound 102
10648 #define CopyCurly 103
10649 #define GCopyRound 104
10650 #define GCopyCurly 105
10651 #define SkipUnionSwitch 106
10652 #define Specialization 107
10653 #define FuncPtrInit 108
10654 #define FuncFunc 109
10655 #define FuncFuncEnd 110
10656 #define FuncFuncType 111
10657 #define FuncFuncArray 112
10658 #define CopyArgString 113
10659 #define CopyArgPHPString 114
10660 #define CopyArgRound 115
10661 #define CopyArgSharp 116
10662 #define CopyArgComment 117
10663 #define CopyArgCommentLine 118
10664 #define CopyArgVerbatim 119
10665 #define HereDoc 120
10666 #define HereDocEnd 121
10667 #define CopyHereDoc 122
10668 #define CopyHereDocEnd 123
10669 #define RawString 124
10670 #define RawGString 125
10671 #define IDLAttribute 126
10672 #define IDLProp 127
10673 #define IDLPropName 128
10674 #define Prototype 129
10675 #define PrototypePtr 130
10676 #define PrototypeQual 131
10677 #define PrototypeExc 132
10678 #define PrototypeSkipLine 133
10679 #define DocLine 134
10680 #define DocBlock 135
10681 #define DocCopyBlock 136
10682
10683 #ifndef YY_NO_UNISTD_H
10684 /* Special case for "unistd.h", since it is non-ANSI. We include it way
10685  * down here because we want the user's section 1 to have been scanned first.
10686  * The user has a chance to override it with an option.
10687  */
10688 #include <unistd.h>
10689 #endif
10690
10691 #ifndef YY_EXTRA_TYPE
10692 #define YY_EXTRA_TYPE void *
10693 #endif
10694
10695 static int yy_init_globals (void );
10696
10697 /* Accessor methods to globals.
10698    These are made visible to non-reentrant scanners for convenience. */
10699
10700 int scanYYlex_destroy (void );
10701
10702 int scanYYget_debug (void );
10703
10704 void scanYYset_debug (int debug_flag  );
10705
10706 YY_EXTRA_TYPE scanYYget_extra (void );
10707
10708 void scanYYset_extra (YY_EXTRA_TYPE user_defined  );
10709
10710 FILE *scanYYget_in (void );
10711
10712 void scanYYset_in  (FILE * in_str  );
10713
10714 FILE *scanYYget_out (void );
10715
10716 void scanYYset_out  (FILE * out_str  );
10717
10718 yy_size_t scanYYget_leng (void );
10719
10720 char *scanYYget_text (void );
10721
10722 int scanYYget_lineno (void );
10723
10724 void scanYYset_lineno (int line_number  );
10725
10726 /* Macros after this point can all be overridden by user definitions in
10727  * section 1.
10728  */
10729
10730 #ifndef YY_SKIP_YYWRAP
10731 #ifdef __cplusplus
10732 extern "C" int scanYYwrap (void );
10733 #else
10734 extern int scanYYwrap (void );
10735 #endif
10736 #endif
10737
10738     static void yyunput (int c,char *buf_ptr  );
10739     
10740 #ifndef yytext_ptr
10741 static void yy_flex_strncpy (char *,yyconst char *,int );
10742 #endif
10743
10744 #ifdef YY_NEED_STRLEN
10745 static int yy_flex_strlen (yyconst char * );
10746 #endif
10747
10748 #ifndef YY_NO_INPUT
10749
10750 #ifdef __cplusplus
10751 static int yyinput (void );
10752 #else
10753 static int input (void );
10754 #endif
10755
10756 #endif
10757
10758 /* Amount of stuff to slurp up with each read. */
10759 #ifndef YY_READ_BUF_SIZE
10760 #define YY_READ_BUF_SIZE 262144
10761 #endif
10762
10763 /* Copy whatever the last rule matched to the standard output. */
10764 #ifndef ECHO
10765 /* This used to be an fputs(), but since the string might contain NUL's,
10766  * we now use fwrite().
10767  */
10768 #define ECHO fwrite( scanYYtext, scanYYleng, 1, scanYYout )
10769 #endif
10770
10771 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
10772  * is returned in "result".
10773  */
10774 #ifndef YY_INPUT
10775 #define YY_INPUT(buf,result,max_size) \
10776         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
10777                 { \
10778                 int c = '*'; \
10779                 yy_size_t n; \
10780                 for ( n = 0; n < max_size && \
10781                              (c = getc( scanYYin )) != EOF && c != '\n'; ++n ) \
10782                         buf[n] = (char) c; \
10783                 if ( c == '\n' ) \
10784                         buf[n++] = (char) c; \
10785                 if ( c == EOF && ferror( scanYYin ) ) \
10786                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
10787                 result = n; \
10788                 } \
10789         else \
10790                 { \
10791                 errno=0; \
10792                 while ( (result = fread(buf, 1, max_size, scanYYin))==0 && ferror(scanYYin)) \
10793                         { \
10794                         if( errno != EINTR) \
10795                                 { \
10796                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
10797                                 break; \
10798                                 } \
10799                         errno=0; \
10800                         clearerr(scanYYin); \
10801                         } \
10802                 }\
10803 \
10804
10805 #endif
10806
10807 /* No semi-colon after return; correct usage is to write "yyterminate();" -
10808  * we don't want an extra ';' after the "return" because that will cause
10809  * some compilers to complain about unreachable statements.
10810  */
10811 #ifndef yyterminate
10812 #define yyterminate() return YY_NULL
10813 #endif
10814
10815 /* Number of entries by which start-condition stack grows. */
10816 #ifndef YY_START_STACK_INCR
10817 #define YY_START_STACK_INCR 25
10818 #endif
10819
10820 /* Report a fatal error. */
10821 #ifndef YY_FATAL_ERROR
10822 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
10823 #endif
10824
10825 /* end tables serialization structures and prototypes */
10826
10827 /* Default declaration of generated scanner - a define so the user can
10828  * easily add parameters.
10829  */
10830 #ifndef YY_DECL
10831 #define YY_DECL_IS_OURS 1
10832
10833 extern int scanYYlex (void);
10834
10835 #define YY_DECL int scanYYlex (void)
10836 #endif /* !YY_DECL */
10837
10838 /* Code executed at the beginning of each rule, after scanYYtext and scanYYleng
10839  * have been set up.
10840  */
10841 #ifndef YY_USER_ACTION
10842 #define YY_USER_ACTION
10843 #endif
10844
10845 /* Code executed at the end of each rule. */
10846 #ifndef YY_BREAK
10847 #define YY_BREAK break;
10848 #endif
10849
10850 #define YY_RULE_SETUP \
10851         if ( scanYYleng > 0 ) \
10852                 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
10853                                 (scanYYtext[scanYYleng - 1] == '\n'); \
10854         YY_USER_ACTION
10855
10856 /** The main scanner function which does all the work.
10857  */
10858 YY_DECL
10859 {
10860         register yy_state_type yy_current_state;
10861         register char *yy_cp, *yy_bp;
10862         register int yy_act;
10863     
10864 #line 766 "scanner.l"
10865
10866
10867 #line 10868 "<stdout>"
10868
10869         if ( !(yy_init) )
10870                 {
10871                 (yy_init) = 1;
10872
10873 #ifdef YY_USER_INIT
10874                 YY_USER_INIT;
10875 #endif
10876
10877         /* Create the reject buffer large enough to save one state per allowed character. */
10878         if ( ! (yy_state_buf) )
10879             (yy_state_buf) = (yy_state_type *)scanYYalloc(YY_STATE_BUF_SIZE  );
10880             if ( ! (yy_state_buf) )
10881                 YY_FATAL_ERROR( "out of dynamic memory in scanYYlex()" );
10882
10883                 if ( ! (yy_start) )
10884                         (yy_start) = 1; /* first start state */
10885
10886                 if ( ! scanYYin )
10887                         scanYYin = stdin;
10888
10889                 if ( ! scanYYout )
10890                         scanYYout = stdout;
10891
10892                 if ( ! YY_CURRENT_BUFFER ) {
10893                         scanYYensure_buffer_stack ();
10894                         YY_CURRENT_BUFFER_LVALUE =
10895                                 scanYY_create_buffer(scanYYin,YY_BUF_SIZE );
10896                 }
10897
10898                 scanYY_load_buffer_state( );
10899                 }
10900
10901         while ( 1 )             /* loops until end-of-file is reached */
10902                 {
10903                 yy_cp = (yy_c_buf_p);
10904
10905                 /* Support of scanYYtext. */
10906                 *yy_cp = (yy_hold_char);
10907
10908                 /* yy_bp points to the position in yy_ch_buf of the start of
10909                  * the current run.
10910                  */
10911                 yy_bp = yy_cp;
10912
10913                 yy_current_state = (yy_start);
10914                 yy_current_state += YY_AT_BOL();
10915
10916                 (yy_state_ptr) = (yy_state_buf);
10917                 *(yy_state_ptr)++ = yy_current_state;
10918
10919 yy_match:
10920                 do
10921                         {
10922                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
10923                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
10924                                 {
10925                                 yy_current_state = (int) yy_def[yy_current_state];
10926                                 if ( yy_current_state >= 4192 )
10927                                         yy_c = yy_meta[(unsigned int) yy_c];
10928                                 }
10929                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
10930                         *(yy_state_ptr)++ = yy_current_state;
10931                         ++yy_cp;
10932                         }
10933                 while ( yy_base[yy_current_state] != 32864 );
10934
10935 yy_find_action:
10936                 yy_current_state = *--(yy_state_ptr);
10937                 (yy_lp) = yy_accept[yy_current_state];
10938 goto find_rule; /* Shut up GCC warning -Wall */
10939 find_rule: /* we branch to this label when backing up */
10940                 for ( ; ; ) /* until we find what rule we matched */
10941                         {
10942                         if ( (yy_lp) && (yy_lp) < yy_accept[yy_current_state + 1] )
10943                                 {
10944                                 yy_act = yy_acclist[(yy_lp)];
10945                                 if ( yy_act & YY_TRAILING_HEAD_MASK ||
10946                                      (yy_looking_for_trail_begin) )
10947                                         {
10948                                         if ( yy_act == (yy_looking_for_trail_begin) )
10949                                                 {
10950                                                 (yy_looking_for_trail_begin) = 0;
10951                                                 yy_act &= ~YY_TRAILING_HEAD_MASK;
10952                                                 break;
10953                                                 }
10954                                         }
10955                                 else if ( yy_act & YY_TRAILING_MASK )
10956                                         {
10957                                         (yy_looking_for_trail_begin) = yy_act & ~YY_TRAILING_MASK;
10958                                         (yy_looking_for_trail_begin) |= YY_TRAILING_HEAD_MASK;
10959                                         (yy_full_match) = yy_cp;
10960                                         (yy_full_state) = (yy_state_ptr);
10961                                         (yy_full_lp) = (yy_lp);
10962                                         }
10963                                 else
10964                                         {
10965                                         (yy_full_match) = yy_cp;
10966                                         (yy_full_state) = (yy_state_ptr);
10967                                         (yy_full_lp) = (yy_lp);
10968                                         break;
10969                                         }
10970                                 ++(yy_lp);
10971                                 goto find_rule;
10972                                 }
10973                         --yy_cp;
10974                         yy_current_state = *--(yy_state_ptr);
10975                         (yy_lp) = yy_accept[yy_current_state];
10976                         }
10977
10978                 YY_DO_BEFORE_ACTION;
10979
10980 do_action:      /* This label is used only to access EOF actions. */
10981
10982                 switch ( yy_act )
10983         { /* beginning of action switch */
10984 case 1:
10985 YY_RULE_SETUP
10986 #line 768 "scanner.l"
10987 {
10988                                           curlyCount=0;
10989                                           needsSemi = TRUE;
10990                                           BEGIN(SkipCurlyBlock); 
10991                                         }
10992         YY_BREAK
10993 case 2:
10994 YY_RULE_SETUP
10995 #line 773 "scanner.l"
10996 {
10997                                           roundCount=0;
10998                                           BEGIN(SkipRoundBlock);
10999                                         }
11000         YY_BREAK
11001 case 3:
11002 YY_RULE_SETUP
11003 #line 777 "scanner.l"
11004 {
11005                                           ++roundCount;
11006                                         }
11007         YY_BREAK
11008 case 4:
11009 YY_RULE_SETUP
11010 #line 780 "scanner.l"
11011 {
11012                                           if (roundCount )
11013                                             --roundCount ;
11014                                           else
11015                                             BEGIN( NextSemi ) ;
11016                                         }
11017         YY_BREAK
11018 case 5:
11019 YY_RULE_SETUP
11020 #line 786 "scanner.l"
11021 {
11022                                           ++curlyCount ; 
11023                                         }
11024         YY_BREAK
11025 case 6:
11026 YY_RULE_SETUP
11027 #line 789 "scanner.l"
11028
11029                                           if( curlyCount )
11030                                           {
11031                                             --curlyCount ;
11032                                           }
11033                                           else if (needsSemi)
11034                                           {
11035                                             BEGIN( NextSemi );
11036                                           }
11037                                           else
11038                                           {
11039                                             BEGIN( FindMembers );
11040                                           }
11041                                         }
11042         YY_BREAK
11043 case 7:
11044 YY_RULE_SETUP
11045 #line 803 "scanner.l"
11046 {
11047                                           if (insidePHP)
11048                                           {
11049                                             lastStringContext=NextSemi;
11050                                             BEGIN(SkipPHPString);
11051                                           }
11052                                         }
11053         YY_BREAK
11054 case 8:
11055 YY_RULE_SETUP
11056 #line 810 "scanner.l"
11057 { if (insidePHP) REJECT; }
11058         YY_BREAK
11059 case 9:
11060 YY_RULE_SETUP
11061 #line 811 "scanner.l"
11062 {
11063                                           lastStringContext=NextSemi;
11064                                           BEGIN(SkipString);
11065                                         }
11066         YY_BREAK
11067 case 10:
11068 YY_RULE_SETUP
11069 #line 815 "scanner.l"
11070
11071                                           unput(*scanYYtext);
11072                                           BEGIN( FindMembers ); 
11073                                         }
11074         YY_BREAK
11075 case 11:
11076 YY_RULE_SETUP
11077 #line 819 "scanner.l"
11078 {
11079                                           unput(*scanYYtext);
11080                                           BEGIN( FindMembers );
11081                                         }
11082         YY_BREAK
11083 case 12:
11084 YY_RULE_SETUP
11085 #line 823 "scanner.l"
11086 {
11087                                           current->args = current->args.simplifyWhiteSpace();
11088                                           unput(*scanYYtext);
11089                                           BEGIN( ClassVar );
11090                                         }
11091         YY_BREAK
11092 case 13:
11093 YY_RULE_SETUP
11094 #line 828 "scanner.l"
11095 { // PHP code with unsupported extension?
11096                                           insidePHP = TRUE;
11097                                         }
11098         YY_BREAK
11099 case 14:
11100 YY_RULE_SETUP
11101 #line 831 "scanner.l"
11102 { // PHP code start
11103                                            BEGIN( FindMembers );
11104                                         }
11105         YY_BREAK
11106 case 15:
11107 /* rule 15 can match eol */
11108 YY_RULE_SETUP
11109 #line 834 "scanner.l"
11110 { // PHP code start
11111                                           lineCount() ;
11112                                           BEGIN( FindMembers );
11113                                         }
11114         YY_BREAK
11115 case 16:
11116 YY_RULE_SETUP
11117 #line 838 "scanner.l"
11118 { // Non-PHP code text, ignore
11119                                         }
11120         YY_BREAK
11121 case 17:
11122 /* rule 17 can match eol */
11123 YY_RULE_SETUP
11124 #line 840 "scanner.l"
11125 { // Non-PHP code text, ignore
11126                                           lineCount();
11127                                         }
11128         YY_BREAK
11129 case 18:
11130 YY_RULE_SETUP
11131 #line 843 "scanner.l"
11132 { // Non-PHP code text, ignore
11133                                         }
11134         YY_BREAK
11135 case 19:
11136 YY_RULE_SETUP
11137 #line 845 "scanner.l"
11138 { // PHP code end
11139                                           if (insidePHP)
11140                                             BEGIN( FindMembersPHP );
11141                                           else
11142                                             REJECT;
11143                                         }
11144         YY_BREAK
11145 case 20:
11146 /* rule 20 can match eol */
11147 YY_RULE_SETUP
11148 #line 851 "scanner.l"
11149 { if (insidePHP)
11150                                             BEGIN( NextSemi );
11151                                           else
11152                                             REJECT;
11153                                         }
11154         YY_BREAK
11155 case 21:
11156 YY_RULE_SETUP
11157 #line 856 "scanner.l"
11158 { // Mozilla XPIDL lang-specific block
11159                                           if (!insideIDL)
11160                                             REJECT;
11161                                         }
11162         YY_BREAK
11163 case 22:
11164 YY_RULE_SETUP
11165 #line 860 "scanner.l"
11166 { // Mozilla XPIDL lang-specific block end
11167                                           if (!insideIDL)
11168                                             REJECT;
11169                                         }
11170         YY_BREAK
11171 case 23:
11172 /* rule 23 can match eol */
11173 YY_RULE_SETUP
11174 #line 864 "scanner.l"
11175 { // IDL or Borland C++ builder property 
11176                                           current->mtype = mtype = Property;
11177                                           current->protection = protection = Public ;
11178                                           current->type.resize(0); 
11179                                           current->name.resize(0); 
11180                                           current->args.resize(0);
11181                                           current->argList->clear();
11182                                           lineCount() ;
11183                                         }
11184         YY_BREAK
11185 case 24:
11186 /* rule 24 can match eol */
11187 YY_RULE_SETUP
11188 #line 874 "scanner.l"
11189 { current->mtype = mtype = DCOP;
11190                                           current->protection = protection = Public ;
11191                                           current->type.resize(0); 
11192                                           current->name.resize(0); 
11193                                           current->args.resize(0);
11194                                           current->argList->clear();
11195                                           lineCount() ;
11196                                         }
11197         YY_BREAK
11198 case 25:
11199 /* rule 25 can match eol */
11200 YY_RULE_SETUP
11201 #line 883 "scanner.l"
11202 { current->mtype = mtype = Signal;
11203   
11204                                           current->protection = protection = Public ;
11205                                           current->type.resize(0); 
11206                                           current->name.resize(0); 
11207                                           current->args.resize(0);
11208                                           current->argList->clear();
11209                                           lineCount() ;
11210                                         }
11211         YY_BREAK
11212 case 26:
11213 /* rule 26 can match eol */
11214 YY_RULE_SETUP
11215 #line 893 "scanner.l"
11216 {
11217                                           current->protection = protection = Public ;
11218                                           current->mtype = mtype = Slot;
11219                                           current->type.resize(0); 
11220                                           current->name.resize(0); 
11221                                           current->args.resize(0);
11222                                           current->argList->clear();
11223                                           lineCount();
11224                                         }
11225         YY_BREAK
11226 case 27:
11227 /* rule 27 can match eol */
11228 YY_RULE_SETUP
11229 #line 903 "scanner.l"
11230 {
11231                                           current->protection = protection = Protected ;
11232                                           current->mtype = mtype = Slot;
11233                                           current->type.resize(0); 
11234                                           current->name.resize(0); 
11235                                           current->args.resize(0);
11236                                           current->argList->clear();
11237                                           lineCount();
11238                                         }
11239         YY_BREAK
11240 case 28:
11241 /* rule 28 can match eol */
11242 YY_RULE_SETUP
11243 #line 913 "scanner.l"
11244 {
11245                                           current->protection = protection = Private ;
11246                                           current->mtype = mtype = Slot;
11247                                           current->type.resize(0); 
11248                                           current->name.resize(0); 
11249                                           current->args.resize(0);
11250                                           current->argList->clear();
11251                                           lineCount();
11252                                         }
11253         YY_BREAK
11254 case 29:
11255 /* rule 29 can match eol */
11256 YY_RULE_SETUP
11257 #line 922 "scanner.l"
11258
11259                                           current->protection = protection = Public ;
11260                                           current->mtype = mtype = Method;
11261                                           current->type.resize(0); 
11262                                           current->name.resize(0); 
11263                                           current->args.resize(0);
11264                                           current->argList->clear();
11265                                           lineCount() ;
11266                                         }
11267         YY_BREAK
11268 case 30:
11269 /* rule 30 can match eol */
11270 YY_RULE_SETUP
11271 #line 931 "scanner.l"
11272 {  // for now treat C++/CLI's internal as package...
11273                                           if (insideCli)
11274                                           {
11275                                             current->protection = protection = Package ;
11276                                             current->mtype = mtype = Method;
11277                                             current->type.resize(0); 
11278                                             current->name.resize(0); 
11279                                             current->args.resize(0);
11280                                             current->argList->clear();
11281                                             lineCount() ;
11282                                           }
11283                                           else
11284                                           {
11285                                             REJECT;
11286                                           }
11287                                         }
11288         YY_BREAK
11289 case 31:
11290 /* rule 31 can match eol */
11291 YY_RULE_SETUP
11292 #line 947 "scanner.l"
11293 {  
11294                                           current->protection = protection = Protected ;
11295                                           current->mtype = mtype = Method;
11296                                           current->type.resize(0); 
11297                                           current->name.resize(0); 
11298                                           current->args.resize(0);
11299                                           current->argList->clear();
11300                                           lineCount() ;
11301                                         }
11302         YY_BREAK
11303 case 32:
11304 /* rule 32 can match eol */
11305 YY_RULE_SETUP
11306 #line 956 "scanner.l"
11307
11308                                           current->protection = protection = Private ;
11309                                           current->mtype = mtype = Method;
11310                                           current->type.resize(0); 
11311                                           current->name.resize(0); 
11312                                           current->args.resize(0);
11313                                           current->argList->clear();
11314                                           lineCount() ;
11315                                         }
11316         YY_BREAK
11317 case 33:
11318 /* rule 33 can match eol */
11319 YY_RULE_SETUP
11320 #line 965 "scanner.l"
11321
11322                                           if (insideCli)
11323                                           {
11324                                             // C++/CLI event
11325                                             lineCount() ;
11326                                             current->mtype = mtype = Event;
11327                                             current->bodyLine = yyLineNr;
11328                                             curlyCount=0;
11329                                             BEGIN( CliPropertyType );
11330                                           }
11331                                           else if (insideCS)
11332                                           {
11333                                             lineCount() ;
11334                                             current->mtype = Event;
11335                                             current->bodyLine = yyLineNr;
11336                                           }
11337                                           else
11338                                           {
11339                                             REJECT;
11340                                           }
11341                                         }
11342         YY_BREAK
11343 case 34:
11344 /* rule 34 can match eol */
11345 YY_RULE_SETUP
11346 #line 986 "scanner.l"
11347 {
11348                                            if (insideCli)
11349                                            {
11350                                              // C++/CLI property
11351                                              lineCount() ;
11352                                              current->mtype = mtype = Property;
11353                                              current->bodyLine = yyLineNr;
11354                                              curlyCount=0;
11355                                              BEGIN( CliPropertyType );
11356                                            }
11357                                            else
11358                                            {
11359                                              REJECT;
11360                                            }
11361                                         }
11362         YY_BREAK
11363 case 35:
11364 YY_RULE_SETUP
11365 #line 1001 "scanner.l"
11366 {
11367                                           addType( current );
11368                                           current->name = scanYYtext;
11369                                         }
11370         YY_BREAK
11371 case 36:
11372 YY_RULE_SETUP
11373 #line 1005 "scanner.l"
11374 { // C++/CLI indexed property
11375                                           current->name += scanYYtext;
11376                                           BEGIN( CliPropertyIndex );
11377                                         }
11378         YY_BREAK
11379 case 37:
11380 YY_RULE_SETUP
11381 #line 1009 "scanner.l"
11382 {
11383                                           curlyCount=0;
11384                                           //printf("event: '%s' '%s'\n",current->type.data(),current->name.data());
11385                                           BEGIN( CSAccessorDecl );
11386                                         }
11387         YY_BREAK
11388 case 38:
11389 YY_RULE_SETUP
11390 #line 1014 "scanner.l"
11391 {
11392                                           unput(*scanYYtext);
11393                                           BEGIN( FindMembers );
11394                                         }
11395         YY_BREAK
11396 case 39:
11397 /* rule 39 can match eol */
11398 YY_RULE_SETUP
11399 #line 1018 "scanner.l"
11400 {
11401                                           lineCount();
11402                                         }
11403         YY_BREAK
11404 case 40:
11405 YY_RULE_SETUP
11406 #line 1021 "scanner.l"
11407 {
11408                                         }
11409         YY_BREAK
11410 case 41:
11411 YY_RULE_SETUP
11412 #line 1023 "scanner.l"
11413 {
11414                                           addType( current );
11415                                           current->type += scanYYtext;
11416                                         }
11417         YY_BREAK
11418 case 42:
11419 YY_RULE_SETUP
11420 #line 1027 "scanner.l"
11421 {
11422                                           BEGIN( CliPropertyType );
11423                                           current->name+=scanYYtext;
11424                                         }
11425         YY_BREAK
11426 case 43:
11427 YY_RULE_SETUP
11428 #line 1031 "scanner.l"
11429 {
11430                                           current->name+=scanYYtext;
11431                                         }
11432         YY_BREAK
11433 /*
11434 <FindMembers>{B}*"property"{BN}+        { 
11435                                           if (!current->type.isEmpty())
11436                                           {
11437                                             REJECT;
11438                                           }
11439                                           else
11440                                           { 
11441                                             current->mtype = mtype = Property;
11442                                             lineCount();
11443                                           }
11444                                         }
11445   */
11446 case 44:
11447 /* rule 44 can match eol */
11448 YY_RULE_SETUP
11449 #line 1047 "scanner.l"
11450 {
11451                                           current->protection = protection = Private ;
11452                                           current->mtype = mtype = Method;
11453                                           current->type.resize(0); 
11454                                           current->name.resize(0); 
11455                                           current->args.resize(0);
11456                                           current->argList->clear();
11457                                           lineCount() ;
11458                                         }
11459         YY_BREAK
11460 case 45:
11461 /* rule 45 can match eol */
11462 YY_RULE_SETUP
11463 #line 1056 "scanner.l"
11464 {
11465                                           current->protection = protection = Protected ;
11466                                           current->mtype = mtype = Method;
11467                                           current->type.resize(0); 
11468                                           current->name.resize(0); 
11469                                           current->args.resize(0);
11470                                           current->argList->clear();
11471                                           lineCount() ;
11472                                         }
11473         YY_BREAK
11474 case 46:
11475 /* rule 46 can match eol */
11476 YY_RULE_SETUP
11477 #line 1065 "scanner.l"
11478 {
11479                                           current->protection = protection = Public ;
11480                                           current->mtype = mtype = Method;
11481                                           current->type.resize(0); 
11482                                           current->name.resize(0); 
11483                                           current->args.resize(0);
11484                                           current->argList->clear();
11485                                           lineCount() ;
11486                                         }
11487         YY_BREAK
11488 case 47:
11489 /* rule 47 can match eol */
11490 YY_RULE_SETUP
11491 #line 1074 "scanner.l"
11492 {
11493                                           if (!insideObjC) 
11494                                           {
11495                                             REJECT;
11496                                           }
11497                                           else
11498                                           {
11499                                             lineCount();
11500                                             current->fileName  = yyFileName;
11501                                             current->startLine = yyLineNr;
11502                                             current->bodyLine  = yyLineNr;
11503                                             current->section = Entry::FUNCTION_SEC;
11504                                             current->protection = protection = Public ;
11505                                             language = current->lang = SrcLangExt_ObjC;
11506                                             insideObjC = TRUE;
11507                                             current->virt = Virtual;
11508                                             current->stat=scanYYtext[0]=='+';
11509                                             current->mtype = mtype = Method;
11510                                             current->type.resize(0); 
11511                                             current->name.resize(0); 
11512                                             current->args.resize(0);
11513                                             current->argList->clear();
11514                                             BEGIN( ObjCMethod );
11515                                           }
11516                                         }
11517         YY_BREAK
11518 case 48:
11519 YY_RULE_SETUP
11520 #line 1099 "scanner.l"
11521 { // start of method's return type
11522                                           BEGIN( ObjCReturnType );
11523                                         }
11524         YY_BREAK
11525 case 49:
11526 YY_RULE_SETUP
11527 #line 1102 "scanner.l"
11528 { // found method name
11529                                           if (current->type.isEmpty())
11530                                           {
11531                                             current->type = "id";
11532                                           }
11533                                           current->name = scanYYtext;
11534                                         }
11535         YY_BREAK
11536 case 50:
11537 YY_RULE_SETUP
11538 #line 1109 "scanner.l"
11539 { // start of parameter list
11540                                           current->name += ':';
11541                                           Argument *a = new Argument;
11542                                           current->argList->append(a);
11543                                           BEGIN( ObjCParams );
11544                                         }
11545         YY_BREAK
11546 case 51:
11547 /* rule 51 can match eol */
11548 YY_RULE_SETUP
11549 #line 1115 "scanner.l"
11550 { // TODO: check if nested braches are possible.
11551                                           current->type = scanYYtext;
11552                                         }
11553         YY_BREAK
11554 case 52:
11555 YY_RULE_SETUP
11556 #line 1118 "scanner.l"
11557 {
11558                                           BEGIN( ObjCMethod );
11559                                         }
11560         YY_BREAK
11561 case 53:
11562 YY_RULE_SETUP
11563 #line 1121 "scanner.l"
11564 { // Keyword of parameter
11565                                           QCString keyw = scanYYtext;
11566                                           keyw=keyw.left(keyw.length()-1); // strip :
11567                                           if (keyw.isEmpty())
11568                                           {
11569                                             current->name += " :";
11570                                           }
11571                                           else
11572                                           {
11573                                             current->name += keyw+":";
11574                                           }
11575                                           if (current->argList->getLast()->type.isEmpty())
11576                                           {
11577                                             current->argList->getLast()->type="id";
11578                                           }
11579                                           Argument *a = new Argument;
11580                                           a->attrib=(QCString)"["+keyw+"]";
11581                                           current->argList->append(a);
11582                                         }
11583         YY_BREAK
11584 case 54:
11585 /* rule 54 can match eol */
11586 YY_RULE_SETUP
11587 #line 1140 "scanner.l"
11588 { // name of parameter
11589                                           lineCount();
11590                                           current->argList->getLast()->name=QCString(scanYYtext).stripWhiteSpace();
11591                                         }
11592         YY_BREAK
11593 case 55:
11594 /* rule 55 can match eol */
11595 YY_RULE_SETUP
11596 #line 1144 "scanner.l"
11597 { // name of parameter
11598                                           lineCount();
11599                                           // do we want the comma as part of the name?
11600                                           //current->name += ",";
11601                                           Argument *a = new Argument;
11602                                           a->attrib="[,]";
11603                                           a->type="...";
11604                                           current->argList->append(a);
11605                                         }
11606         YY_BREAK
11607 /*
11608 <ObjCParams>":"                         { 
11609                                           current->name += ':';
11610                                         }
11611    */
11612 case 56:
11613 YY_RULE_SETUP
11614 #line 1158 "scanner.l"
11615 {
11616                                           BEGIN( ObjCParamType );
11617                                         }
11618         YY_BREAK
11619 case 57:
11620 /* rule 57 can match eol */
11621 YY_RULE_SETUP
11622 #line 1161 "scanner.l"
11623 {
11624                                           current->argList->getLast()->type=QCString(scanYYtext).stripWhiteSpace();
11625                                         }
11626         YY_BREAK
11627 case 58:
11628 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */
11629 (yy_c_buf_p) = yy_cp = yy_bp + 1;
11630 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */
11631 YY_RULE_SETUP
11632 #line 1164 "scanner.l"
11633 {
11634                                           BEGIN( ObjCParams );
11635                                         }
11636         YY_BREAK
11637 case 59:
11638 YY_RULE_SETUP
11639 #line 1167 "scanner.l"
11640 { // end of method declaration
11641                                           if (current->argList->getLast() && current->argList->getLast()->type.isEmpty())
11642                                           {
11643                                             current->argList->getLast()->type="id";
11644                                           }
11645                                           current->args = argListToString(current->argList);
11646                                           //printf("argList=%s\n",current->args.data());
11647                                           unput(';');
11648                                           BEGIN( Function );
11649                                         }
11650         YY_BREAK
11651 case 60:
11652 /* rule 60 can match eol */
11653 YY_RULE_SETUP
11654 #line 1177 "scanner.l"
11655 { // start of a method body
11656                                           lineCount();
11657                                           //printf("Type=%s Name=%s args=%s\n",
11658                                           //    current->type.data(),current->name.data(),argListToString(current->argList).data()
11659                                           //    );
11660                                           if (current->argList->getLast() && current->argList->getLast()->type.isEmpty())
11661                                           {
11662                                             current->argList->getLast()->type="id";
11663                                           }
11664                                           current->args = argListToString(current->argList);
11665                                           unput('{');
11666                                           BEGIN( Function );
11667                                         }
11668         YY_BREAK
11669 case 61:
11670 /* rule 61 can match eol */
11671 YY_RULE_SETUP
11672 #line 1190 "scanner.l"
11673 {
11674                                           lineCount();
11675                                         }
11676         YY_BREAK
11677 case 62:
11678 /* rule 62 can match eol */
11679 YY_RULE_SETUP
11680 #line 1193 "scanner.l"
11681 {
11682                                           if (insideJava) // Java annotation
11683                                           {
11684                                             lineCount();
11685                                             lastSkipRoundContext = YY_START;
11686                                             roundCount=1;
11687                                             BEGIN( SkipRound );
11688                                           }
11689                                           else if (strncmp(scanYYtext,"@property",9)==0) // ObjC 2.0 property
11690                                           {
11691                                             current->mtype = mtype = Property;
11692                                             current->spec|=Entry::Readable | Entry::Writable | Entry::Assign;
11693                                             current->protection = Public ;
11694                                             unput('(');
11695                                             BEGIN( ObjCPropAttr );
11696                                           }
11697                                           else
11698                                           {
11699                                             REJECT;
11700                                           }
11701                                         }
11702         YY_BREAK
11703 case 63:
11704 YY_RULE_SETUP
11705 #line 1214 "scanner.l"
11706
11707                                           current->read = scanYYtext+7;
11708                                         }
11709         YY_BREAK
11710 case 64:
11711 YY_RULE_SETUP
11712 #line 1217 "scanner.l"
11713
11714                                           current->write = scanYYtext+7;
11715                                         }
11716         YY_BREAK
11717 case 65:
11718 YY_RULE_SETUP
11719 #line 1220 "scanner.l"
11720 {
11721                                           current->spec&=~Entry::Writable;
11722                                         }
11723         YY_BREAK
11724 case 66:
11725 YY_RULE_SETUP
11726 #line 1223 "scanner.l"
11727 { // default
11728                                         }
11729         YY_BREAK
11730 case 67:
11731 YY_RULE_SETUP
11732 #line 1225 "scanner.l"
11733 { // default
11734                                         }
11735         YY_BREAK
11736 case 68:
11737 YY_RULE_SETUP
11738 #line 1227 "scanner.l"
11739 {
11740                                           current->spec&=~Entry::Assign;
11741                                           current->spec|=Entry::Unretained;
11742                                         }
11743         YY_BREAK
11744 case 69:
11745 YY_RULE_SETUP
11746 #line 1231 "scanner.l"
11747 {
11748                                           current->spec&=~Entry::Assign;
11749                                           current->spec|=Entry::Retain;
11750                                         }
11751         YY_BREAK
11752 case 70:
11753 YY_RULE_SETUP
11754 #line 1235 "scanner.l"
11755 {
11756                                           current->spec&=~Entry::Assign;
11757                                           current->spec|=Entry::Copy;
11758                                         }
11759         YY_BREAK
11760 case 71:
11761 YY_RULE_SETUP
11762 #line 1239 "scanner.l"
11763 {
11764                                           current->spec&=~Entry::Assign;
11765                                           current->spec|=Entry::Weak;
11766                                         }
11767         YY_BREAK
11768 case 72:
11769 YY_RULE_SETUP
11770 #line 1243 "scanner.l"
11771 {
11772                                           current->spec&=~Entry::Assign;
11773                                           current->spec|=Entry::Strong;
11774                                         }
11775         YY_BREAK
11776 case 73:
11777 YY_RULE_SETUP
11778 #line 1247 "scanner.l"
11779 {
11780                                           current->spec|=Entry::NonAtomic;
11781                                         }
11782         YY_BREAK
11783 case 74:
11784 YY_RULE_SETUP
11785 #line 1250 "scanner.l"
11786 {
11787                                           BEGIN(FindMembers);
11788                                         }
11789         YY_BREAK
11790 case 75:
11791 YY_RULE_SETUP
11792 #line 1253 "scanner.l"
11793 {
11794                                           if (insideJava) // Java annotation
11795                                           {
11796                                             // skip annotation
11797                                           }
11798                                           else if (strcmp(scanYYtext,"@property")==0) // ObjC 2.0 property
11799                                           {
11800                                             current->mtype = mtype = Property;
11801                                             current->spec|=Entry::Writable | Entry::Readable;
11802                                             current->protection = Public ;
11803                                           }
11804                                           else if (strcmp(scanYYtext,"@synthesize")==0)
11805                                           {
11806                                             BEGIN( ObjCSkipStatement );
11807                                           }
11808                                           else if (strcmp(scanYYtext,"@dynamic")==0)
11809                                           {
11810                                             BEGIN( ObjCSkipStatement );
11811                                           }
11812                                           else
11813                                           {
11814                                             REJECT;
11815                                           }
11816                                         }
11817         YY_BREAK
11818 case 76:
11819 YY_RULE_SETUP
11820 #line 1277 "scanner.l"
11821 {
11822                                           BEGIN(FindMembers);
11823                                         }
11824         YY_BREAK
11825 case 77:
11826 YY_RULE_SETUP
11827 #line 1280 "scanner.l"
11828 {
11829                                           isTypedef=FALSE;
11830                                           //printf("Found namespace %s lang=%d\n",scanYYtext,current->lang);
11831                                           current->name = scanYYtext;
11832                                           current->name = substitute(current->name,".","::");
11833                                           current->name = substitute(current->name,"\\","::");
11834                                           current->section = Entry::NAMESPACE_SEC;
11835                                           current->type = "namespace" ;
11836                                           current->fileName  = yyFileName;
11837                                           current->startLine = yyLineNr;
11838                                           current->bodyLine  = yyLineNr;
11839                                           lineCount();
11840                                         }
11841         YY_BREAK
11842 case 78:
11843 YY_RULE_SETUP
11844 #line 1293 "scanner.l"
11845 {
11846                                           current_root->addSubEntry(current);
11847                                           current_root = current ;
11848                                           current = new Entry ;
11849                                           initEntry();
11850                                           BEGIN(FindMembers);
11851                                         }
11852         YY_BREAK
11853 case 79:
11854 YY_RULE_SETUP
11855 #line 1300 "scanner.l"
11856 {
11857                                           curlyCount=0;
11858                                           BEGIN( ReadNSBody );
11859                                         }
11860         YY_BREAK
11861 case 80:
11862 /* rule 80 can match eol */
11863 YY_RULE_SETUP
11864 #line 1304 "scanner.l"
11865 {
11866                                           current->type += " initonly ";
11867                                           if (insideCli) current->spec |= Entry::Initonly;
11868                                           lineCount();
11869                                         }
11870         YY_BREAK
11871 case 81:
11872 /* rule 81 can match eol */
11873 YY_RULE_SETUP
11874 #line 1309 "scanner.l"
11875 { current->type += " static ";
11876                                           current->stat = TRUE;
11877                                           lineCount();
11878                                         }
11879         YY_BREAK
11880 case 82:
11881 /* rule 82 can match eol */
11882 YY_RULE_SETUP
11883 #line 1313 "scanner.l"
11884 {
11885                                           current->stat = FALSE;
11886                                           current->explicitExternal = TRUE;
11887                                           lineCount();
11888                                         }
11889         YY_BREAK
11890 case 83:
11891 /* rule 83 can match eol */
11892 YY_RULE_SETUP
11893 #line 1318 "scanner.l"
11894 { current->type += " virtual ";
11895                                           current->virt = Virtual;
11896                                           lineCount();
11897                                         }
11898         YY_BREAK
11899 case 84:
11900 /* rule 84 can match eol */
11901 YY_RULE_SETUP
11902 #line 1322 "scanner.l"
11903
11904                                           if (!insidePHP) 
11905                                           {
11906                                             current->type += " abstract ";
11907                                             current->virt = Pure;
11908                                           }
11909                                           else
11910                                           {
11911                                             current->spec|=Entry::Abstract;
11912                                           }
11913                                           lineCount();
11914                                         }
11915         YY_BREAK
11916 case 85:
11917 /* rule 85 can match eol */
11918 YY_RULE_SETUP
11919 #line 1334 "scanner.l"
11920 { current->spec|=Entry::Inline;
11921                                           lineCount(); 
11922                                         }
11923         YY_BREAK
11924 case 86:
11925 /* rule 86 can match eol */
11926 YY_RULE_SETUP
11927 #line 1337 "scanner.l"
11928 { current->spec|=Entry::Mutable;
11929                                           lineCount(); 
11930                                         }
11931         YY_BREAK
11932 case 87:
11933 /* rule 87 can match eol */
11934 YY_RULE_SETUP
11935 #line 1340 "scanner.l"
11936 { current->spec|=Entry::Explicit;
11937                                           lineCount(); 
11938                                         }
11939         YY_BREAK
11940 case 88:
11941 /* rule 88 can match eol */
11942 YY_RULE_SETUP
11943 #line 1343 "scanner.l"
11944 { // Objective C 2.0 protocol required section
11945                                           current->spec=(current->spec & ~Entry::Optional) | Entry::Required;
11946                                           lineCount(); 
11947                                         }
11948         YY_BREAK
11949 case 89:
11950 /* rule 89 can match eol */
11951 YY_RULE_SETUP
11952 #line 1347 "scanner.l"
11953 {  // Objective C 2.0 protocol optional section
11954                                           current->spec=(current->spec & ~Entry::Required) | Entry::Optional;
11955                                           lineCount(); 
11956                                         }
11957         YY_BREAK
11958 /*
11959 <FindMembers>{B}*"import"{BN}+          { // IDL import keyword
11960                                           BEGIN( NextSemi );
11961                                         }
11962   */
11963 case 90:
11964 /* rule 90 can match eol */
11965 YY_RULE_SETUP
11966 #line 1356 "scanner.l"
11967 { lineCount(); }
11968         YY_BREAK
11969 case 91:
11970 /* rule 91 can match eol */
11971 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */
11972 (yy_c_buf_p) = yy_cp -= 1;
11973 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */
11974 YY_RULE_SETUP
11975 #line 1357 "scanner.l"
11976
11977                                           isTypedef=FALSE;
11978                                           current->section = Entry::NAMESPACE_SEC;
11979                                           current->type = "namespace" ;
11980                                           current->fileName  = yyFileName;
11981                                           current->startLine = yyLineNr;
11982                                           current->bodyLine  = yyLineNr;
11983                                           lineCount();
11984                                           if (insidePHP)
11985                                           {
11986                                             BEGIN( PackageName );
11987                                           }
11988                                           else
11989                                           {
11990                                             BEGIN( CompoundName ); 
11991                                           }
11992                                         }
11993         YY_BREAK
11994 case 92:
11995 /* rule 92 can match eol */
11996 YY_RULE_SETUP
11997 #line 1374 "scanner.l"
11998
11999                                           lineCount();
12000                                           if (insideIDL)
12001                                           {
12002                                             isTypedef=FALSE;
12003                                             current->section = Entry::NAMESPACE_SEC;
12004                                             current->type = "module" ;
12005                                             current->fileName  = yyFileName;
12006                                             current->startLine = yyLineNr;
12007                                             current->bodyLine  = yyLineNr;
12008                                             BEGIN( CompoundName ); 
12009                                           }
12010                                           else if (insideD)
12011                                           {
12012                                             lineCount();
12013                                             BEGIN(PackageName);
12014                                           }
12015                                           else
12016                                           {
12017                                             addType( current ) ;
12018                                             current->name = QCString(scanYYtext).stripWhiteSpace();
12019                                           }
12020                                         }
12021         YY_BREAK
12022 case 93:
12023 /* rule 93 can match eol */
12024 YY_RULE_SETUP
12025 #line 1397 "scanner.l"
12026
12027                                           lineCount();
12028                                           if (insideIDL)
12029                                           {
12030                                             isTypedef=FALSE;
12031                                             current->section = Entry::NAMESPACE_SEC;
12032                                             current->type = "library" ;
12033                                             current->fileName  = yyFileName;
12034                                             current->startLine = yyLineNr;
12035                                             current->bodyLine  = yyLineNr;
12036                                             BEGIN( CompoundName ); 
12037                                           }
12038                                           else
12039                                           {
12040                                             addType( current ) ;
12041                                             current->name = QCString(scanYYtext).stripWhiteSpace();
12042                                           }
12043                                         }
12044         YY_BREAK
12045 case 94:
12046 /* rule 94 can match eol */
12047 YY_RULE_SETUP
12048 #line 1415 "scanner.l"
12049 { // M$/Corba IDL/Java interface
12050                                           lineCount();
12051                                           if (insideIDL || insideJava || insideCS || insideD || insidePHP)
12052                                           {
12053                                             isTypedef=FALSE;
12054                                             current->section = Entry::CLASS_SEC;
12055                                             current->spec = Entry::Interface;
12056                                             addType( current ) ;
12057                                             current->type += " interface" ;
12058                                             current->fileName  = yyFileName;
12059                                             current->startLine = yyLineNr;
12060                                             current->bodyLine  = yyLineNr;
12061                                             BEGIN( CompoundName );
12062                                           }
12063                                           else
12064                                           {
12065                                             addType( current ) ;
12066                                             current->name = QCString(scanYYtext).stripWhiteSpace();
12067                                           }
12068                                         }
12069         YY_BREAK
12070 case 95:
12071 /* rule 95 can match eol */
12072 YY_RULE_SETUP
12073 #line 1435 "scanner.l"
12074 { // Objective-C class implementation
12075                                           lineCount();
12076                                           isTypedef=FALSE;
12077                                           current->section = Entry::OBJCIMPL_SEC;
12078                                           language = current->lang = SrcLangExt_ObjC;
12079                                           insideObjC = TRUE;
12080                                           current->protection = protection = Public ;
12081                                           addType( current ) ;
12082                                           current->type += " implementation" ;
12083                                           current->fileName  = yyFileName;
12084                                           current->startLine = yyLineNr;
12085                                           current->bodyLine  = yyLineNr;
12086                                           BEGIN( CompoundName );
12087                                         }
12088         YY_BREAK
12089 case 96:
12090 /* rule 96 can match eol */
12091 YY_RULE_SETUP
12092 #line 1449 "scanner.l"
12093 { // Objective-C class interface, or Java attribute
12094                                           lineCount();
12095                                           isTypedef=FALSE;
12096                                           current->section = Entry::CLASS_SEC;
12097                                           current->spec = Entry::Interface;
12098                                           if (!insideJava)
12099                                           {
12100                                             language = current->lang = SrcLangExt_ObjC;
12101                                             insideObjC = TRUE;
12102                                           }
12103                                           current->protection = protection = Public ;
12104                                           addType( current ) ;
12105                                           current->type += " interface" ;
12106                                           current->fileName  = yyFileName;
12107                                           current->startLine = yyLineNr;
12108                                           current->bodyLine  = yyLineNr;
12109                                           BEGIN( CompoundName );
12110                                         }
12111         YY_BREAK
12112 case 97:
12113 /* rule 97 can match eol */
12114 YY_RULE_SETUP
12115 #line 1467 "scanner.l"
12116 { // Objective-C protocol definition
12117                                           lineCount();
12118                                           isTypedef=FALSE;
12119                                           current->section = Entry::CLASS_SEC;
12120                                           current->spec = Entry::Protocol;
12121                                           language = current->lang = SrcLangExt_ObjC;
12122                                           insideObjC = TRUE;
12123                                           current->protection = protection = Public ;
12124                                           addType( current ) ;
12125                                           current->type += " protocol" ;
12126                                           current->fileName  = yyFileName;
12127                                           current->startLine = yyLineNr;
12128                                           current->bodyLine  = yyLineNr;
12129                                           BEGIN( CompoundName );
12130                                         }
12131         YY_BREAK
12132 case 98:
12133 /* rule 98 can match eol */
12134 YY_RULE_SETUP
12135 #line 1482 "scanner.l"
12136 { // Corba IDL exception
12137                                           isTypedef=FALSE;
12138                                           current->section = Entry::CLASS_SEC;
12139                                           current->spec = Entry::Exception;
12140                                           addType( current ) ;
12141                                           current->type += " exception" ;
12142                                           current->fileName  = yyFileName;
12143                                           current->startLine = yyLineNr;
12144                                           current->bodyLine  = yyLineNr;
12145                                           lineCount();
12146                                           BEGIN( CompoundName );
12147                                         }
12148         YY_BREAK
12149 case 99:
12150 #line 1495 "scanner.l"
12151 case 100:
12152 /* rule 100 can match eol */
12153 #line 1496 "scanner.l"
12154 case 101:
12155 /* rule 101 can match eol */
12156 YY_RULE_SETUP
12157 #line 1496 "scanner.l"
12158
12159                                           isTypedef=((QCString)scanYYtext).find("typedef")!=-1;
12160                                           current->section = Entry::CLASS_SEC;
12161                                           addType( current ) ;
12162                                           current->type += " class" ;
12163                                           current->fileName  = yyFileName;
12164                                           current->startLine = yyLineNr;
12165                                           current->bodyLine  = yyLineNr;
12166                                           if (scanYYtext[0]=='@')
12167                                           {
12168                                             language = current->lang = SrcLangExt_ObjC;
12169                                             insideObjC = TRUE;
12170                                           }
12171                                           lineCount() ;
12172                                           if (scanYYtext[scanYYleng-1]=='{') unput('{');
12173                                           if (insidePHP && current->spec&Entry::Abstract)
12174                                           {
12175                                             // convert Abstract to AbstractClass
12176                                             current->spec=(current->spec&~Entry::Abstract)|Entry::AbstractClass;
12177                                           }
12178                                           BEGIN( CompoundName ) ;
12179                                         }
12180         YY_BREAK
12181 case 102:
12182 #line 1519 "scanner.l"
12183 case 103:
12184 /* rule 103 can match eol */
12185 YY_RULE_SETUP
12186 #line 1519 "scanner.l"
12187 {
12188                                           isTypedef=FALSE;
12189                                           current->section = Entry::CLASS_SEC;
12190                                           current->spec = Entry::Value;
12191                                           addType( current ) ;
12192                                           current->type += " value class" ;
12193                                           current->fileName  = yyFileName;
12194                                           current->startLine = yyLineNr;
12195                                           current->bodyLine  = yyLineNr;
12196                                           lineCount() ;
12197                                           if (scanYYtext[scanYYleng-1]=='{') unput('{');
12198                                           BEGIN( CompoundName ) ;
12199                                         }
12200         YY_BREAK
12201 case 104:
12202 #line 1533 "scanner.l"
12203 case 105:
12204 /* rule 105 can match eol */
12205 YY_RULE_SETUP
12206 #line 1533 "scanner.l"
12207 {
12208                                           isTypedef=FALSE;
12209                                           current->section = Entry::CLASS_SEC;
12210                                           current->spec = Entry::Ref;
12211                                           addType( current ) ;
12212                                           current->type += " ref class" ;
12213                                           current->fileName  = yyFileName;
12214                                           current->startLine = yyLineNr;
12215                                           current->bodyLine  = yyLineNr;
12216                                           lineCount() ;
12217                                           if (scanYYtext[scanYYleng-1]=='{') unput('{');
12218                                           BEGIN( CompoundName ) ;
12219                                         }
12220         YY_BREAK
12221 case 106:
12222 #line 1547 "scanner.l"
12223 case 107:
12224 /* rule 107 can match eol */
12225 YY_RULE_SETUP
12226 #line 1547 "scanner.l"
12227 {
12228                                           isTypedef=FALSE;
12229                                           current->section = Entry::CLASS_SEC;
12230                                           current->spec = Entry::Interface;
12231                                           addType( current ) ;
12232                                           current->type += " interface class" ;
12233                                           current->fileName  = yyFileName;
12234                                           current->startLine = yyLineNr;
12235                                           current->bodyLine  = yyLineNr;
12236                                           lineCount() ;
12237                                           if (scanYYtext[scanYYleng-1]=='{') unput('{');
12238                                           BEGIN( CompoundName ) ;
12239                                         }
12240         YY_BREAK
12241 case 108:
12242 /* rule 108 can match eol */
12243 YY_RULE_SETUP
12244 #line 1560 "scanner.l"
12245 {
12246                                           if (insideIDL)
12247                                           {
12248                                             isTypedef=FALSE;
12249                                             current->section = Entry::CLASS_SEC;
12250                                             addType( current ) ;
12251                                             current->type += " coclass" ;
12252                                             current->fileName  = yyFileName;
12253                                             current->startLine = yyLineNr;
12254                                             current->bodyLine  = yyLineNr;
12255                                             lineCount() ;
12256                                             BEGIN( CompoundName ) ;
12257                                           }
12258                                           else
12259                                           {
12260                                             addType(current);
12261                                             current->name = scanYYtext;
12262                                             current->name = current->name.stripWhiteSpace();
12263                                             lineCount();
12264                                           }
12265                                         }
12266         YY_BREAK
12267 case 109:
12268 /* rule 109 can match eol */
12269 #line 1582 "scanner.l"
12270 case 110:
12271 /* rule 110 can match eol */
12272 YY_RULE_SETUP
12273 #line 1582 "scanner.l"
12274
12275                                           isTypedef=((QCString)scanYYtext).find("typedef")!=-1;
12276                                           current->section = Entry::CLASS_SEC ;
12277                                           current->spec    = Entry::Struct;
12278                                           // bug 582676: can be a struct nested in an interface so keep insideObjC state
12279                                           //current->objc    = insideObjC = FALSE;
12280                                           addType( current ) ;
12281                                           current->type += " struct" ;
12282                                           current->fileName  = yyFileName;
12283                                           current->startLine = yyLineNr;
12284                                           current->bodyLine  = yyLineNr;
12285                                           lineCount() ;
12286                                           if (scanYYtext[scanYYleng-1]=='{') unput('{');
12287                                           BEGIN( CompoundName ) ;
12288                                         }
12289         YY_BREAK
12290 case 111:
12291 #line 1598 "scanner.l"
12292 case 112:
12293 /* rule 112 can match eol */
12294 YY_RULE_SETUP
12295 #line 1598 "scanner.l"
12296 {
12297                                           isTypedef=FALSE;
12298                                           current->section = Entry::CLASS_SEC;
12299                                           current->spec    = Entry::Struct | Entry::Value;
12300                                           addType( current ) ;
12301                                           current->type += " value struct" ;
12302                                           current->fileName  = yyFileName;
12303                                           current->startLine = yyLineNr;
12304                                           current->bodyLine  = yyLineNr;
12305                                           lineCount() ;
12306                                           if (scanYYtext[scanYYleng-1]=='{') unput('{');
12307                                           BEGIN( CompoundName ) ;
12308                                         }
12309         YY_BREAK
12310 case 113:
12311 #line 1612 "scanner.l"
12312 case 114:
12313 /* rule 114 can match eol */
12314 YY_RULE_SETUP
12315 #line 1612 "scanner.l"
12316 {
12317                                           isTypedef=FALSE;
12318                                           current->section = Entry::CLASS_SEC;
12319                                           current->spec    = Entry::Struct | Entry::Ref;
12320                                           addType( current ) ;
12321                                           current->type += " ref struct" ;
12322                                           current->fileName  = yyFileName;
12323                                           current->startLine = yyLineNr;
12324                                           current->bodyLine  = yyLineNr;
12325                                           lineCount() ;
12326                                           if (scanYYtext[scanYYleng-1]=='{') unput('{');
12327                                           BEGIN( CompoundName ) ;
12328                                         }
12329         YY_BREAK
12330 case 115:
12331 #line 1626 "scanner.l"
12332 case 116:
12333 /* rule 116 can match eol */
12334 YY_RULE_SETUP
12335 #line 1626 "scanner.l"
12336 {
12337                                           isTypedef=FALSE;
12338                                           current->section = Entry::CLASS_SEC;
12339                                           current->spec    = Entry::Struct | Entry::Interface;
12340                                           addType( current ) ;
12341                                           current->type += " interface struct";
12342                                           current->fileName  = yyFileName;
12343                                           current->startLine = yyLineNr;
12344                                           current->bodyLine  = yyLineNr;
12345                                           lineCount() ;
12346                                           if (scanYYtext[scanYYleng-1]=='{') unput('{');
12347                                           BEGIN( CompoundName ) ;
12348                                         }
12349         YY_BREAK
12350 case 117:
12351 /* rule 117 can match eol */
12352 #line 1640 "scanner.l"
12353 case 118:
12354 /* rule 118 can match eol */
12355 YY_RULE_SETUP
12356 #line 1640 "scanner.l"
12357
12358                                           isTypedef=((QCString)scanYYtext).find("typedef")!=-1;
12359                                           current->section = Entry::CLASS_SEC;
12360                                           current->spec    = Entry::Union;
12361                                           // bug 582676: can be a struct nested in an interface so keep insideObjC state
12362                                           //current->objc    = insideObjC = FALSE;
12363                                           addType( current ) ;
12364                                           current->type += " union" ;
12365                                           current->fileName  = yyFileName;
12366                                           current->startLine = yyLineNr;
12367                                           current->bodyLine  = yyLineNr;
12368                                           lineCount() ;
12369                                           if (scanYYtext[scanYYleng-1]=='{') unput('{');
12370                                           BEGIN( CompoundName ) ;
12371                                         }
12372         YY_BREAK
12373 case 119:
12374 /* rule 119 can match eol */
12375 #line 1656 "scanner.l"
12376 case 120:
12377 /* rule 120 can match eol */
12378 YY_RULE_SETUP
12379 #line 1656 "scanner.l"
12380 { // for IDL: typedef [something] enum
12381                                           QCString text=scanYYtext;
12382                                           isTypedef    = text.find("typedef")!=-1;
12383                                           bool isStrongEnum = text.find("struct")!=-1 || text.find("class")!=-1;
12384                                           if (insideJava)
12385                                           {
12386                                             current->section = Entry::CLASS_SEC;
12387                                             current->spec    = Entry::Enum;
12388                                           }
12389                                           else
12390                                           {
12391                                             current->section = Entry::ENUM_SEC ;
12392                                           }
12393                                           addType( current ) ;
12394                                           current->type += " enum";
12395                                           if (isStrongEnum)
12396                                           {
12397                                             current->spec |= Entry::Strong;
12398                                           }
12399                                           current->fileName  = yyFileName;
12400                                           current->startLine = yyLineNr;
12401                                           current->bodyLine  = yyLineNr;
12402                                           lineCount() ;
12403                                           if (scanYYtext[scanYYleng-1]=='{') unput('{');
12404                                           BEGIN( CompoundName ) ;
12405                                         }
12406         YY_BREAK
12407 case 121:
12408 /* rule 121 can match eol */
12409 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */
12410 (yy_c_buf_p) = yy_cp -= 1;
12411 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */
12412 YY_RULE_SETUP
12413 #line 1682 "scanner.l"
12414 {  // A::operator()<int>(int arg)
12415                                           lineCount();
12416                                           current->name += "()";
12417                                           BEGIN( FindMembers );
12418                                         }
12419         YY_BREAK
12420 case 122:
12421 /* rule 122 can match eol */
12422 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */
12423 (yy_c_buf_p) = yy_cp -= 1;
12424 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */
12425 YY_RULE_SETUP
12426 #line 1687 "scanner.l"
12427 {
12428                                           lineCount();
12429                                           current->name += scanYYtext ;
12430                                           current->name = current->name.simplifyWhiteSpace();
12431                                           BEGIN( FindMembers ) ;
12432                                         }
12433         YY_BREAK
12434 case 123:
12435 YY_RULE_SETUP
12436 #line 1693 "scanner.l"
12437 { // can occur when importing members
12438                                           unput(';');
12439                                           BEGIN( FindMembers ) ;
12440                                         }
12441         YY_BREAK
12442 case 124:
12443 /* rule 124 can match eol */
12444 YY_RULE_SETUP
12445 #line 1697 "scanner.l"
12446
12447                                           lineCount();
12448                                           current->name += *scanYYtext ;
12449                                         }
12450         YY_BREAK
12451 case 125:
12452 YY_RULE_SETUP
12453 #line 1701 "scanner.l"
12454 { /* skip guided templ specifiers */ }
12455         YY_BREAK
12456 case 126:
12457 YY_RULE_SETUP
12458 #line 1702 "scanner.l"
12459 {
12460                                           current->name = current->name.simplifyWhiteSpace();
12461                                           unput(*scanYYtext);
12462                                           BEGIN( FindMembers ) ;
12463                                         }
12464         YY_BREAK
12465 case 127:
12466 /* rule 127 can match eol */
12467 YY_RULE_SETUP
12468 #line 1707 "scanner.l"
12469 {  // generic is a C++/CLI extension
12470                                           lineCount();
12471                                           if (current->tArgLists==0)
12472                                           {
12473                                             current->tArgLists = new QList<ArgumentList>;
12474                                             current->tArgLists->setAutoDelete(TRUE);
12475                                           }
12476                                           ArgumentList *al = new ArgumentList;
12477                                           //current->spec |= (scanYYtext[0]=='g') ? Entry::Generic : Entry::Template;
12478                                           current->tArgLists->append(al);
12479                                           currentArgumentList = al;
12480                                           templateStr="<";
12481                                           fullArgString = templateStr;
12482                                           copyArgString = &templateStr;
12483                                           currentArgumentContext = FindMembers;
12484                                           BEGIN( ReadTempArgs );
12485                                         }
12486         YY_BREAK
12487 case 128:
12488 /* rule 128 can match eol */
12489 YY_RULE_SETUP
12490 #line 1724 "scanner.l"
12491 { // namespace alias
12492                                           lineCount(); 
12493                                           BEGIN( NSAliasName );
12494                                         }
12495         YY_BREAK
12496 case 129:
12497 YY_RULE_SETUP
12498 #line 1728 "scanner.l"
12499 {
12500                                           aliasName = scanYYtext;
12501                                           BEGIN( NSAliasArg );
12502                                         }
12503         YY_BREAK
12504 case 130:
12505 YY_RULE_SETUP
12506 #line 1732 "scanner.l"
12507 {
12508                                           //printf("Inserting namespace alias %s::%s->%s\n",current_root->name.data(),aliasName.data(),scanYYtext);
12509                                           //if (current_root->name.isEmpty())
12510                                           //{
12511                                           // TODO: namespace aliases are now treated as global entities
12512                                           // while they should be aware of the scope they are in
12513                                             Doxygen::namespaceAliasDict.insert(aliasName,new QCString(scanYYtext));
12514                                           //}
12515                                           //else
12516                                           //{
12517                                           //  Doxygen::namespaceAliasDict.insert(current_root->name+"::"+aliasName,
12518                                           //    new QCString(current_root->name+"::"+scanYYtext));
12519                                           //}
12520                                         }
12521         YY_BREAK
12522 case 131:
12523 YY_RULE_SETUP
12524 #line 1746 "scanner.l"
12525 {
12526                                           BEGIN( FindMembers );
12527                                         }
12528         YY_BREAK
12529 case 132:
12530 /* rule 132 can match eol */
12531 YY_RULE_SETUP
12532 #line 1749 "scanner.l"
12533 {
12534                                           lineCount();
12535                                           aliasName=scanYYtext;
12536                                           BEGIN(PHPUseAs);
12537                                         }
12538         YY_BREAK
12539 case 133:
12540 /* rule 133 can match eol */
12541 YY_RULE_SETUP
12542 #line 1754 "scanner.l"
12543 {
12544                                           lineCount();
12545                                           current->name=removeRedundantWhiteSpace(substitute(scanYYtext,"\\","::"));
12546                                           //printf("PHP: adding use relation: %s\n",current->name.data());
12547                                           current->fileName = yyFileName; 
12548                                           // add a using declaraton
12549                                           current->section=Entry::USINGDECL_SEC;
12550                                           current_root->addSubEntry(current);
12551                                           current = new Entry(*current);
12552                                           // also add it as a using directive
12553                                           current->section=Entry::USINGDIR_SEC;
12554                                           current_root->addSubEntry(current);
12555                                           current = new Entry ;
12556                                           initEntry();
12557                                           aliasName.resize(0);
12558                                         }
12559         YY_BREAK
12560 case 134:
12561 /* rule 134 can match eol */
12562 YY_RULE_SETUP
12563 #line 1770 "scanner.l"
12564 {
12565                                           lineCount();
12566                                         }
12567         YY_BREAK
12568 case 135:
12569 YY_RULE_SETUP
12570 #line 1773 "scanner.l"
12571 {
12572                                           //printf("PHP: adding use as relation: %s->%s\n",scanYYtext,aliasName.data());
12573                                           Doxygen::namespaceAliasDict.insert(scanYYtext,
12574                                                new QCString(removeRedundantWhiteSpace(
12575                                                    substitute(aliasName,"\\","::"))));
12576                                           aliasName.resize(0);
12577                                         }
12578         YY_BREAK
12579 case 136:
12580 YY_RULE_SETUP
12581 #line 1780 "scanner.l"
12582 {
12583                                           if (*scanYYtext==',')
12584                                           {
12585                                             BEGIN(PHPUse);
12586                                           }
12587                                           else
12588                                           {
12589                                             BEGIN(FindMembers);
12590                                           }
12591                                         }
12592         YY_BREAK
12593 case 137:
12594 /* rule 137 can match eol */
12595 YY_RULE_SETUP
12596 #line 1790 "scanner.l"
12597 { // package import => add as a using directive
12598                                           lineCount();
12599                                           QCString scope=scanYYtext;
12600                                           current->name=removeRedundantWhiteSpace(substitute(scope.left(scope.length()-1),".","::"));
12601                                           current->fileName = yyFileName; 
12602                                           current->section=Entry::USINGDIR_SEC;
12603                                           current_root->addSubEntry(current);
12604                                           current = new Entry;
12605                                           initEntry();
12606                                           BEGIN(Using);
12607                                         }
12608         YY_BREAK
12609 case 138:
12610 /* rule 138 can match eol */
12611 YY_RULE_SETUP
12612 #line 1801 "scanner.l"
12613 { // class import => add as a using declaration
12614                                           lineCount();
12615                                           QCString scope=scanYYtext;
12616                                           current->name=removeRedundantWhiteSpace(substitute(scope,".","::"));
12617                                           current->fileName = yyFileName; 
12618                                           if (insideD) 
12619                                           {
12620                                             current->section=Entry::USINGDIR_SEC;
12621                                           }
12622                                           else
12623                                           {
12624                                             //printf("import name = %s -> %s\n",scanYYtext,current->name.data());
12625                                             current->section=Entry::USINGDECL_SEC;
12626                                           }
12627                                           current_root->addSubEntry(current);
12628                                           current = new Entry ;
12629                                           initEntry();
12630                                           BEGIN(Using);
12631                                         }
12632         YY_BREAK
12633 case 139:
12634 /* rule 139 can match eol */
12635 YY_RULE_SETUP
12636 #line 1820 "scanner.l"
12637
12638                                           current->startLine=yyLineNr; 
12639                                           lineCount(); 
12640                                           BEGIN(Using); 
12641                                         }
12642         YY_BREAK
12643 case 140:
12644 /* rule 140 can match eol */
12645 YY_RULE_SETUP
12646 #line 1825 "scanner.l"
12647 { lineCount(); BEGIN(UsingDirective); }
12648         YY_BREAK
12649 case 141:
12650 /* rule 141 can match eol */
12651 YY_RULE_SETUP
12652 #line 1826 "scanner.l"
12653 {
12654                                           lineCount();
12655                                           current->name=scanYYtext;
12656                                           current->fileName = yyFileName; 
12657                                           current->section=Entry::USINGDECL_SEC;
12658                                           current->startLine = yyLineNr;
12659                                           current_root->addSubEntry(current);
12660                                           previous = current;
12661                                           current             = new Entry ;
12662                                           if (insideCS) /* Hack: in C# a using declaration and 
12663                                                            directive have the same syntax, so we
12664                                                            also add it as a using directive here
12665                                                          */
12666                                           {
12667                                             current->name=scanYYtext;
12668                                             current->fileName = yyFileName; 
12669                                             current->startLine = yyLineNr;
12670                                             current->section=Entry::USINGDIR_SEC;
12671                                             current_root->addSubEntry(current);
12672                                             current             = new Entry ;
12673                                           }
12674                                           initEntry();
12675                                           BEGIN(Using);
12676                                         }
12677         YY_BREAK
12678 case 142:
12679 YY_RULE_SETUP
12680 #line 1850 "scanner.l"
12681 { // C++11 style template alias?
12682                                           BEGIN(UsingAlias);
12683                                         }
12684         YY_BREAK
12685 case 143:
12686 YY_RULE_SETUP
12687 #line 1853 "scanner.l"
12688
12689                                           previous->section=Entry::VARIABLE_SEC;
12690                                           previous->type = "typedef "+previous->args;
12691                                           previous->type=previous->type.simplifyWhiteSpace();
12692                                           previous->args.resize(0);
12693                                           previous->name=previous->name.stripWhiteSpace();
12694                                           previous->bodyLine = yyLineNr;
12695                                           previous->spec |= Entry::Alias;
12696                                           BEGIN(FindMembers); 
12697                                         }
12698         YY_BREAK
12699 case 144:
12700 YY_RULE_SETUP
12701 #line 1863 "scanner.l"
12702 {
12703                                           previous->args+=scanYYtext;
12704                                         }
12705         YY_BREAK
12706 case 145:
12707 /* rule 145 can match eol */
12708 YY_RULE_SETUP
12709 #line 1866 "scanner.l"
12710 {
12711                                           previous->args+=scanYYtext;
12712                                           lineCount();
12713                                         }
12714         YY_BREAK
12715 case 146:
12716 /* rule 146 can match eol */
12717 YY_RULE_SETUP
12718 #line 1870 "scanner.l"
12719 { current->name=removeRedundantWhiteSpace(scanYYtext);
12720                                           current->fileName = yyFileName; 
12721                                           current->section=Entry::USINGDIR_SEC;
12722                                           current_root->addSubEntry(current);
12723                                           current             = new Entry ;
12724                                           initEntry();
12725                                           BEGIN(Using);
12726                                         }
12727         YY_BREAK
12728 case 147:
12729 YY_RULE_SETUP
12730 #line 1878 "scanner.l"
12731 { BEGIN(FindMembers); }
12732         YY_BREAK
12733 case 148:
12734 /* rule 148 can match eol */
12735 YY_RULE_SETUP
12736 #line 1879 "scanner.l"
12737 { // guided template decl
12738                                           QCString n=scanYYtext;
12739                                           addType( current );
12740                                           current->name=n.left(n.length()-2);
12741                                         }
12742         YY_BREAK
12743 case 149:
12744 /* rule 149 can match eol */
12745 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */
12746 (yy_c_buf_p) = yy_cp -= 1;
12747 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */
12748 YY_RULE_SETUP
12749 #line 1884 "scanner.l"
12750 { // Note: this could be a return type!
12751                                           roundCount=0;
12752                                           sharpCount=0;
12753                                           lineCount();
12754                                           addType( current );
12755                                           current->name=scanYYtext;
12756                                           current->name=current->name.stripWhiteSpace();
12757                                           //current->scopeSpec.resize(0);
12758                                           // currentTemplateSpec = &current->scopeSpec;
12759                                           if (nameIsOperator(current->name))
12760                                             BEGIN( Operator );
12761                                           else
12762                                             BEGIN( EndTemplate );
12763                                         }
12764         YY_BREAK
12765 case 150:
12766 /* rule 150 can match eol */
12767 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */
12768 (yy_c_buf_p) = yy_cp -= 1;
12769 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */
12770 YY_RULE_SETUP
12771 #line 1898 "scanner.l"
12772 {
12773                                           sharpCount=0;
12774                                           roundCount=0;
12775                                           lineCount();
12776                                           current->name+=((QCString)scanYYtext).stripWhiteSpace();
12777                                           //current->memberSpec.resize(0);
12778                                           // currentTemplateSpec = &current->memberSpec;
12779                                           if (nameIsOperator(current->name))
12780                                             BEGIN( Operator );
12781                                           else
12782                                             BEGIN( EndTemplate );
12783                                         }
12784         YY_BREAK
12785 case 151:
12786 YY_RULE_SETUP
12787 #line 1910 "scanner.l"
12788 {
12789                                           if (!insidePHP) 
12790                                           {
12791                                             REJECT;
12792                                           }
12793                                           else
12794                                           {
12795                                             lastHereDocContext = YY_START;
12796                                             BEGIN(HereDoc);
12797                                           }
12798                                         }
12799         YY_BREAK
12800 case 152:
12801 YY_RULE_SETUP
12802 #line 1921 "scanner.l"
12803 {
12804                                           current->name+=scanYYtext;
12805                                           // *currentTemplateSpec+=scanYYtext; 
12806                                         }
12807         YY_BREAK
12808 case 153:
12809 YY_RULE_SETUP
12810 #line 1925 "scanner.l"
12811
12812                                           current->name+='<';
12813                                           // *currentTemplateSpec+='<'; 
12814                                           sharpCount++; 
12815                                         }
12816         YY_BREAK
12817 case 154:
12818 YY_RULE_SETUP
12819 #line 1930 "scanner.l"
12820 {
12821                                           if (insideJava || insideCS || insideCli || roundCount==0)
12822                                           {
12823                                             unput('>');
12824                                             unput(' ');
12825                                             unput('>');
12826                                           }
12827                                           else
12828                                           {
12829                                             current->name+=scanYYtext;
12830                                           }
12831                                           // *currentTemplateSpec+=scanYYtext; 
12832                                         }
12833         YY_BREAK
12834 case 155:
12835 YY_RULE_SETUP
12836 #line 1943 "scanner.l"
12837 {
12838                                           current->name+='>';
12839                                           // *currentTemplateSpec+='>';
12840                                           if (--sharpCount<=0)
12841                                           {  
12842                                             //printf("Found %s\n",current->name.data());
12843                                             BEGIN(FindMembers);
12844                                           }
12845                                         }
12846         YY_BREAK
12847 case 156:
12848 /* rule 156 can match eol */
12849 YY_RULE_SETUP
12850 #line 1952 "scanner.l"
12851
12852                                           lineCount();
12853                                           current->name+='>';
12854                                           // *currentTemplateSpec+='>';
12855                                           if (--sharpCount<=0)
12856                                           {
12857                                             current->bodyLine = yyLineNr;
12858                                             current->args = "(";
12859                                             currentArgumentContext = FuncQual;
12860                                             fullArgString = current->args.copy();
12861                                             copyArgString = &current->args;
12862                                             //printf("Found %s\n",current->name.data());
12863                                             BEGIN( ReadFuncArgType ) ;
12864                                           }
12865                                         }
12866         YY_BREAK
12867 case 157:
12868 /* rule 157 can match eol */
12869 YY_RULE_SETUP
12870 #line 1967 "scanner.l"
12871 { // function pointer returning a template instance
12872                                           lineCount();
12873                                           current->name+='>';
12874                                           BEGIN(FindMembers);
12875                                         }
12876         YY_BREAK
12877 case 158:
12878 /* rule 158 can match eol */
12879 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */
12880 (yy_c_buf_p) = yy_cp -= 2;
12881 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */
12882 YY_RULE_SETUP
12883 #line 1972 "scanner.l"
12884 {
12885                                           lineCount();
12886                                           current->name+='>';
12887                                           // *currentTemplateSpec+='>';
12888                                           if (--sharpCount<=0)
12889                                           {
12890                                             BEGIN(FindMemberName);
12891                                           }
12892                                         }
12893         YY_BREAK
12894 case 159:
12895 YY_RULE_SETUP
12896 #line 1981 "scanner.l"
12897 { current->name+=*scanYYtext;
12898                                           roundCount++; 
12899                                         }
12900         YY_BREAK
12901 case 160:
12902 YY_RULE_SETUP
12903 #line 1984 "scanner.l"
12904 { current->name+=*scanYYtext;
12905                                           if (roundCount>0) roundCount--; 
12906                                         }
12907         YY_BREAK
12908 case 161:
12909 YY_RULE_SETUP
12910 #line 1987 "scanner.l"
12911
12912                                           current->name+=*scanYYtext;
12913                                           // *currentTemplateSpec+=*scanYYtext; 
12914                                         }
12915         YY_BREAK
12916 case 162:
12917 /* rule 162 can match eol */
12918 YY_RULE_SETUP
12919 #line 1991 "scanner.l"
12920 {
12921                                           if (insidePHP)
12922                                           {
12923                                             current->bodyLine = yyLineNr;
12924                                             BEGIN( DefinePHP );
12925                                           }
12926                                           else
12927                                             REJECT;
12928                                         }
12929         YY_BREAK
12930 case 163:
12931 YY_RULE_SETUP
12932 #line 2000 "scanner.l"
12933 { // PHP heredoc
12934                                           g_delimiter = scanYYtext;
12935                                           *pCopyHereDocGString += scanYYtext;
12936                                           BEGIN(CopyHereDocEnd);
12937                                         }
12938         YY_BREAK
12939 case 164:
12940 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */
12941 (yy_c_buf_p) = yy_cp -= 1;
12942 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */
12943 YY_RULE_SETUP
12944 #line 2005 "scanner.l"
12945 { // PHP nowdoc
12946                                           g_delimiter = &scanYYtext[1];
12947                                           *pCopyHereDocGString += scanYYtext;
12948                                           BEGIN(CopyHereDocEnd);
12949                                         }
12950         YY_BREAK
12951 case 165:
12952 YY_RULE_SETUP
12953 #line 2010 "scanner.l"
12954 { // PHP heredoc
12955                                           g_delimiter = scanYYtext;
12956                                           BEGIN(HereDocEnd);
12957                                         }
12958         YY_BREAK
12959 case 166:
12960 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */
12961 (yy_c_buf_p) = yy_cp -= 1;
12962 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */
12963 YY_RULE_SETUP
12964 #line 2014 "scanner.l"
12965 { // PHP nowdoc
12966                                           g_delimiter = &scanYYtext[1];
12967                                           BEGIN(HereDocEnd);
12968                                         }
12969         YY_BREAK
12970 case 167:
12971 YY_RULE_SETUP
12972 #line 2018 "scanner.l"
12973 { // id at start of the line could mark the end of the block
12974                                           if (g_delimiter==scanYYtext) // it is the end marker
12975                                           {
12976                                             BEGIN(lastHereDocContext);
12977                                           }
12978                                         }
12979         YY_BREAK
12980 case 168:
12981 YY_RULE_SETUP
12982 #line 2024 "scanner.l"
12983 { }
12984         YY_BREAK
12985 case 169:
12986 YY_RULE_SETUP
12987 #line 2025 "scanner.l"
12988 { // id at start of the line could mark the end of the block
12989                                           *pCopyHereDocGString += scanYYtext;
12990                                           if (g_delimiter==scanYYtext) // it is the end marker
12991                                           {
12992                                             BEGIN(lastHereDocContext);
12993                                           }
12994                                         }
12995         YY_BREAK
12996 case 170:
12997 /* rule 170 can match eol */
12998 YY_RULE_SETUP
12999 #line 2032 "scanner.l"
13000
13001                                           *pCopyHereDocGString += scanYYtext;
13002                                         }
13003         YY_BREAK
13004 case 171:
13005 YY_RULE_SETUP
13006 #line 2035 "scanner.l"
13007
13008                                           *pCopyHereDocGString += scanYYtext;
13009                                         }
13010         YY_BREAK
13011 case 172:
13012 YY_RULE_SETUP
13013 #line 2038 "scanner.l"
13014 { // Qt object macro
13015                                         }
13016         YY_BREAK
13017 case 173:
13018 YY_RULE_SETUP
13019 #line 2040 "scanner.l"
13020 { // Qt property declaration
13021                                           current->protection = protection = Public ;
13022                                           current->mtype = mtype = Property;
13023                                           current->type.resize(0);
13024                                           BEGIN(QtPropType);
13025                                         }
13026         YY_BREAK
13027 case 174:
13028 YY_RULE_SETUP
13029 #line 2046 "scanner.l"
13030 { // start of property arguments
13031                                         }
13032         YY_BREAK
13033 case 175:
13034 YY_RULE_SETUP
13035 #line 2048 "scanner.l"
13036 { // end of property arguments
13037                                           unput(';');
13038                                           BEGIN(FindMembers);
13039                                         }
13040         YY_BREAK
13041 case 176:
13042 YY_RULE_SETUP
13043 #line 2052 "scanner.l"
13044 {
13045                                           current->type+=scanYYtext;
13046                                         }
13047         YY_BREAK
13048 case 177:
13049 YY_RULE_SETUP
13050 #line 2055 "scanner.l"
13051 {
13052                                           current->type+=scanYYtext;
13053                                         }
13054         YY_BREAK
13055 case 178:
13056 YY_RULE_SETUP
13057 #line 2058 "scanner.l"
13058 {
13059                                           current->type+=scanYYtext;
13060                                           BEGIN(QtPropName);
13061                                         }
13062         YY_BREAK
13063 case 179:
13064 YY_RULE_SETUP
13065 #line 2062 "scanner.l"
13066 {
13067                                           current->name=scanYYtext;
13068                                           BEGIN(QtPropAttr);
13069                                         }
13070         YY_BREAK
13071 case 180:
13072 YY_RULE_SETUP
13073 #line 2066 "scanner.l"
13074 {
13075                                           current->spec |= Entry::Readable;
13076                                           BEGIN(QtPropRead);
13077                                         }
13078         YY_BREAK
13079 case 181:
13080 YY_RULE_SETUP
13081 #line 2070 "scanner.l"
13082 {
13083                                           current->spec |= Entry::Writable;
13084                                           BEGIN(QtPropWrite);
13085                                         }
13086         YY_BREAK
13087 case 182:
13088 YY_RULE_SETUP
13089 #line 2074 "scanner.l"
13090 { // reset method => not supported yet
13091                                         }
13092         YY_BREAK
13093 case 183:
13094 YY_RULE_SETUP
13095 #line 2076 "scanner.l"
13096 { // scriptable property => not supported yet
13097                                         }
13098         YY_BREAK
13099 case 184:
13100 YY_RULE_SETUP
13101 #line 2078 "scanner.l"
13102 { // designable property => not supported yet
13103                                         }
13104         YY_BREAK
13105 case 185:
13106 YY_RULE_SETUP
13107 #line 2080 "scanner.l"
13108 {
13109                                           current->read = scanYYtext;
13110                                           BEGIN(QtPropAttr);
13111                                         }
13112         YY_BREAK
13113 case 186:
13114 YY_RULE_SETUP
13115 #line 2084 "scanner.l"
13116 {
13117                                           current->write = scanYYtext;
13118                                           BEGIN(QtPropAttr);
13119                                         }
13120         YY_BREAK
13121 case 187:
13122 /* rule 187 can match eol */
13123 YY_RULE_SETUP
13124 #line 2088 "scanner.l"
13125 {
13126                                           current->name=scanYYtext;
13127                                           BEGIN(FindMembers);
13128                                         }
13129         YY_BREAK
13130 case 188:
13131 /* rule 188 can match eol */
13132 YY_RULE_SETUP
13133 #line 2092 "scanner.l"
13134 {
13135                                           lineCount();
13136                                           if (insideIDL && scanYYleng==9 && strcmp(scanYYtext,"cpp_quote")==0)
13137                                           {
13138                                             BEGIN(CppQuote);
13139                                           }
13140                                           else if ((insideIDL || insideJava || insideD) && scanYYleng==6 && strcmp(scanYYtext,"import")==0)
13141                                           {
13142                                             if (insideIDL)
13143                                               BEGIN(NextSemi);
13144                                             else // insideJava or insideD
13145                                               BEGIN(JavaImport);
13146                                           }
13147                                           else if (insidePHP && strcmp(scanYYtext,"use")==0)
13148                                           {
13149                                             BEGIN(PHPUse);
13150                                           }
13151                                           else if (insideJava && strcmp(scanYYtext,"package")==0)
13152                                           {
13153                                             lineCount();
13154                                             BEGIN(PackageName);
13155                                           }
13156                                           else if (insideIDL && strcmp(scanYYtext,"case")==0)
13157                                           {
13158                                             BEGIN(IDLUnionCase);
13159                                           }
13160                                           else if (insideTryBlock && strcmp(scanYYtext,"catch")==0)
13161                                           {
13162                                             insideTryBlock=FALSE;
13163                                             BEGIN(TryFunctionBlock);
13164                                           }
13165                                           else if (insideJS && strcmp(scanYYtext,"var")==0)
13166                                           { // javascript variable
13167                                             current->type="var";
13168                                           }
13169                                           else if (insideJS && strcmp(scanYYtext,"function")==0)
13170                                           { // javascript function
13171                                             current->type="function";
13172                                           }
13173                                           else if (insideCS && strcmp(scanYYtext,"this")==0)
13174                                           {
13175                                             // C# indexer
13176                                             addType( current ) ;
13177                                             current->name="this";
13178                                             BEGIN(CSIndexer);
13179                                           }
13180                                           else if (insideCpp && strcmp(scanYYtext,"static_assert")==0)
13181                                           {
13182                                             // C++11 static_assert
13183                                             BEGIN(StaticAssert);
13184                                           }
13185                                           else if (insideCpp && strcmp(scanYYtext,"decltype")==0)
13186                                           {
13187                                             // C++11 decltype(x)
13188                                             current->type+=scanYYtext;
13189                                             BEGIN(DeclType);
13190                                           }
13191                                           else
13192                                           {
13193                                             if (YY_START==FindMembers)
13194                                             {
13195                                               addType( current ) ;
13196                                             }
13197                                             bool javaLike = insideJava || insideCS || insideD || insidePHP || insideJS;
13198                                             if (javaLike && strcmp(scanYYtext,"public")==0)
13199                                             {
13200                                               current->protection = Public;
13201                                             }
13202                                             else if (javaLike && strcmp(scanYYtext,"protected")==0)
13203                                             {
13204                                               current->protection = Protected;
13205                                             }
13206                                             else if (javaLike && strcmp(scanYYtext,"internal")==0)
13207                                             {
13208                                               current->protection = Package;
13209                                             }
13210                                             else if (javaLike && strcmp(scanYYtext,"private")==0)
13211                                             {
13212                                               current->protection = Private;
13213                                             }
13214                                             else if (javaLike && strcmp(scanYYtext,"static")==0)
13215                                             {
13216                                               if (YY_START==FindMembers)
13217                                                 current->name  = scanYYtext;
13218                                               else
13219                                                 current->name += scanYYtext;
13220                                               current->stat = TRUE;
13221                                             }
13222                                             else
13223                                             {
13224                                               if (YY_START==FindMembers)
13225                                                 current->name  = scanYYtext;
13226                                               else
13227                                                 current->name += scanYYtext;
13228                                               if (current->name.left(7)=="static ")
13229                                               {
13230                                                 current->stat = TRUE;
13231                                                 current->name= current->name.mid(7);
13232                                               }
13233                                               else if (current->name.left(7)=="inline ")
13234                                               {
13235                                                 if (current->type.isEmpty())
13236                                                 {
13237                                                   current->type="inline";
13238                                                 }
13239                                                 else
13240                                                 {
13241                                                   current->type+="inline ";
13242                                                 }
13243                                                 current->name= current->name.mid(7);
13244                                               }
13245                                               else if (current->name.left(6)=="const ")
13246                                               {
13247                                                 if (current->type.isEmpty())
13248                                                 {
13249                                                   current->type="const";
13250                                                 }
13251                                                 else
13252                                                 {
13253                                                   current->type+="const ";
13254                                                 }
13255                                                 current->name=current->name.mid(6);
13256                                               }
13257                                             }
13258                                             QCString tmp=scanYYtext;
13259                                             if (nameIsOperator(tmp))
13260                                             {
13261                                               BEGIN( Operator );
13262                                             }
13263                                             else
13264                                             {
13265                                               BEGIN(FindMembers);
13266                                             }
13267                                           }
13268                                         }
13269         YY_BREAK
13270 case 189:
13271 YY_RULE_SETUP
13272 #line 2227 "scanner.l"
13273 {
13274                                           lastSkipRoundContext = FindMembers;
13275                                           roundCount=1;
13276                                           BEGIN(SkipRound);
13277                                         }
13278         YY_BREAK
13279 case 190:
13280 /* rule 190 can match eol */
13281 YY_RULE_SETUP
13282 #line 2232 "scanner.l"
13283 { lineCount(); }
13284         YY_BREAK
13285 case 191:
13286 YY_RULE_SETUP
13287 #line 2233 "scanner.l"
13288 { // variable with static_assert as name?
13289                                           unput(*scanYYtext);
13290                                           BEGIN(FindMembers);
13291                                         }
13292         YY_BREAK
13293 case 192:
13294 YY_RULE_SETUP
13295 #line 2237 "scanner.l"
13296 {
13297                                           current->type+=scanYYtext;
13298                                           lastRoundContext=FindMembers;
13299                                           pCopyRoundString=&current->type;
13300                                           roundCount=0;
13301                                           BEGIN(CopyRound);
13302                                         }
13303         YY_BREAK
13304 case 193:
13305 /* rule 193 can match eol */
13306 YY_RULE_SETUP
13307 #line 2244 "scanner.l"
13308 { lineCount(); }
13309         YY_BREAK
13310 case 194:
13311 YY_RULE_SETUP
13312 #line 2245 "scanner.l"
13313 {
13314                                           unput(*scanYYtext);
13315                                           BEGIN(FindMembers);
13316                                         }
13317         YY_BREAK
13318 case 195:
13319 YY_RULE_SETUP
13320 #line 2249 "scanner.l"
13321 {
13322                                           current->name+=removeRedundantWhiteSpace(scanYYtext);
13323                                           BEGIN(FindMembers);
13324                                         }
13325         YY_BREAK
13326 case 196:
13327 YY_RULE_SETUP
13328 #line 2253 "scanner.l"
13329 { // some number where we did not expect one
13330                                         }
13331         YY_BREAK
13332 case 197:
13333 YY_RULE_SETUP
13334 #line 2255 "scanner.l"
13335 {
13336                                           if (insideJava || insideCS || insideD)
13337                                           {
13338                                             current->name+=".";
13339                                           }
13340                                         }
13341         YY_BREAK
13342 case 198:
13343 YY_RULE_SETUP
13344 #line 2261 "scanner.l"
13345 {
13346                                           current->name+=scanYYtext;
13347                                         }
13348         YY_BREAK
13349 case 199:
13350 YY_RULE_SETUP
13351 #line 2264 "scanner.l"
13352 {
13353                                           insideCppQuote=TRUE;
13354                                           BEGIN(FindMembers);
13355                                         }
13356         YY_BREAK
13357 case 200:
13358 YY_RULE_SETUP
13359 #line 2268 "scanner.l"
13360
13361         YY_BREAK
13362 case 201:
13363 YY_RULE_SETUP
13364 #line 2269 "scanner.l"
13365 { BEGIN(FindMembers); }
13366         YY_BREAK
13367 case 202:
13368 /* rule 202 can match eol */
13369 YY_RULE_SETUP
13370 #line 2270 "scanner.l"
13371 { lineCount(); }
13372         YY_BREAK
13373 case 203:
13374 YY_RULE_SETUP
13375 #line 2271 "scanner.l"
13376
13377         YY_BREAK
13378 case 204:
13379 /* rule 204 can match eol */
13380 YY_RULE_SETUP
13381 #line 2272 "scanner.l"
13382 { lineCount(); }
13383         YY_BREAK
13384 case 205:
13385 YY_RULE_SETUP
13386 #line 2273 "scanner.l"
13387
13388                                           curlyCount=0;
13389                                           lastCurlyContext = TryFunctionBlockEnd ;
13390                                           BEGIN( SkipCurly );
13391                                         }
13392         YY_BREAK
13393 case 206:
13394 YY_RULE_SETUP
13395 #line 2278 "scanner.l"
13396
13397         YY_BREAK
13398 case 207:
13399 /* rule 207 can match eol */
13400 YY_RULE_SETUP
13401 #line 2279 "scanner.l"
13402 { lineCount(); BEGIN(TryFunctionBlock); // {BN}* added to fix bug 611193
13403                                         }
13404         YY_BREAK
13405 case 208:
13406 /* rule 208 can match eol */
13407 YY_RULE_SETUP
13408 #line 2281 "scanner.l"
13409 { unput(*scanYYtext); // rule added to fix bug id 601138
13410                                           BEGIN( FindMembers );
13411                                         }
13412         YY_BREAK
13413 case 209:
13414 YY_RULE_SETUP
13415 #line 2284 "scanner.l"
13416 { unput(*scanYYtext);
13417                                           BEGIN( FindMembers );
13418                                         }
13419         YY_BREAK
13420 case 210:
13421 YY_RULE_SETUP
13422 #line 2287 "scanner.l"
13423 {
13424                                           insideCppQuote=FALSE;
13425                                           BEGIN(FindMembers);
13426                                         }
13427         YY_BREAK
13428 case 211:
13429 YY_RULE_SETUP
13430 #line 2291 "scanner.l"
13431 { if (insidePHP)
13432                                             REJECT;
13433                                           lastCPPContext = YY_START;
13434                                           BEGIN( SkipCPP ) ;
13435                                         }
13436         YY_BREAK
13437 case 212:
13438 YY_RULE_SETUP
13439 #line 2296 "scanner.l"
13440 {
13441                                           if (insidePHP)
13442                                             REJECT;
13443                                           current->bodyLine = yyLineNr;
13444                                           lastDefineContext = YY_START;
13445                                           BEGIN( Define );
13446                                         }
13447         YY_BREAK
13448 case 213:
13449 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */
13450 (yy_c_buf_p) = yy_cp -= 1;
13451 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */
13452 YY_RULE_SETUP
13453 #line 2303 "scanner.l"
13454 { /* line control directive */
13455                                           yyLineNr = atoi(&scanYYtext[1]);
13456                                           //printf("setting line number to %d\n",yyLineNr);
13457                                           lastPreLineCtrlContext = YY_START;
13458                                           if (YY_START==ReadBody || 
13459                                               YY_START==ReadNSBody ||
13460                                               YY_START==ReadBodyIntf)
13461                                           {
13462                                             current->program+=scanYYtext;
13463                                           }
13464                                           BEGIN( PreLineCtrl );
13465                                         }
13466         YY_BREAK
13467 case 214:
13468 YY_RULE_SETUP
13469 #line 2315 "scanner.l"
13470 {
13471                                           yyFileName = stripQuotes(scanYYtext);
13472                                           if (lastPreLineCtrlContext==ReadBody || 
13473                                               lastPreLineCtrlContext==ReadNSBody ||
13474                                               lastPreLineCtrlContext==ReadBodyIntf)
13475                                           {
13476                                             current->program+=scanYYtext;
13477                                           }
13478                                         }
13479         YY_BREAK
13480 case 215:
13481 YY_RULE_SETUP
13482 #line 2324 "scanner.l"
13483 {
13484                                           if (lastPreLineCtrlContext==ReadBody || 
13485                                               lastPreLineCtrlContext==ReadNSBody ||
13486                                               lastPreLineCtrlContext==ReadBodyIntf)
13487                                           {
13488                                             current->program+=scanYYtext;
13489                                           }
13490                                         }
13491         YY_BREAK
13492 case 216:
13493 /* rule 216 can match eol */
13494 YY_RULE_SETUP
13495 #line 2332 "scanner.l"
13496 {
13497                                           if (lastPreLineCtrlContext==ReadBody || 
13498                                               lastPreLineCtrlContext==ReadNSBody ||
13499                                               lastPreLineCtrlContext==ReadBodyIntf)
13500                                           {
13501                                             current->program+=scanYYtext;
13502                                           }
13503                                           lineCount();
13504                                           BEGIN( lastPreLineCtrlContext );
13505                                         }
13506         YY_BREAK
13507 case 217:
13508 YY_RULE_SETUP
13509 #line 2342 "scanner.l"
13510
13511         YY_BREAK
13512 case 218:
13513 /* rule 218 can match eol */
13514 YY_RULE_SETUP
13515 #line 2343 "scanner.l"
13516 { lineCount(); }
13517         YY_BREAK
13518 case 219:
13519 /* rule 219 can match eol */
13520 YY_RULE_SETUP
13521 #line 2344 "scanner.l"
13522 { lineCount();
13523                                           BEGIN( lastCPPContext) ;
13524                                         }
13525         YY_BREAK
13526 case 220:
13527 YY_RULE_SETUP
13528 #line 2347 "scanner.l"
13529 {
13530                                           current->name = scanYYtext;
13531                                           current->name = current->name.left(current->name.length()-1).stripWhiteSpace();
13532                                           current->args = "(";
13533                                           current->bodyLine = yyLineNr;
13534                                           currentArgumentContext = DefineEnd;
13535                                           fullArgString=current->args.copy();
13536                                           copyArgString=&current->args;
13537                                           BEGIN( ReadFuncArgType ) ;
13538                                         }
13539         YY_BREAK
13540 /*
13541 <DefineArg>")"                          {
13542                                           //printf("Define with args\n");
13543                                           current->args += ')';
13544                                           BEGIN( DefineEnd );
13545                                         }
13546 <DefineArg>.                            {
13547                                           current->args += *scanYYtext;
13548                                         }
13549   */
13550 case 221:
13551 YY_RULE_SETUP
13552 #line 2367 "scanner.l"
13553 {
13554                                           //printf("Define `%s' without args\n",scanYYtext);
13555                                           current->bodyLine = yyLineNr;
13556                                           current->name = scanYYtext;
13557                                           BEGIN(DefineEnd);
13558                                         }
13559         YY_BREAK
13560 case 222:
13561 /* rule 222 can match eol */
13562 YY_RULE_SETUP
13563 #line 2373 "scanner.l"
13564 {
13565                                           //printf("End define: doc=%s docFile=%s docLine=%d\n",current->doc.data(),current->docFile.data(),current->docLine);
13566                                           lineCount();
13567                                           current->fileName   = yyFileName;
13568                                           current->startLine  = yyLineNr;
13569                                           current->type.resize(0);
13570                                           current->args       = current->args.simplifyWhiteSpace();
13571                                           current->name       = current->name.stripWhiteSpace();
13572                                           current->section    = Entry::DEFINE_SEC;
13573                                           current_root->addSubEntry(current);
13574                                           current             = new Entry ;
13575                                           initEntry();
13576                                           BEGIN(lastDefineContext);
13577                                         }
13578         YY_BREAK
13579 case 223:
13580 YY_RULE_SETUP
13581 #line 2387 "scanner.l"
13582 {
13583                                           //printf("End define\n");
13584                                           current->fileName   = yyFileName;
13585                                           current->startLine  = yyLineNr;
13586                                           current->type.resize(0);
13587                                           current->type       = "const";
13588                                           QCString init = current->initializer.data();
13589                                           init = init.simplifyWhiteSpace();
13590                                           init = init.left(init.length()-1);
13591                                           current->initializer = init;
13592                                           current->name       = current->name.stripWhiteSpace();
13593                                           current->section    = Entry::VARIABLE_SEC; 
13594                                           current_root->addSubEntry(current);
13595                                           current             = new Entry ;
13596                                           initEntry();
13597                                           BEGIN(FindMembers);
13598                                         }
13599         YY_BREAK
13600 case 224:
13601 YY_RULE_SETUP
13602 #line 2404 "scanner.l"
13603
13604         YY_BREAK
13605 case 225:
13606 /* rule 225 can match eol */
13607 YY_RULE_SETUP
13608 #line 2405 "scanner.l"
13609 {
13610                                           lineCount();
13611                                         }
13612         YY_BREAK
13613 case 226:
13614 YY_RULE_SETUP
13615 #line 2408 "scanner.l"
13616 {
13617                                           if (insideIDL && insideCppQuote)
13618                                           {
13619                                             BEGIN(EndCppQuote);
13620                                           }
13621                                           else
13622                                           {
13623                                             lastStringContext=DefineEnd;
13624                                             BEGIN(SkipString);
13625                                           }
13626                                         }
13627         YY_BREAK
13628 case 227:
13629 YY_RULE_SETUP
13630 #line 2419 "scanner.l"
13631
13632         YY_BREAK
13633 case 228:
13634 /* rule 228 can match eol */
13635 YY_RULE_SETUP
13636 #line 2420 "scanner.l"
13637 {
13638                                           current->name = scanYYtext;
13639                                           current->name = current->name.stripWhiteSpace();
13640                                           current->name = current->name.left(current->name.length()-1).stripWhiteSpace();
13641                                           current->name = current->name.left(current->name.length()-1);
13642                                           current->bodyLine = yyLineNr;
13643                                           lastRoundContext = DefinePHPEnd;
13644                                           pCopyRoundGString = &current->initializer;
13645                                           roundCount = 0;
13646                                           BEGIN( GCopyRound );
13647                                         }
13648         YY_BREAK
13649 case 229:
13650 YY_RULE_SETUP
13651 #line 2432 "scanner.l"
13652 {  // ^ and % are C++/CLI extensions
13653                                           if (insideCli)
13654                                           {
13655                                             addType( current );
13656                                             current->name = scanYYtext ; 
13657                                           }
13658                                           else
13659                                           {
13660                                             REJECT;
13661                                           }
13662                                         }
13663         YY_BREAK
13664 case 230:
13665 YY_RULE_SETUP
13666 #line 2443 "scanner.l"
13667
13668                                           current->name += scanYYtext ;  
13669                                           addType( current );
13670                                         }
13671         YY_BREAK
13672 case 231:
13673 /* rule 231 can match eol */
13674 YY_RULE_SETUP
13675 #line 2447 "scanner.l"
13676 {
13677                                           lineCount();
13678                                           if (current->bodyLine==-1)
13679                                           {
13680                                             current->bodyLine=yyLineNr;
13681                                           }
13682                                           docBlockContext   = YY_START;
13683                                           docBlockInBody    = FALSE;
13684                                           docBlockAutoBrief = ( scanYYtext[scanYYleng-2]=='*' && Config_getBool("JAVADOC_AUTOBRIEF") ) ||
13685                                                               ( scanYYtext[scanYYleng-2]=='!' && Config_getBool("QT_AUTOBRIEF") );
13686                                           docBlock.resize(0);
13687                                           docBlockTerm = ';';
13688                                           if (YY_START==EnumBaseType && current->section==Entry::ENUM_SEC)
13689                                           {
13690                                             current->bitfields = ":"+current->args;
13691                                             current->args.resize(0);
13692                                             current->section=Entry::VARIABLE_SEC;
13693                                           }
13694                                           if (scanYYtext[scanYYleng-3]=='/')
13695                                           {
13696                                             startCommentBlock(TRUE);
13697                                             BEGIN( DocLine );
13698                                           }
13699                                           else
13700                                           {
13701                                             startCommentBlock(FALSE);
13702                                             BEGIN( DocBlock );
13703                                           }
13704                                         }
13705         YY_BREAK
13706 case 232:
13707 /* rule 232 can match eol */
13708 YY_RULE_SETUP
13709 #line 2476 "scanner.l"
13710 {
13711                                           lineCount();
13712                                           docBlockContext   = YY_START;
13713                                           docBlockInBody    = FALSE;
13714                                           docBlockAutoBrief = ( scanYYtext[scanYYleng-2]=='*' && Config_getBool("JAVADOC_AUTOBRIEF") ) ||
13715                                                               ( scanYYtext[scanYYleng-2]=='!' && Config_getBool("QT_AUTOBRIEF") );
13716                                           docBlock.resize(0);
13717                                           docBlockTerm = ',';
13718                                           if (YY_START==EnumBaseType && current->section==Entry::ENUM_SEC)
13719                                           {
13720                                             current->bitfields = ":"+current->args;
13721                                             current->args.resize(0);
13722                                             current->section=Entry::VARIABLE_SEC;
13723                                           }
13724                                           if (scanYYtext[scanYYleng-3]=='/')
13725                                           {
13726                                             startCommentBlock(TRUE);
13727                                             BEGIN( DocLine );
13728                                           }
13729                                           else
13730                                           {
13731                                             startCommentBlock(FALSE);
13732                                             BEGIN( DocBlock );
13733                                           }
13734                                         }
13735         YY_BREAK
13736 case 233:
13737 /* rule 233 can match eol */
13738 YY_RULE_SETUP
13739 #line 2501 "scanner.l"
13740 {
13741                                           lineCount();
13742                                           if (current->bodyLine==-1)
13743                                           {
13744                                             current->bodyLine=yyLineNr;
13745                                           }
13746                                           docBlockContext   = YY_START;
13747                                           docBlockInBody    = FALSE;
13748                                           docBlockAutoBrief = ( scanYYtext[scanYYleng-2]=='*' && Config_getBool("JAVADOC_AUTOBRIEF") ) ||
13749                                                               ( scanYYtext[scanYYleng-2]=='!' && Config_getBool("QT_AUTOBRIEF") );
13750                                           docBlock.resize(0);
13751                                           docBlockTerm = 0;
13752                                           if (scanYYtext[scanYYleng-3]=='/')
13753                                           {
13754                                             startCommentBlock(TRUE);
13755                                             BEGIN( DocLine );
13756                                           }
13757                                           else
13758                                           {
13759                                             startCommentBlock(FALSE);
13760                                             BEGIN( DocBlock );
13761                                           }
13762                                         }
13763         YY_BREAK
13764 case 234:
13765 YY_RULE_SETUP
13766 #line 2525 "scanner.l"
13767 {
13768                                           //handleGroupStartCommand(current->name);
13769                                           if (previous && previous->section==Entry::GROUPDOC_SEC)
13770                                           {
13771                                             // link open command to the group defined in the previous entry
13772                                             openGroup(previous,yyFileName,yyLineNr);
13773                                           }
13774                                           else
13775                                           {
13776                                             // link open command to the current entry
13777                                             openGroup(current,yyFileName,yyLineNr);
13778                                           }
13779                                           //current = tmp;
13780                                           initEntry();
13781                                           if (scanYYtext[1]=='/')
13782                                           {
13783                                             if (scanYYtext[2]=='!' || scanYYtext[2]=='/')
13784                                             {
13785                                               docBlockContext   = YY_START;
13786                                               docBlockInBody    = FALSE;
13787                                               docBlockAutoBrief = FALSE;
13788                                               docBlock.resize(0);
13789                                               docBlockTerm = 0;
13790                                               startCommentBlock(TRUE);
13791                                               BEGIN(DocLine);
13792                                             }
13793                                             else
13794                                             {
13795                                               lastCContext=YY_START;
13796                                               BEGIN(SkipCxxComment);
13797                                             }
13798                                           }
13799                                           else
13800                                           {
13801                                             if (scanYYtext[2]=='!' || scanYYtext[2]=='*')
13802                                             {
13803                                               docBlockContext   = YY_START;
13804                                               docBlockInBody    = FALSE;
13805                                               docBlock.resize(0);
13806                                               docBlockAutoBrief = ( scanYYtext[scanYYleng-2]=='*' && Config_getBool("JAVADOC_AUTOBRIEF") ) ||
13807                                                                   ( scanYYtext[scanYYleng-2]=='!' && Config_getBool("QT_AUTOBRIEF") );
13808                                               docBlockTerm = 0;
13809                                               startCommentBlock(FALSE);
13810                                               BEGIN(DocBlock);
13811                                             }
13812                                             else
13813                                             {
13814                                               lastCContext=YY_START;
13815                                               BEGIN(SkipComment);
13816                                             }
13817                                           }
13818                                         }
13819         YY_BREAK
13820 case 235:
13821 /* rule 235 can match eol */
13822 YY_RULE_SETUP
13823 #line 2577 "scanner.l"
13824 {
13825                                           closeGroup(current,yyFileName,yyLineNr);
13826                                         }
13827         YY_BREAK
13828 case 236:
13829 YY_RULE_SETUP
13830 #line 2580 "scanner.l"
13831 { // in PHP code this could also be due to "<?="
13832                                           current->bodyLine = yyLineNr;
13833                                           current->initializer = scanYYtext;
13834                                           lastInitializerContext = YY_START;
13835                                           initBracketCount=0;
13836                                           BEGIN(ReadInitializer);
13837                                         }
13838         YY_BREAK
13839 /* Read initializer rules */
13840 case 237:
13841 YY_RULE_SETUP
13842 #line 2588 "scanner.l"
13843 {
13844                                           lastRoundContext=YY_START;
13845                                           pCopyRoundGString=&current->initializer;
13846                                           roundCount=0;
13847                                           current->initializer+=*scanYYtext; 
13848                                           BEGIN(GCopyRound);
13849                                         }
13850         YY_BREAK
13851 case 238:
13852 YY_RULE_SETUP
13853 #line 2595 "scanner.l"
13854 {
13855                                           lastCurlyContext=YY_START;
13856                                           pCopyCurlyGString=&current->initializer;
13857                                           curlyCount=0;
13858                                           current->initializer+=*scanYYtext; 
13859                                           BEGIN(GCopyCurly);
13860                                         }
13861         YY_BREAK
13862 case 239:
13863 YY_RULE_SETUP
13864 #line 2602 "scanner.l"
13865 {
13866                                           //printf(">> initializer `%s' <<\n",current->initializer.data());
13867                                           if (*scanYYtext==';' && (current_root->spec&Entry::Enum))
13868                                           {
13869                                             current->fileName   = yyFileName;
13870                                             current->startLine  = yyLineNr;
13871                                             current->args       = current->args.simplifyWhiteSpace();
13872                                             current->name       = current->name.stripWhiteSpace();
13873                                             current->section    = Entry::VARIABLE_SEC;
13874                                             current_root->addSubEntry(current);
13875                                             current = new Entry;
13876                                             initEntry();
13877                                             BEGIN(FindMembers);
13878                                           }
13879                                           else if (*scanYYtext==';' || (lastInitializerContext==FindFields && initBracketCount==0)) // initBracketCount==0 was added for bug 665778
13880                                           {
13881                                             unput(*scanYYtext);
13882                                             BEGIN(lastInitializerContext);
13883                                           }
13884                                           else if (*scanYYtext==',' && initBracketCount==0) // for "int a=0,b=0"
13885                                           {
13886                                             unput(*scanYYtext);
13887                                             BEGIN(lastInitializerContext);
13888                                           }
13889                                           else
13890                                           {
13891                                             current->initializer+=*scanYYtext; 
13892                                           }
13893                                         }
13894         YY_BREAK
13895 case 240:
13896 /* rule 240 can match eol */
13897 YY_RULE_SETUP
13898 #line 2631 "scanner.l"
13899 { // C++11 raw string
13900                                           if (!insideCpp)
13901                                           { 
13902                                             REJECT;
13903                                           }
13904                                           else
13905                                           {
13906                                             QCString text=scanYYtext;
13907                                             current->initializer+=text;
13908                                             int i=text.find('"');
13909                                             g_delimiter = scanYYtext+i+1;
13910                                             g_delimiter=g_delimiter.left(g_delimiter.length()-1);
13911                                             lastRawStringContext = YY_START;
13912                                             pCopyRawGString = &current->initializer;
13913                                             BEGIN(RawGString);
13914                                             //printf("RawGString delimiter='%s'\n",delimiter.data());
13915                                           }
13916                                         }
13917         YY_BREAK
13918 case 241:
13919 /* rule 241 can match eol */
13920 YY_RULE_SETUP
13921 #line 2649 "scanner.l"
13922 {
13923                                           *pCopyRawGString+=scanYYtext;
13924                                           QCString delimiter = scanYYtext+1;
13925                                           delimiter=delimiter.left(delimiter.length()-1);
13926                                           if (delimiter==g_delimiter)
13927                                           {
13928                                             BEGIN(lastRawStringContext);
13929                                           }
13930                                         }
13931         YY_BREAK
13932 case 242:
13933 /* rule 242 can match eol */
13934 YY_RULE_SETUP
13935 #line 2658 "scanner.l"
13936 {
13937                                           *pCopyRawGString+=scanYYtext;
13938                                         }
13939         YY_BREAK
13940 case 243:
13941 YY_RULE_SETUP
13942 #line 2661 "scanner.l"
13943 {
13944                                           *pCopyRawGString+=scanYYtext;
13945                                         }
13946         YY_BREAK
13947 case 244:
13948 /* rule 244 can match eol */
13949 YY_RULE_SETUP
13950 #line 2664 "scanner.l"
13951 {
13952                                           *pCopyRawGString+=scanYYtext;
13953                                           lineCount();
13954                                         }
13955         YY_BREAK
13956 case 245:
13957 /* rule 245 can match eol */
13958 YY_RULE_SETUP
13959 #line 2668 "scanner.l"
13960 {
13961                                           *pCopyRawString+=scanYYtext;
13962                                           fullArgString+=scanYYtext;
13963                                           QCString delimiter = scanYYtext+1;
13964                                           delimiter=delimiter.left(delimiter.length()-1);
13965                                           if (delimiter==g_delimiter)
13966                                           {
13967                                             BEGIN(lastRawStringContext);
13968                                           }
13969                                         }
13970         YY_BREAK
13971 case 246:
13972 /* rule 246 can match eol */
13973 YY_RULE_SETUP
13974 #line 2678 "scanner.l"
13975 {
13976                                           *pCopyRawString+=scanYYtext;
13977                                           fullArgString+=scanYYtext;
13978                                         }
13979         YY_BREAK
13980 case 247:
13981 YY_RULE_SETUP
13982 #line 2682 "scanner.l"
13983 {
13984                                           *pCopyRawString+=scanYYtext;
13985                                           fullArgString+=scanYYtext;
13986                                         }
13987         YY_BREAK
13988 case 248:
13989 /* rule 248 can match eol */
13990 YY_RULE_SETUP
13991 #line 2686 "scanner.l"
13992 {
13993                                           *pCopyRawString+=scanYYtext;
13994                                           fullArgString+=scanYYtext;
13995                                           lineCount();
13996                                         }
13997         YY_BREAK
13998 case 249:
13999 YY_RULE_SETUP
14000 #line 2691 "scanner.l"
14001 {
14002                                           if (insideIDL && insideCppQuote)
14003                                           {
14004                                             BEGIN(EndCppQuote);
14005                                           }
14006                                           else
14007                                           {
14008                                             lastStringContext=YY_START;
14009                                             current->initializer+=scanYYtext; 
14010                                             pCopyQuotedGString=&current->initializer;
14011                                             BEGIN(CopyGString);
14012                                           }
14013                                         }
14014         YY_BREAK
14015 case 250:
14016 YY_RULE_SETUP
14017 #line 2704 "scanner.l"
14018 {
14019                                           current->initializer+=scanYYtext; 
14020                                         }
14021         YY_BREAK
14022 case 251:
14023 YY_RULE_SETUP
14024 #line 2707 "scanner.l"
14025 {
14026                                           current->initializer+=scanYYtext; 
14027                                         }
14028         YY_BREAK
14029 case 252:
14030 YY_RULE_SETUP
14031 #line 2710 "scanner.l"
14032 {
14033                                           current->initializer+=scanYYtext; 
14034                                         }
14035         YY_BREAK
14036 case 253:
14037 YY_RULE_SETUP
14038 #line 2713 "scanner.l"
14039 {
14040                                           initBracketCount++;
14041                                           current->initializer+=*scanYYtext; 
14042                                         }
14043         YY_BREAK
14044 case 254:
14045 YY_RULE_SETUP
14046 #line 2717 "scanner.l"
14047 {
14048                                           initBracketCount--;
14049                                           current->initializer+=*scanYYtext; 
14050                                         }
14051         YY_BREAK
14052 case 255:
14053 YY_RULE_SETUP
14054 #line 2721 "scanner.l"
14055 {       
14056                                           if (insidePHP)
14057                                           {
14058                                             current->initializer+=scanYYtext; 
14059                                             pCopyQuotedGString = &current->initializer;
14060                                             lastStringContext=YY_START;
14061                                             BEGIN(CopyPHPGString);
14062                                           }
14063                                           else
14064                                           {
14065                                             current->initializer+=scanYYtext; 
14066                                           }
14067                                         }
14068         YY_BREAK
14069 case 256:
14070 YY_RULE_SETUP
14071 #line 2734 "scanner.l"
14072
14073                                           if (insidePHP) 
14074                                           {
14075                                             REJECT;
14076                                           }
14077                                           else
14078                                           {  
14079                                             current->initializer+=scanYYtext; 
14080                                           }
14081                                         } 
14082         YY_BREAK
14083 case 257:
14084 /* rule 257 can match eol */
14085 YY_RULE_SETUP
14086 #line 2744 "scanner.l"
14087 {
14088                                           current->initializer+=*scanYYtext;
14089                                           lineCount();
14090                                         }
14091         YY_BREAK
14092 case 258:
14093 YY_RULE_SETUP
14094 #line 2748 "scanner.l"
14095
14096                                           //printf("insideCS=%d\n",insideCS);
14097                                           current->initializer+=scanYYtext;
14098                                           if (!insideCS && !insideObjC) 
14099                                           {
14100                                             REJECT;
14101                                           }
14102                                           else
14103                                           {
14104                                             // C#/ObjC verbatim string
14105                                             lastSkipVerbStringContext=YY_START;
14106                                             pSkipVerbString=&current->initializer;
14107                                             BEGIN(SkipVerbString);
14108                                           }
14109                                         }
14110         YY_BREAK
14111 case 259:
14112 YY_RULE_SETUP
14113 #line 2763 "scanner.l"
14114 {
14115                                           *pSkipVerbString+=scanYYtext;
14116                                         }
14117         YY_BREAK
14118 case 260:
14119 YY_RULE_SETUP
14120 #line 2766 "scanner.l"
14121 { // quote escape
14122                                           *pSkipVerbString+=scanYYtext;
14123                                         }
14124         YY_BREAK
14125 case 261:
14126 YY_RULE_SETUP
14127 #line 2769 "scanner.l"
14128 {
14129                                           *pSkipVerbString+=*scanYYtext;
14130                                           BEGIN(lastSkipVerbStringContext);
14131                                         }
14132         YY_BREAK
14133 case 262:
14134 /* rule 262 can match eol */
14135 YY_RULE_SETUP
14136 #line 2773 "scanner.l"
14137 {
14138                                           *pSkipVerbString+=*scanYYtext;
14139                                           lineCount();
14140                                         }
14141         YY_BREAK
14142 case 263:
14143 YY_RULE_SETUP
14144 #line 2777 "scanner.l"
14145 {
14146                                           *pSkipVerbString+=*scanYYtext;
14147                                         }
14148         YY_BREAK
14149 case 264:
14150 YY_RULE_SETUP
14151 #line 2780 "scanner.l"
14152 {
14153                                           if (insidePHP)
14154                                             BEGIN( FindMembersPHP );
14155                                           else
14156                                             current->initializer+=scanYYtext;
14157                                         }
14158         YY_BREAK
14159 case 265:
14160 YY_RULE_SETUP
14161 #line 2786 "scanner.l"
14162
14163                                           current->initializer+=*scanYYtext; 
14164                                         }
14165         YY_BREAK
14166 /* generic quoted string copy rules */
14167 case 266:
14168 YY_RULE_SETUP
14169 #line 2791 "scanner.l"
14170 {
14171                                           *pCopyQuotedString+=scanYYtext;
14172                                         }
14173         YY_BREAK
14174 case 267:
14175 YY_RULE_SETUP
14176 #line 2794 "scanner.l"
14177
14178                                           *pCopyQuotedString+=*scanYYtext;
14179                                           BEGIN( lastStringContext ); 
14180                                         }
14181         YY_BREAK
14182 case 268:
14183 YY_RULE_SETUP
14184 #line 2798 "scanner.l"
14185
14186                                           *pCopyQuotedString+=*scanYYtext;
14187                                           BEGIN( lastStringContext ); 
14188                                         }
14189         YY_BREAK
14190 case 269:
14191 YY_RULE_SETUP
14192 #line 2802 "scanner.l"
14193 {
14194                                           *pCopyQuotedString+=scanYYtext;
14195                                         }
14196         YY_BREAK
14197 case 270:
14198 /* rule 270 can match eol */
14199 YY_RULE_SETUP
14200 #line 2805 "scanner.l"
14201 {
14202                                           *pCopyQuotedString+=*scanYYtext;
14203                                           lineCount();
14204                                         }
14205         YY_BREAK
14206 case 271:
14207 YY_RULE_SETUP
14208 #line 2809 "scanner.l"
14209 {
14210                                           *pCopyQuotedString+=*scanYYtext;
14211                                         }
14212         YY_BREAK
14213 /* generic quoted growable string copy rules */
14214 case 272:
14215 YY_RULE_SETUP
14216 #line 2814 "scanner.l"
14217 {
14218                                           *pCopyQuotedGString+=scanYYtext;
14219                                         }
14220         YY_BREAK
14221 case 273:
14222 YY_RULE_SETUP
14223 #line 2817 "scanner.l"
14224
14225                                           *pCopyQuotedGString+=*scanYYtext;
14226                                           BEGIN( lastStringContext ); 
14227                                         }
14228         YY_BREAK
14229 case 274:
14230 YY_RULE_SETUP
14231 #line 2821 "scanner.l"
14232
14233                                           *pCopyQuotedGString+=*scanYYtext;
14234                                           BEGIN( lastStringContext ); 
14235                                         }
14236         YY_BREAK
14237 case 275:
14238 YY_RULE_SETUP
14239 #line 2825 "scanner.l"
14240 {
14241                                           *pCopyQuotedGString+=scanYYtext;
14242                                         }
14243         YY_BREAK
14244 case 276:
14245 /* rule 276 can match eol */
14246 YY_RULE_SETUP
14247 #line 2828 "scanner.l"
14248 {
14249                                           *pCopyQuotedGString+=*scanYYtext;
14250                                           lineCount();
14251                                         }
14252         YY_BREAK
14253 case 277:
14254 YY_RULE_SETUP
14255 #line 2832 "scanner.l"
14256 {
14257                                           *pCopyQuotedGString+=*scanYYtext;
14258                                         }
14259         YY_BREAK
14260 /* generic round bracket list copy rules */
14261 case 278:
14262 YY_RULE_SETUP
14263 #line 2837 "scanner.l"
14264 {
14265                                           *pCopyRoundString+=*scanYYtext;
14266                                           pCopyQuotedString=pCopyRoundString;
14267                                           lastStringContext=YY_START;
14268                                           BEGIN(CopyString);
14269                                         }
14270         YY_BREAK
14271 case 279:
14272 YY_RULE_SETUP
14273 #line 2843 "scanner.l"
14274 {
14275                                           *pCopyRoundString+=*scanYYtext;
14276                                           roundCount++;
14277                                         }
14278         YY_BREAK
14279 case 280:
14280 YY_RULE_SETUP
14281 #line 2847 "scanner.l"
14282 {
14283                                           *pCopyRoundString+=*scanYYtext;
14284                                           if (--roundCount<0)
14285                                             BEGIN(lastRoundContext);
14286                                         }
14287         YY_BREAK
14288 case 281:
14289 /* rule 281 can match eol */
14290 YY_RULE_SETUP
14291 #line 2852 "scanner.l"
14292 {
14293                                           lineCount();
14294                                           *pCopyRoundString+=*scanYYtext;
14295                                         }
14296         YY_BREAK
14297 case 282:
14298 YY_RULE_SETUP
14299 #line 2856 "scanner.l"
14300 {
14301                                           if (insidePHP)
14302                                           {
14303                                             current->initializer+=scanYYtext; 
14304                                             pCopyQuotedString = pCopyRoundString;
14305                                             lastStringContext=YY_START;
14306                                             BEGIN(CopyPHPString);
14307                                           }
14308                                           else
14309                                           {
14310                                             *pCopyRoundString+=scanYYtext;
14311                                           }
14312                                         }
14313         YY_BREAK
14314 case 283:
14315 YY_RULE_SETUP
14316 #line 2869 "scanner.l"
14317
14318                                           if (insidePHP)
14319                                           {
14320                                             REJECT;
14321                                           }
14322                                           else
14323                                           {
14324                                             *pCopyRoundString+=scanYYtext; 
14325                                           }
14326                                         }
14327         YY_BREAK
14328 case 284:
14329 YY_RULE_SETUP
14330 #line 2879 "scanner.l"
14331 {
14332                                           *pCopyRoundString+=scanYYtext;
14333                                         }
14334         YY_BREAK
14335 case 285:
14336 YY_RULE_SETUP
14337 #line 2882 "scanner.l"
14338 {
14339                                           *pCopyRoundString+=*scanYYtext;
14340                                         }
14341         YY_BREAK
14342 /* generic round bracket list copy rules for growable strings */
14343 case 286:
14344 YY_RULE_SETUP
14345 #line 2887 "scanner.l"
14346 {
14347                                           *pCopyRoundGString+=*scanYYtext;
14348                                           pCopyQuotedGString=pCopyRoundGString;
14349                                           lastStringContext=YY_START;
14350                                           BEGIN(CopyGString);
14351                                         }
14352         YY_BREAK
14353 case 287:
14354 YY_RULE_SETUP
14355 #line 2893 "scanner.l"
14356 {
14357                                           *pCopyRoundGString+=*scanYYtext;
14358                                           roundCount++;
14359                                         }
14360         YY_BREAK
14361 case 288:
14362 YY_RULE_SETUP
14363 #line 2897 "scanner.l"
14364 {
14365                                           *pCopyRoundGString+=*scanYYtext;
14366                                           if (--roundCount<0)
14367                                             BEGIN(lastRoundContext);
14368                                         }
14369         YY_BREAK
14370 case 289:
14371 /* rule 289 can match eol */
14372 YY_RULE_SETUP
14373 #line 2902 "scanner.l"
14374 {
14375                                           lineCount();
14376                                           *pCopyRoundGString+=*scanYYtext;
14377                                         }
14378         YY_BREAK
14379 case 290:
14380 YY_RULE_SETUP
14381 #line 2906 "scanner.l"
14382 {
14383                                           if (insidePHP)
14384                                           {
14385                                             current->initializer+=scanYYtext; 
14386                                             pCopyQuotedGString = pCopyRoundGString;
14387                                             lastStringContext=YY_START;
14388                                             BEGIN(CopyPHPGString);
14389                                           }
14390                                           else
14391                                           {
14392                                             *pCopyRoundGString+=scanYYtext;
14393                                           }
14394                                         }
14395         YY_BREAK
14396 case 291:
14397 YY_RULE_SETUP
14398 #line 2919 "scanner.l"
14399
14400                                           if (insidePHP)
14401                                           {
14402                                             REJECT;
14403                                           }
14404                                           else
14405                                           {
14406                                             *pCopyRoundGString+=scanYYtext; 
14407                                           }
14408                                         }
14409         YY_BREAK
14410 case 292:
14411 YY_RULE_SETUP
14412 #line 2929 "scanner.l"
14413 {
14414                                           *pCopyRoundGString+=scanYYtext;
14415                                         }
14416         YY_BREAK
14417 case 293:
14418 YY_RULE_SETUP
14419 #line 2932 "scanner.l"
14420 {
14421                                           *pCopyRoundGString+=*scanYYtext;
14422                                         }
14423         YY_BREAK
14424 /* generic curly bracket list copy rules */
14425 case 294:
14426 YY_RULE_SETUP
14427 #line 2937 "scanner.l"
14428 {
14429                                           *pCopyCurlyString+=*scanYYtext;
14430                                           pCopyQuotedString=pCopyCurlyString;
14431                                           lastStringContext=YY_START;
14432                                           BEGIN(CopyString);
14433                                         }
14434         YY_BREAK
14435 case 295:
14436 YY_RULE_SETUP
14437 #line 2943 "scanner.l"
14438 {
14439                                           *pCopyCurlyString+=*scanYYtext;
14440                                           if (insidePHP)
14441                                           {
14442                                             pCopyQuotedString=pCopyCurlyString;
14443                                             lastStringContext=YY_START;
14444                                             BEGIN(CopyPHPString);
14445                                           }
14446                                         }
14447         YY_BREAK
14448 case 296:
14449 YY_RULE_SETUP
14450 #line 2952 "scanner.l"
14451 {
14452                                           *pCopyCurlyString+=*scanYYtext;
14453                                           curlyCount++;
14454                                         }
14455         YY_BREAK
14456 case 297:
14457 YY_RULE_SETUP
14458 #line 2956 "scanner.l"
14459 {
14460                                           *pCopyCurlyString+=*scanYYtext;
14461                                           if (--curlyCount<0)
14462                                             BEGIN(lastCurlyContext); 
14463                                         }
14464         YY_BREAK
14465 case 298:
14466 YY_RULE_SETUP
14467 #line 2961 "scanner.l"
14468 { if (insidePHP) 
14469                                           { 
14470                                             REJECT; 
14471                                           } 
14472                                           else 
14473                                           {
14474                                             *pCopyCurlyString+=scanYYtext; 
14475                                           }
14476                                         }
14477         YY_BREAK
14478 case 299:
14479 YY_RULE_SETUP
14480 #line 2970 "scanner.l"
14481 {
14482                                           *pCopyCurlyString+=scanYYtext;
14483                                         }
14484         YY_BREAK
14485 case 300:
14486 YY_RULE_SETUP
14487 #line 2973 "scanner.l"
14488 { *pCopyCurlyString+=scanYYtext; }
14489         YY_BREAK
14490 case 301:
14491 /* rule 301 can match eol */
14492 YY_RULE_SETUP
14493 #line 2974 "scanner.l"
14494 {
14495                                           lineCount();
14496                                           *pCopyCurlyString+=*scanYYtext;
14497                                         }
14498         YY_BREAK
14499 case 302:
14500 YY_RULE_SETUP
14501 #line 2978 "scanner.l"
14502 {
14503                                           *pCopyCurlyString+=*scanYYtext;
14504                                         }
14505         YY_BREAK
14506 /* generic curly bracket list copy rules for growable strings */
14507 case 303:
14508 /* rule 303 can match eol */
14509 YY_RULE_SETUP
14510 #line 2983 "scanner.l"
14511 { // start of included file marker
14512                                         }
14513         YY_BREAK
14514 case 304:
14515 /* rule 304 can match eol */
14516 YY_RULE_SETUP
14517 #line 2985 "scanner.l"
14518 { // end of included file marker
14519                                           QCString line = QCString(scanYYtext);
14520                                           int s = line.find(' ');
14521                                           int e = line.find('"',s);
14522                                           yyLineNr = line.mid(s,e-s).toInt();
14523                                           if (scanYYtext[scanYYleng-1]=='\n')
14524                                           {
14525                                             yyLineNr++;
14526                                             g_column=0;
14527                                           }
14528                                         }
14529         YY_BREAK
14530 case 305:
14531 YY_RULE_SETUP
14532 #line 2996 "scanner.l"
14533 {
14534                                           *pCopyCurlyGString+=*scanYYtext;
14535                                           pCopyQuotedGString=pCopyCurlyGString;
14536                                           lastStringContext=YY_START;
14537                                           BEGIN(CopyGString);
14538                                         }
14539         YY_BREAK
14540 case 306:
14541 YY_RULE_SETUP
14542 #line 3002 "scanner.l"
14543 {
14544                                           *pCopyCurlyGString+=*scanYYtext;
14545                                           if (insidePHP)
14546                                           {
14547                                             pCopyQuotedGString=pCopyCurlyGString;
14548                                             lastStringContext=YY_START;
14549                                             BEGIN(CopyPHPGString);
14550                                           }
14551                                         }
14552         YY_BREAK
14553 case 307:
14554 YY_RULE_SETUP
14555 #line 3011 "scanner.l"
14556 {
14557                                           *pCopyCurlyGString+=*scanYYtext;
14558                                           curlyCount++;
14559                                         }
14560         YY_BREAK
14561 case 308:
14562 YY_RULE_SETUP
14563 #line 3015 "scanner.l"
14564 {
14565                                           *pCopyCurlyGString+=*scanYYtext;
14566                                           if (--curlyCount<0)
14567                                             BEGIN(lastCurlyContext); 
14568                                         }
14569         YY_BREAK
14570 case 309:
14571 YY_RULE_SETUP
14572 #line 3020 "scanner.l"
14573 { if (insidePHP) 
14574                                           { 
14575                                             REJECT; 
14576                                           } 
14577                                           else 
14578                                           {
14579                                             *pCopyCurlyGString+=scanYYtext; 
14580                                           }
14581                                         }
14582         YY_BREAK
14583 case 310:
14584 YY_RULE_SETUP
14585 #line 3029 "scanner.l"
14586 {
14587                                           *pCopyCurlyGString+=scanYYtext;
14588                                         }
14589         YY_BREAK
14590 case 311:
14591 YY_RULE_SETUP
14592 #line 3032 "scanner.l"
14593 { *pCopyCurlyGString+=scanYYtext; }
14594         YY_BREAK
14595 case 312:
14596 /* rule 312 can match eol */
14597 YY_RULE_SETUP
14598 #line 3033 "scanner.l"
14599 {
14600                                           lineCount();
14601                                           *pCopyCurlyGString+=*scanYYtext;
14602                                         }
14603         YY_BREAK
14604 case 313:
14605 YY_RULE_SETUP
14606 #line 3037 "scanner.l"
14607 {
14608                                           *pCopyCurlyGString+=*scanYYtext;
14609                                         }
14610         YY_BREAK
14611 /* ---------------------- */
14612 case 314:
14613 YY_RULE_SETUP
14614 #line 3044 "scanner.l"
14615 {
14616                                           if (current->type.isEmpty()) // anonymous padding field, e.g. "int :7;"
14617                                           {
14618                                             addType(current);
14619                                             current->name.sprintf("__pad%d__",padCount++);
14620                                           }
14621                                           BEGIN(BitFields);
14622                                           current->bitfields+=":";
14623                                         }
14624         YY_BREAK
14625 case 315:
14626 YY_RULE_SETUP
14627 #line 3053 "scanner.l"
14628 {
14629                                           current->bitfields+=*scanYYtext;
14630                                         }
14631         YY_BREAK
14632 case 316:
14633 YY_RULE_SETUP
14634 #line 3056 "scanner.l"
14635 {
14636                                           current->args+=*scanYYtext;
14637                                         }
14638         YY_BREAK
14639 case 317:
14640 /* rule 317 can match eol */
14641 YY_RULE_SETUP
14642 #line 3059 "scanner.l"
14643 {
14644                                           lineCount();
14645                                         }
14646         YY_BREAK
14647 case 318:
14648 YY_RULE_SETUP
14649 #line 3062 "scanner.l"
14650
14651                                           QCString oldType = current->type;
14652                                           if (current->bodyLine==-1)
14653                                           {
14654                                             current->bodyLine = yyLineNr;
14655                                           }
14656                                           if ( insidePHP && current->type.left(3) == "var" )
14657                                           {
14658                                             current->type = current->type.mid(3);
14659                                           }
14660                                           if (isTypedef && current->type.left(8)!="typedef ")
14661                                           {
14662                                             current->type.prepend("typedef ");
14663                                           }
14664                                           bool needNewCurrent=FALSE;
14665                                           if (!current->name.isEmpty() && current->section!=Entry::ENUM_SEC)
14666                                           {
14667                                             current->type=current->type.simplifyWhiteSpace();
14668                                             current->args=removeRedundantWhiteSpace(current->args);
14669                                             current->name=current->name.stripWhiteSpace();
14670                                             if (current->section==Entry::CLASS_SEC) // remove spec for "struct Bla bla;"
14671                                             {
14672                                                 current->spec = 0;
14673                                             }
14674                                             current->section = Entry::VARIABLE_SEC ;
14675                                             current->fileName = yyFileName;
14676                                             current->startLine = yyLineNr;
14677                                             current_root->addSubEntry( current ) ;
14678                                             needNewCurrent=TRUE;
14679                                           }
14680                                           if ( *scanYYtext == ',')
14681                                           {
14682                                             bool stat = current->stat;
14683                                             if (needNewCurrent)
14684                                             {
14685                                               current = new Entry(*current);
14686                                               initEntry();
14687                                             }
14688                                             current->stat = stat; // the static attribute holds for all variables
14689                                             current->name.resize(0);
14690                                             current->args.resize(0);
14691                                             current->brief.resize(0);
14692                                             current->doc.resize(0);
14693                                             current->initializer.resize(0);
14694                                             current->bitfields.resize(0);
14695                                             int i=oldType.length(); 
14696                                             while (i>0 && (oldType[i-1]=='*' || oldType[i-1]=='&' || oldType[i-1]==' ')) i--;
14697                                             current->type = oldType.left(i);
14698                                           }
14699                                           else
14700                                           {
14701                                             if (needNewCurrent)
14702                                             {
14703                                               current = new Entry ;
14704                                             }
14705                                             else if (current->groups)
14706                                             {
14707                                               current->groups->clear();
14708                                             }
14709                                             initEntry();
14710                                           }
14711                                         }
14712         YY_BREAK
14713 case 319:
14714 YY_RULE_SETUP
14715 #line 3125 "scanner.l"
14716
14717                                           if (!insideCS &&  
14718                                               (current->name.isEmpty() || 
14719                                                current->name=="typedef"
14720                                               )
14721                                              ) // IDL function property
14722                                           {
14723                                             squareCount=1;
14724                                             lastSquareContext = YY_START;
14725                                             idlAttr.resize(0);
14726                                             idlProp.resize(0);
14727                                             current->mtype = mtype;
14728                                             BEGIN( IDLAttribute );
14729                                           }
14730                                           else if (insideCS &&
14731                                                   current->name.isEmpty())
14732                                           {
14733                                             squareCount=1;
14734                                             lastSquareContext = YY_START;
14735                                             // Skip the C# attribute
14736                                             // for this member
14737                                             current->args.resize(0);
14738                                             BEGIN( SkipSquare );
14739                                           }
14740                                           else
14741                                           {
14742                                             current->args += scanYYtext ;
14743                                             squareCount=1;
14744                                             BEGIN( Array ) ;
14745                                           }
14746                                         }
14747         YY_BREAK
14748 case 320:
14749 YY_RULE_SETUP
14750 #line 3156 "scanner.l"
14751 {
14752                                           // end of IDL function attribute
14753                                           if (--squareCount<=0)
14754                                           {
14755                                             lineCount();
14756                                             if (current->mtype == Property)
14757                                               BEGIN( IDLPropName );
14758                                             else
14759                                               BEGIN( lastSquareContext );
14760                                           }
14761                                         }
14762         YY_BREAK
14763 case 321:
14764 YY_RULE_SETUP
14765 #line 3167 "scanner.l"
14766 {
14767                                           if (Config_getBool("IDL_PROPERTY_SUPPORT"))
14768                                           {
14769                                             current->mtype = Property;
14770                                           }
14771                                           current->spec |= Entry::Settable;
14772                                         }
14773         YY_BREAK
14774 case 322:
14775 YY_RULE_SETUP
14776 #line 3174 "scanner.l"
14777 {
14778                                           if (Config_getBool("IDL_PROPERTY_SUPPORT"))
14779                                           {
14780                                             current->mtype = Property;
14781                                           }
14782                                           current->spec |= Entry::Gettable;
14783                                         }
14784         YY_BREAK
14785 case 323:
14786 YY_RULE_SETUP
14787 #line 3181 "scanner.l"
14788 {
14789                                         }
14790         YY_BREAK
14791 case 324:
14792 /* rule 324 can match eol */
14793 YY_RULE_SETUP
14794 #line 3183 "scanner.l"
14795 {
14796                                           // return type (probably HRESULT) - skip it
14797                                         }
14798         YY_BREAK
14799 case 325:
14800 /* rule 325 can match eol */
14801 YY_RULE_SETUP
14802 #line 3186 "scanner.l"
14803 {
14804                                           current->name = scanYYtext;
14805                                           current->name = current->name.left(current->name.length()-1).stripWhiteSpace();
14806                                           current->startLine = yyLineNr;
14807                                           BEGIN( IDLProp );
14808                                         }
14809         YY_BREAK
14810 case 326:
14811 /* rule 326 can match eol */
14812 YY_RULE_SETUP
14813 #line 3192 "scanner.l"
14814 {  // attribute of a parameter
14815                                            idlAttr = scanYYtext;
14816                                            idlAttr=idlAttr.stripWhiteSpace();
14817                                         }
14818         YY_BREAK
14819 case 327:
14820 YY_RULE_SETUP
14821 #line 3196 "scanner.l"
14822 {  // property type
14823                                            idlProp = scanYYtext;
14824                                         }
14825         YY_BREAK
14826 case 328:
14827 /* rule 328 can match eol */
14828 YY_RULE_SETUP
14829 #line 3199 "scanner.l"
14830 {  // Rare: Another parameter ([propput] HRESULT Item(int index, [in] Type theRealProperty);)
14831                                           if (!current->args)
14832                                             current->args = "(";
14833                                           else
14834                                             current->args += ", ";
14835                                           current->args += idlAttr;
14836                                           current->args += " ";
14837                                           current->args += idlProp;     // prop was actually type of extra parameter
14838                                           current->args += " ";
14839                                           current->args += scanYYtext;
14840                                           current->args = current->args.left(current->args.length() - 1);       // strip comma
14841                                           idlProp.resize(0);
14842                                           idlAttr.resize(0);
14843                                           BEGIN( IDLProp );
14844                                         }
14845         YY_BREAK
14846 case 329:
14847 /* rule 329 can match eol */
14848 YY_RULE_SETUP
14849 #line 3214 "scanner.l"
14850 {
14851                                           // the parameter name for the property - just skip.
14852                                         }
14853         YY_BREAK
14854 case 330:
14855 YY_RULE_SETUP
14856 #line 3217 "scanner.l"
14857 {
14858                                           current->fileName   = yyFileName;
14859                                           current->type         = idlProp;
14860                                           current->args       = current->args.simplifyWhiteSpace();
14861                                           if (current->args)
14862                                             current->args += ")";
14863                                           current->name       = current->name.stripWhiteSpace();
14864                                           current->section    = Entry::VARIABLE_SEC;
14865                                           current_root->addSubEntry(current);
14866                                           current             = new Entry;
14867                                           initEntry();
14868                                           BEGIN( FindMembers );
14869                                         }
14870         YY_BREAK
14871 case 331:
14872 YY_RULE_SETUP
14873 #line 3230 "scanner.l"
14874 { // spaces, *, or other stuff
14875                                           //idlProp+=scanYYtext;
14876                                         }
14877         YY_BREAK
14878 case 332:
14879 YY_RULE_SETUP
14880 #line 3233 "scanner.l"
14881 { current->args += *scanYYtext ;
14882                                           if (--squareCount<=0)
14883                                              BEGIN( FindMembers ) ;
14884                                         }
14885         YY_BREAK
14886 case 333:
14887 YY_RULE_SETUP
14888 #line 3237 "scanner.l"
14889 { current->args += *scanYYtext ;
14890                                           if (--squareCount<=0)
14891                                              BEGIN( Function ) ;
14892                                         }
14893         YY_BREAK
14894 case 334:
14895 YY_RULE_SETUP
14896 #line 3241 "scanner.l"
14897 { current->args += *scanYYtext ;
14898                                           squareCount++;        
14899                                         }
14900         YY_BREAK
14901 case 335:
14902 YY_RULE_SETUP
14903 #line 3244 "scanner.l"
14904 { current->args += *scanYYtext ; }
14905         YY_BREAK
14906 case 336:
14907 YY_RULE_SETUP
14908 #line 3245 "scanner.l"
14909 { squareCount++; }
14910         YY_BREAK
14911 case 337:
14912 YY_RULE_SETUP
14913 #line 3246 "scanner.l"
14914 {
14915                                           if (--squareCount<=0)
14916                                             BEGIN( lastSquareContext );
14917                                         }
14918         YY_BREAK
14919 case 338:
14920 YY_RULE_SETUP
14921 #line 3250 "scanner.l"
14922 {
14923                                           lastStringContext=YY_START;
14924                                           BEGIN( SkipString ); 
14925                                         }
14926         YY_BREAK
14927 case 339:
14928 YY_RULE_SETUP
14929 #line 3254 "scanner.l"
14930
14931         YY_BREAK
14932 case 340:
14933 YY_RULE_SETUP
14934 #line 3255 "scanner.l"
14935 { addType( current ) ;
14936                                           current->type += scanYYtext ;
14937                                           BEGIN( Sharp ) ;
14938                                         }
14939         YY_BREAK
14940 case 341:
14941 YY_RULE_SETUP
14942 #line 3259 "scanner.l"
14943 { current->type += *scanYYtext ;
14944                                           if (--sharpCount<=0)
14945                                              BEGIN( FindMembers ) ;
14946                                         }
14947         YY_BREAK
14948 case 342:
14949 YY_RULE_SETUP
14950 #line 3263 "scanner.l"
14951 { current->type += *scanYYtext ;
14952                                           sharpCount++; 
14953                                         }
14954         YY_BREAK
14955 case 343:
14956 /* rule 343 can match eol */
14957 YY_RULE_SETUP
14958 #line 3266 "scanner.l"
14959 {
14960                                           lineCount();
14961                                         }
14962         YY_BREAK
14963 case 344:
14964 YY_RULE_SETUP
14965 #line 3269 "scanner.l"
14966 { current->type += *scanYYtext ; }
14967         YY_BREAK
14968 case 345:
14969 YY_RULE_SETUP
14970 #line 3270 "scanner.l"
14971 {
14972                                           current->bodyLine = yyLineNr;
14973                                           current->name     = scanYYtext;
14974                                         }
14975         YY_BREAK
14976 case 346:
14977 YY_RULE_SETUP
14978 #line 3274 "scanner.l"
14979 {
14980                                           // Java enum initializer
14981                                           unput('(');
14982                                           lastInitializerContext = YY_START;
14983                                           initBracketCount=0;
14984                                           current->initializer = "=";
14985                                           BEGIN(ReadInitializer);
14986                                         }
14987         YY_BREAK
14988 case 347:
14989 YY_RULE_SETUP
14990 #line 3282 "scanner.l"
14991 {
14992                                           lastInitializerContext = YY_START;
14993                                           initBracketCount=0;
14994                                           current->initializer = scanYYtext;
14995                                           BEGIN(ReadInitializer);
14996                                         }
14997         YY_BREAK
14998 case 348:
14999 YY_RULE_SETUP
15000 #line 3288 "scanner.l"
15001 {
15002                                           if (insideJava)  // last enum field in Java class
15003                                           {
15004                                             if (!current->name.isEmpty())
15005                                             {
15006                                               current->fileName   = yyFileName;
15007                                               current->startLine  = yyLineNr;
15008                                               current->type       = "@"; // enum marker
15009                                               current->args       = current->args.simplifyWhiteSpace();
15010                                               current->name       = current->name.stripWhiteSpace();
15011                                               current->section    = Entry::VARIABLE_SEC;
15012                                               current_root->addSubEntry(current);
15013                                               current             = new Entry ;
15014                                               initEntry();
15015                                             }
15016
15017                                             BEGIN( FindMembers );
15018                                           }
15019                                           else
15020                                           {
15021                                             REJECT;
15022                                           }
15023                                         }
15024         YY_BREAK
15025 case 349:
15026 /* rule 349 can match eol */
15027 YY_RULE_SETUP
15028 #line 3311 "scanner.l"
15029
15030                                           lineCount();
15031                                         }
15032         YY_BREAK
15033 case 350:
15034 YY_RULE_SETUP
15035 #line 3314 "scanner.l"
15036
15037         YY_BREAK
15038 case 351:
15039 YY_RULE_SETUP
15040 #line 3315 "scanner.l"
15041 {
15042                                           //printf("adding `%s' `%s' `%s' to enum `%s' (mGrpId=%d)\n",
15043                                           //     current->type.data(), current->name.data(),
15044                                           //     current->args.data(), current_root->name.data(),current->mGrpId);
15045                                           if (!current->name.isEmpty())
15046                                           {
15047                                             current->fileName   = yyFileName;
15048                                             current->startLine  = yyLineNr;
15049                                             if (!(current_root->spec&Entry::Enum))
15050                                             {
15051                                               current->type       = "@"; // enum marker
15052                                             }
15053                                             current->args       = current->args.simplifyWhiteSpace();
15054                                             current->name       = current->name.stripWhiteSpace();
15055                                             current->section    = Entry::VARIABLE_SEC;
15056                                             // add to the scope of the enum
15057                                             current_root->addSubEntry(current);
15058                                             if (!insideCS && !insideJava &&
15059                                                 !(current_root->spec&Entry::Strong)) 
15060                                                 // for C# and Java 1.5+ enum values always have to be explicitly qualified,
15061                                                 // same for C++11 style enums (enum class Name {})
15062                                             {
15063                                               current             = new Entry(*current);
15064                                               // add to the scope surrounding the enum (copy!)
15065                                               current_root->parent()->addSubEntry(current);
15066                                             }
15067                                             current             = new Entry ;
15068                                             initEntry();
15069                                           }
15070                                           else // probably a redundant , 
15071                                           {
15072                                             current->reset();
15073                                             initEntry();
15074                                           }
15075                                         }
15076         YY_BREAK
15077 case 352:
15078 YY_RULE_SETUP
15079 #line 3350 "scanner.l"
15080 { // attribute list in IDL
15081                                           squareCount=1;
15082                                           lastSquareContext = YY_START;
15083                                           BEGIN(SkipSquare);
15084                                         }
15085         YY_BREAK
15086 /*
15087 <FindFieldArg>","                       { unput(*scanYYtext); BEGIN(FindFields); }
15088   */
15089 case 353:
15090 YY_RULE_SETUP
15091 #line 3358 "scanner.l"
15092 { current->program += scanYYtext ; }
15093         YY_BREAK
15094 case 354:
15095 YY_RULE_SETUP
15096 #line 3359 "scanner.l"
15097 { current->program += scanYYtext ; }
15098         YY_BREAK
15099 case 355:
15100 YY_RULE_SETUP
15101 #line 3360 "scanner.l"
15102 { if (!insidePHP) 
15103                                             REJECT;
15104                                           // append PHP comment.
15105                                           current->program += scanYYtext ;
15106                                         }
15107         YY_BREAK
15108 case 356:
15109 YY_RULE_SETUP
15110 #line 3365 "scanner.l"
15111 { current->program += scanYYtext ; 
15112                                           pSkipVerbString = &current->program;
15113                                           lastSkipVerbStringContext=YY_START;
15114                                           BEGIN( SkipVerbString );
15115                                         }
15116         YY_BREAK
15117 case 357:
15118 YY_RULE_SETUP
15119 #line 3370 "scanner.l"
15120 { if (insidePHP)
15121                                           {
15122                                             current->program += scanYYtext ; 
15123                                             pCopyHereDocGString = &current->program;
15124                                             lastHereDocContext=YY_START;
15125                                             BEGIN( CopyHereDoc );
15126                                           }
15127                                           else
15128                                           {
15129                                             REJECT;
15130                                           }
15131                                         }
15132         YY_BREAK
15133 case 358:
15134 YY_RULE_SETUP
15135 #line 3382 "scanner.l"
15136 { current->program += scanYYtext ; 
15137                                           pCopyQuotedGString = &current->program;
15138                                           lastStringContext=YY_START;
15139                                           BEGIN( CopyGString );
15140                                         }
15141         YY_BREAK
15142 case 359:
15143 YY_RULE_SETUP
15144 #line 3387 "scanner.l"
15145 { current->program += scanYYtext ;
15146                                           lastContext = YY_START ;
15147                                           BEGIN( Comment ) ;
15148                                         }
15149         YY_BREAK
15150 case 360:
15151 /* rule 360 can match eol */
15152 YY_RULE_SETUP
15153 #line 3391 "scanner.l"
15154 { current->program += scanYYtext ;
15155                                           ++yyLineNr ;
15156                                           lastContext = YY_START ;
15157                                           BEGIN( Comment ) ;
15158                                         }
15159         YY_BREAK
15160 case 361:
15161 YY_RULE_SETUP
15162 #line 3396 "scanner.l"
15163 {
15164                                           if (!insidePHP)
15165                                           {
15166                                             current->program += scanYYtext;
15167                                           }
15168                                           else
15169                                           { // begin of single quoted string
15170                                             current->program += scanYYtext;
15171                                             pCopyQuotedGString = &current->program;
15172                                             lastStringContext=YY_START;
15173                                             BEGIN(CopyPHPGString);
15174                                           }
15175                                         }
15176         YY_BREAK
15177 case 362:
15178 YY_RULE_SETUP
15179 #line 3409 "scanner.l"
15180
15181                                               if (insidePHP) 
15182                                               {
15183                                                 REJECT; // for PHP code single quotes 
15184                                                         // are used for strings of arbitrary length
15185                                               }
15186                                               else
15187                                               {
15188                                                 current->program += scanYYtext; 
15189                                               }
15190                                             }
15191         YY_BREAK
15192 case 363:
15193 YY_RULE_SETUP
15194 #line 3420 "scanner.l"
15195 { current->program += scanYYtext ;
15196                                           ++curlyCount ;
15197                                         }
15198         YY_BREAK
15199 case 364:
15200 YY_RULE_SETUP
15201 #line 3423 "scanner.l"
15202 {
15203                                           current->program += scanYYtext ;
15204                                           --curlyCount ;
15205                                         }
15206         YY_BREAK
15207 case 365:
15208 YY_RULE_SETUP
15209 #line 3427 "scanner.l"
15210 { //err("ReadBody count=%d\n",curlyCount);
15211                                           if ( curlyCount>0 )
15212                                           {
15213                                             current->program += scanYYtext ;
15214                                             --curlyCount ;
15215                                           }
15216                                           else
15217                                           {
15218                                             current->endBodyLine = yyLineNr;
15219                                             QCString &cn = current->name;
15220                                             QCString rn = current_root->name.copy();
15221                                             //printf("cn=`%s' rn=`%s' isTypedef=%d\n",cn.data(),rn.data(),isTypedef);
15222                                             if (!cn.isEmpty() && !rn.isEmpty())
15223                                             {
15224                                               prependScope();
15225                                             }
15226                                             if (isTypedef && cn.isEmpty())
15227                                             {
15228                                               //printf("Typedef Name\n");
15229                                               BEGIN( TypedefName );
15230                                             }
15231                                             else
15232                                             {
15233                                               if ((current->section == Entry::ENUM_SEC) || (current->spec&Entry::Enum))
15234                                               {
15235                                                 current->program+=','; // add field terminator
15236                                               }
15237                                               // add compound definition to the tree
15238                                               current->args=removeRedundantWhiteSpace(current->args);
15239                                                         // was: current->args.simplifyWhiteSpace();
15240                                               current->type = current->type.simplifyWhiteSpace();
15241                                               current->name = current->name.stripWhiteSpace();
15242                                               //printf("adding `%s' `%s' `%s' brief=%s insideObjC=%d %x\n",current->type.data(),current->name.data(),current->args.data(),current->brief.data(),insideObjC,current->section);
15243                                               if (insideObjC && 
15244                                                   ((current->spec&Entry::Interface) || (current->spec==Entry::Category))
15245                                                  ) // method definition follows
15246                                               {
15247                                                 BEGIN( ReadBodyIntf ) ;
15248                                               }
15249                                               else
15250                                               {
15251                                                 current_root->addSubEntry( current ) ;
15252                                                 memspecEntry = current;
15253                                                 current = new Entry(*current);
15254                                                 if (current->section==Entry::NAMESPACE_SEC || 
15255                                                     (current->spec==Entry::Interface) ||
15256                                                     insideJava || insidePHP || insideCS || insideD || insideJS
15257                                                    )
15258                                                 { // namespaces and interfaces and java classes ends with a closing bracket without semicolon
15259                                                   current->reset();
15260                                                   initEntry();
15261                                                   memspecEntry = 0;
15262                                                   BEGIN( FindMembers ) ;
15263                                                 }
15264                                                 else
15265                                                 {
15266                                                   if (!isTypedef) // not typedef 
15267                                                   {
15268                                                     // enabled the next two lines for bug 623424
15269                                                     current->doc.resize(0);
15270                                                     current->brief.resize(0);
15271                                                   }
15272                                                   BEGIN( MemberSpec ) ;
15273                                                 }
15274                                               }
15275                                             }
15276                                           }
15277                                         }
15278         YY_BREAK
15279 case 366:
15280 /* rule 366 can match eol */
15281 YY_RULE_SETUP
15282 #line 3495 "scanner.l"
15283 { //err("ReadBody count=%d\n",curlyCount);
15284                                           lineCount();
15285                                           if ( curlyCount>0 )
15286                                           {
15287                                             current->program += scanYYtext ;
15288                                             --curlyCount ;
15289                                           }
15290                                           else
15291                                           {
15292                                             isTypedef = TRUE;
15293                                             current->endBodyLine = yyLineNr;
15294                                             QCString &cn = current->name;
15295                                             QCString rn = current_root->name.copy();
15296                                             if (!cn.isEmpty() && !rn.isEmpty())
15297                                             {
15298                                               prependScope();
15299                                             }
15300                                             BEGIN( TypedefName );
15301                                           }
15302                                         }
15303         YY_BREAK
15304 case 367:
15305 /* rule 367 can match eol */
15306 YY_RULE_SETUP
15307 #line 3515 "scanner.l"
15308 { // late "const" or "volatile" keyword
15309                                           lineCount();
15310                                           current->type.prepend(scanYYtext);
15311                                         }
15312         YY_BREAK
15313 case 368:
15314 YY_RULE_SETUP
15315 #line 3519 "scanner.l"
15316 {
15317                                           if ((current->section == Entry::ENUM_SEC) || (current->spec&Entry::Enum))
15318                                           {
15319                                             current->program+=","; // add field terminator
15320                                           }
15321                                           current->name=scanYYtext;
15322                                           prependScope();
15323                                           current->args = current->args.simplifyWhiteSpace();
15324                                           current->type = current->type.simplifyWhiteSpace();
15325                                           //printf("Adding compound %s %s %s\n",current->type.data(),current->name.data(),current->args.data());
15326                                           current_root->addSubEntry( current ) ;
15327                                           if (!firstTypedefEntry)
15328                                           {
15329                                             firstTypedefEntry = current;
15330                                           }
15331                                           current = new Entry;
15332                                           initEntry();
15333                                           isTypedef=TRUE; // to undo reset by initEntry()
15334                                           BEGIN(MemberSpecSkip); 
15335                                         }
15336         YY_BREAK
15337 case 369:
15338 YY_RULE_SETUP
15339 #line 3539 "scanner.l"
15340 { /* typedef of anonymous type */
15341                                           current->name.sprintf("@%d",anonCount++);
15342                                           if ((current->section == Entry::ENUM_SEC) || (current->spec&Entry::Enum))
15343                                           {
15344                                             current->program+=','; // add field terminator
15345                                           }
15346                                           // add compound definition to the tree
15347                                           current->args = current->args.simplifyWhiteSpace();
15348                                           current->type = current->type.simplifyWhiteSpace();
15349                                           current_root->addSubEntry( current ) ;
15350                                           memspecEntry = current;
15351                                           current = new Entry(*current);
15352                                           initEntry();
15353                                           unput(';');
15354                                           BEGIN( MemberSpec ) ;
15355                                         }
15356         YY_BREAK
15357 case 370:
15358 /* rule 370 can match eol */
15359 YY_RULE_SETUP
15360 #line 3555 "scanner.l"
15361 { // the [] part could be improved.
15362                                           lineCount();
15363                                           int i=0,l=scanYYleng,j;
15364                                           while (i<l && (!isId(scanYYtext[i]))) i++;
15365                                           msName = QCString(scanYYtext).right(l-i).stripWhiteSpace();
15366                                           j=msName.find("[");
15367                                           if (j!=-1) 
15368                                           {
15369                                             msArgs=msName.right(msName.length()-j);
15370                                             msName=msName.left(j);
15371                                           }
15372                                           msType=QCString(scanYYtext).left(i);
15373
15374                                           // handle *pName in: typedef { ... } name, *pName;
15375                                           if (firstTypedefEntry) 
15376                                           {
15377                                             if (firstTypedefEntry->spec&Entry::Struct)
15378                                             {
15379                                               msType.prepend("struct "+firstTypedefEntry->name);
15380                                             }
15381                                             else if (firstTypedefEntry->spec&Entry::Union)
15382                                             {
15383                                               msType.prepend("union "+firstTypedefEntry->name);
15384                                             }
15385                                             else if (firstTypedefEntry->section==Entry::ENUM_SEC)
15386                                             {
15387                                               msType.prepend("enum "+firstTypedefEntry->name);
15388                                             }
15389                                             else
15390                                             {
15391                                               msType.prepend(firstTypedefEntry->name);
15392                                             }
15393                                           }
15394                                         }
15395         YY_BREAK
15396 case 371:
15397 YY_RULE_SETUP
15398 #line 3589 "scanner.l"
15399 { // function with struct return type
15400                                           addType(current);
15401                                           current->name = msName;
15402                                           current->spec = 0;
15403                                           unput('(');
15404                                           BEGIN(FindMembers);
15405                                         }
15406         YY_BREAK
15407 case 372:
15408 YY_RULE_SETUP
15409 #line 3596 "scanner.l"
15410 {
15411                                           if (msName.isEmpty() && !current->name.isEmpty())
15412                                           { 
15413                                             // see if the compound does not have a name or is inside another
15414                                             // anonymous compound. If so we insert a 
15415                                             // special `anonymous' variable.
15416                                             //Entry *p=current_root;
15417                                             Entry *p=current;
15418                                             while (p)
15419                                             {
15420                                               // only look for class scopes, not namespace scopes
15421                                               if ((p->section & Entry::COMPOUND_MASK) && !p->name.isEmpty())
15422                                               {
15423                                                 //printf("Trying scope `%s'\n",p->name.data());
15424                                                 int i=p->name.findRev("::");
15425                                                 int pi = (i==-1) ? 0 : i+2;
15426                                                 if (p->name.at(pi)=='@')
15427                                                 {
15428                                                   // anonymous compound inside -> insert dummy variable name
15429                                                   //printf("Adding anonymous variable for scope %s\n",p->name.data());
15430                                                   msName.sprintf("@%d",anonCount++); 
15431                                                   break;
15432                                                 }
15433                                               }
15434                                               //p=p->parent;
15435                                               if (p==current) p=current_root; else p=p->parent();
15436                                             }
15437                                           }
15438                                           //printf("msName=%s current->name=%s\n",msName.data(),current->name.data());
15439                                           if (!msName.isEmpty() 
15440                                               /*&& msName!=current->name*/) // skip typedef T {} T;, removed due to bug608493
15441                                           {
15442                                             static bool typedefHidesStruct = Config_getBool("TYPEDEF_HIDES_STRUCT");
15443                                             // case 1: typedef struct _S { ... } S_t; 
15444                                             // -> omit typedef and use S_t as the struct name
15445                                             if (typedefHidesStruct && 
15446                                                 isTypedef && 
15447                                                 ((current->spec&(Entry::Struct|Entry::Union)) ||
15448                                                  current->section==Entry::ENUM_SEC )&&
15449                                                 msType.stripWhiteSpace().isEmpty() && 
15450                                                 memspecEntry)
15451                                             {
15452                                               memspecEntry->name=msName;
15453                                             }
15454                                             else // case 2: create a typedef field
15455                                             {
15456                                               Entry *varEntry=new Entry;
15457                                               varEntry->lang = language;
15458                                               varEntry->protection = current->protection ;
15459                                               varEntry->mtype = current->mtype;
15460                                               varEntry->virt = current->virt;
15461                                               varEntry->stat = current->stat;
15462                                               varEntry->section = Entry::VARIABLE_SEC;
15463                                               varEntry->name = msName.stripWhiteSpace();
15464                                               varEntry->type = current->type.simplifyWhiteSpace()+" ";
15465                                               varEntry->args = msArgs; 
15466                                               if (isTypedef)
15467                                               {
15468                                                 varEntry->type.prepend("typedef ");
15469                                                 //  //printf("current->name = %s %s\n",current->name.data(),msName.data());
15470                                               }
15471                                               if (typedefHidesStruct &&
15472                                                   isTypedef &&
15473                                                   (current->spec&(Entry::Struct|Entry::Union)) &&
15474                                                   memspecEntry
15475                                                  ) // case 1: use S_t as type for pS_t in "typedef struct _S {} S_t, *pS_t;"
15476                                               {
15477                                                 varEntry->type+=memspecEntry->name+msType;
15478                                               }
15479                                               else // case 2: use _S as type for for pS_t
15480                                               {
15481                                                 varEntry->type+=current->name+msType;
15482                                               }
15483                                               varEntry->fileName = yyFileName;
15484                                               varEntry->startLine = yyLineNr;
15485                                               varEntry->doc = current->doc.copy();
15486                                               varEntry->brief = current->brief.copy();
15487                                               varEntry->mGrpId = current->mGrpId;
15488                                               varEntry->initializer = current->initializer;
15489
15490                                               // deep copy group list
15491                                               QListIterator<Grouping> gli(*current->groups);
15492                                               Grouping *g;
15493                                               for (;(g=gli.current());++gli)
15494                                               {
15495                                                 varEntry->groups->append(new Grouping(*g));
15496                                               }
15497                                               if (current->sli) // copy special list items
15498                                               {
15499                                                 QListIterator<ListItemInfo> li(*current->sli);
15500                                                 ListItemInfo *lii;
15501                                                 for (li.toFirst();(lii=li.current());++li)
15502                                                 {
15503                                                   varEntry->addSpecialListItem(lii->type,lii->itemId);
15504                                                 }
15505                                               }
15506
15507                                               //printf("Add: type=`%s',name=`%s',args=`%s' brief=%s doc=%s\n",
15508                                               //      varEntry->type.data(),varEntry->name.data(),
15509                                               //      varEntry->args.data(),varEntry->brief.data(),varEntry->doc.data());
15510                                               current_root->addSubEntry(varEntry);
15511                                             }
15512                                           }
15513                                           if (*scanYYtext==';') // end of a struct/class ...
15514                                           {
15515                                             if (!isTypedef && msName.isEmpty() && memspecEntry && (current->section&Entry::COMPOUND_MASK))
15516                                             { // case where a class/struct has a doc block after it
15517                                               if (!current->doc.isEmpty())
15518                                               {
15519                                                 memspecEntry->doc += current->doc;
15520                                               }
15521                                               if (!current->brief.isEmpty())
15522                                               {
15523                                                 memspecEntry->brief += current->brief;
15524                                               }
15525                                             }
15526                                             msType.resize(0);
15527                                             msName.resize(0);
15528                                             msArgs.resize(0);
15529                                             isTypedef=FALSE;
15530                                             firstTypedefEntry=0;
15531                                             memspecEntry=0;
15532                                             current->reset();
15533                                             initEntry();
15534                                             BEGIN( FindMembers );
15535                                           }
15536                                           else
15537                                           {
15538                                             current->doc.resize(0);
15539                                             current->brief.resize(0);
15540                                           }
15541
15542                                         }
15543         YY_BREAK
15544 case 373:
15545 YY_RULE_SETUP
15546 #line 3729 "scanner.l"
15547
15548                                           lastInitializerContext=YY_START;
15549                                           initBracketCount=0;
15550                                           current->initializer = scanYYtext;
15551                                           BEGIN(ReadInitializer);
15552                                           /* BEGIN(MemberSpecSkip); */
15553                                         }
15554         YY_BREAK
15555 /*
15556 <MemberSpecSkip>"{"                     {
15557                                           curlyCount=0;
15558                                           lastCurlyContext = MemberSpecSkip;
15559                                           previous = current;
15560                                           BEGIN(SkipCurly);
15561                                         }
15562   */
15563 case 374:
15564 YY_RULE_SETUP
15565 #line 3744 "scanner.l"
15566 { BEGIN(MemberSpec); }
15567         YY_BREAK
15568 case 375:
15569 YY_RULE_SETUP
15570 #line 3745 "scanner.l"
15571 { unput(';'); BEGIN(MemberSpec); }
15572         YY_BREAK
15573 case 376:
15574 /* rule 376 can match eol */
15575 YY_RULE_SETUP
15576 #line 3746 "scanner.l"
15577 { current->program += scanYYtext ;
15578                                           lineCount() ;
15579                                         }
15580         YY_BREAK
15581 case 377:
15582 /* rule 377 can match eol */
15583 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */
15584 (yy_c_buf_p) = yy_cp = yy_bp + 4;
15585 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */
15586 YY_RULE_SETUP
15587 #line 3749 "scanner.l"
15588 { // end of Objective C block
15589                                           current_root->addSubEntry( current ) ;
15590                                           current=new Entry;
15591                                           initEntry();
15592                                           insideObjC=FALSE;
15593                                           BEGIN( FindMembers ); 
15594                                         }
15595         YY_BREAK
15596 case 378:
15597 YY_RULE_SETUP
15598 #line 3756 "scanner.l"
15599 { current->program += scanYYtext ; }
15600         YY_BREAK
15601 case 379:
15602 /* rule 379 can match eol */
15603 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */
15604 (yy_c_buf_p) = yy_cp = yy_bp + 1;
15605 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */
15606 #line 3759 "scanner.l"
15607 case 380:
15608 /* rule 380 can match eol */
15609 YY_RULE_SETUP
15610 #line 3759 "scanner.l"
15611 {   /* typedef void (A::*ptr_t)(args...) or int (*func(int))[], the ^ is for Obj-C blocks */
15612                                           if (insidePHP) // reference parameter
15613                                           {
15614                                             REJECT
15615                                           }
15616                                           else
15617                                           {
15618                                             current->bodyLine = yyLineNr;
15619                                             lineCount();
15620                                             addType(current);
15621                                             funcPtrType=scanYYtext;
15622                                             roundCount=0;
15623                                             //current->type += scanYYtext;
15624                                             BEGIN( FuncPtr );
15625                                           }
15626                                         }
15627         YY_BREAK
15628 case 381:
15629 /* rule 381 can match eol */
15630 YY_RULE_SETUP
15631 #line 3775 "scanner.l"
15632 {
15633                                           current->name = scanYYtext;
15634                                           if (nameIsOperator(current->name))
15635                                           {
15636                                             BEGIN( FuncPtrOperator );
15637                                           }
15638                                           else
15639                                           {
15640                                             if (current->name=="const" || current->name=="volatile")
15641                                             {
15642                                               funcPtrType += current->name;
15643                                             }
15644                                             else
15645                                             {
15646                                               BEGIN( EndFuncPtr );
15647                                             }
15648                                           }
15649                                         }
15650         YY_BREAK
15651 case 382:
15652 YY_RULE_SETUP
15653 #line 3793 "scanner.l"
15654 {
15655                                           //printf("error: FuncPtr `%c' unexpected at line %d of %s\n",*scanYYtext,yyLineNr,yyFileName);
15656                                         }
15657         YY_BREAK
15658 case 383:
15659 /* rule 383 can match eol */
15660 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */
15661 (yy_c_buf_p) = yy_cp -= 1;
15662 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */
15663 YY_RULE_SETUP
15664 #line 3796 "scanner.l"
15665 {
15666                                           current->name += scanYYtext;
15667                                           current->name = current->name.simplifyWhiteSpace();
15668                                           lineCount();
15669                                         }
15670         YY_BREAK
15671 case 384:
15672 /* rule 384 can match eol */
15673 YY_RULE_SETUP
15674 #line 3801 "scanner.l"
15675 {
15676                                           lineCount();
15677                                           current->name += *scanYYtext;
15678                                         }
15679         YY_BREAK
15680 case 385:
15681 YY_RULE_SETUP
15682 #line 3805 "scanner.l"
15683 {
15684                                           unput(*scanYYtext);
15685                                           BEGIN( EndFuncPtr );
15686                                         }
15687         YY_BREAK
15688 case 386:
15689 YY_RULE_SETUP
15690 #line 3809 "scanner.l"
15691 {
15692                                           current->name += *scanYYtext;
15693                                         }
15694         YY_BREAK
15695 case 387:
15696 /* rule 387 can match eol */
15697 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */
15698 (yy_c_buf_p) = yy_cp -= 1;
15699 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */
15700 YY_RULE_SETUP
15701 #line 3812 "scanner.l"
15702 { // a variable with extra braces
15703                                           lineCount();
15704                                           current->type+=funcPtrType.data()+1;
15705                                           BEGIN(FindMembers);
15706                                         }
15707         YY_BREAK
15708 case 388:
15709 /* rule 388 can match eol */
15710 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */
15711 (yy_c_buf_p) = yy_cp -= 1;
15712 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */
15713 YY_RULE_SETUP
15714 #line 3817 "scanner.l"
15715 { // a function pointer
15716                                           lineCount();
15717                                           current->type+=funcPtrType+")";
15718                                           BEGIN(FindMembers);
15719                                         }
15720         YY_BREAK
15721 case 389:
15722 /* rule 389 can match eol */
15723 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */
15724 (yy_c_buf_p) = yy_cp -= 1;
15725 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */
15726 YY_RULE_SETUP
15727 #line 3822 "scanner.l"
15728 { // an array of variables
15729                                           lineCount();
15730                                           current->type+=funcPtrType.data();
15731                                           current->args += ")";
15732                                           BEGIN(FindMembers);
15733                                         }
15734         YY_BREAK
15735 case 390:
15736 YY_RULE_SETUP
15737 #line 3828 "scanner.l"
15738 { // a function returning a function or 
15739                                           // a function returning a pointer to an array
15740                                           current->args += *scanYYtext ;
15741                                           //roundCount=0;
15742                                           //BEGIN( FuncFunc );
15743                                           current->bodyLine = yyLineNr;
15744                                           currentArgumentContext = FuncFuncEnd;
15745                                           fullArgString=current->args.copy();
15746                                           copyArgString=&current->args;
15747                                           BEGIN( ReadFuncArgType ) ;
15748                                         }
15749         YY_BREAK
15750 case 391:
15751 YY_RULE_SETUP
15752 #line 3839 "scanner.l"
15753 {
15754                                           funcPtrType+=scanYYtext;
15755                                         }
15756         YY_BREAK
15757 case 392:
15758 YY_RULE_SETUP
15759 #line 3842 "scanner.l"
15760 {
15761                                           BEGIN(FindMembers);
15762                                         }
15763         YY_BREAK
15764 case 393:
15765 YY_RULE_SETUP
15766 #line 3845 "scanner.l"
15767 {
15768                                           current->args += *scanYYtext ;
15769                                           ++roundCount;
15770                                         }
15771         YY_BREAK
15772 case 394:
15773 YY_RULE_SETUP
15774 #line 3849 "scanner.l"
15775 {
15776                                           current->args += *scanYYtext ;
15777                                           if ( roundCount )
15778                                             --roundCount;
15779                                           else
15780                                           {
15781                                             BEGIN(FuncFuncEnd);
15782                                           }
15783                                         }
15784         YY_BREAK
15785 case 395:
15786 /* rule 395 can match eol */
15787 YY_RULE_SETUP
15788 #line 3858 "scanner.l"
15789 {
15790                                           lineCount();
15791                                           current->type+=funcPtrType+")(";
15792                                           BEGIN(FuncFuncType);
15793                                         }
15794         YY_BREAK
15795 case 396:
15796 /* rule 396 can match eol */
15797 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */
15798 (yy_c_buf_p) = yy_cp -= 1;
15799 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */
15800 YY_RULE_SETUP
15801 #line 3863 "scanner.l"
15802 {
15803                                           lineCount();
15804                                           current->type+=funcPtrType.data()+1;
15805                                           BEGIN(Function);
15806                                         }
15807         YY_BREAK
15808 case 397:
15809 /* rule 397 can match eol */
15810 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */
15811 (yy_c_buf_p) = yy_cp -= 1;
15812 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */
15813 YY_RULE_SETUP
15814 #line 3868 "scanner.l"
15815 { // function returning a pointer to an array
15816                                           lineCount();
15817                                           current->type+=funcPtrType;
15818                                           current->args+=")";
15819                                           BEGIN(FuncFuncArray);
15820                                         }
15821         YY_BREAK
15822 case 398:
15823 YY_RULE_SETUP
15824 #line 3874 "scanner.l"
15825 {
15826                                           current->args += *scanYYtext;
15827                                         }
15828         YY_BREAK
15829 case 399:
15830 YY_RULE_SETUP
15831 #line 3877 "scanner.l"
15832 {
15833                                           current->type += *scanYYtext;
15834                                           roundCount++;
15835                                         }
15836         YY_BREAK
15837 case 400:
15838 YY_RULE_SETUP
15839 #line 3881 "scanner.l"
15840 {
15841                                           current->type += *scanYYtext;
15842                                           if (roundCount)
15843                                             --roundCount;
15844                                           else
15845                                             BEGIN(Function);
15846                                         }
15847         YY_BREAK
15848 case 401:
15849 /* rule 401 can match eol */
15850 YY_RULE_SETUP
15851 #line 3888 "scanner.l"
15852 { lineCount() ; current->type += ", " ; }
15853         YY_BREAK
15854 case 402:
15855 /* rule 402 can match eol */
15856 YY_RULE_SETUP
15857 #line 3889 "scanner.l"
15858 { lineCount() ; current->type += ' ' ; }
15859         YY_BREAK
15860 case 403:
15861 YY_RULE_SETUP
15862 #line 3890 "scanner.l"
15863 {
15864                                           current->type += *scanYYtext;
15865                                         }
15866         YY_BREAK
15867 case 404:
15868 /* rule 404 can match eol */
15869 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */
15870 (yy_c_buf_p) = yy_cp = yy_bp + 1;
15871 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */
15872 YY_RULE_SETUP
15873 #line 3893 "scanner.l"
15874 { // for catching typedef void (__stdcall *f)() like definitions
15875                                           if (current->type.left(7)=="typedef" && current->bodyLine==-1) 
15876                                             // the bodyLine check is to prevent this guard to be true more than once
15877                                           {
15878                                             current->bodyLine = yyLineNr;
15879                                             BEGIN( GetCallType );
15880                                           }
15881                                           else if (!current->name.isEmpty()) // normal function
15882                                           {
15883                                             current->args = scanYYtext;
15884                                             current->bodyLine = yyLineNr;
15885                                             currentArgumentContext = FuncQual;
15886                                             fullArgString=current->args.copy();
15887                                             copyArgString=&current->args;
15888                                             BEGIN( ReadFuncArgType ) ;
15889                                             //printf(">>> Read function arguments!\n");
15890                                           }
15891                                         }
15892         YY_BREAK
15893 case 405:
15894 /* rule 405 can match eol */
15895 YY_RULE_SETUP
15896 #line 3911 "scanner.l"
15897 {
15898                                           lineCount();
15899                                           addType(current);
15900                                           funcPtrType="(";
15901                                           funcPtrType+=scanYYtext;
15902                                           roundCount=0;
15903                                           BEGIN( FuncPtr );
15904                                         }
15905         YY_BREAK
15906 case 406:
15907 YY_RULE_SETUP
15908 #line 3919 "scanner.l"
15909
15910                                           if (!current->name.isEmpty())
15911                                           {
15912                                             current->args = scanYYtext;
15913                                             current->bodyLine = yyLineNr;
15914                                             currentArgumentContext = FuncQual;
15915                                             fullArgString=current->args.copy();
15916                                             copyArgString=&current->args;
15917                                             BEGIN( ReadFuncArgType ) ;
15918                                             //printf(">>> Read function arguments current->argList->count()=%d\n",current->argList->count());
15919                                           }
15920                                         }
15921         YY_BREAK
15922 /*
15923 <FindMembers>"("{BN}*("void"{BN}*)?")"  {
15924                                           lineCount();
15925                                           current->args = "()"; 
15926                                           BEGIN( FuncQual );
15927                                         }
15928   */
15929 /*- Function argument reading rules ---------------------------------------*/
15930 case 407:
15931 YY_RULE_SETUP
15932 #line 3941 "scanner.l"
15933 { *copyArgString+=scanYYtext; 
15934                                           fullArgString+=scanYYtext;
15935                                         }
15936         YY_BREAK
15937 case 408:
15938 YY_RULE_SETUP
15939 #line 3944 "scanner.l"
15940 { *copyArgString+=scanYYtext; 
15941                                           fullArgString+=scanYYtext;
15942                                         }
15943         YY_BREAK
15944 case 409:
15945 YY_RULE_SETUP
15946 #line 3947 "scanner.l"
15947
15948                                           *copyArgString+=scanYYtext; 
15949                                           fullArgString+=scanYYtext;
15950                                         }
15951         YY_BREAK
15952 case 410:
15953 /* rule 410 can match eol */
15954 YY_RULE_SETUP
15955 #line 3951 "scanner.l"
15956 {
15957                                           *copyArgString+=" ";
15958                                           fullArgString+=" ";
15959                                           lineCount();
15960                                         }
15961         YY_BREAK
15962 case 411:
15963 /* rule 411 can match eol */
15964 YY_RULE_SETUP
15965 #line 3956 "scanner.l"
15966 {
15967                                           g_delimiter = scanYYtext+2;
15968                                           g_delimiter=g_delimiter.left(g_delimiter.length()-1);
15969                                           lastRawStringContext = YY_START;
15970                                           pCopyRawString = copyArgString;
15971                                           *pCopyRawString+=scanYYtext;
15972                                           fullArgString+=scanYYtext;
15973                                           BEGIN(RawString);
15974                                         }
15975         YY_BREAK
15976 case 412:
15977 YY_RULE_SETUP
15978 #line 3965 "scanner.l"
15979 {
15980                                           *copyArgString+=*scanYYtext;
15981                                           fullArgString+=*scanYYtext;
15982                                           lastCopyArgStringContext = YY_START;
15983                                           BEGIN( CopyArgString );
15984                                         }
15985         YY_BREAK
15986 case 413:
15987 YY_RULE_SETUP
15988 #line 3971 "scanner.l"
15989 {
15990                                           *copyArgString+=*scanYYtext;
15991                                           fullArgString+=*scanYYtext;
15992                                           argRoundCount=0; 
15993                                           lastCopyArgContext = YY_START;
15994                                           BEGIN( CopyArgRound ); 
15995                                         }
15996         YY_BREAK
15997 case 414:
15998 YY_RULE_SETUP
15999 #line 3978 "scanner.l"
16000
16001                                           *copyArgString+=*scanYYtext;
16002                                           fullArgString+=*scanYYtext;
16003                                           stringToArgumentList(fullArgString,current->argList);
16004                                           if (insideJS)
16005                                           {
16006                                             fixArgumentListForJavaScript(current->argList);
16007                                           }
16008                                           handleParametersCommentBlocks(current->argList);
16009
16010                                           /* remember the current documentation block, since
16011                                              we could overwrite it with the documentation of
16012                                              a function argument, which we then have to correct later
16013                                              on
16014                                            */
16015                                           docBackup = current->doc;
16016                                           briefBackup = current->brief;
16017
16018                                           BEGIN( currentArgumentContext );
16019                                         }
16020         YY_BREAK
16021 /* a special comment */
16022 case 415:
16023 YY_RULE_SETUP
16024 #line 3999 "scanner.l"
16025
16026                                           if (currentArgumentContext==DefineEnd)
16027                                           {
16028                                             // for defines we interpret a comment
16029                                             // as documentation for the define 
16030                                             int i;for (i=scanYYleng-1;i>=0;i--)
16031                                             {
16032                                               unput(scanYYtext[i]);
16033                                             }
16034                                             stringToArgumentList(fullArgString,current->argList);
16035                                             handleParametersCommentBlocks(current->argList);
16036                                             BEGIN( currentArgumentContext );
16037                                           }
16038                                           else // not a define
16039                                           {
16040                                             // for functions we interpret a comment
16041                                             // as documentation for the argument
16042                                             fullArgString+=scanYYtext;
16043                                             lastCopyArgChar=0;
16044                                             lastCommentInArgContext=YY_START;
16045                                             if (scanYYtext[1]=='/')
16046                                               BEGIN( CopyArgCommentLine );
16047                                             else
16048                                               BEGIN( CopyArgComment );
16049                                           }
16050                                         }
16051         YY_BREAK
16052 /* a non-special comment */
16053 case 416:
16054 YY_RULE_SETUP
16055 #line 4026 "scanner.l"
16056 { /* empty comment */ }
16057         YY_BREAK
16058 case 417:
16059 YY_RULE_SETUP
16060 #line 4027 "scanner.l"
16061 {
16062                                           lastCContext = YY_START;
16063                                           BEGIN( SkipComment );
16064                                         }
16065         YY_BREAK
16066 case 418:
16067 YY_RULE_SETUP
16068 #line 4031 "scanner.l"
16069 {
16070                                           lastCContext = YY_START;
16071                                           BEGIN( SkipCxxComment );
16072                                         }
16073         YY_BREAK
16074 /*
16075 <ReadFuncArgType,ReadTempArgs>"'#"      { if (insidePHP)
16076                                             REJECT;
16077                                           *copyArgString+=scanYYtext; 
16078                                           fullArgString+=scanYYtext; 
16079                                         }
16080 <ReadFuncArgType,ReadTempArgs>"#"       {
16081                                           if (!insidePHP)
16082                                             REJECT;
16083                                           lastCContext = YY_START;
16084                                           BEGIN( SkipCxxComment );
16085                                         }
16086   */
16087 /* `)' followed by a special comment */
16088 case 419:
16089 /* rule 419 can match eol */
16090 YY_RULE_SETUP
16091 #line 4049 "scanner.l"
16092 {
16093                                           lineCount();
16094                                           if (currentArgumentContext==DefineEnd)
16095                                           {
16096                                             // for defines we interpret a comment
16097                                             // as documentation for the define 
16098                                             int i;for (i=scanYYleng-1;i>0;i--)
16099                                             {
16100                                               unput(scanYYtext[i]);
16101                                             }
16102                                             *copyArgString+=*scanYYtext;
16103                                             fullArgString+=*scanYYtext;
16104                                             stringToArgumentList(fullArgString,current->argList);
16105                                             handleParametersCommentBlocks(current->argList);
16106                                             BEGIN( currentArgumentContext );
16107                                           }
16108                                           else
16109                                           {
16110                                             // for functions we interpret a comment
16111                                             // as documentation for the last argument
16112                                             lastCopyArgChar=*scanYYtext;
16113                                             QCString text=&scanYYtext[1];
16114                                             text=text.stripWhiteSpace();
16115                                             lastCommentInArgContext=YY_START;
16116                                             fullArgString+=text;
16117                                             if (text.find("//")!=-1)
16118                                               BEGIN( CopyArgCommentLine );
16119                                             else
16120                                               BEGIN( CopyArgComment );
16121                                           }
16122                                         }
16123         YY_BREAK
16124 case 420:
16125 /* rule 420 can match eol */
16126 YY_RULE_SETUP
16127 #line 4080 "scanner.l"
16128
16129         YY_BREAK
16130 case 421:
16131 YY_RULE_SETUP
16132 #line 4081 "scanner.l"
16133 { fullArgString+=scanYYtext; }
16134         YY_BREAK
16135 case 422:
16136 YY_RULE_SETUP
16137 #line 4082 "scanner.l"
16138 { fullArgString+=scanYYtext; 
16139                                           if (lastCopyArgChar!=0)
16140                                             unput(lastCopyArgChar); 
16141                                           BEGIN( lastCommentInArgContext ); 
16142                                         }
16143         YY_BREAK
16144 case 423:
16145 /* rule 423 can match eol */
16146 YY_RULE_SETUP
16147 #line 4087 "scanner.l"
16148 { fullArgString+=scanYYtext;
16149                                           lineCount();
16150                                           if (lastCopyArgChar!=0)
16151                                             unput(lastCopyArgChar);
16152                                           BEGIN( lastCommentInArgContext );
16153                                         }
16154         YY_BREAK
16155 case 424:
16156 /* rule 424 can match eol */
16157 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */
16158 (yy_c_buf_p) = yy_cp -= 1;
16159 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */
16160 YY_RULE_SETUP
16161 #line 4093 "scanner.l"
16162 { // verbatim command (which could contain nested comments!)
16163                                           docBlockName=&scanYYtext[1];
16164                                           fullArgString+=scanYYtext;
16165                                           BEGIN(CopyArgVerbatim);
16166                                         }
16167         YY_BREAK
16168 case 425:
16169 YY_RULE_SETUP
16170 #line 4098 "scanner.l"
16171 {
16172                                           docBlockName=&scanYYtext[1];
16173                                           if (docBlockName.at(1)=='[')
16174                                           {
16175                                             docBlockName.at(1)='}';
16176                                           }
16177                                           if (docBlockName.at(1)=='{')
16178                                           {
16179                                             docBlockName.at(1)='}';
16180                                           }
16181                                           fullArgString+=scanYYtext;
16182                                           BEGIN(CopyArgVerbatim);
16183                                         }
16184         YY_BREAK
16185 case 426:
16186 /* rule 426 can match eol */
16187 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */
16188 (yy_c_buf_p) = yy_cp -= 1;
16189 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */
16190 YY_RULE_SETUP
16191 #line 4111 "scanner.l"
16192 { // end of verbatim block
16193                                           fullArgString+=scanYYtext;
16194                                           if (scanYYtext[1]=='f') // end of formula
16195                                           {
16196                                             BEGIN(CopyArgCommentLine);
16197                                           }
16198                                           if (&scanYYtext[4]==docBlockName)
16199                                           {
16200                                             BEGIN(CopyArgCommentLine);
16201                                           }
16202                                         }
16203         YY_BREAK
16204 case 427:
16205 YY_RULE_SETUP
16206 #line 4122 "scanner.l"
16207 { fullArgString+=scanYYtext; }
16208         YY_BREAK
16209 case 428:
16210 YY_RULE_SETUP
16211 #line 4123 "scanner.l"
16212 { fullArgString+=*scanYYtext; }
16213         YY_BREAK
16214 case 429:
16215 /* rule 429 can match eol */
16216 YY_RULE_SETUP
16217 #line 4124 "scanner.l"
16218 { fullArgString+=*scanYYtext; lineCount(); }
16219         YY_BREAK
16220 case 430:
16221 YY_RULE_SETUP
16222 #line 4125 "scanner.l"
16223 { fullArgString+=*scanYYtext; }
16224         YY_BREAK
16225 case 431:
16226 YY_RULE_SETUP
16227 #line 4126 "scanner.l"
16228 {
16229                                           warn(yyFileName,yyLineNr,
16230                                               "warning: Ignoring %cbrief command inside argument documentation",*scanYYtext
16231                                              );
16232                                           fullArgString+=' ';
16233                                         }
16234         YY_BREAK
16235 case 432:
16236 YY_RULE_SETUP
16237 #line 4132 "scanner.l"
16238 {
16239                                           *copyArgString+=*scanYYtext;
16240                                           fullArgString+=*scanYYtext;
16241                                           argSharpCount=1;
16242                                           BEGIN( CopyArgSharp );
16243                                         }
16244         YY_BREAK
16245 case 433:
16246 YY_RULE_SETUP
16247 #line 4138 "scanner.l"
16248 {
16249                                           *copyArgString+=*scanYYtext;
16250                                           fullArgString+=*scanYYtext;
16251                                           //printf("end template list %s\n",copyArgString->data());
16252                                           stringToArgumentList(fullArgString,currentArgumentList);
16253                                           BEGIN( currentArgumentContext );
16254                                         }
16255         YY_BREAK
16256 case 434:
16257 YY_RULE_SETUP
16258 #line 4145 "scanner.l"
16259 {
16260                                           argRoundCount++;
16261                                           *copyArgString+=*scanYYtext;
16262                                           fullArgString+=*scanYYtext;
16263                                         }
16264         YY_BREAK
16265 case 435:
16266 YY_RULE_SETUP
16267 #line 4150 "scanner.l"
16268 {
16269                                           *copyArgString+=*scanYYtext;
16270                                           fullArgString+=*scanYYtext;
16271                                           if (argRoundCount>0) 
16272                                             argRoundCount--;
16273                                           else 
16274                                             BEGIN( lastCopyArgContext );
16275                                         }
16276         YY_BREAK
16277 case 436:
16278 YY_RULE_SETUP
16279 #line 4158 "scanner.l"
16280 {
16281                                           argSharpCount++;
16282                                           //printf("argSharpCount++=%d  copy\n",argSharpCount);
16283                                           *copyArgString+=*scanYYtext;
16284                                           fullArgString+=*scanYYtext;
16285                                         }
16286         YY_BREAK
16287 case 437:
16288 YY_RULE_SETUP
16289 #line 4164 "scanner.l"
16290 {
16291                                           *copyArgString+=*scanYYtext;
16292                                           fullArgString+=*scanYYtext;
16293                                           argSharpCount--;
16294                                           if (argSharpCount>0)
16295                                           {
16296                                             //printf("argSharpCount--=%d copy\n",argSharpCount);
16297                                           }
16298                                           else
16299                                           {
16300                                             BEGIN( ReadTempArgs );
16301                                             //printf("end of argSharpCount\n");
16302                                           }
16303                                         }
16304         YY_BREAK
16305 case 438:
16306 YY_RULE_SETUP
16307 #line 4178 "scanner.l"
16308 {
16309                                           *copyArgString+=scanYYtext;
16310                                           fullArgString+=scanYYtext;
16311                                         }
16312         YY_BREAK
16313 case 439:
16314 YY_RULE_SETUP
16315 #line 4182 "scanner.l"
16316 {
16317                                           *copyArgString+=*scanYYtext;
16318                                           fullArgString+=*scanYYtext;
16319                                           BEGIN( lastCopyArgStringContext );
16320                                         }
16321         YY_BREAK
16322 case 440:
16323 YY_RULE_SETUP
16324 #line 4187 "scanner.l"
16325 {
16326                                           *copyArgString+=*scanYYtext;
16327                                           fullArgString+=*scanYYtext;
16328                                           BEGIN( lastCopyArgStringContext );
16329                                         }
16330         YY_BREAK
16331 case 441:
16332 YY_RULE_SETUP
16333 #line 4192 "scanner.l"
16334
16335                                           if (insidePHP)
16336                                           {
16337                                             REJECT;
16338                                           }
16339                                           else
16340                                           {
16341                                             *copyArgString+=scanYYtext; 
16342                                             fullArgString+=scanYYtext; 
16343                                           }
16344                                         }
16345         YY_BREAK
16346 case 442:
16347 YY_RULE_SETUP
16348 #line 4203 "scanner.l"
16349
16350                                           *copyArgString+=scanYYtext; 
16351                                           fullArgString+=scanYYtext; 
16352                                           if (insidePHP)
16353                                           {
16354                                             lastCopyArgStringContext=YY_START;
16355                                             BEGIN(CopyArgPHPString);
16356                                           }
16357                                         }
16358         YY_BREAK
16359 case 443:
16360 /* rule 443 can match eol */
16361 YY_RULE_SETUP
16362 #line 4212 "scanner.l"
16363
16364                                           lineCount();
16365                                           *copyArgString+=*scanYYtext; 
16366                                           fullArgString+=*scanYYtext; 
16367                                         }
16368         YY_BREAK
16369 case 444:
16370 YY_RULE_SETUP
16371 #line 4217 "scanner.l"
16372
16373                                           *copyArgString+=*scanYYtext; 
16374                                           fullArgString+=*scanYYtext; 
16375                                         }
16376         YY_BREAK
16377 /*------------------------------------------------------------------------*/
16378 case 445:
16379 YY_RULE_SETUP
16380 #line 4227 "scanner.l"
16381 { current->args += *scanYYtext ;
16382                                           ++roundCount ;
16383                                         }
16384         YY_BREAK
16385 case 446:
16386 YY_RULE_SETUP
16387 #line 4230 "scanner.l"
16388 { current->args += *scanYYtext ; 
16389                                           if ( roundCount )
16390                                             --roundCount ;
16391                                           else
16392                                             BEGIN( FuncQual ) ;
16393                                         }
16394         YY_BREAK
16395 /*
16396 <FuncQual>"#"                           { if (insidePHP)
16397                                             REJECT;
16398                                           lastCPPContext = YY_START;
16399                                           BEGIN(SkipCPP);
16400                                         }
16401   */
16402 case 447:
16403 YY_RULE_SETUP
16404 #line 4243 "scanner.l"
16405 {
16406                                           if ( strcmp(scanYYtext,";")==0 && 
16407                                                insidePHP && 
16408                                                !containsWord(current->type,"function") )
16409                                           {
16410                                             current->reset();
16411                                             initEntry();
16412                                             BEGIN( FindMembers );
16413                                           }
16414                                           else
16415                                           {
16416                                             unput(*scanYYtext); BEGIN( Function );
16417                                           }
16418                                         }
16419         YY_BREAK
16420 case 448:
16421 /* rule 448 can match eol */
16422 YY_RULE_SETUP
16423 #line 4257 "scanner.l"
16424 { // pure virtual member function
16425                                           lineCount() ; 
16426                                           current->virt = Pure;
16427                                           current->args += " override "; 
16428                                         }
16429         YY_BREAK
16430 case 449:
16431 /* rule 449 can match eol */
16432 YY_RULE_SETUP
16433 #line 4262 "scanner.l"
16434 { // C++11 overridden virtual member function
16435                                           lineCount() ; 
16436                                           current->spec |= Entry::Override;
16437                                           current->args += " override "; 
16438                                           BEGIN(FuncQual);
16439                                         }
16440         YY_BREAK
16441 case 450:
16442 /* rule 450 can match eol */
16443 YY_RULE_SETUP
16444 #line 4268 "scanner.l"
16445 { // C++11 final method
16446                                           lineCount() ; 
16447                                           current->spec |= Entry::Final;
16448                                           current->args += " final "; 
16449                                           BEGIN(FuncQual);
16450                                         }
16451         YY_BREAK
16452 case 451:
16453 /* rule 451 can match eol */
16454 YY_RULE_SETUP
16455 #line 4274 "scanner.l"
16456 { // sealed member function
16457                                           lineCount() ; 
16458                                           current->spec |= Entry::Sealed;
16459                                           current->args += " sealed "; 
16460                                         }
16461         YY_BREAK
16462 case 452:
16463 /* rule 452 can match eol */
16464 YY_RULE_SETUP
16465 #line 4279 "scanner.l"
16466 { // new member function
16467                                           lineCount() ; 
16468                                           current->spec |= Entry::New;
16469                                           current->args += " new "; 
16470                                         }
16471         YY_BREAK
16472 case 453:
16473 /* rule 453 can match eol */
16474 YY_RULE_SETUP
16475 #line 4284 "scanner.l"
16476 { // const member function
16477                                           lineCount() ; 
16478                                           current->args += " const "; 
16479                                           current->argList->constSpecifier=TRUE;
16480                                         }
16481         YY_BREAK
16482 case 454:
16483 /* rule 454 can match eol */
16484 YY_RULE_SETUP
16485 #line 4289 "scanner.l"
16486 { // volatile member function
16487                                           lineCount() ; 
16488                                           current->args += " volatile "; 
16489                                           current->argList->volatileSpecifier=TRUE;
16490                                         }
16491         YY_BREAK
16492 case 455:
16493 /* rule 455 can match eol */
16494 YY_RULE_SETUP
16495 #line 4294 "scanner.l"
16496 { // volatile member function
16497                                           lineCount() ; 
16498                                           current->args += " noexcept "; 
16499                                           current->spec |= Entry::NoExcept;
16500                                         }
16501         YY_BREAK
16502 case 456:
16503 /* rule 456 can match eol */
16504 YY_RULE_SETUP
16505 #line 4299 "scanner.l"
16506 { // pure virtual member function
16507                                           lineCount() ; 
16508                                           current->args += " = 0"; 
16509                                           current->virt = Pure; 
16510                                           current->argList->pureSpecifier=TRUE;
16511                                           BEGIN(FuncQual);
16512                                         }
16513         YY_BREAK
16514 case 457:
16515 /* rule 457 can match eol */
16516 YY_RULE_SETUP
16517 #line 4306 "scanner.l"
16518 { // C++11 explicitly delete member
16519                                           lineCount();
16520                                           current->args += " = delete";
16521                                           current->spec |= Entry::Delete;
16522                                           BEGIN(FuncQual);
16523                                         }
16524         YY_BREAK
16525 case 458:
16526 /* rule 458 can match eol */
16527 YY_RULE_SETUP
16528 #line 4312 "scanner.l"
16529 { // C++11 explicitly defaulted constructor/assignment operator
16530                                           lineCount();
16531                                           current->args += " = default";
16532                                           current->spec |= Entry::Default;
16533                                           BEGIN(FuncQual);
16534                                         }
16535         YY_BREAK
16536 case 459:
16537 /* rule 459 can match eol */
16538 YY_RULE_SETUP
16539 #line 4318 "scanner.l"
16540 {
16541                                           lineCount();
16542                                           current->argList->trailingReturnType = " -> ";
16543                                           current->args += " -> ";
16544                                           BEGIN(TrailingReturn);
16545                                         }
16546         YY_BREAK
16547 case 460:
16548 YY_RULE_SETUP
16549 #line 4324 "scanner.l"
16550 {
16551                                           unput(*scanYYtext);
16552                                           BEGIN(FuncQual);
16553                                         }
16554         YY_BREAK
16555 case 461:
16556 YY_RULE_SETUP
16557 #line 4328 "scanner.l"
16558 {
16559                                           current->argList->trailingReturnType+=scanYYtext;
16560                                           current->args+=scanYYtext;
16561                                         }
16562         YY_BREAK
16563 case 462:
16564 /* rule 462 can match eol */
16565 YY_RULE_SETUP
16566 #line 4332 "scanner.l"
16567 {
16568                                           lineCount();
16569                                           current->argList->trailingReturnType+=scanYYtext;
16570                                           current->args+=' ';
16571                                         }
16572         YY_BREAK
16573 case 463:
16574 /* rule 463 can match eol */
16575 YY_RULE_SETUP
16576 #line 4337 "scanner.l"
16577
16578                                           lineCount() ; 
16579                                           current->args += ", " ; 
16580                                         }
16581         YY_BREAK
16582 case 464:
16583 /* rule 464 can match eol */
16584 YY_RULE_SETUP
16585 #line 4341 "scanner.l"
16586
16587                                           lineCount() ; 
16588                                           current->args += ' ' ; 
16589                                         }
16590         YY_BREAK
16591 case 465:
16592 YY_RULE_SETUP
16593 #line 4345 "scanner.l"
16594 { if (insidePHP)
16595                                             REJECT;
16596                                           lastCPPContext = YY_START;
16597                                           BEGIN(SkipCPP);
16598                                         }       
16599         YY_BREAK
16600 case 466:
16601 YY_RULE_SETUP
16602 #line 4350 "scanner.l"
16603
16604                                           if (insideCli && 
16605                                               (current_root->section&Entry::COMPOUND_MASK) 
16606                                              )
16607                                           {
16608                                             BEGIN(CliOverride);
16609                                           }
16610                                           else
16611                                           {
16612                                             // typically an initialized function pointer
16613                                             lastInitializerContext=YY_START;
16614                                             initBracketCount=0;
16615                                             current->initializer = scanYYtext;
16616                                             BEGIN(ReadInitializer);
16617                                           }
16618                                         }
16619         YY_BREAK
16620 case 467:
16621 YY_RULE_SETUP
16622 #line 4366 "scanner.l"
16623 {
16624                                         }
16625         YY_BREAK
16626 case 468:
16627 YY_RULE_SETUP
16628 #line 4368 "scanner.l"
16629
16630                                           unput(*scanYYtext);
16631                                           BEGIN(FuncQual);
16632                                         }
16633         YY_BREAK
16634 case 469:
16635 /* rule 469 can match eol */
16636 YY_RULE_SETUP
16637 #line 4372 "scanner.l"
16638 {
16639                                           lineCount();
16640                                         }
16641         YY_BREAK
16642 case 470:
16643 YY_RULE_SETUP
16644 #line 4375 "scanner.l"
16645 {
16646                                         }
16647         YY_BREAK
16648 case 471:
16649 YY_RULE_SETUP
16650 #line 4377 "scanner.l"
16651 {
16652                                           unput(*scanYYtext);
16653                                           BEGIN(FuncQual);
16654                                         }
16655         YY_BREAK
16656 case 472:
16657 YY_RULE_SETUP
16658 #line 4381 "scanner.l"
16659 {
16660                                           current->args += *scanYYtext; 
16661                                           pCopyQuotedString=&current->args;
16662                                           lastStringContext=FuncPtrInit;
16663                                           BEGIN(CopyString);
16664                                         }
16665         YY_BREAK
16666 case 473:
16667 YY_RULE_SETUP
16668 #line 4387 "scanner.l"
16669 {
16670                                           current->args += *scanYYtext; 
16671                                           if (insidePHP)
16672                                           {
16673                                             pCopyQuotedString=&current->args;
16674                                             lastStringContext=FuncPtrInit;
16675                                             BEGIN(CopyPHPString);
16676                                           }
16677                                         }
16678         YY_BREAK
16679 case 474:
16680 YY_RULE_SETUP
16681 #line 4396 "scanner.l"
16682 {
16683                                           if (insidePHP)
16684                                           {
16685                                             REJECT;
16686                                           }
16687                                           else
16688                                           {
16689                                             current->args += scanYYtext; 
16690                                           }
16691                                         }
16692         YY_BREAK
16693 case 475:
16694 YY_RULE_SETUP
16695 #line 4406 "scanner.l"
16696 {
16697                                           current->args += scanYYtext; 
16698                                         }
16699         YY_BREAK
16700 case 476:
16701 YY_RULE_SETUP
16702 #line 4409 "scanner.l"
16703 {
16704                                           current->args += *scanYYtext; 
16705                                         }
16706         YY_BREAK
16707 case 477:
16708 /* rule 477 can match eol */
16709 YY_RULE_SETUP
16710 #line 4412 "scanner.l"
16711 {
16712                                           current->args += *scanYYtext; 
16713                                           lineCount();
16714                                         }
16715         YY_BREAK
16716 case 478:
16717 YY_RULE_SETUP
16718 #line 4416 "scanner.l"
16719 { // typically a K&R style C function
16720                                           if (insideCS && strcmp(scanYYtext,"where")==0)
16721                                           { 
16722                                             // type contraint for a method
16723                                             delete current->typeConstr;
16724                                             current->typeConstr = new ArgumentList;
16725                                             current->typeConstr->append(new Argument);
16726                                             lastCSConstraint = YY_START;
16727                                             BEGIN( CSConstraintName );
16728                                           }
16729                                           else if (checkForKnRstyleC())
16730                                           {
16731                                             //fprintf(stderr,"===> got a K&R style function\n");
16732                                             current->args = scanYYtext; 
16733                                             oldStyleArgType.resize(0);
16734                                             BEGIN(OldStyleArgs);
16735                                           }
16736                                           else
16737                                           {
16738                                             current->args += scanYYtext; 
16739                                           }
16740                                         }
16741         YY_BREAK
16742 case 479:
16743 YY_RULE_SETUP
16744 #line 4438 "scanner.l"
16745 {
16746                                           QCString oldStyleArgPtr;
16747                                           QCString oldStyleArgName;
16748                                           splitKnRArg(oldStyleArgPtr,oldStyleArgName);
16749                                           QCString doc,brief;
16750                                           if (current->doc!=docBackup)
16751                                           {
16752                                             doc=current->doc.copy();
16753                                             current->doc=docBackup;
16754                                           }
16755                                           if (current->brief!=briefBackup)
16756                                           {
16757                                             brief=current->brief.copy();
16758                                             current->brief=briefBackup;
16759                                           }
16760                                           addKnRArgInfo(oldStyleArgType+oldStyleArgPtr,
16761                                                         oldStyleArgName,brief,doc);
16762                                           current->args.resize(0);
16763                                           if (*scanYYtext==';') oldStyleArgType.resize(0);
16764                                         }
16765         YY_BREAK
16766 case 480:
16767 YY_RULE_SETUP
16768 #line 4458 "scanner.l"
16769 { current->args += scanYYtext; }
16770         YY_BREAK
16771 case 481:
16772 YY_RULE_SETUP
16773 #line 4459 "scanner.l"
16774 {
16775                                           current->args = argListToString(current->argList);
16776                                           unput('{');
16777                                           BEGIN(FuncQual);
16778                                         }
16779         YY_BREAK
16780 case 482:
16781 YY_RULE_SETUP
16782 #line 4464 "scanner.l"
16783 { current->args += *scanYYtext; }
16784         YY_BREAK
16785 case 483:
16786 YY_RULE_SETUP
16787 #line 4465 "scanner.l"
16788 { current->args += *scanYYtext; }
16789         YY_BREAK
16790 case 484:
16791 /* rule 484 can match eol */
16792 #line 4467 "scanner.l"
16793 case 485:
16794 /* rule 485 can match eol */
16795 YY_RULE_SETUP
16796 #line 4467 "scanner.l"
16797 { /* try-function-block */ 
16798                                           insideTryBlock=TRUE;
16799                                           lineCount();
16800                                           if (scanYYtext[scanYYleng-1]==':')
16801                                           {
16802                                             unput(':');
16803                                             BEGIN( Function );
16804                                           }
16805                                         }
16806         YY_BREAK
16807 case 486:
16808 /* rule 486 can match eol */
16809 YY_RULE_SETUP
16810 #line 4476 "scanner.l"
16811 { // C++ style throw clause
16812                                           current->exception = " throw (" ;
16813                                           roundCount=0;
16814                                           lineCount() ;
16815                                           BEGIN( ExcpRound ) ;
16816                                         }
16817         YY_BREAK
16818 case 487:
16819 /* rule 487 can match eol */
16820 YY_RULE_SETUP
16821 #line 4482 "scanner.l"
16822 {
16823                                           current->exception = " raises (" ;
16824                                           lineCount() ;
16825                                           roundCount=0;
16826                                           BEGIN( ExcpRound ) ;
16827                                         }
16828         YY_BREAK
16829 case 488:
16830 /* rule 488 can match eol */
16831 YY_RULE_SETUP
16832 #line 4488 "scanner.l"
16833 { // Java style throw clause
16834                                           current->exception = " throws " ;
16835                                           lineCount() ;
16836                                           BEGIN( ExcpList );
16837                                         }
16838         YY_BREAK
16839 case 489:
16840 YY_RULE_SETUP
16841 #line 4493 "scanner.l"
16842 { current->exception += *scanYYtext ;
16843                                           ++roundCount ;
16844                                         }
16845         YY_BREAK
16846 case 490:
16847 YY_RULE_SETUP
16848 #line 4496 "scanner.l"
16849 { current->exception += *scanYYtext ; 
16850                                           if ( roundCount )
16851                                             --roundCount ;
16852                                           else
16853                                             BEGIN( FuncQual ) ;
16854                                         }
16855         YY_BREAK
16856 case 491:
16857 YY_RULE_SETUP
16858 #line 4502 "scanner.l"
16859 {
16860                                           current->exception += *scanYYtext;
16861                                         }
16862         YY_BREAK
16863 case 492:
16864 YY_RULE_SETUP
16865 #line 4505 "scanner.l"
16866 {
16867                                           unput('{'); BEGIN( FuncQual );
16868                                         }
16869         YY_BREAK
16870 case 493:
16871 YY_RULE_SETUP
16872 #line 4508 "scanner.l"
16873 {
16874                                           unput(';'); BEGIN( FuncQual );
16875                                         }
16876         YY_BREAK
16877 case 494:
16878 /* rule 494 can match eol */
16879 YY_RULE_SETUP
16880 #line 4511 "scanner.l"
16881 {
16882                                           current->exception += ' ';
16883                                           lineCount();
16884                                         }
16885         YY_BREAK
16886 case 495:
16887 YY_RULE_SETUP
16888 #line 4515 "scanner.l"
16889 {
16890                                           current->exception += *scanYYtext;
16891                                         }
16892         YY_BREAK
16893 case 496:
16894 YY_RULE_SETUP
16895 #line 4518 "scanner.l"
16896 { current->type += current->name ;
16897                                           current->name  = current->args ;
16898                                           current->args  = scanYYtext ;
16899                                           roundCount=0;
16900                                           BEGIN( FuncRound ) ;
16901                                         }
16902         YY_BREAK
16903 case 497:
16904 YY_RULE_SETUP
16905 #line 4524 "scanner.l"
16906 {
16907                                           if (!insidePHP) BEGIN(SkipInits);
16908                                         }
16909         YY_BREAK
16910 case 498:
16911 YY_RULE_SETUP
16912 #line 4527 "scanner.l"
16913
16914                                           current->name=current->name.simplifyWhiteSpace();
16915                                           current->type=current->type.simplifyWhiteSpace();
16916                                           current->args=removeRedundantWhiteSpace(current->args);
16917                                                         // was: current->args.simplifyWhiteSpace();
16918                                           current->fileName = yyFileName;
16919                                           current->startLine = yyLineNr;
16920                                           static QRegExp re("([^)]*[*&][^)]*)"); // (...*...)
16921                                           if (*scanYYtext!=';' || (current_root->section&Entry::COMPOUND_MASK) )
16922                                           {
16923                                             int tempArg=current->name.find('<');
16924                                             int ts=current->type.find('<');
16925                                             int te=current->type.findRev('>');
16926                                             int ti=current->type.find(re,0);
16927
16928                                             // bug677315: A<int(void *, char *)> get(); is not a function pointer
16929                                             bool isFunction = ti==-1 || // not a (...*...) pattern
16930                                                               (ts!=-1 && ts<te && ts<ti && ti<te); // (...*...) is part of a template argument list
16931                                                               
16932                                             //printf("type=%s ts=%d te=%d ti=%d isFunction=%d\n",
16933                                             //    current->type.data(),ts,te,ti,isFunction);
16934                                             QCString tempName;
16935                                             if (tempArg==-1) tempName=current->name; else tempName=current->name.left(tempArg);
16936                                             if (!current->type.isEmpty() &&
16937                                                 (!isFunction || current->type.left(8)=="typedef "))
16938                                             {
16939                                               //printf("Scanner.l: found in class variable: `%s' `%s' `%s'\n", current->type.data(),current->name.data(),current->args.data());
16940                                               if (isTypedef && current->type.left(8)!="typedef ")
16941                                               {
16942                                                 current->type.prepend("typedef ");
16943                                               }
16944                                               current->section = Entry::VARIABLE_SEC ;
16945                                             }
16946                                             else              
16947                                             {
16948                                               //printf("Scanner.l: found in class function: `%s' `%s' `%s'\n", current->type.data(),current->name.data(),current->args.data());
16949                                               current->section = Entry::FUNCTION_SEC ;
16950                                               current->proto = *scanYYtext==';';
16951                                             }
16952                                           }
16953                                           else // a global function prototype or function variable
16954                                           {
16955                                             //printf("Scanner.l: prototype? type=`%s' name=`%s' args=`%s'\n",current->type.data(),current->name.data(),current->args.data());
16956                                             if (!current->type.isEmpty() && 
16957                                                 (current->type.find(re,0)!=-1 || current->type.left(8)=="typedef "))
16958                                             {
16959                                               if (isTypedef && current->type.left(8)!="typedef ")
16960                                               {
16961                                                 current->type.prepend("typedef ");
16962                                               }
16963                                               //printf("Scanner.l: found function variable!\n");
16964                                               current->section = Entry::VARIABLE_SEC;
16965                                             }
16966                                             else
16967                                             {
16968                                               //printf("Scanner.l: found prototype\n");
16969                                               current->section = Entry::FUNCTION_SEC;
16970                                               current->proto = TRUE;
16971                                             }
16972                                           }
16973                                           //printf("Adding entry `%s'\n",current->name.data());
16974                                           if ( insidePHP)
16975                                           {
16976                                             if (findAndRemoveWord(current->type,"final"))
16977                                             {
16978                                               current->spec |= Entry::Final;
16979                                             }
16980                                             if (findAndRemoveWord(current->type,"abstract"))
16981                                             {
16982                                               current->spec |= Entry::Abstract;
16983                                             }
16984                                           }
16985                                           if ( insidePHP && !containsWord(current->type,"function"))
16986                                           {
16987                                             initEntry();
16988                                             if ( *scanYYtext == '{' )
16989                                             {
16990                                               lastCurlyContext = FindMembers;
16991                                               curlyCount=0;
16992                                               BEGIN( SkipCurly );
16993                                             }
16994                                             else
16995                                             {
16996                                               BEGIN( FindMembers );
16997                                             }
16998                                           }
16999                                           else
17000                                           {
17001                                             if ( insidePHP)
17002                                             {
17003                                               findAndRemoveWord(current->type,"function");
17004                                             }
17005                                             previous = current;
17006                                             current_root->addSubEntry(current);
17007                                             current = new Entry ;
17008                                             initEntry();
17009                                             // Objective C 2.0: Required/Optional section
17010                                             if (previous->spec & (Entry::Optional | Entry::Required))
17011                                             {
17012                                               current->spec |= previous->spec & (Entry::Optional|Entry::Required);
17013                                             }
17014                                             lastCurlyContext = FindMembers;
17015                                             if ( *scanYYtext == ',' )
17016                                             {
17017                                               current->type = previous->type;
17018                                               // we need to strip any trailing * and & (see bugs 623023 and 649103 for test cases)
17019                                               int i=current->type.length(); 
17020                                               while (i>0 && (current->type[i-1]=='*' || current->type[i-1]=='&' || current->type[i-1]==' ')) i--;
17021                                               current->type = current->type.left(i);
17022                                             }
17023                                             if ( *scanYYtext == '{' )
17024                                             {
17025                                               if ( !insidePHP && (current_root->section & Entry::COMPOUND_MASK) )
17026                                               {
17027                                                 previous->spec |= Entry::Inline;
17028                                               }
17029                                               //addToBody(scanYYtext);
17030                                               curlyCount=0;
17031                                               BEGIN( SkipCurly ) ;
17032                                             }
17033                                             else
17034                                             {
17035                                               if (previous->section!=Entry::VARIABLE_SEC)
17036                                                 previous->bodyLine=-1; // a function/member declaration
17037                                               BEGIN( FindMembers ) ;
17038                                             }
17039                                           }
17040                                         }
17041         YY_BREAK
17042 case 499:
17043 YY_RULE_SETUP
17044 #line 4655 "scanner.l"
17045 { // C++11 style initializer
17046                                           //addToBody(scanYYtext);
17047                                           //lastCurlyContext = FindMembers;
17048                                           //curlyCount=0;
17049                                           //BEGIN( SkipCurly ) ; 
17050                                           unput('{');
17051                                           BEGIN( Function );
17052                                         }
17053         YY_BREAK
17054 case 500:
17055 YY_RULE_SETUP
17056 #line 4663 "scanner.l"
17057
17058                                           //addToBody(scanYYtext);
17059                                           ++curlyCount ; 
17060                                         }
17061         YY_BREAK
17062 case 501:
17063 YY_RULE_SETUP
17064 #line 4667 "scanner.l"
17065
17066                                           //addToBody(scanYYtext);
17067                                           if( curlyCount )
17068                                           {
17069                                             --curlyCount ;
17070                                           }
17071                                           else
17072                                           {
17073 #if 0
17074                                             if (!Config_getBool("HIDE_IN_BODY_DOCS") && 
17075                                                 !current->doc.isEmpty())
17076                                             {
17077                                               // copy documentation found inside the body
17078                                               // to the previous item
17079                                               if (previous->inbodyLine==-1)
17080                                               {
17081                                                 previous->inbodyLine = current->docLine;
17082                                                 previous->inbodyFile = current->docFile;
17083                                               }
17084                                               //printf("*** inbodyDocs+=%s\n",current->doc.data());
17085                                               previous->inbodyDocs += current->doc;
17086                                               current->doc.resize(0);
17087                                             }
17088 #endif
17089                                             if (current->sli && previous) // copy special list items
17090                                             {
17091                                               QListIterator<ListItemInfo> li(*current->sli);
17092                                               ListItemInfo *lii;
17093                                               for (li.toFirst();(lii=li.current());++li)
17094                                               {
17095                                                 previous->addSpecialListItem(lii->type,lii->itemId);
17096                                               }
17097                                               delete current->sli;
17098                                               current->sli = 0;
17099                                             }
17100                                             if (previous) previous->endBodyLine=yyLineNr;
17101                                             BEGIN( lastCurlyContext ) ;
17102                                           }
17103                                         }
17104         YY_BREAK
17105 case 502:
17106 /* rule 502 can match eol */
17107 YY_RULE_SETUP
17108 #line 4706 "scanner.l"
17109
17110                                           lineCount();
17111                                           if ( curlyCount )
17112                                           {
17113                                             //addToBody(scanYYtext);
17114                                             --curlyCount ;
17115                                           }
17116                                           else
17117                                           {
17118                                             current->endBodyLine=yyLineNr;
17119
17120                                             tempEntry = current; // temporarily switch to the previous entry
17121                                             current = previous;
17122
17123                                             docBlockContext   = SkipCurlyEndDoc;
17124                                             docBlockInBody    = FALSE;
17125                                             docBlockAutoBrief = ( scanYYtext[scanYYleng-2]=='*' && Config_getBool("JAVADOC_AUTOBRIEF") ) ||
17126                                                                 ( scanYYtext[scanYYleng-2]=='!' && Config_getBool("QT_AUTOBRIEF") );
17127                                             docBlock.resize(0);
17128                                             docBlockTerm = '}';
17129                                             if (scanYYtext[scanYYleng-3]=='/')
17130                                             {
17131                                               startCommentBlock(TRUE);
17132                                               BEGIN( DocLine );
17133                                             }
17134                                             else
17135                                             {
17136                                               startCommentBlock(FALSE);
17137                                               BEGIN( DocBlock );
17138                                             }
17139                                           }
17140                                         }
17141         YY_BREAK
17142 case 503:
17143 /* rule 503 can match eol */
17144 YY_RULE_SETUP
17145 #line 4738 "scanner.l"
17146 { // desc is followed by another one
17147                                           docBlockContext   = SkipCurlyEndDoc;
17148                                           docBlockInBody    = FALSE;
17149                                           docBlockAutoBrief = ( scanYYtext[scanYYleng-2]=='*' && Config_getBool("JAVADOC_AUTOBRIEF") ) ||
17150                                                               ( scanYYtext[scanYYleng-2]=='!' && Config_getBool("QT_AUTOBRIEF") );
17151                                           docBlock.resize(0);
17152                                           docBlockTerm = '}';
17153                                           if (scanYYtext[scanYYleng-3]=='/')
17154                                           {
17155                                             startCommentBlock(TRUE);
17156                                             BEGIN( DocLine );
17157                                           }
17158                                           else
17159                                           {
17160                                             startCommentBlock(FALSE);
17161                                             BEGIN( DocBlock );
17162                                           }
17163                                         }
17164         YY_BREAK
17165 case 504:
17166 YY_RULE_SETUP
17167 #line 4756 "scanner.l"
17168 {
17169                                           //addToBody("}");
17170                                           current = tempEntry;
17171                                           BEGIN( lastCurlyContext );
17172                                         }
17173         YY_BREAK
17174 case 505:
17175 YY_RULE_SETUP
17176 #line 4761 "scanner.l"
17177
17178                                           //addToBody(scanYYtext);
17179                                           lastStringContext=SkipCurly;
17180                                           BEGIN( SkipString ); 
17181                                         }
17182         YY_BREAK
17183 case 506:
17184 YY_RULE_SETUP
17185 #line 4766 "scanner.l"
17186
17187                                           if (insidePHP)
17188                                             REJECT;
17189                                           //addToBody(scanYYtext);
17190                                           BEGIN( SkipCurlyCpp );
17191                                         }
17192         YY_BREAK
17193 case 507:
17194 /* rule 507 can match eol */
17195 YY_RULE_SETUP
17196 #line 4772 "scanner.l"
17197 {
17198                                           lineCount();
17199                                           //addToBody(scanYYtext);
17200                                         }
17201         YY_BREAK
17202 case 508:
17203 YY_RULE_SETUP
17204 #line 4776 "scanner.l"
17205 {
17206                                           if (!insidePHP) 
17207                                           {
17208                                             REJECT;
17209                                           }
17210                                           else
17211                                           {
17212                                             lastHereDocContext = YY_START;
17213                                             BEGIN(HereDoc);
17214                                           }
17215                                         }
17216         YY_BREAK
17217 case 509:
17218 YY_RULE_SETUP
17219 #line 4787 "scanner.l"
17220 {
17221                                           lineCount();  // for g_column updates
17222                                           //addToBody(scanYYtext);
17223                                         }
17224         YY_BREAK
17225 case 510:
17226 /* rule 510 can match eol */
17227 YY_RULE_SETUP
17228 #line 4791 "scanner.l"
17229
17230                                           //addToBody(scanYYtext);
17231                                           lineCount();
17232                                           lastCurlyContext = FindMembers;
17233                                           BEGIN( SkipCurly ); 
17234                                         }
17235         YY_BREAK
17236 case 511:
17237 /* rule 511 can match eol */
17238 YY_RULE_SETUP
17239 #line 4797 "scanner.l"
17240
17241                                           //addToBody(scanYYtext);
17242                                           lineCount();
17243                                         }
17244         YY_BREAK
17245 case 512:
17246 YY_RULE_SETUP
17247 #line 4801 "scanner.l"
17248 {
17249                                           //addToBody(scanYYtext);
17250                                           lastCContext = YY_START;
17251                                           BEGIN(SkipComment);
17252                                         }
17253         YY_BREAK
17254 case 513:
17255 YY_RULE_SETUP
17256 #line 4806 "scanner.l"
17257 {
17258                                           //addToBody(scanYYtext);
17259                                           lastCContext = YY_START;
17260                                           BEGIN(SkipCxxComment);
17261                                         }
17262         YY_BREAK
17263 case 514:
17264 YY_RULE_SETUP
17265 #line 4811 "scanner.l"
17266 {
17267                                           lastStringContext=YY_START;
17268                                           BEGIN( SkipString ); 
17269                                         }
17270         YY_BREAK
17271 case 515:
17272 YY_RULE_SETUP
17273 #line 4815 "scanner.l"
17274 {
17275                                           warn(yyFileName,yyLineNr,
17276                                               "warning: Found ';' while parsing initializer list! "
17277                                               "(doxygen could be confused by a macro call without semicolon)"
17278                                              );
17279                                           BEGIN( FindMembers );
17280                                         }
17281         YY_BREAK
17282 case 516:
17283 YY_RULE_SETUP
17284 #line 4822 "scanner.l"
17285 {
17286                                           if (!insidePHP)
17287                                             REJECT;
17288                                           //addToBody(scanYYtext);
17289                                           lastCContext = YY_START;
17290                                           BEGIN(SkipCxxComment);
17291                                         }
17292         YY_BREAK
17293 case 517:
17294 YY_RULE_SETUP
17295 #line 4829 "scanner.l"
17296 {
17297                                           if (!insideCS) REJECT;
17298                                           // C# verbatim string
17299                                           lastSkipVerbStringContext=YY_START;
17300                                           pSkipVerbString=&current->initializer;
17301                                           BEGIN(SkipVerbString);
17302                                         }
17303         YY_BREAK
17304 case 518:
17305 YY_RULE_SETUP
17306 #line 4836 "scanner.l"
17307 {
17308                                           if (insidePHP) REJECT;
17309                                         }
17310         YY_BREAK
17311 case 519:
17312 YY_RULE_SETUP
17313 #line 4839 "scanner.l"
17314 {
17315                                           if (insidePHP)
17316                                           {
17317                                             lastStringContext=YY_START;
17318                                             BEGIN(SkipPHPString);
17319                                           }
17320                                         }
17321         YY_BREAK
17322 case 520:
17323 YY_RULE_SETUP
17324 #line 4846 "scanner.l"
17325 { }
17326         YY_BREAK
17327 case 521:
17328 YY_RULE_SETUP
17329 #line 4847 "scanner.l"
17330 { }
17331         YY_BREAK
17332 case 522:
17333 YY_RULE_SETUP
17334 #line 4848 "scanner.l"
17335
17336                                           BEGIN( lastStringContext ); 
17337                                         }
17338         YY_BREAK
17339 case 523:
17340 YY_RULE_SETUP
17341 #line 4851 "scanner.l"
17342
17343                                           BEGIN( lastStringContext ); 
17344                                         }
17345         YY_BREAK
17346 case 524:
17347 YY_RULE_SETUP
17348 #line 4854 "scanner.l"
17349 { }
17350         YY_BREAK
17351 case 525:
17352 /* rule 525 can match eol */
17353 YY_RULE_SETUP
17354 #line 4855 "scanner.l"
17355 {
17356                                           lineCount();
17357                                         }
17358         YY_BREAK
17359 case 526:
17360 YY_RULE_SETUP
17361 #line 4858 "scanner.l"
17362 { }
17363         YY_BREAK
17364 case 527:
17365 YY_RULE_SETUP
17366 #line 4859 "scanner.l"
17367 { // for "class : public base {} var;" construct, see bug 608359
17368                                           unput(':');
17369                                           BEGIN(ClassVar);
17370                                         }
17371         YY_BREAK
17372 case 528:
17373 YY_RULE_SETUP
17374 #line 4863 "scanner.l"
17375
17376                                           current->section = Entry::EMPTY_SEC ;
17377                                           current->type.resize(0) ;
17378                                           current->name.resize(0) ;
17379                                           current->args.resize(0) ;
17380                                           current->argList->clear();
17381                                           BEGIN( FindMembers ) ;
17382                                         }
17383         YY_BREAK
17384 case 529:
17385 /* rule 529 can match eol */
17386 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */
17387 (yy_c_buf_p) = yy_cp -= 1;
17388 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */
17389 YY_RULE_SETUP
17390 #line 4871 "scanner.l"
17391 {
17392                                           sharpCount = 0;
17393                                           current->name = scanYYtext ;
17394                                           if (current->spec & Entry::Protocol)
17395                                           {
17396                                             current->name+="-p";
17397                                           }
17398                                           lineCount();
17399                                           lastClassTemplSpecContext = ClassVar;
17400                                           if (insideObjC) // protocol list
17401                                           {
17402                                             BEGIN( ObjCProtocolList );
17403                                           }
17404                                           else if (insideCS) // C# generic class
17405                                           {
17406                                             //current->name+="-g";
17407                                             BEGIN( CSGeneric );
17408                                           }
17409                                           else // C++ template specialization
17410                                           {
17411                                             roundCount=0;
17412                                             BEGIN( ClassTemplSpec );
17413                                           }
17414                                         }
17415         YY_BREAK
17416 case 530:
17417 YY_RULE_SETUP
17418 #line 4895 "scanner.l"
17419 {
17420                                           if (current->tArgLists==0)
17421                                           {
17422                                             current->tArgLists = new QList<ArgumentList>;
17423                                             current->tArgLists->setAutoDelete(TRUE);
17424                                           }
17425                                           ArgumentList *al = new ArgumentList;
17426                                           // check bug 612858 before enabling the next line
17427                                           //current->spec |= Entry::Template;
17428                                           current->tArgLists->append(al);
17429                                           currentArgumentList = al;
17430                                           templateStr="<";
17431                                           current->name += "<";
17432                                           fullArgString = templateStr;
17433                                           copyArgString = &current->name;
17434                                           //copyArgString = &templateStr;
17435                                           currentArgumentContext = ClassVar;
17436                                           BEGIN( ReadTempArgs );
17437                                         }
17438         YY_BREAK
17439 case 531:
17440 YY_RULE_SETUP
17441 #line 4914 "scanner.l"
17442 {
17443                                           insideProtocolList=TRUE;
17444                                           BEGIN( Bases );
17445                                         }
17446         YY_BREAK
17447 case 532:
17448 /* rule 532 can match eol */
17449 YY_RULE_SETUP
17450 #line 4918 "scanner.l"
17451 {
17452                                           current->name += scanYYtext;
17453                                           lineCount();
17454                                           if (--sharpCount<=0)
17455                                           {
17456                                             current->name = removeRedundantWhiteSpace(current->name);
17457                                             if (current->spec & Entry::Protocol)
17458                                             { // Objective-C protocol
17459                                               unput('{'); // fake start of body
17460                                               BEGIN( ClassVar );
17461                                             }
17462                                             else
17463                                             {
17464                                               BEGIN( lastClassTemplSpecContext );
17465                                             }
17466                                           }
17467                                         }
17468         YY_BREAK
17469 case 533:
17470 YY_RULE_SETUP
17471 #line 4935 "scanner.l"
17472 {
17473                                           current->name += scanYYtext;
17474                                           sharpCount++;
17475                                         }
17476         YY_BREAK
17477 case 534:
17478 YY_RULE_SETUP
17479 #line 4939 "scanner.l"
17480 {
17481                                           current->name += scanYYtext;
17482                                         }
17483         YY_BREAK
17484 case 535:
17485 /* rule 535 can match eol */
17486 YY_RULE_SETUP
17487 #line 4942 "scanner.l"
17488 { // forward declaration
17489                                           if (current->tArgLists && current->tArgLists->count()>0)
17490                                           {
17491                                             // found a forward template declaration, this has
17492                                             // a purpose of its own
17493                                             current->name = scanYYtext;
17494                                             current->name=current->name.left(current->name.length()-1).stripWhiteSpace();
17495                                             //printf("template class declaration for %s!\n",current->name.data());
17496                                             current_root->addSubEntry(current);
17497                                             current = new Entry;
17498                                           }
17499
17500                                           unput(';');
17501                                           current->reset();
17502                                           initEntry();
17503                                           if (isTypedef) // typedef of a class, put typedef keyword back
17504                                           {
17505                                             current->type.prepend("typedef");
17506                                           }
17507                                           BEGIN( FindMembers );
17508                                         }
17509         YY_BREAK
17510 case 536:
17511 /* rule 536 can match eol */
17512 YY_RULE_SETUP
17513 #line 4963 "scanner.l"
17514
17515                                           current->name = scanYYtext ;
17516                                           lineCount();
17517                                           if (current->spec & Entry::Protocol)
17518                                           {
17519                                             current->name += "-p";
17520                                           }
17521                                           BEGIN( ClassVar );
17522                                         }
17523         YY_BREAK
17524 case 537:
17525 /* rule 537 can match eol */
17526 YY_RULE_SETUP
17527 #line 4972 "scanner.l"
17528 {  // multiple forward declarations on one line
17529                                            // e.g. @protocol A,B;
17530                                           current->reset();
17531                                           initEntry();
17532                                         }
17533         YY_BREAK
17534 case 538:
17535 /* rule 538 can match eol */
17536 YY_RULE_SETUP
17537 #line 4977 "scanner.l"
17538
17539                                           current->name = scanYYtext ;
17540                                           lineCount();
17541                                           if (current->spec & Entry::Protocol)
17542                                           {
17543                                             current->name += "-p";
17544                                           }
17545                                           if ((current->spec & Entry::Protocol) ||
17546                                               current->section == Entry::OBJCIMPL_SEC)
17547                                           {
17548                                             unput('{'); // fake start of body
17549                                           }
17550                                           BEGIN( ClassVar );
17551                                         }
17552         YY_BREAK
17553 case 539:
17554 /* rule 539 can match eol */
17555 YY_RULE_SETUP
17556 #line 4991 "scanner.l"
17557 { // C# style scope
17558                                           current->name = substitute(scanYYtext,".","::");
17559                                           lineCount();
17560                                           BEGIN( ClassVar );
17561                                         }
17562         YY_BREAK
17563 case 540:
17564 /* rule 540 can match eol */
17565 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */
17566 (yy_c_buf_p) = yy_cp -= 1;
17567 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */
17568 YY_RULE_SETUP
17569 #line 4996 "scanner.l"
17570 {
17571                                           if (insideIDL && strncmp(scanYYtext,"switch",6)==0 && !isId(scanYYtext[6]))
17572                                           {
17573                                             // Corba IDL style union
17574                                             roundCount=0;
17575                                             BEGIN(SkipUnionSwitch);
17576                                           }
17577                                           else
17578                                           {
17579                                             addType(current);
17580                                             current->name = scanYYtext;
17581                                             current->name = current->name.stripWhiteSpace();
17582                                             lineCount();
17583                                             BEGIN( FindMembers );
17584                                           }
17585                                         }
17586         YY_BREAK
17587 case 541:
17588 YY_RULE_SETUP
17589 #line 5012 "scanner.l"
17590 {
17591                                           if (isTypedef)
17592                                           {
17593                                             // multiple types in one typedef
17594                                             unput(',');
17595                                             current->type.prepend("typedef ");
17596                                             BEGIN(FindMembers);
17597                                           }
17598                                           else
17599                                           { 
17600                                             // Multiple class forward declaration
17601                                           }
17602                                         }
17603         YY_BREAK
17604 case 542:
17605 /* rule 542 can match eol */
17606 YY_RULE_SETUP
17607 #line 5025 "scanner.l"
17608 {
17609                                           if (insideCli)
17610                                           {
17611                                             if (scanYYtext[0]=='s') // sealed
17612                                               current->spec |= Entry::SealedClass;
17613                                             else // abstract
17614                                               current->spec |= Entry::AbstractClass;
17615                                             BEGIN( ClassVar ); 
17616                                           }
17617                                           else
17618                                           {
17619                                             REJECT;
17620                                           }
17621                                         }
17622         YY_BREAK
17623 case 543:
17624 YY_RULE_SETUP
17625 #line 5039 "scanner.l"
17626 {
17627                                           if (insideIDL && strcmp(scanYYtext,"switch")==0)
17628                                           {
17629                                             // Corba IDL style union
17630                                             roundCount=0;
17631                                             BEGIN(SkipUnionSwitch);
17632                                           }
17633                                           else if ((insideJava || insidePHP || insideJS) && (strcmp(scanYYtext,"implements")==0 || strcmp(scanYYtext,"extends")==0))
17634                                           {
17635                                             current->type.resize(0);
17636                                             baseProt=Public;
17637                                             baseVirt=Normal;
17638                                             baseName.resize(0);
17639                                             BEGIN( BasesProt ) ;
17640                                           }
17641                                           else if (insideCS && strcmp(scanYYtext,"where")==0) // C# type contraint
17642                                           {
17643                                             delete current->typeConstr;
17644                                             current->typeConstr = new ArgumentList;
17645                                             current->typeConstr->append(new Argument);
17646                                             lastCSConstraint = YY_START;
17647                                             BEGIN( CSConstraintName );
17648                                           }
17649                                           else if (insideCli &&  strcmp(scanYYtext,"abstract")==0)
17650                                           {
17651                                             current->spec|=Entry::Abstract;
17652                                           }
17653                                           else if (insideCli &&  strcmp(scanYYtext,"sealed")==0)
17654                                           {
17655                                             current->spec|=Entry::Sealed;
17656                                           }
17657                                           else if (strcmp(scanYYtext,"final")==0)
17658                                           {
17659                                             current->spec|=Entry::Final;
17660                                           }
17661                                           else
17662                                           {
17663                                             if (current->section == Entry::ENUM_SEC)
17664                                             { // found "enum a b" -> variable
17665                                               current->section = Entry::VARIABLE_SEC ;
17666                                             }
17667                                             current->type += ' ' ;
17668                                             current->type += current->name ;
17669                                             current->name = scanYYtext ;
17670                                             
17671                                             if (nameIsOperator(current->name))
17672                                             {
17673                                               BEGIN( Operator );
17674                                             }
17675                                           }
17676                                         }
17677         YY_BREAK
17678 case 544:
17679 YY_RULE_SETUP
17680 #line 5090 "scanner.l"
17681 {
17682                                           if (insideObjC && *scanYYtext=='(') // class category
17683                                           {
17684                                             current->name+='(';
17685                                             //if (current->section!=Entry::OBJCIMPL_SEC)
17686                                             //{
17687                                               current->spec|=Entry::Category;
17688                                             //}
17689                                             BEGIN( ClassCategory );
17690                                           }
17691                                           else
17692                                           {
17693                                             // probably a function anyway
17694                                             unput(*scanYYtext);
17695                                             BEGIN( FindMembers );
17696                                           }
17697                                         }
17698         YY_BREAK
17699 case 545:
17700 YY_RULE_SETUP
17701 #line 5107 "scanner.l"
17702 { /* empty comment */ }
17703         YY_BREAK
17704 case 546:
17705 YY_RULE_SETUP
17706 #line 5108 "scanner.l"
17707 { // special comment
17708                                           fullArgString.resize(0);
17709                                           lastCopyArgChar='#'; // end marker
17710                                           lastCommentInArgContext=YY_START;
17711                                           if (scanYYtext[1]=='/')
17712                                             BEGIN( CopyArgCommentLine );
17713                                           else
17714                                             BEGIN( CopyArgComment );
17715                                         }
17716         YY_BREAK
17717 case 547:
17718 YY_RULE_SETUP
17719 #line 5117 "scanner.l"
17720 { // artificially inserted token to signal end of comment block
17721                                           current->typeConstr->last()->docs = fullArgString;
17722                                         }
17723         YY_BREAK
17724 case 548:
17725 YY_RULE_SETUP
17726 #line 5120 "scanner.l"
17727 { // end of type constraint reached
17728                                           // parse documentation of the constraints
17729                                           handleParametersCommentBlocks(current->typeConstr);
17730                                           unput('{');
17731                                           BEGIN( lastCSConstraint );
17732                                         }
17733         YY_BREAK
17734 case 549:
17735 YY_RULE_SETUP
17736 #line 5126 "scanner.l"
17737 {
17738                                           handleParametersCommentBlocks(current->typeConstr);
17739                                           unput(';');
17740                                           BEGIN( lastCSConstraint );
17741                                         }
17742         YY_BREAK
17743 case 550:
17744 YY_RULE_SETUP
17745 #line 5131 "scanner.l"
17746 {
17747                                           BEGIN( CSConstraintType );
17748                                         }
17749         YY_BREAK
17750 case 551:
17751 YY_RULE_SETUP
17752 #line 5134 "scanner.l"
17753 {
17754                                           // parameter name
17755                                           current->typeConstr->last()->name=scanYYtext;
17756                                         }
17757         YY_BREAK
17758 case 552:
17759 YY_RULE_SETUP
17760 #line 5138 "scanner.l"
17761 { // another constraint for a different param
17762                                           current->typeConstr->append(new Argument);
17763                                           BEGIN( CSConstraintName );
17764                                         }
17765         YY_BREAK
17766 case 553:
17767 YY_RULE_SETUP
17768 #line 5142 "scanner.l"
17769 {
17770                                           if (current->typeConstr->last()->type.isEmpty())
17771                                               // first type constraint for this parameter
17772                                           {
17773                                             current->typeConstr->last()->type=scanYYtext;
17774                                           }
17775                                           else // new type constraint for same parameter
17776                                           {
17777                                             QCString name = current->typeConstr->last()->name;
17778                                             current->typeConstr->append(new Argument);
17779                                             current->typeConstr->last()->name=name;
17780                                             current->typeConstr->last()->type=scanYYtext;
17781                                           }
17782                                         }
17783         YY_BREAK
17784 case 554:
17785 /* rule 554 can match eol */
17786 YY_RULE_SETUP
17787 #line 5156 "scanner.l"
17788 {
17789                                           lineCount();
17790                                         }
17791         YY_BREAK
17792 case 555:
17793 YY_RULE_SETUP
17794 #line 5159 "scanner.l"
17795 {
17796                                         }
17797         YY_BREAK
17798 case 556:
17799 YY_RULE_SETUP
17800 #line 5161 "scanner.l"
17801 {
17802                                           current->name+=scanYYtext;
17803                                         }
17804         YY_BREAK
17805 case 557:
17806 /* rule 557 can match eol */
17807 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */
17808 (yy_c_buf_p) = yy_cp = yy_bp + 1;
17809 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */
17810 YY_RULE_SETUP
17811 #line 5164 "scanner.l"
17812 {
17813                                           current->name+=')';
17814                                           BEGIN( ClassVar );
17815                                         }
17816         YY_BREAK
17817 case 558:
17818 /* rule 558 can match eol */
17819 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */
17820 (yy_c_buf_p) = yy_cp = yy_bp + 1;
17821 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */
17822 YY_RULE_SETUP
17823 #line 5168 "scanner.l"
17824 {
17825                                           current->name+=')';
17826                                           BEGIN( ObjCProtocolList );
17827                                         }
17828         YY_BREAK
17829 case 559:
17830 YY_RULE_SETUP
17831 #line 5172 "scanner.l"
17832 {
17833                                           current->name+=')';
17834                                           if ((current->section & Entry::Protocol) ||
17835                                               current->section == Entry::OBJCIMPL_SEC)
17836                                           {
17837                                             unput('{'); // fake start of body
17838                                           }
17839                                           else // category has no variables so push back an empty body
17840                                           {
17841                                             unput('}');
17842                                             unput('{');
17843                                           }
17844                                           BEGIN( ClassVar );
17845                                         }
17846         YY_BREAK
17847 case 560:
17848 YY_RULE_SETUP
17849 #line 5186 "scanner.l"
17850
17851                                           if (current->section==Entry::ENUM_SEC) // enum E:2, see bug 313527, 
17852                                                                                  // or C++11 style enum: 'E : unsigned int {...}'
17853                                           {
17854                                             current->args.resize(0);
17855                                             BEGIN(EnumBaseType);
17856                                           }
17857                                           else
17858                                           {
17859                                             current->type.resize(0);
17860                                             if ((current->spec & Entry::Interface) || 
17861                                                 (current->spec & Entry::Struct)    || 
17862                                                 (current->spec & Entry::Ref)       || 
17863                                                 (current->spec & Entry::Value)     || 
17864                                                 insidePHP || insideCS || insideD || insideObjC
17865                                                )
17866                                               baseProt=Public;
17867                                             else
17868                                               baseProt=Private;
17869                                             baseVirt=Normal;
17870                                             baseName.resize(0);
17871                                             BEGIN( BasesProt ) ;
17872                                           }
17873                                         }
17874         YY_BREAK
17875 case 561:
17876 YY_RULE_SETUP
17877 #line 5210 "scanner.l"
17878 {
17879                                           unput(*scanYYtext);
17880                                           if (isTypedef) // typedef of a class, put typedef keyword back
17881                                           {
17882                                             current->type.prepend("typedef");
17883                                           }
17884                                           if ((scanYYtext[0]=='*' || scanYYtext[0]=='&') && 
17885                                               current->section == Entry::ENUM_SEC)
17886                                           { // found "enum a *b" -> variable
17887                                             current->section = Entry::VARIABLE_SEC ;
17888                                           }
17889                                           BEGIN( FindMembers );
17890                                         }
17891         YY_BREAK
17892 case 562:
17893 /* rule 562 can match eol */
17894 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */
17895 (yy_c_buf_p) = yy_cp = yy_bp + 3;
17896 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */
17897 YY_RULE_SETUP
17898 #line 5223 "scanner.l"
17899 {
17900                                           if (!insideObjC)
17901                                           {
17902                                             REJECT;
17903                                           }
17904                                           else
17905                                           {
17906                                             lineCount();
17907                                             current->program+=scanYYtext;
17908                                             current->fileName = yyFileName ;
17909                                             current->startLine = yyLineNr ;
17910                                             curlyCount=0;
17911                                             BEGIN( ReadBodyIntf );
17912                                           }
17913                                         }
17914         YY_BREAK
17915 case 563:
17916 /* rule 563 can match eol */
17917 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */
17918 (yy_c_buf_p) = yy_cp -= 1;
17919 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */
17920 #line 5239 "scanner.l"
17921 case 564:
17922 /* rule 564 can match eol */
17923 #line 5240 "scanner.l"
17924 case 565:
17925 /* rule 565 can match eol */
17926 #line 5241 "scanner.l"
17927 case 566:
17928 /* rule 566 can match eol */
17929 YY_RULE_SETUP
17930 #line 5241 "scanner.l"
17931 {
17932                                           if (!insideObjC)
17933                                           {
17934                                             REJECT;
17935                                           }
17936                                           else
17937                                           {
17938                                             lineCount();
17939                                             current->program+=scanYYtext;
17940                                             current->fileName = yyFileName ;
17941                                             current->startLine = yyLineNr ;
17942                                             curlyCount=0;
17943                                             BEGIN( ReadBodyIntf );
17944                                           }
17945                                         }
17946         YY_BREAK
17947 case 567:
17948 YY_RULE_SETUP
17949 #line 5256 "scanner.l"
17950
17951                                           current->fileName = yyFileName ;
17952                                           current->startLine = yyLineNr ;
17953                                           current->name = removeRedundantWhiteSpace(current->name);
17954                                           if (current->name.isEmpty() && !isTypedef) // anonymous compound
17955                                           {
17956                                             if (current->section==Entry::NAMESPACE_SEC) // allow reopening of anonymous namespaces
17957                                             {
17958                                               if (Config_getBool("EXTRACT_ANON_NSPACES")) // use visible name
17959                                               {
17960                                                 current->name="anonymous_namespace{"+stripPath(current->fileName)+"}";
17961                                               }
17962                                               else // use invisible name
17963                                               {
17964                                                 current->name.sprintf("@%d",anonNSCount);
17965                                               }
17966                                             }
17967                                             else
17968                                             {
17969                                               current->name.sprintf("@%d",anonCount++);
17970                                             }
17971                                           }
17972                                           curlyCount=0;
17973                                           if (current_root && // not a nested struct inside an @interface section
17974                                               !(current_root->spec & Entry::Interface) &&
17975                                               ((current->spec & (Entry::Interface | Entry::Protocol | Entry::Category) ||
17976                                                 current->section==Entry::OBJCIMPL_SEC)
17977                                               ) &&
17978                                               insideObjC
17979                                              )
17980                                           { // ObjC body that ends with @end
17981                                             BEGIN( ReadBodyIntf );
17982                                           }
17983                                           else if (current->section==Entry::NAMESPACE_SEC)
17984                                           { // namespace body
17985                                             BEGIN( ReadNSBody );
17986                                           }
17987                                           else
17988                                           { // class body
17989                                             BEGIN( ReadBody ) ;
17990                                           }
17991                                         }
17992         YY_BREAK
17993 case 568:
17994 /* rule 568 can match eol */
17995 YY_RULE_SETUP
17996 #line 5298 "scanner.l"
17997 { lineCount(); baseVirt = Virtual; }
17998         YY_BREAK
17999 case 569:
18000 /* rule 569 can match eol */
18001 YY_RULE_SETUP
18002 #line 5299 "scanner.l"
18003 { lineCount(); baseProt = Public; }
18004         YY_BREAK
18005 case 570:
18006 /* rule 570 can match eol */
18007 YY_RULE_SETUP
18008 #line 5300 "scanner.l"
18009 { lineCount(); baseProt = Protected; }
18010         YY_BREAK
18011 case 571:
18012 /* rule 571 can match eol */
18013 YY_RULE_SETUP
18014 #line 5301 "scanner.l"
18015 { lineCount(); baseProt = Package; }
18016         YY_BREAK
18017 case 572:
18018 /* rule 572 can match eol */
18019 YY_RULE_SETUP
18020 #line 5302 "scanner.l"
18021 { lineCount(); baseProt = Private; }
18022         YY_BREAK
18023 case 573:
18024 /* rule 573 can match eol */
18025 YY_RULE_SETUP
18026 #line 5303 "scanner.l"
18027 { lineCount(); }
18028         YY_BREAK
18029 case 574:
18030 YY_RULE_SETUP
18031 #line 5304 "scanner.l"
18032 { unput(*scanYYtext); BEGIN(Bases); }
18033         YY_BREAK
18034 case 575:
18035 YY_RULE_SETUP
18036 #line 5305 "scanner.l"
18037 { // PHP namespace token, not sure if interspacing is allowed but it gives problems (see bug 640847)
18038                                           if (!insidePHP)
18039                                           {
18040                                             REJECT;
18041                                           }
18042                                           else // PHP base class of the form \Ns\Cl or Ns\Cl
18043                                           {
18044                                             lineCount();
18045                                             QCString bn=scanYYtext;
18046                                             bn = substitute(bn,"\\","::");
18047                                             baseName += bn;
18048                                             current->args += ' ';
18049                                             current->args += scanYYtext;
18050                                           }
18051                                         }
18052         YY_BREAK
18053 case 576:
18054 /* rule 576 can match eol */
18055 YY_RULE_SETUP
18056 #line 5320 "scanner.l"
18057
18058                                           lineCount();
18059                                           QCString baseScope = scanYYtext;
18060                                           if (insideCS && baseScope.stripWhiteSpace()=="where")
18061                                           { 
18062                                             // type contraint for a class
18063                                             delete current->typeConstr;
18064                                             current->typeConstr = new ArgumentList;
18065                                             current->typeConstr->append(new Argument);
18066                                             lastCSConstraint = YY_START;
18067                                             BEGIN( CSConstraintName );
18068                                           }
18069                                           else
18070                                           {
18071                                             baseName+=scanYYtext;
18072                                             current->args += ' ';
18073                                             current->args += scanYYtext;
18074                                           }
18075                                         }
18076         YY_BREAK
18077 case 577:
18078 /* rule 577 can match eol */
18079 YY_RULE_SETUP
18080 #line 5339 "scanner.l"
18081 { // Java style class
18082                                           QCString name = substitute(scanYYtext,".","::");
18083                                           baseName += name;
18084                                           current->args += ' ';
18085                                           current->args += name;
18086                                         }
18087         YY_BREAK
18088 case 578:
18089 /* rule 578 can match eol */
18090 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */
18091 (yy_c_buf_p) = yy_cp = yy_bp + 1;
18092 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */
18093 YY_RULE_SETUP
18094 #line 5345 "scanner.l"
18095 {
18096                                           if (!insideObjC) 
18097                                           {
18098                                             REJECT;
18099                                           }
18100                                           else
18101                                           {
18102                                             lineCount();
18103                                             unput('{');
18104                                           }
18105                                         }
18106         YY_BREAK
18107 case 579:
18108 YY_RULE_SETUP
18109 #line 5356 "scanner.l"
18110 { // empty ObjC interface
18111                                           unput('d'); // insert fake body: {}@end
18112                                           unput('n'); 
18113                                           unput('e'); 
18114                                           unput('@'); 
18115                                           unput('}'); 
18116                                           unput('{');
18117                                         }
18118         YY_BREAK
18119 case 580:
18120 YY_RULE_SETUP
18121 #line 5364 "scanner.l"
18122 { current->name += *scanYYtext;
18123                                           sharpCount=1; 
18124                                           roundCount=0;
18125                                           lastSkipSharpContext = YY_START;
18126                                           specName = &current->name;
18127                                           BEGIN ( Specialization );
18128                                         }
18129         YY_BREAK
18130 case 581:
18131 YY_RULE_SETUP
18132 #line 5371 "scanner.l"
18133
18134                                           sharpCount=1; 
18135                                           roundCount=0;
18136                                           lastSkipSharpContext = YY_START;
18137                                           if (insideObjC) // start of protocol list
18138                                           {
18139                                             unput(',');
18140                                           }
18141                                           else // template specialization
18142                                           {
18143                                             //if (insideCS) // generic
18144                                             //{
18145                                             //  baseName+="-g";
18146                                             //}
18147                                             templateStr = scanYYtext;
18148                                             specName = &templateStr;
18149                                             BEGIN ( Specialization );
18150                                           }
18151                                         }
18152         YY_BREAK
18153 case 582:
18154 YY_RULE_SETUP
18155 #line 5390 "scanner.l"
18156 { *specName += *scanYYtext;
18157                                           if (roundCount==0) sharpCount++;
18158                                         }
18159         YY_BREAK
18160 case 583:
18161 YY_RULE_SETUP
18162 #line 5393 "scanner.l"
18163 {
18164                                           *specName += *scanYYtext;
18165                                           if (roundCount==0 && --sharpCount<=0)
18166                                           {
18167                                             if (1 /*!insideCS*/) 
18168                                             {
18169                                               baseName+=*specName;
18170                                             }
18171                                             else
18172                                             {
18173                                               if (current->tArgLists==0)
18174                                               {
18175                                                 current->tArgLists = new QList<ArgumentList>;
18176                                                 current->tArgLists->setAutoDelete(TRUE);
18177                                               }
18178                                               ArgumentList *al = new ArgumentList;
18179                                               current->tArgLists->append(al);
18180                                               stringToArgumentList(*specName,al);
18181                                             }
18182                                             BEGIN(lastSkipSharpContext);
18183                                           }
18184                                         }
18185         YY_BREAK
18186 case 584:
18187 /* rule 584 can match eol */
18188 YY_RULE_SETUP
18189 #line 5415 "scanner.l"
18190 { lineCount(); *specName +=' '; }
18191         YY_BREAK
18192 case 585:
18193 YY_RULE_SETUP
18194 #line 5416 "scanner.l"
18195 { *specName += scanYYtext; }
18196         YY_BREAK
18197 case 586:
18198 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */
18199 (yy_c_buf_p) = yy_cp = yy_bp + 2;
18200 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */
18201 YY_RULE_SETUP
18202 #line 5417 "scanner.l"
18203 { // M$ C++ extension to allow >> to close a template...
18204                                           unput('>');
18205                                           unput(' ');
18206                                           unput('>');
18207                                         }
18208         YY_BREAK
18209 case 587:
18210 YY_RULE_SETUP
18211 #line 5422 "scanner.l"
18212 {
18213                                           if (insideCS) // for C# >> ends a nested template
18214                                           {
18215                                             REJECT;
18216                                           }
18217                                           else // for C++ >> is a bitshift 
18218                                                // operator and > > would end 
18219                                                // a nested template.
18220                                                // We require the bitshift to be enclosed in braces.
18221                                                // See http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1757.html
18222                                           {
18223                                             if (roundCount>0)
18224                                             {
18225                                               *specName += scanYYtext; 
18226                                             }
18227                                             else
18228                                             {
18229                                               unput('>');
18230                                               unput(' ');
18231                                               unput('>');
18232                                             }
18233                                           }
18234                                         }
18235         YY_BREAK
18236 case 588:
18237 /* rule 588 can match eol */
18238 YY_RULE_SETUP
18239 #line 5445 "scanner.l"
18240 { lineCount(); }
18241         YY_BREAK
18242 case 589:
18243 YY_RULE_SETUP
18244 #line 5446 "scanner.l"
18245 { *specName += *scanYYtext; roundCount++; }
18246         YY_BREAK
18247 case 590:
18248 YY_RULE_SETUP
18249 #line 5447 "scanner.l"
18250 { *specName += *scanYYtext; roundCount--; }
18251         YY_BREAK
18252 case 591:
18253 YY_RULE_SETUP
18254 #line 5448 "scanner.l"
18255 {
18256                                           *specName += *scanYYtext;
18257                                         }
18258         YY_BREAK
18259 case 592:
18260 YY_RULE_SETUP
18261 #line 5451 "scanner.l"
18262 { ++sharpCount; }
18263         YY_BREAK
18264 case 593:
18265 YY_RULE_SETUP
18266 #line 5452 "scanner.l"
18267 { if (--sharpCount<=0)
18268                                             BEGIN ( lastSkipSharpContext );
18269                                         }
18270         YY_BREAK
18271 case 594:
18272 YY_RULE_SETUP
18273 #line 5455 "scanner.l"
18274 { ++roundCount; }
18275         YY_BREAK
18276 case 595:
18277 YY_RULE_SETUP
18278 #line 5456 "scanner.l"
18279 { if (--roundCount<=0)
18280                                             BEGIN ( lastSkipRoundContext );
18281                                         }
18282         YY_BREAK
18283 case 596:
18284 YY_RULE_SETUP
18285 #line 5459 "scanner.l"
18286 {
18287                                           lastStringContext=SkipRound;
18288                                           BEGIN(SkipString);
18289                                         }
18290         YY_BREAK
18291 case 597:
18292 /* rule 597 can match eol */
18293 YY_RULE_SETUP
18294 #line 5463 "scanner.l"
18295 { lineCount();
18296                                           if (insideProtocolList)
18297                                           {
18298                                             baseName+="-p";
18299                                           }
18300                                           else
18301                                           {
18302                                             current->args += ',' ; 
18303                                           }
18304                                           current->name = removeRedundantWhiteSpace(current->name);
18305                                           if (!baseName.isEmpty())
18306                                           {
18307                                             current->extends->append(
18308                                               new BaseInfo(baseName,baseProt,baseVirt)
18309                                             );
18310                                           }
18311                                           if ((current->spec & (Entry::Interface|Entry::Struct)) || 
18312                                               insideJava || insidePHP || insideCS || 
18313                                               insideD || insideObjC)
18314                                           {
18315                                             baseProt=Public;
18316                                           }
18317                                           else
18318                                           {
18319                                             baseProt=Private;
18320                                           }
18321                                           baseVirt=Normal;
18322                                           baseName.resize(0);
18323                                           if (*scanYYtext=='>')
18324                                           { // end of a ObjC protocol list
18325                                             insideProtocolList=FALSE;
18326                                             if (scanYYleng==1)
18327                                             {
18328                                               unput('{'); // dummy start body
18329                                             }
18330                                             else
18331                                             {
18332                                               yyless(1);
18333                                             }
18334                                           }
18335                                           else
18336                                           {
18337                                             if (*scanYYtext==',' && insideObjC) // Begin of protocol list
18338                                             {
18339                                               insideProtocolList=TRUE;
18340                                             }
18341                                             BEGIN(BasesProt);
18342                                           }
18343                                         }
18344         YY_BREAK
18345 case 598:
18346 YY_RULE_SETUP
18347 #line 5512 "scanner.l"
18348 { current->fileName = yyFileName ;
18349                                           current->startLine = yyLineNr ;
18350                                           current->name = removeRedundantWhiteSpace(current->name);
18351                                           if (!baseName.isEmpty())
18352                                             current->extends->append(
18353                                               new BaseInfo(baseName,baseProt,baseVirt)
18354                                             );
18355                                           curlyCount=0;
18356                                           if (insideObjC)
18357                                           {
18358                                             BEGIN( ReadBodyIntf );
18359                                           }
18360                                           else
18361                                           {
18362                                             BEGIN( ReadBody ) ;
18363                                           }
18364                                         }
18365         YY_BREAK
18366 case 599:
18367 YY_RULE_SETUP
18368 #line 5529 "scanner.l"
18369 {
18370                                           roundCount++;
18371                                         }
18372         YY_BREAK
18373 case 600:
18374 YY_RULE_SETUP
18375 #line 5532 "scanner.l"
18376 {
18377                                           if (--roundCount==0)
18378                                           {
18379                                             BEGIN(ClassVar);
18380                                           }
18381                                         }
18382         YY_BREAK
18383 case 601:
18384 /* rule 601 can match eol */
18385 YY_RULE_SETUP
18386 #line 5538 "scanner.l"
18387 { lineCount(); }
18388         YY_BREAK
18389 case 602:
18390 YY_RULE_SETUP
18391 #line 5539 "scanner.l"
18392
18393         YY_BREAK
18394 case 603:
18395 /* rule 603 can match eol */
18396 YY_RULE_SETUP
18397 #line 5540 "scanner.l"
18398 { current->program += scanYYtext ;
18399                                           lineCount() ;
18400                                         }
18401         YY_BREAK
18402 case 604:
18403 YY_RULE_SETUP
18404 #line 5543 "scanner.l"
18405 { current->program += scanYYtext ; } 
18406         YY_BREAK
18407 case 605:
18408 YY_RULE_SETUP
18409 #line 5544 "scanner.l"
18410 { current->program += scanYYtext ; }
18411         YY_BREAK
18412 case 606:
18413 YY_RULE_SETUP
18414 #line 5545 "scanner.l"
18415 {
18416                                           insideCode=TRUE;
18417                                           current->program += scanYYtext ;
18418                                         }
18419         YY_BREAK
18420 case 607:
18421 YY_RULE_SETUP
18422 #line 5549 "scanner.l"
18423 {
18424                                           insideCode=FALSE;
18425                                           current->program += scanYYtext ;
18426                                         }
18427         YY_BREAK
18428 case 608:
18429 YY_RULE_SETUP
18430 #line 5553 "scanner.l"
18431 { current->program += scanYYtext ; }
18432         YY_BREAK
18433 case 609:
18434 YY_RULE_SETUP
18435 #line 5554 "scanner.l"
18436 { current->program += scanYYtext ;
18437                                           if (!insideCode) BEGIN( lastContext ) ;
18438                                         }
18439         YY_BREAK
18440 case 610:
18441 YY_RULE_SETUP
18442 #line 5557 "scanner.l"
18443 { current->program += *scanYYtext ; }
18444         YY_BREAK
18445 case 611:
18446 YY_RULE_SETUP
18447 #line 5559 "scanner.l"
18448
18449                                           //printf("Start doc block at %d\n",yyLineNr);
18450                                           removeSlashes=(scanYYtext[1]=='/');
18451                                           tmpDocType=-1;
18452                                           if (!current->doc.isEmpty())
18453                                           {
18454                                             current->doc+="\n\n";
18455                                           }
18456                                           else
18457                                           {
18458                                             current->docLine = yyLineNr;
18459                                             current->docFile = yyFileName;
18460                                           }
18461
18462                                           lastDocContext = YY_START;
18463                                           if (current_root->section & Entry::SCOPE_MASK)
18464                                           {
18465                                             current->inside = current_root->name+"::";
18466                                           }
18467                                           docBlockContext   = YY_START;
18468                                           docBlockInBody    = YY_START==SkipCurly;
18469                                           docBlockAutoBrief = Config_getBool("QT_AUTOBRIEF");
18470                                           docBlock.resize(0);
18471                                           if (docBlockAutoBrief)
18472                                           {
18473                                             current->briefLine = yyLineNr;
18474                                             current->briefFile = yyFileName;
18475                                           }
18476                                           startCommentBlock(FALSE);
18477                                           BEGIN( DocBlock );
18478                                         }
18479         YY_BREAK
18480 case 612:
18481 /* rule 612 can match eol */
18482 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */
18483 (yy_c_buf_p) = yy_cp -= 1;
18484 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */
18485 YY_RULE_SETUP
18486 #line 5590 "scanner.l"
18487 {
18488                                           removeSlashes=(scanYYtext[1]=='/');
18489                                           lastDocContext = YY_START;
18490
18491                                           //printf("Found comment block at %s:%d\n",yyFileName,yyLineNr);
18492                                           if (current_root->section & Entry::SCOPE_MASK)
18493                                           {
18494                                             current->inside = current_root->name+"::";
18495                                           }
18496                                           current->docLine = yyLineNr;
18497                                           current->docFile = yyFileName;
18498                                           docBlockContext = YY_START;
18499                                           docBlockInBody  = YY_START==SkipCurly;
18500                                           static bool javadocAutoBrief = Config_getBool("JAVADOC_AUTOBRIEF");
18501                                           docBlockAutoBrief = javadocAutoBrief;
18502                                           docBlock.resize(0);
18503
18504                                           QCString indent;
18505                                           indent.fill(' ',computeIndent(scanYYtext,g_column));
18506                                           docBlock+=indent;
18507
18508                                           if (docBlockAutoBrief)
18509                                           {
18510                                             current->briefLine = yyLineNr;
18511                                             current->briefFile = yyFileName;
18512                                           }
18513                                           startCommentBlock(FALSE);
18514                                           BEGIN( DocBlock );
18515                                         }
18516         YY_BREAK
18517 case 613:
18518 YY_RULE_SETUP
18519 #line 5619 "scanner.l"
18520
18521                                           tmpDocType=-1;
18522                                           lastDocContext = YY_START;
18523                                           if (current_root->section & Entry::SCOPE_MASK)
18524                                           {
18525                                             current->inside = current_root->name+"::";
18526                                           }
18527                                           docBlockContext   = YY_START;
18528                                           docBlockInBody    = YY_START==SkipCurly;
18529                                           docBlockAutoBrief = FALSE;
18530                                           docBlock.resize(0);
18531                                           startCommentBlock(current->brief.isEmpty());
18532                                           BEGIN( DocLine );
18533                                         }
18534         YY_BREAK
18535 case 614:
18536 /* rule 614 can match eol */
18537 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */
18538 (yy_c_buf_p) = yy_cp = yy_bp + 3;
18539 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */
18540 YY_RULE_SETUP
18541 #line 5633 "scanner.l"
18542
18543                                           tmpDocType=-1;
18544                                           lastDocContext = YY_START;
18545                                           if (current_root->section & Entry::SCOPE_MASK)
18546                                           {
18547                                             current->inside = current_root->name+"::";
18548                                           }
18549                                           docBlockContext   = YY_START;
18550                                           docBlockInBody    = YY_START==SkipCurly;
18551                                           docBlockAutoBrief = FALSE;
18552                                           docBlock.resize(0);
18553                                           startCommentBlock(current->brief.isEmpty());
18554                                           BEGIN( DocLine );
18555                                         }
18556         YY_BREAK
18557 case 615:
18558 /* rule 615 can match eol */
18559 YY_RULE_SETUP
18560 #line 5647 "scanner.l"
18561 {
18562                                           lineCount();
18563                                           externC=TRUE;
18564                                         }
18565         YY_BREAK
18566 case 616:
18567 YY_RULE_SETUP
18568 #line 5651 "scanner.l"
18569 {
18570                                           if (externC) 
18571                                           {
18572                                             externC=FALSE;
18573                                           }
18574                                           else if (insideCS &&    
18575                                               !current->name.isEmpty() && 
18576                                               !current->type.isEmpty())
18577                                           {
18578                                             if (containsWord(current->type,"event")) // event
18579                                             {
18580                                               current->mtype = mtype = Event;
18581                                             }
18582                                             else // property
18583                                             {                           
18584                                               current->mtype = mtype = Property;
18585                                             }
18586                                             current->bodyLine = yyLineNr;
18587                                             curlyCount=0;
18588                                             BEGIN( CSAccessorDecl );
18589                                           }
18590                                           else
18591                                           {
18592                                             if ((insideJava || insideCS || insideD) &&
18593                                                 current->name.isEmpty()
18594                                                )
18595                                             {
18596                                               // static Java initializer
18597                                               needsSemi = FALSE;
18598                                               if (current->stat)
18599                                               {
18600                                                 current->name="[static initializer]";
18601                                                 current->type.resize(0);
18602                                               }
18603                                               else
18604                                               {
18605                                                 current->name="[instance initializer]";
18606                                               }
18607                                               unput(*scanYYtext); 
18608                                               BEGIN( Function );
18609                                             }
18610                                             else
18611                                             {
18612                                               // pre C++11 code -> ignore the initializer
18613                                               //needsSemi = TRUE;
18614                                               //current->type.resize(0);
18615                                               //current->name.resize(0);
18616                                               //current->args.resize(0);
18617                                               //current->argList->clear();
18618                                               //curlyCount=0;
18619                                               //BEGIN( SkipCurlyBlock );
18620
18621                                               // C++11 style initializer list
18622                                               current->bodyLine = yyLineNr;
18623                                               current->initializer = scanYYtext;
18624                                               lastInitializerContext = YY_START;
18625                                               initBracketCount=1;
18626                                               BEGIN(ReadInitializer);
18627                                             }
18628                                           }
18629                                         }
18630         YY_BREAK
18631 case 617:
18632 YY_RULE_SETUP
18633 #line 5712 "scanner.l"
18634 { curlyCount++; }
18635         YY_BREAK
18636 case 618:
18637 YY_RULE_SETUP
18638 #line 5713 "scanner.l"
18639
18640                                           if (curlyCount) 
18641                                           {
18642                                             curlyCount--; 
18643                                           }
18644                                           else
18645                                           {
18646                                             mtype = Method;
18647                                             unput(';');
18648                                             BEGIN(FindMembers);
18649                                           }
18650                                         }
18651         YY_BREAK
18652 case 619:
18653 YY_RULE_SETUP
18654 #line 5725 "scanner.l"
18655 { if (curlyCount==0) current->spec |= Entry::Settable;  }
18656         YY_BREAK
18657 case 620:
18658 YY_RULE_SETUP
18659 #line 5726 "scanner.l"
18660 { if (curlyCount==0) current->spec |= Entry::Gettable;  }
18661         YY_BREAK
18662 case 621:
18663 YY_RULE_SETUP
18664 #line 5727 "scanner.l"
18665 { if (curlyCount==0) current->spec |= Entry::Addable;   }
18666         YY_BREAK
18667 case 622:
18668 YY_RULE_SETUP
18669 #line 5728 "scanner.l"
18670 { if (curlyCount==0) current->spec |= Entry::Removable; }
18671         YY_BREAK
18672 case 623:
18673 YY_RULE_SETUP
18674 #line 5729 "scanner.l"
18675 { if (curlyCount==0) current->spec |= Entry::Raisable;  }
18676         YY_BREAK
18677 case 624:
18678 YY_RULE_SETUP
18679 #line 5730 "scanner.l"
18680 {}
18681         YY_BREAK
18682 case 625:
18683 /* rule 625 can match eol */
18684 YY_RULE_SETUP
18685 #line 5731 "scanner.l"
18686 { lineCount(); }
18687         YY_BREAK
18688 /**********************************************************************************/
18689 /******************** Documentation block related rules ***************************/
18690 /**********************************************************************************/
18691 /* ---- Single line comments ------ */
18692 case 626:
18693 /* rule 626 can match eol */
18694 YY_RULE_SETUP
18695 #line 5741 "scanner.l"
18696 { // continuation of multiline C++-style comment
18697                                            docBlock+=scanYYtext;
18698                                            docBlock.resize(docBlock.length() - 3);
18699                                            lineCount();
18700                                         }
18701         YY_BREAK
18702 case 627:
18703 /* rule 627 can match eol */
18704 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */
18705 (yy_c_buf_p) = yy_cp -= 1;
18706 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */
18707 YY_RULE_SETUP
18708 #line 5746 "scanner.l"
18709 { // whole line
18710                                           docBlock+=scanYYtext;
18711                                           handleCommentBlock(docBlock.data(),current->brief.isEmpty());
18712                                           BEGIN( docBlockContext );
18713                                         }
18714         YY_BREAK
18715 /* ---- Comments blocks ------ */
18716 case 628:
18717 YY_RULE_SETUP
18718 #line 5754 "scanner.l"
18719 { // end of comment block
18720                                           handleCommentBlock(docBlock.data(),FALSE);
18721                                           BEGIN(docBlockContext);
18722                                         }
18723         YY_BREAK
18724 case 629:
18725 /* rule 629 can match eol */
18726 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */
18727 (yy_c_buf_p) = yy_cp -= 1;
18728 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */
18729 YY_RULE_SETUP
18730 #line 5758 "scanner.l"
18731 { // start of a comment line
18732                                           QCString indent;
18733                                           indent.fill(' ',computeIndent(scanYYtext,g_column));
18734                                           docBlock+=indent;
18735                                         }
18736         YY_BREAK
18737 case 630:
18738 YY_RULE_SETUP
18739 #line 5763 "scanner.l"
18740 { // strip embedded C++ comments if at the start of a line
18741                                         }
18742         YY_BREAK
18743 case 631:
18744 YY_RULE_SETUP
18745 #line 5765 "scanner.l"
18746 { // slashes in the middle of a comment block
18747                                           docBlock+=scanYYtext;
18748                                         }
18749         YY_BREAK
18750 case 632:
18751 YY_RULE_SETUP
18752 #line 5768 "scanner.l"
18753 { // start of a new comment in the 
18754                                           // middle of a comment block
18755                                           docBlock+=scanYYtext;
18756                                         }
18757         YY_BREAK
18758 case 633:
18759 /* rule 633 can match eol */
18760 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */
18761 (yy_c_buf_p) = yy_cp -= 1;
18762 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */
18763 YY_RULE_SETUP
18764 #line 5772 "scanner.l"
18765 { // escaped command
18766                                           docBlock+=scanYYtext;
18767                                         }
18768         YY_BREAK
18769 case 634:
18770 YY_RULE_SETUP
18771 #line 5775 "scanner.l"
18772 {
18773                                           docBlock+=scanYYtext;
18774                                           docBlockName=&scanYYtext[1];
18775                                           if (docBlockName.at(1)=='{')
18776                                           {
18777                                             docBlockName.at(1)='}';
18778                                           }
18779                                           BEGIN(DocCopyBlock);
18780                                         }
18781         YY_BREAK
18782 case 635:
18783 YY_RULE_SETUP
18784 #line 5784 "scanner.l"
18785 {
18786                                           docBlock+=scanYYtext;
18787                                           docBlockName="<pre>";
18788                                           BEGIN(DocCopyBlock);
18789                                         }
18790         YY_BREAK
18791 case 636:
18792 /* rule 636 can match eol */
18793 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */
18794 (yy_c_buf_p) = yy_cp -= 1;
18795 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */
18796 YY_RULE_SETUP
18797 #line 5789 "scanner.l"
18798 { // verbatim command (which could contain nested comments!)
18799                                           docBlock+=scanYYtext;
18800                                           docBlockName=&scanYYtext[1];
18801                                           BEGIN(DocCopyBlock);
18802                                         }
18803         YY_BREAK
18804 case 637:
18805 YY_RULE_SETUP
18806 #line 5794 "scanner.l"
18807 {
18808                                           if (insideCS)
18809                                           {
18810                                             docBlock+=scanYYtext;
18811                                             docBlockName="<code>";
18812                                             BEGIN(DocCopyBlock);
18813                                           }
18814                                           else
18815                                           {
18816                                             REJECT;
18817                                           }
18818                                         }
18819         YY_BREAK
18820 case 638:
18821 YY_RULE_SETUP
18822 #line 5806 "scanner.l"
18823 { // any character that isn't special
18824                                           docBlock+=scanYYtext;
18825                                         }
18826         YY_BREAK
18827 case 639:
18828 /* rule 639 can match eol */
18829 YY_RULE_SETUP
18830 #line 5809 "scanner.l"
18831 { // newline
18832                                           lineCount();
18833                                           docBlock+=*scanYYtext;
18834                                         }
18835         YY_BREAK
18836 case 640:
18837 YY_RULE_SETUP
18838 #line 5813 "scanner.l"
18839 { // command block
18840                                           docBlock+=*scanYYtext;
18841                                         }
18842         YY_BREAK
18843 /* ---- Copy verbatim sections ------ */
18844 case 641:
18845 YY_RULE_SETUP
18846 #line 5819 "scanner.l"
18847 { // end of a <pre> block
18848                                           docBlock+=scanYYtext;
18849                                           if (docBlockName=="<pre>")
18850                                           {
18851                                             BEGIN(DocBlock);
18852                                           }
18853                                         }
18854         YY_BREAK
18855 case 642:
18856 YY_RULE_SETUP
18857 #line 5826 "scanner.l"
18858 { // end of a <code> block
18859                                           docBlock+=scanYYtext;
18860                                           if (docBlockName=="<code>")
18861                                           {
18862                                             BEGIN(DocBlock);
18863                                           }
18864                                         }
18865         YY_BREAK
18866 case 643:
18867 YY_RULE_SETUP
18868 #line 5833 "scanner.l"
18869 {
18870                                           docBlock+=scanYYtext;
18871                                           BEGIN(DocBlock);
18872                                         }
18873         YY_BREAK
18874 case 644:
18875 /* rule 644 can match eol */
18876 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */
18877 (yy_c_buf_p) = yy_cp -= 1;
18878 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */
18879 YY_RULE_SETUP
18880 #line 5837 "scanner.l"
18881 { // end of verbatim block
18882                                           docBlock+=scanYYtext;
18883                                           if (&scanYYtext[4]==docBlockName)
18884                                           {
18885                                             BEGIN(DocBlock);
18886                                           }
18887                                         }
18888         YY_BREAK
18889 case 645:
18890 /* rule 645 can match eol */
18891 YY_RULE_SETUP
18892 #line 5844 "scanner.l"
18893 { // start of a comment line
18894                                           if (docBlockName=="verbatim")
18895                                           {
18896                                             REJECT;
18897                                           }
18898                                           else
18899                                           {
18900                                             QCString indent;
18901                                             indent.fill(' ',computeIndent(scanYYtext,0));
18902                                             docBlock+=indent;
18903                                           }
18904                                         }
18905         YY_BREAK
18906 case 646:
18907 YY_RULE_SETUP
18908 #line 5856 "scanner.l"
18909 { // any character that is not special
18910                                           docBlock+=scanYYtext;
18911                                         }
18912         YY_BREAK
18913 case 647:
18914 YY_RULE_SETUP
18915 #line 5859 "scanner.l"
18916 {
18917                                           docBlock+=scanYYtext;
18918                                         }
18919         YY_BREAK
18920 case 648:
18921 /* rule 648 can match eol */
18922 YY_RULE_SETUP
18923 #line 5862 "scanner.l"
18924 { // newline
18925                                           docBlock+=*scanYYtext;
18926                                           lineCount();
18927                                         }
18928         YY_BREAK
18929 case 649:
18930 YY_RULE_SETUP
18931 #line 5866 "scanner.l"
18932 { // any other character
18933                                           docBlock+=*scanYYtext;
18934                                         }
18935         YY_BREAK
18936 case YY_STATE_EOF(DocCopyBlock):
18937 #line 5869 "scanner.l"
18938 {
18939                                           warn(yyFileName,yyLineNr,
18940                                               "warning: reached end of file while inside a %s block!\n"
18941                                               "The command that should end the block seems to be missing!\n",
18942                                               docBlockName.data());
18943                                           yyterminate();
18944                                         }
18945         YY_BREAK
18946 /* ------------- Prototype parser -------------- */
18947 case 650:
18948 YY_RULE_SETUP
18949 #line 5880 "scanner.l"
18950 {
18951                                           current->name+=scanYYtext;
18952                                         }
18953         YY_BREAK
18954 case 651:
18955 YY_RULE_SETUP
18956 #line 5883 "scanner.l"
18957 {
18958                                           current->args+=*scanYYtext;
18959                                           currentArgumentContext = PrototypeQual;
18960                                           fullArgString = current->args.copy();
18961                                           copyArgString = &current->args;
18962                                           BEGIN( ReadFuncArgType ) ;
18963                                         }
18964         YY_BREAK
18965 case 652:
18966 YY_RULE_SETUP
18967 #line 5890 "scanner.l"
18968 {
18969                                           current->type+=current->name+scanYYtext;
18970                                           current->name.resize(0);
18971                                           BEGIN( PrototypePtr );
18972                                         }
18973         YY_BREAK
18974 case 653:
18975 /* rule 653 can match eol */
18976 YY_RULE_SETUP
18977 #line 5895 "scanner.l"
18978 {
18979                                           current->name+=scanYYtext;
18980                                         }
18981         YY_BREAK
18982 case 654:
18983 YY_RULE_SETUP
18984 #line 5898 "scanner.l"
18985 {
18986                                           current->args+=*scanYYtext;
18987                                           currentArgumentContext = PrototypeQual;
18988                                           fullArgString = current->args.copy();
18989                                           copyArgString = &current->args;
18990                                           BEGIN( ReadFuncArgType ) ;
18991                                         }
18992         YY_BREAK
18993 case 655:
18994 YY_RULE_SETUP
18995 #line 5905 "scanner.l"
18996 {
18997                                           current->type+=')';
18998                                           BEGIN( Prototype );
18999                                         }
19000         YY_BREAK
19001 case 656:
19002 YY_RULE_SETUP
19003 #line 5909 "scanner.l"
19004 {
19005                                           current->name+=scanYYtext;
19006                                         }
19007         YY_BREAK
19008 case 657:
19009 YY_RULE_SETUP
19010 #line 5912 "scanner.l"
19011 {
19012                                           BEGIN( PrototypeSkipLine);
19013                                         }
19014         YY_BREAK
19015 case 658:
19016 YY_RULE_SETUP
19017 #line 5915 "scanner.l"
19018
19019                                           current->args += " const "; 
19020                                           current->argList->constSpecifier=TRUE;
19021                                         }
19022         YY_BREAK
19023 case 659:
19024 YY_RULE_SETUP
19025 #line 5919 "scanner.l"
19026
19027                                           current->args += " volatile "; 
19028                                           current->argList->volatileSpecifier=TRUE;
19029                                         }
19030         YY_BREAK
19031 case 660:
19032 YY_RULE_SETUP
19033 #line 5923 "scanner.l"
19034
19035                                           current->args += " = 0"; 
19036                                           current->virt = Pure; 
19037                                           current->argList->pureSpecifier=TRUE;
19038                                         }
19039         YY_BREAK
19040 case 661:
19041 YY_RULE_SETUP
19042 #line 5928 "scanner.l"
19043 {
19044                                           current->exception = "throw(";
19045                                           BEGIN(PrototypeExc);
19046                                         }
19047         YY_BREAK
19048 case 662:
19049 YY_RULE_SETUP
19050 #line 5932 "scanner.l"
19051 {
19052                                           current->exception += ')';
19053                                           BEGIN(PrototypeQual);
19054                                         }
19055         YY_BREAK
19056 case 663:
19057 YY_RULE_SETUP
19058 #line 5936 "scanner.l"
19059 {
19060                                           current->exception += *scanYYtext;
19061                                         }
19062         YY_BREAK
19063 case 664:
19064 YY_RULE_SETUP
19065 #line 5939 "scanner.l"
19066 {
19067                                           current->args += *scanYYtext;
19068                                         }
19069         YY_BREAK
19070 case 665:
19071 YY_RULE_SETUP
19072 #line 5942 "scanner.l"
19073 {
19074                                           current->name += *scanYYtext;
19075                                         }
19076         YY_BREAK
19077 case 666:
19078 YY_RULE_SETUP
19079 #line 5945 "scanner.l"
19080 {
19081                                         }
19082         YY_BREAK
19083 /* ------------ Generic rules -------------- */
19084 case 667:
19085 /* rule 667 can match eol */
19086 YY_RULE_SETUP
19087 #line 5952 "scanner.l"
19088 {  // line continuation
19089                                           if (insideCS) 
19090                                           {
19091                                             REJECT;
19092                                           }
19093                                           else 
19094                                           {
19095                                             lineCount();
19096                                           }
19097                                         }
19098         YY_BREAK
19099 case 668:
19100 /* rule 668 can match eol */
19101 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */
19102 (yy_c_buf_p) = yy_cp -= 1;
19103 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */
19104 YY_RULE_SETUP
19105 #line 5962 "scanner.l"
19106
19107                                           BEGIN( lastCContext ) ;
19108                                         }
19109         YY_BREAK
19110 case 669:
19111 YY_RULE_SETUP
19112 #line 5965 "scanner.l"
19113
19114         YY_BREAK
19115 case 670:
19116 /* rule 670 can match eol */
19117 YY_RULE_SETUP
19118 #line 5966 "scanner.l"
19119 { lineCount(); }
19120         YY_BREAK
19121 case 671:
19122 YY_RULE_SETUP
19123 #line 5967 "scanner.l"
19124 {
19125                                           if (insideIDL && insideCppQuote)
19126                                           {
19127                                             BEGIN(EndCppQuote);
19128                                           }
19129                                         }
19130         YY_BREAK
19131 case 672:
19132 YY_RULE_SETUP
19133 #line 5973 "scanner.l"
19134 {       
19135                                           if (!insidePHP)
19136                                             REJECT;
19137                                           lastCContext = YY_START ;
19138                                           BEGIN( SkipCxxComment ) ;
19139                                         }
19140         YY_BREAK
19141 case 673:
19142 YY_RULE_SETUP
19143 #line 5979 "scanner.l"
19144 {
19145                                           if (insidePHP)
19146                                           {
19147                                             lastStringContext=YY_START;
19148                                             BEGIN(SkipPHPString);
19149                                           }
19150                                         }
19151         YY_BREAK
19152 case 674:
19153 YY_RULE_SETUP
19154 #line 5986 "scanner.l"
19155 {
19156                                           if (insidePHP)
19157                                           {
19158                                             lastStringContext=YY_START;
19159                                             BEGIN(SkipString);
19160                                           }
19161                                         }
19162         YY_BREAK
19163 case 675:
19164 YY_RULE_SETUP
19165 #line 5993 "scanner.l"
19166
19167         YY_BREAK
19168 case 676:
19169 YY_RULE_SETUP
19170 #line 5994 "scanner.l"
19171
19172         YY_BREAK
19173 case 677:
19174 YY_RULE_SETUP
19175 #line 5995 "scanner.l"
19176 { lastCContext = YY_START ;
19177                                           BEGIN( SkipComment ) ;
19178                                         }
19179         YY_BREAK
19180 case 678:
19181 YY_RULE_SETUP
19182 #line 5998 "scanner.l"
19183 { BEGIN( lastCContext ) ; }
19184         YY_BREAK
19185 case 679:
19186 YY_RULE_SETUP
19187 #line 5999 "scanner.l"
19188 {       
19189                                           lastCContext = YY_START ;
19190                                           BEGIN( SkipCxxComment ) ;
19191                                         }
19192         YY_BREAK
19193 case 680:
19194 YY_RULE_SETUP
19195 #line 6003 "scanner.l"
19196 ECHO;
19197         YY_BREAK
19198 #line 19199 "<stdout>"
19199                         case YY_STATE_EOF(INITIAL):
19200                         case YY_STATE_EOF(Define):
19201                         case YY_STATE_EOF(DefineEnd):
19202                         case YY_STATE_EOF(CompoundName):
19203                         case YY_STATE_EOF(ClassVar):
19204                         case YY_STATE_EOF(CSConstraintName):
19205                         case YY_STATE_EOF(CSConstraintType):
19206                         case YY_STATE_EOF(CSIndexer):
19207                         case YY_STATE_EOF(ClassCategory):
19208                         case YY_STATE_EOF(ClassTemplSpec):
19209                         case YY_STATE_EOF(CliPropertyType):
19210                         case YY_STATE_EOF(CliPropertyIndex):
19211                         case YY_STATE_EOF(CliOverride):
19212                         case YY_STATE_EOF(Bases):
19213                         case YY_STATE_EOF(BasesProt):
19214                         case YY_STATE_EOF(NextSemi):
19215                         case YY_STATE_EOF(BitFields):
19216                         case YY_STATE_EOF(EnumBaseType):
19217                         case YY_STATE_EOF(FindMembers):
19218                         case YY_STATE_EOF(FindMembersPHP):
19219                         case YY_STATE_EOF(FindMemberName):
19220                         case YY_STATE_EOF(FindFields):
19221                         case YY_STATE_EOF(FindFieldArg):
19222                         case YY_STATE_EOF(Function):
19223                         case YY_STATE_EOF(FuncRound):
19224                         case YY_STATE_EOF(ExcpRound):
19225                         case YY_STATE_EOF(ExcpList):
19226                         case YY_STATE_EOF(FuncQual):
19227                         case YY_STATE_EOF(TrailingReturn):
19228                         case YY_STATE_EOF(Operator):
19229                         case YY_STATE_EOF(Array):
19230                         case YY_STATE_EOF(ReadBody):
19231                         case YY_STATE_EOF(ReadNSBody):
19232                         case YY_STATE_EOF(ReadBodyIntf):
19233                         case YY_STATE_EOF(Using):
19234                         case YY_STATE_EOF(UsingAlias):
19235                         case YY_STATE_EOF(UsingDirective):
19236                         case YY_STATE_EOF(SkipCurly):
19237                         case YY_STATE_EOF(SkipCurlyCpp):
19238                         case YY_STATE_EOF(SkipCurlyEndDoc):
19239                         case YY_STATE_EOF(SkipString):
19240                         case YY_STATE_EOF(SkipPHPString):
19241                         case YY_STATE_EOF(SkipInits):
19242                         case YY_STATE_EOF(SkipCPP):
19243                         case YY_STATE_EOF(SkipCPPBlock):
19244                         case YY_STATE_EOF(SkipComment):
19245                         case YY_STATE_EOF(SkipCxxComment):
19246                         case YY_STATE_EOF(SkipCurlyBlock):
19247                         case YY_STATE_EOF(SkipRoundBlock):
19248                         case YY_STATE_EOF(Sharp):
19249                         case YY_STATE_EOF(SkipSharp):
19250                         case YY_STATE_EOF(SkipRound):
19251                         case YY_STATE_EOF(SkipSquare):
19252                         case YY_STATE_EOF(SkipRemainder):
19253                         case YY_STATE_EOF(StaticAssert):
19254                         case YY_STATE_EOF(DeclType):
19255                         case YY_STATE_EOF(TypedefName):
19256                         case YY_STATE_EOF(TryFunctionBlock):
19257                         case YY_STATE_EOF(TryFunctionBlockEnd):
19258                         case YY_STATE_EOF(Comment):
19259                         case YY_STATE_EOF(PackageName):
19260                         case YY_STATE_EOF(JavaImport):
19261                         case YY_STATE_EOF(PHPUse):
19262                         case YY_STATE_EOF(PHPUseAs):
19263                         case YY_STATE_EOF(CSAccessorDecl):
19264                         case YY_STATE_EOF(CSGeneric):
19265                         case YY_STATE_EOF(PreLineCtrl):
19266                         case YY_STATE_EOF(DefinePHP):
19267                         case YY_STATE_EOF(DefinePHPEnd):
19268                         case YY_STATE_EOF(OldStyleArgs):
19269                         case YY_STATE_EOF(SkipVerbString):
19270                         case YY_STATE_EOF(ObjCMethod):
19271                         case YY_STATE_EOF(ObjCReturnType):
19272                         case YY_STATE_EOF(ObjCParams):
19273                         case YY_STATE_EOF(ObjCParamType):
19274                         case YY_STATE_EOF(ObjCProtocolList):
19275                         case YY_STATE_EOF(ObjCPropAttr):
19276                         case YY_STATE_EOF(ObjCSkipStatement):
19277                         case YY_STATE_EOF(QtPropType):
19278                         case YY_STATE_EOF(QtPropName):
19279                         case YY_STATE_EOF(QtPropAttr):
19280                         case YY_STATE_EOF(QtPropRead):
19281                         case YY_STATE_EOF(QtPropWrite):
19282                         case YY_STATE_EOF(ReadInitializer):
19283                         case YY_STATE_EOF(GetCallType):
19284                         case YY_STATE_EOF(CppQuote):
19285                         case YY_STATE_EOF(EndCppQuote):
19286                         case YY_STATE_EOF(MemberSpec):
19287                         case YY_STATE_EOF(MemberSpecSkip):
19288                         case YY_STATE_EOF(EndTemplate):
19289                         case YY_STATE_EOF(FuncPtr):
19290                         case YY_STATE_EOF(FuncPtrOperator):
19291                         case YY_STATE_EOF(EndFuncPtr):
19292                         case YY_STATE_EOF(ReadFuncArgType):
19293                         case YY_STATE_EOF(ReadTempArgs):
19294                         case YY_STATE_EOF(IDLUnionCase):
19295                         case YY_STATE_EOF(NSAliasName):
19296                         case YY_STATE_EOF(NSAliasArg):
19297                         case YY_STATE_EOF(CopyString):
19298                         case YY_STATE_EOF(CopyPHPString):
19299                         case YY_STATE_EOF(CopyGString):
19300                         case YY_STATE_EOF(CopyPHPGString):
19301                         case YY_STATE_EOF(CopyRound):
19302                         case YY_STATE_EOF(CopyCurly):
19303                         case YY_STATE_EOF(GCopyRound):
19304                         case YY_STATE_EOF(GCopyCurly):
19305                         case YY_STATE_EOF(SkipUnionSwitch):
19306                         case YY_STATE_EOF(Specialization):
19307                         case YY_STATE_EOF(FuncPtrInit):
19308                         case YY_STATE_EOF(FuncFunc):
19309                         case YY_STATE_EOF(FuncFuncEnd):
19310                         case YY_STATE_EOF(FuncFuncType):
19311                         case YY_STATE_EOF(FuncFuncArray):
19312                         case YY_STATE_EOF(CopyArgString):
19313                         case YY_STATE_EOF(CopyArgPHPString):
19314                         case YY_STATE_EOF(CopyArgRound):
19315                         case YY_STATE_EOF(CopyArgSharp):
19316                         case YY_STATE_EOF(CopyArgComment):
19317                         case YY_STATE_EOF(CopyArgCommentLine):
19318                         case YY_STATE_EOF(CopyArgVerbatim):
19319                         case YY_STATE_EOF(HereDoc):
19320                         case YY_STATE_EOF(HereDocEnd):
19321                         case YY_STATE_EOF(CopyHereDoc):
19322                         case YY_STATE_EOF(CopyHereDocEnd):
19323                         case YY_STATE_EOF(RawString):
19324                         case YY_STATE_EOF(RawGString):
19325                         case YY_STATE_EOF(IDLAttribute):
19326                         case YY_STATE_EOF(IDLProp):
19327                         case YY_STATE_EOF(IDLPropName):
19328                         case YY_STATE_EOF(Prototype):
19329                         case YY_STATE_EOF(PrototypePtr):
19330                         case YY_STATE_EOF(PrototypeQual):
19331                         case YY_STATE_EOF(PrototypeExc):
19332                         case YY_STATE_EOF(PrototypeSkipLine):
19333                         case YY_STATE_EOF(DocLine):
19334                         case YY_STATE_EOF(DocBlock):
19335                                 yyterminate();
19336
19337         case YY_END_OF_BUFFER:
19338                 {
19339                 /* Amount of text matched not including the EOB char. */
19340                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
19341
19342                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
19343                 *yy_cp = (yy_hold_char);
19344                 YY_RESTORE_YY_MORE_OFFSET
19345
19346                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
19347                         {
19348                         /* We're scanning a new file or input source.  It's
19349                          * possible that this happened because the user
19350                          * just pointed scanYYin at a new source and called
19351                          * scanYYlex().  If so, then we have to assure
19352                          * consistency between YY_CURRENT_BUFFER and our
19353                          * globals.  Here is the right place to do so, because
19354                          * this is the first action (other than possibly a
19355                          * back-up) that will match for the new input source.
19356                          */
19357                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
19358                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = scanYYin;
19359                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
19360                         }
19361
19362                 /* Note that here we test for yy_c_buf_p "<=" to the position
19363                  * of the first EOB in the buffer, since yy_c_buf_p will
19364                  * already have been incremented past the NUL character
19365                  * (since all states make transitions on EOB to the
19366                  * end-of-buffer state).  Contrast this with the test
19367                  * in input().
19368                  */
19369                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
19370                         { /* This was really a NUL. */
19371                         yy_state_type yy_next_state;
19372
19373                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
19374
19375                         yy_current_state = yy_get_previous_state(  );
19376
19377                         /* Okay, we're now positioned to make the NUL
19378                          * transition.  We couldn't have
19379                          * yy_get_previous_state() go ahead and do it
19380                          * for us because it doesn't know how to deal
19381                          * with the possibility of jamming (and we don't
19382                          * want to build jamming into it because then it
19383                          * will run more slowly).
19384                          */
19385
19386                         yy_next_state = yy_try_NUL_trans( yy_current_state );
19387
19388                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
19389
19390                         if ( yy_next_state )
19391                                 {
19392                                 /* Consume the NUL. */
19393                                 yy_cp = ++(yy_c_buf_p);
19394                                 yy_current_state = yy_next_state;
19395                                 goto yy_match;
19396                                 }
19397
19398                         else
19399                                 {
19400                                 yy_cp = (yy_c_buf_p);
19401                                 goto yy_find_action;
19402                                 }
19403                         }
19404
19405                 else switch ( yy_get_next_buffer(  ) )
19406                         {
19407                         case EOB_ACT_END_OF_FILE:
19408                                 {
19409                                 (yy_did_buffer_switch_on_eof) = 0;
19410
19411                                 if ( scanYYwrap( ) )
19412                                         {
19413                                         /* Note: because we've taken care in
19414                                          * yy_get_next_buffer() to have set up
19415                                          * scanYYtext, we can now set up
19416                                          * yy_c_buf_p so that if some total
19417                                          * hoser (like flex itself) wants to
19418                                          * call the scanner after we return the
19419                                          * YY_NULL, it'll still work - another
19420                                          * YY_NULL will get returned.
19421                                          */
19422                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
19423
19424                                         yy_act = YY_STATE_EOF(YY_START);
19425                                         goto do_action;
19426                                         }
19427
19428                                 else
19429                                         {
19430                                         if ( ! (yy_did_buffer_switch_on_eof) )
19431                                                 YY_NEW_FILE;
19432                                         }
19433                                 break;
19434                                 }
19435
19436                         case EOB_ACT_CONTINUE_SCAN:
19437                                 (yy_c_buf_p) =
19438                                         (yytext_ptr) + yy_amount_of_matched_text;
19439
19440                                 yy_current_state = yy_get_previous_state(  );
19441
19442                                 yy_cp = (yy_c_buf_p);
19443                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
19444                                 goto yy_match;
19445
19446                         case EOB_ACT_LAST_MATCH:
19447                                 (yy_c_buf_p) =
19448                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
19449
19450                                 yy_current_state = yy_get_previous_state(  );
19451
19452                                 yy_cp = (yy_c_buf_p);
19453                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
19454                                 goto yy_find_action;
19455                         }
19456                 break;
19457                 }
19458
19459         default:
19460                 YY_FATAL_ERROR(
19461                         "fatal flex scanner internal error--no action found" );
19462         } /* end of action switch */
19463                 } /* end of scanning one token */
19464 } /* end of scanYYlex */
19465
19466 /* yy_get_next_buffer - try to read in a new buffer
19467  *
19468  * Returns a code representing an action:
19469  *      EOB_ACT_LAST_MATCH -
19470  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
19471  *      EOB_ACT_END_OF_FILE - end of file
19472  */
19473 static int yy_get_next_buffer (void)
19474 {
19475         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
19476         register char *source = (yytext_ptr);
19477         register int number_to_move, i;
19478         int ret_val;
19479
19480         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
19481                 YY_FATAL_ERROR(
19482                 "fatal flex scanner internal error--end of buffer missed" );
19483
19484         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
19485                 { /* Don't try to fill the buffer, so this is an EOF. */
19486                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
19487                         {
19488                         /* We matched a single character, the EOB, so
19489                          * treat this as a final EOF.
19490                          */
19491                         return EOB_ACT_END_OF_FILE;
19492                         }
19493
19494                 else
19495                         {
19496                         /* We matched some text prior to the EOB, first
19497                          * process it.
19498                          */
19499                         return EOB_ACT_LAST_MATCH;
19500                         }
19501                 }
19502
19503         /* Try to read more data. */
19504
19505         /* First move last chars to start of buffer. */
19506         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
19507
19508         for ( i = 0; i < number_to_move; ++i )
19509                 *(dest++) = *(source++);
19510
19511         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
19512                 /* don't do the read, it's not guaranteed to return an EOF,
19513                  * just force an EOF
19514                  */
19515                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
19516
19517         else
19518                 {
19519                         yy_size_t num_to_read =
19520                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
19521
19522                 while ( num_to_read <= 0 )
19523                         { /* Not enough room in the buffer - grow it. */
19524
19525                         YY_FATAL_ERROR(
19526 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
19527
19528                         }
19529
19530                 if ( num_to_read > YY_READ_BUF_SIZE )
19531                         num_to_read = YY_READ_BUF_SIZE;
19532
19533                 /* Read in more data. */
19534                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
19535                         (yy_n_chars), num_to_read );
19536
19537                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
19538                 }
19539
19540         if ( (yy_n_chars) == 0 )
19541                 {
19542                 if ( number_to_move == YY_MORE_ADJ )
19543                         {
19544                         ret_val = EOB_ACT_END_OF_FILE;
19545                         scanYYrestart(scanYYin  );
19546                         }
19547
19548                 else
19549                         {
19550                         ret_val = EOB_ACT_LAST_MATCH;
19551                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
19552                                 YY_BUFFER_EOF_PENDING;
19553                         }
19554                 }
19555
19556         else
19557                 ret_val = EOB_ACT_CONTINUE_SCAN;
19558
19559         if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
19560                 /* Extend the array by 50%, plus the number we really need. */
19561                 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
19562                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) scanYYrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
19563                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
19564                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
19565         }
19566
19567         (yy_n_chars) += number_to_move;
19568         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
19569         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
19570
19571         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
19572
19573         return ret_val;
19574 }
19575
19576 /* yy_get_previous_state - get the state just before the EOB char was reached */
19577
19578     static yy_state_type yy_get_previous_state (void)
19579 {
19580         register yy_state_type yy_current_state;
19581         register char *yy_cp;
19582     
19583         yy_current_state = (yy_start);
19584         yy_current_state += YY_AT_BOL();
19585
19586         (yy_state_ptr) = (yy_state_buf);
19587         *(yy_state_ptr)++ = yy_current_state;
19588
19589         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
19590                 {
19591                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
19592                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
19593                         {
19594                         yy_current_state = (int) yy_def[yy_current_state];
19595                         if ( yy_current_state >= 4192 )
19596                                 yy_c = yy_meta[(unsigned int) yy_c];
19597                         }
19598                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
19599                 *(yy_state_ptr)++ = yy_current_state;
19600                 }
19601
19602         return yy_current_state;
19603 }
19604
19605 /* yy_try_NUL_trans - try to make a transition on the NUL character
19606  *
19607  * synopsis
19608  *      next_state = yy_try_NUL_trans( current_state );
19609  */
19610     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
19611 {
19612         register int yy_is_jam;
19613     
19614         register YY_CHAR yy_c = 1;
19615         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
19616                 {
19617                 yy_current_state = (int) yy_def[yy_current_state];
19618                 if ( yy_current_state >= 4192 )
19619                         yy_c = yy_meta[(unsigned int) yy_c];
19620                 }
19621         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
19622         yy_is_jam = (yy_current_state == 4191);
19623         if ( ! yy_is_jam )
19624                 *(yy_state_ptr)++ = yy_current_state;
19625
19626         return yy_is_jam ? 0 : yy_current_state;
19627 }
19628
19629     static void yyunput (int c, register char * yy_bp )
19630 {
19631         register char *yy_cp;
19632     
19633     yy_cp = (yy_c_buf_p);
19634
19635         /* undo effects of setting up scanYYtext */
19636         *yy_cp = (yy_hold_char);
19637
19638         if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
19639                 { /* need to shift things up to make room */
19640                 /* +2 for EOB chars. */
19641                 register yy_size_t number_to_move = (yy_n_chars) + 2;
19642                 register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
19643                                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
19644                 register char *source =
19645                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
19646
19647                 while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
19648                         *--dest = *--source;
19649
19650                 yy_cp += (int) (dest - source);
19651                 yy_bp += (int) (dest - source);
19652                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
19653                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
19654
19655                 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
19656                         YY_FATAL_ERROR( "flex scanner push-back overflow" );
19657                 }
19658
19659         *--yy_cp = (char) c;
19660
19661         (yytext_ptr) = yy_bp;
19662         (yy_hold_char) = *yy_cp;
19663         (yy_c_buf_p) = yy_cp;
19664 }
19665
19666 #ifndef YY_NO_INPUT
19667 #ifdef __cplusplus
19668     static int yyinput (void)
19669 #else
19670     static int input  (void)
19671 #endif
19672
19673 {
19674         int c;
19675     
19676         *(yy_c_buf_p) = (yy_hold_char);
19677
19678         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
19679                 {
19680                 /* yy_c_buf_p now points to the character we want to return.
19681                  * If this occurs *before* the EOB characters, then it's a
19682                  * valid NUL; if not, then we've hit the end of the buffer.
19683                  */
19684                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
19685                         /* This was really a NUL. */
19686                         *(yy_c_buf_p) = '\0';
19687
19688                 else
19689                         { /* need more input */
19690                         yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
19691                         ++(yy_c_buf_p);
19692
19693                         switch ( yy_get_next_buffer(  ) )
19694                                 {
19695                                 case EOB_ACT_LAST_MATCH:
19696                                         /* This happens because yy_g_n_b()
19697                                          * sees that we've accumulated a
19698                                          * token and flags that we need to
19699                                          * try matching the token before
19700                                          * proceeding.  But for input(),
19701                                          * there's no matching to consider.
19702                                          * So convert the EOB_ACT_LAST_MATCH
19703                                          * to EOB_ACT_END_OF_FILE.
19704                                          */
19705
19706                                         /* Reset buffer status. */
19707                                         scanYYrestart(scanYYin );
19708
19709                                         /*FALLTHROUGH*/
19710
19711                                 case EOB_ACT_END_OF_FILE:
19712                                         {
19713                                         if ( scanYYwrap( ) )
19714                                                 return 0;
19715
19716                                         if ( ! (yy_did_buffer_switch_on_eof) )
19717                                                 YY_NEW_FILE;
19718 #ifdef __cplusplus
19719                                         return yyinput();
19720 #else
19721                                         return input();
19722 #endif
19723                                         }
19724
19725                                 case EOB_ACT_CONTINUE_SCAN:
19726                                         (yy_c_buf_p) = (yytext_ptr) + offset;
19727                                         break;
19728                                 }
19729                         }
19730                 }
19731
19732         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
19733         *(yy_c_buf_p) = '\0';   /* preserve scanYYtext */
19734         (yy_hold_char) = *++(yy_c_buf_p);
19735
19736         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
19737
19738         return c;
19739 }
19740 #endif  /* ifndef YY_NO_INPUT */
19741
19742 /** Immediately switch to a different input stream.
19743  * @param input_file A readable stream.
19744  * 
19745  * @note This function does not reset the start condition to @c INITIAL .
19746  */
19747     void scanYYrestart  (FILE * input_file )
19748 {
19749     
19750         if ( ! YY_CURRENT_BUFFER ){
19751         scanYYensure_buffer_stack ();
19752                 YY_CURRENT_BUFFER_LVALUE =
19753             scanYY_create_buffer(scanYYin,YY_BUF_SIZE );
19754         }
19755
19756         scanYY_init_buffer(YY_CURRENT_BUFFER,input_file );
19757         scanYY_load_buffer_state( );
19758 }
19759
19760 /** Switch to a different input buffer.
19761  * @param new_buffer The new input buffer.
19762  * 
19763  */
19764     void scanYY_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
19765 {
19766     
19767         /* TODO. We should be able to replace this entire function body
19768          * with
19769          *              scanYYpop_buffer_state();
19770          *              scanYYpush_buffer_state(new_buffer);
19771      */
19772         scanYYensure_buffer_stack ();
19773         if ( YY_CURRENT_BUFFER == new_buffer )
19774                 return;
19775
19776         if ( YY_CURRENT_BUFFER )
19777                 {
19778                 /* Flush out information for old buffer. */
19779                 *(yy_c_buf_p) = (yy_hold_char);
19780                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
19781                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
19782                 }
19783
19784         YY_CURRENT_BUFFER_LVALUE = new_buffer;
19785         scanYY_load_buffer_state( );
19786
19787         /* We don't actually know whether we did this switch during
19788          * EOF (scanYYwrap()) processing, but the only time this flag
19789          * is looked at is after scanYYwrap() is called, so it's safe
19790          * to go ahead and always set it.
19791          */
19792         (yy_did_buffer_switch_on_eof) = 1;
19793 }
19794
19795 static void scanYY_load_buffer_state  (void)
19796 {
19797         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
19798         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
19799         scanYYin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
19800         (yy_hold_char) = *(yy_c_buf_p);
19801 }
19802
19803 /** Allocate and initialize an input buffer state.
19804  * @param file A readable stream.
19805  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
19806  * 
19807  * @return the allocated buffer state.
19808  */
19809     YY_BUFFER_STATE scanYY_create_buffer  (FILE * file, int  size )
19810 {
19811         YY_BUFFER_STATE b;
19812     
19813         b = (YY_BUFFER_STATE) scanYYalloc(sizeof( struct yy_buffer_state )  );
19814         if ( ! b )
19815                 YY_FATAL_ERROR( "out of dynamic memory in scanYY_create_buffer()" );
19816
19817         b->yy_buf_size = size;
19818
19819         /* yy_ch_buf has to be 2 characters longer than the size given because
19820          * we need to put in 2 end-of-buffer characters.
19821          */
19822         b->yy_ch_buf = (char *) scanYYalloc(b->yy_buf_size + 2  );
19823         if ( ! b->yy_ch_buf )
19824                 YY_FATAL_ERROR( "out of dynamic memory in scanYY_create_buffer()" );
19825
19826         b->yy_is_our_buffer = 1;
19827
19828         scanYY_init_buffer(b,file );
19829
19830         return b;
19831 }
19832
19833 /** Destroy the buffer.
19834  * @param b a buffer created with scanYY_create_buffer()
19835  * 
19836  */
19837     void scanYY_delete_buffer (YY_BUFFER_STATE  b )
19838 {
19839     
19840         if ( ! b )
19841                 return;
19842
19843         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
19844                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
19845
19846         if ( b->yy_is_our_buffer )
19847                 scanYYfree((void *) b->yy_ch_buf  );
19848
19849         scanYYfree((void *) b  );
19850 }
19851
19852 #ifndef __cplusplus
19853 extern int isatty (int );
19854 #endif /* __cplusplus */
19855     
19856 /* Initializes or reinitializes a buffer.
19857  * This function is sometimes called more than once on the same buffer,
19858  * such as during a scanYYrestart() or at EOF.
19859  */
19860     static void scanYY_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
19861
19862 {
19863         int oerrno = errno;
19864     
19865         scanYY_flush_buffer(b );
19866
19867         b->yy_input_file = file;
19868         b->yy_fill_buffer = 1;
19869
19870     /* If b is the current buffer, then scanYY_init_buffer was _probably_
19871      * called from scanYYrestart() or through yy_get_next_buffer.
19872      * In that case, we don't want to reset the lineno or column.
19873      */
19874     if (b != YY_CURRENT_BUFFER){
19875         b->yy_bs_lineno = 1;
19876         b->yy_bs_column = 0;
19877     }
19878
19879         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
19880     
19881         errno = oerrno;
19882 }
19883
19884 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
19885  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
19886  * 
19887  */
19888     void scanYY_flush_buffer (YY_BUFFER_STATE  b )
19889 {
19890         if ( ! b )
19891                 return;
19892
19893         b->yy_n_chars = 0;
19894
19895         /* We always need two end-of-buffer characters.  The first causes
19896          * a transition to the end-of-buffer state.  The second causes
19897          * a jam in that state.
19898          */
19899         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
19900         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
19901
19902         b->yy_buf_pos = &b->yy_ch_buf[0];
19903
19904         b->yy_at_bol = 1;
19905         b->yy_buffer_status = YY_BUFFER_NEW;
19906
19907         if ( b == YY_CURRENT_BUFFER )
19908                 scanYY_load_buffer_state( );
19909 }
19910
19911 /** Pushes the new state onto the stack. The new state becomes
19912  *  the current state. This function will allocate the stack
19913  *  if necessary.
19914  *  @param new_buffer The new state.
19915  *  
19916  */
19917 void scanYYpush_buffer_state (YY_BUFFER_STATE new_buffer )
19918 {
19919         if (new_buffer == NULL)
19920                 return;
19921
19922         scanYYensure_buffer_stack();
19923
19924         /* This block is copied from scanYY_switch_to_buffer. */
19925         if ( YY_CURRENT_BUFFER )
19926                 {
19927                 /* Flush out information for old buffer. */
19928                 *(yy_c_buf_p) = (yy_hold_char);
19929                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
19930                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
19931                 }
19932
19933         /* Only push if top exists. Otherwise, replace top. */
19934         if (YY_CURRENT_BUFFER)
19935                 (yy_buffer_stack_top)++;
19936         YY_CURRENT_BUFFER_LVALUE = new_buffer;
19937
19938         /* copied from scanYY_switch_to_buffer. */
19939         scanYY_load_buffer_state( );
19940         (yy_did_buffer_switch_on_eof) = 1;
19941 }
19942
19943 /** Removes and deletes the top of the stack, if present.
19944  *  The next element becomes the new top.
19945  *  
19946  */
19947 void scanYYpop_buffer_state (void)
19948 {
19949         if (!YY_CURRENT_BUFFER)
19950                 return;
19951
19952         scanYY_delete_buffer(YY_CURRENT_BUFFER );
19953         YY_CURRENT_BUFFER_LVALUE = NULL;
19954         if ((yy_buffer_stack_top) > 0)
19955                 --(yy_buffer_stack_top);
19956
19957         if (YY_CURRENT_BUFFER) {
19958                 scanYY_load_buffer_state( );
19959                 (yy_did_buffer_switch_on_eof) = 1;
19960         }
19961 }
19962
19963 /* Allocates the stack if it does not exist.
19964  *  Guarantees space for at least one push.
19965  */
19966 static void scanYYensure_buffer_stack (void)
19967 {
19968         yy_size_t num_to_alloc;
19969     
19970         if (!(yy_buffer_stack)) {
19971
19972                 /* First allocation is just for 2 elements, since we don't know if this
19973                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
19974                  * immediate realloc on the next call.
19975          */
19976                 num_to_alloc = 1;
19977                 (yy_buffer_stack) = (struct yy_buffer_state**)scanYYalloc
19978                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
19979                                                                 );
19980                 if ( ! (yy_buffer_stack) )
19981                         YY_FATAL_ERROR( "out of dynamic memory in scanYYensure_buffer_stack()" );
19982                                                                   
19983                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
19984                                 
19985                 (yy_buffer_stack_max) = num_to_alloc;
19986                 (yy_buffer_stack_top) = 0;
19987                 return;
19988         }
19989
19990         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
19991
19992                 /* Increase the buffer to prepare for a possible push. */
19993                 int grow_size = 8 /* arbitrary grow size */;
19994
19995                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
19996                 (yy_buffer_stack) = (struct yy_buffer_state**)scanYYrealloc
19997                                                                 ((yy_buffer_stack),
19998                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
19999                                                                 );
20000                 if ( ! (yy_buffer_stack) )
20001                         YY_FATAL_ERROR( "out of dynamic memory in scanYYensure_buffer_stack()" );
20002
20003                 /* zero only the new slots.*/
20004                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
20005                 (yy_buffer_stack_max) = num_to_alloc;
20006         }
20007 }
20008
20009 /** Setup the input buffer state to scan directly from a user-specified character buffer.
20010  * @param base the character buffer
20011  * @param size the size in bytes of the character buffer
20012  * 
20013  * @return the newly allocated buffer state object. 
20014  */
20015 YY_BUFFER_STATE scanYY_scan_buffer  (char * base, yy_size_t  size )
20016 {
20017         YY_BUFFER_STATE b;
20018     
20019         if ( size < 2 ||
20020              base[size-2] != YY_END_OF_BUFFER_CHAR ||
20021              base[size-1] != YY_END_OF_BUFFER_CHAR )
20022                 /* They forgot to leave room for the EOB's. */
20023                 return 0;
20024
20025         b = (YY_BUFFER_STATE) scanYYalloc(sizeof( struct yy_buffer_state )  );
20026         if ( ! b )
20027                 YY_FATAL_ERROR( "out of dynamic memory in scanYY_scan_buffer()" );
20028
20029         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
20030         b->yy_buf_pos = b->yy_ch_buf = base;
20031         b->yy_is_our_buffer = 0;
20032         b->yy_input_file = 0;
20033         b->yy_n_chars = b->yy_buf_size;
20034         b->yy_is_interactive = 0;
20035         b->yy_at_bol = 1;
20036         b->yy_fill_buffer = 0;
20037         b->yy_buffer_status = YY_BUFFER_NEW;
20038
20039         scanYY_switch_to_buffer(b  );
20040
20041         return b;
20042 }
20043
20044 /** Setup the input buffer state to scan a string. The next call to scanYYlex() will
20045  * scan from a @e copy of @a str.
20046  * @param yystr a NUL-terminated string to scan
20047  * 
20048  * @return the newly allocated buffer state object.
20049  * @note If you want to scan bytes that may contain NUL values, then use
20050  *       scanYY_scan_bytes() instead.
20051  */
20052 YY_BUFFER_STATE scanYY_scan_string (yyconst char * yystr )
20053 {
20054     
20055         return scanYY_scan_bytes(yystr,strlen(yystr) );
20056 }
20057
20058 /** Setup the input buffer state to scan the given bytes. The next call to scanYYlex() will
20059  * scan from a @e copy of @a bytes.
20060  * @param bytes the byte buffer to scan
20061  * @param len the number of bytes in the buffer pointed to by @a bytes.
20062  * 
20063  * @return the newly allocated buffer state object.
20064  */
20065 YY_BUFFER_STATE scanYY_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
20066 {
20067         YY_BUFFER_STATE b;
20068         char *buf;
20069         yy_size_t n, i;
20070     
20071         /* Get memory for full buffer, including space for trailing EOB's. */
20072         n = _yybytes_len + 2;
20073         buf = (char *) scanYYalloc(n  );
20074         if ( ! buf )
20075                 YY_FATAL_ERROR( "out of dynamic memory in scanYY_scan_bytes()" );
20076
20077         for ( i = 0; i < _yybytes_len; ++i )
20078                 buf[i] = yybytes[i];
20079
20080         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
20081
20082         b = scanYY_scan_buffer(buf,n );
20083         if ( ! b )
20084                 YY_FATAL_ERROR( "bad buffer in scanYY_scan_bytes()" );
20085
20086         /* It's okay to grow etc. this buffer, and we should throw it
20087          * away when we're done.
20088          */
20089         b->yy_is_our_buffer = 1;
20090
20091         return b;
20092 }
20093
20094 #ifndef YY_EXIT_FAILURE
20095 #define YY_EXIT_FAILURE 2
20096 #endif
20097
20098 static void yy_fatal_error (yyconst char* msg )
20099 {
20100         (void) fprintf( stderr, "%s\n", msg );
20101         exit( YY_EXIT_FAILURE );
20102 }
20103
20104 /* Redefine yyless() so it works in section 3 code. */
20105
20106 #undef yyless
20107 #define yyless(n) \
20108         do \
20109                 { \
20110                 /* Undo effects of setting up scanYYtext. */ \
20111         int yyless_macro_arg = (n); \
20112         YY_LESS_LINENO(yyless_macro_arg);\
20113                 scanYYtext[scanYYleng] = (yy_hold_char); \
20114                 (yy_c_buf_p) = scanYYtext + yyless_macro_arg; \
20115                 (yy_hold_char) = *(yy_c_buf_p); \
20116                 *(yy_c_buf_p) = '\0'; \
20117                 scanYYleng = yyless_macro_arg; \
20118                 } \
20119         while ( 0 )
20120
20121 /* Accessor  methods (get/set functions) to struct members. */
20122
20123 /** Get the current line number.
20124  * 
20125  */
20126 int scanYYget_lineno  (void)
20127 {
20128         
20129     return scanYYlineno;
20130 }
20131
20132 /** Get the input stream.
20133  * 
20134  */
20135 FILE *scanYYget_in  (void)
20136 {
20137         return scanYYin;
20138 }
20139
20140 /** Get the output stream.
20141  * 
20142  */
20143 FILE *scanYYget_out  (void)
20144 {
20145         return scanYYout;
20146 }
20147
20148 /** Get the length of the current token.
20149  * 
20150  */
20151 yy_size_t scanYYget_leng  (void)
20152 {
20153         return scanYYleng;
20154 }
20155
20156 /** Get the current token.
20157  * 
20158  */
20159
20160 char *scanYYget_text  (void)
20161 {
20162         return scanYYtext;
20163 }
20164
20165 /** Set the current line number.
20166  * @param line_number
20167  * 
20168  */
20169 void scanYYset_lineno (int  line_number )
20170 {
20171     
20172     scanYYlineno = line_number;
20173 }
20174
20175 /** Set the input stream. This does not discard the current
20176  * input buffer.
20177  * @param in_str A readable stream.
20178  * 
20179  * @see scanYY_switch_to_buffer
20180  */
20181 void scanYYset_in (FILE *  in_str )
20182 {
20183         scanYYin = in_str ;
20184 }
20185
20186 void scanYYset_out (FILE *  out_str )
20187 {
20188         scanYYout = out_str ;
20189 }
20190
20191 int scanYYget_debug  (void)
20192 {
20193         return scanYY_flex_debug;
20194 }
20195
20196 void scanYYset_debug (int  bdebug )
20197 {
20198         scanYY_flex_debug = bdebug ;
20199 }
20200
20201 static int yy_init_globals (void)
20202 {
20203         /* Initialization is the same as for the non-reentrant scanner.
20204      * This function is called from scanYYlex_destroy(), so don't allocate here.
20205      */
20206
20207     (yy_buffer_stack) = 0;
20208     (yy_buffer_stack_top) = 0;
20209     (yy_buffer_stack_max) = 0;
20210     (yy_c_buf_p) = (char *) 0;
20211     (yy_init) = 0;
20212     (yy_start) = 0;
20213
20214     (yy_state_buf) = 0;
20215     (yy_state_ptr) = 0;
20216     (yy_full_match) = 0;
20217     (yy_lp) = 0;
20218
20219 /* Defined in main.c */
20220 #ifdef YY_STDINIT
20221     scanYYin = stdin;
20222     scanYYout = stdout;
20223 #else
20224     scanYYin = (FILE *) 0;
20225     scanYYout = (FILE *) 0;
20226 #endif
20227
20228     /* For future reference: Set errno on error, since we are called by
20229      * scanYYlex_init()
20230      */
20231     return 0;
20232 }
20233
20234 /* scanYYlex_destroy is for both reentrant and non-reentrant scanners. */
20235 int scanYYlex_destroy  (void)
20236 {
20237     
20238     /* Pop the buffer stack, destroying each element. */
20239         while(YY_CURRENT_BUFFER){
20240                 scanYY_delete_buffer(YY_CURRENT_BUFFER  );
20241                 YY_CURRENT_BUFFER_LVALUE = NULL;
20242                 scanYYpop_buffer_state();
20243         }
20244
20245         /* Destroy the stack itself. */
20246         scanYYfree((yy_buffer_stack) );
20247         (yy_buffer_stack) = NULL;
20248
20249     scanYYfree ( (yy_state_buf) );
20250     (yy_state_buf)  = NULL;
20251
20252     /* Reset the globals. This is important in a non-reentrant scanner so the next time
20253      * scanYYlex() is called, initialization will occur. */
20254     yy_init_globals( );
20255
20256     return 0;
20257 }
20258
20259 /*
20260  * Internal utility routines.
20261  */
20262
20263 #ifndef yytext_ptr
20264 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
20265 {
20266         register int i;
20267         for ( i = 0; i < n; ++i )
20268                 s1[i] = s2[i];
20269 }
20270 #endif
20271
20272 #ifdef YY_NEED_STRLEN
20273 static int yy_flex_strlen (yyconst char * s )
20274 {
20275         register int n;
20276         for ( n = 0; s[n]; ++n )
20277                 ;
20278
20279         return n;
20280 }
20281 #endif
20282
20283 void *scanYYalloc (yy_size_t  size )
20284 {
20285         return (void *) malloc( size );
20286 }
20287
20288 void *scanYYrealloc  (void * ptr, yy_size_t  size )
20289 {
20290         /* The cast to (char *) in the following accommodates both
20291          * implementations that use char* generic pointers, and those
20292          * that use void* generic pointers.  It works with the latter
20293          * because both ANSI C and C++ allow castless assignment from
20294          * any pointer type to void*, and deal with argument conversions
20295          * as though doing an assignment.
20296          */
20297         return (void *) realloc( (char *) ptr, size );
20298 }
20299
20300 void scanYYfree (void * ptr )
20301 {
20302         free( (char *) ptr );   /* see scanYYrealloc() for (char *) cast */
20303 }
20304
20305 #define YYTABLES_NAME "yytables"
20306
20307 #line 6003 "scanner.l"
20308
20309
20310
20311 //----------------------------------------------------------------------------
20312
20313 static void startCommentBlock(bool brief)
20314 {
20315   if (brief)
20316   {
20317     current->briefFile = yyFileName;
20318     current->briefLine = yyLineNr;
20319   }
20320   else
20321   {
20322     current->docFile = yyFileName;
20323     current->docLine = yyLineNr;
20324   }
20325 }
20326   
20327 //----------------------------------------------------------------------------
20328
20329 static void newEntry()
20330 {
20331   current_root->addSubEntry(current);
20332   previous = current;
20333   current = new Entry ;
20334   initEntry();
20335 }
20336
20337 static void handleCommentBlock(const QCString &doc,bool brief)
20338 {
20339   static bool hideInBodyDocs = Config_getBool("HIDE_IN_BODY_DOCS");
20340   int position=0;
20341   bool needsEntry=FALSE;
20342   if (docBlockInBody && hideInBodyDocs) return;
20343   //printf("parseCommentBlock [%s] brief=%d\n",doc.data(),brief);
20344   int lineNr = brief ? current->briefLine : current->docLine;   // line of block start
20345   
20346   // fill in inbodyFile && inbodyLine the first time, see bug 633891
20347   Entry *docEntry = docBlockInBody && previous ? previous : current;
20348   if (docBlockInBody && docEntry && docEntry->inbodyLine==-1)
20349   {
20350     docEntry->inbodyFile = yyFileName;
20351     docEntry->inbodyLine = lineNr;
20352   }
20353
20354   while (parseCommentBlock(
20355         g_thisParser,
20356         docBlockInBody && previous ? previous : current,
20357         stripIndentation(doc),        // text
20358         yyFileName, // file
20359         lineNr,     // line of block start
20360         docBlockInBody ? FALSE : brief,               // isBrief
20361         docBlockInBody ? FALSE : docBlockAutoBrief,   // isJavaDocStyle
20362         docBlockInBody,                               // isInBody
20363         protection,
20364         position,
20365         needsEntry
20366         )
20367      ) 
20368   {
20369     //printf("parseCommentBlock position=%d [%s]\n",position,doc.data()+position);
20370     if (needsEntry) 
20371     {
20372       QCString docFile = current->docFile;
20373       newEntry();
20374       current->docFile = docFile;
20375       current->docLine = lineNr;
20376     }
20377   }
20378   if (needsEntry)
20379   {
20380     newEntry();
20381   }
20382
20383   if (docBlockTerm)
20384   {
20385     unput(docBlockTerm);
20386     docBlockTerm=0;
20387   }
20388 }
20389
20390 static void handleParametersCommentBlocks(ArgumentList *al)
20391 {
20392   //printf(">>>>>>> handleParametersCommentBlocks()\n");
20393   ArgumentListIterator ali(*al);
20394   Argument *a;
20395   for (ali.toFirst();(a=ali.current());++ali)
20396   {
20397     //printf("    Param %s docs=%s\n",a->name.data(),a->docs.data());
20398     if (!a->docs.isEmpty())
20399     {
20400       int position=0;
20401       bool needsEntry;
20402
20403       // save context
20404       QCString orgDoc   = current->doc;
20405       QCString orgBrief = current->brief;
20406       int orgDocLine    = current->docLine;
20407       int orgBriefLine  = current->briefLine;
20408
20409       current->doc.resize(0);
20410       current->brief.resize(0);
20411
20412       //printf("handleParametersCommentBlock [%s]\n",doc.data());
20413       while (parseCommentBlock(
20414              g_thisParser,
20415              current,
20416              a->docs,            // text
20417              yyFileName,         // file
20418              current->docLine,   // line of block start
20419              FALSE, 
20420              FALSE,
20421              FALSE,
20422              protection,
20423              position,
20424              needsEntry
20425             )
20426           ) 
20427       {
20428         //printf("handleParametersCommentBlock position=%d [%s]\n",position,doc.data()+position);
20429         if (needsEntry) newEntry();
20430       }
20431       if (needsEntry)
20432       {
20433         newEntry();
20434       }
20435       a->docs = current->doc;
20436
20437       // restore context
20438       current->doc       = orgDoc;
20439       current->brief     = orgBrief;
20440       current->docLine   = orgDocLine;
20441       current->briefLine = orgBriefLine;
20442     }
20443   }
20444 }
20445
20446
20447 //----------------------------------------------------------------------------
20448
20449 static void parseCompounds(Entry *rt)
20450 {
20451   //printf("parseCompounds(%s)\n",rt->name.data());
20452   g_inputFromFile = FALSE;
20453   EntryListIterator eli(*rt->children());
20454   Entry *ce;
20455   for (;(ce=eli.current());++eli)
20456   {
20457     if (!ce->program.isEmpty())
20458     {
20459       //printf("-- %s ---------\n%s\n---------------\n",
20460       //  ce->name.data(),ce->program.data());
20461       // init scanner state
20462       padCount=0;
20463       //depthIf = 0;
20464       g_column=0;
20465       inputString = ce->program;
20466       inputPosition = 0;
20467       scanYYrestart( scanYYin ) ;
20468       if (ce->section==Entry::ENUM_SEC || (ce->spec&Entry::Enum))
20469         BEGIN( FindFields ) ;
20470       else
20471         BEGIN( FindMembers ) ;
20472       current_root = ce ;
20473       yyFileName = ce->fileName;
20474       //setContext();
20475       yyLineNr = ce->startLine ;
20476       insideObjC = ce->lang==SrcLangExt_ObjC;
20477       //printf("---> Inner block starts at line %d objC=%d\n",yyLineNr,insideObjC);
20478       //current->reset();
20479       if (current) delete current;
20480       current = new Entry;
20481       initEntry();
20482       gstat = FALSE;
20483       int ni=ce->name.findRev("::"); if (ni==-1) ni=0; else ni+=2;
20484       // set default protection based on the compound type
20485       if( ce->section==Entry::CLASS_SEC ) // class
20486       {
20487
20488         if (insidePHP || insideD || insideJS)
20489         {
20490           current->protection = protection = Public ; 
20491         }
20492         else if (insideJava)
20493         {
20494           current->protection = protection = (ce->spec & (Entry::Interface|Entry::Enum)) ?  Public : Package;
20495         }
20496         else if (ce->spec&(Entry::Interface | Entry::Ref | Entry::Value | Entry::Struct | Entry::Union))
20497         {
20498           if (ce->lang==SrcLangExt_ObjC)
20499           {
20500             current->protection = protection = Protected ;
20501           }
20502           else
20503           {
20504             current->protection = protection = Public ;
20505           }
20506         }
20507         else 
20508         {
20509           current->protection = protection = Private ;
20510         }
20511       }
20512       else if (ce->section == Entry::ENUM_SEC ) // enum
20513       {
20514         current->protection = protection = ce->protection;
20515       }
20516       else if (!ce->name.isEmpty() && ce->name.at(ni)=='@') // unnamed union or namespace
20517       {
20518         if (ce->section == Entry::NAMESPACE_SEC ) // unnamed namespace
20519         {
20520           current->stat = gstat = TRUE;
20521         }
20522         current->protection = protection = ce->protection;
20523       }
20524       else // named struct, union, protocol, category
20525       {
20526         current->protection = protection = Public ;
20527       }
20528       mtype = Method;
20529       virt = Normal;
20530       //printf("name=%s current->stat=%d gstat=%d\n",ce->name.data(),current->stat,gstat);
20531
20532       //memberGroupId = DOX_NOGROUP;
20533       //memberGroupRelates.resize(0);
20534       //memberGroupInside.resize(0);
20535       groupEnterCompound(yyFileName,yyLineNr,ce->name);
20536       
20537       scanYYlex() ;
20538       g_lexInit=TRUE;
20539       //forceEndGroup();
20540
20541       groupLeaveCompound(yyFileName,yyLineNr,ce->name);
20542       
20543       delete current; current=0;
20544       ce->program.resize(0);
20545
20546
20547       //if (depthIf>0)
20548       //{
20549       //        warn(yyFileName,yyLineNr,"Documentation block ended in the middle of a conditional section!");
20550       //}
20551     }
20552     parseCompounds(ce);
20553   }
20554 }
20555
20556 //----------------------------------------------------------------------------
20557
20558 static void parseMain(const char *fileName,const char *fileBuf,Entry *rt)
20559 {
20560   initParser();
20561   //g_inputFromFile = TRUE;
20562
20563   inputString = fileBuf;
20564   inputPosition = 0;
20565   g_inputFromFile = FALSE;
20566   g_column = 0;
20567
20568   //anonCount     = 0;  // don't reset per file
20569   //depthIf       = 0;
20570   protection    = Public;
20571   mtype         = Method;
20572   gstat         = FALSE;
20573   virt          = Normal;
20574   current_root  = rt;
20575   global_root   = rt;
20576   inputFile.setName(fileName);
20577   if (inputFile.open(IO_ReadOnly))
20578   {
20579     yyLineNr= 1 ; 
20580     yyFileName = fileName;
20581     setContext();
20582     rt->lang = language;
20583     msg("Parsing file %s...\n",yyFileName.data());
20584
20585     current_root  = rt ;
20586     initParser();
20587     groupEnterFile(yyFileName,yyLineNr);
20588     current       = new Entry;
20589     //printf("current=%p current_root=%p\n",current,current_root);
20590     int sec=guessSection(yyFileName);
20591     if (sec)
20592     {
20593       current->name    = yyFileName;
20594       current->section = sec;
20595       current_root->addSubEntry(current);
20596       current          = new Entry;
20597     }
20598     current->reset();
20599     initEntry();
20600     scanYYrestart( scanYYin );
20601     if ( insidePHP )
20602     {
20603       BEGIN( FindMembersPHP );
20604     }
20605     else
20606     {
20607       BEGIN( FindMembers );
20608     }
20609
20610     scanYYlex();
20611     g_lexInit=TRUE;
20612
20613     if (YY_START==Comment)
20614     {
20615       warn(yyFileName,yyLineNr,"warning: File ended in the middle of a comment block! Perhaps a missing \\endcode?");
20616     }
20617
20618     //forceEndGroup();
20619     groupLeaveFile(yyFileName,yyLineNr);
20620
20621     //if (depthIf>0)
20622     //{
20623     //  warn(yyFileName,yyLineNr,"Documentation block ended in the middle of a conditional section!");
20624     //}
20625
20626     rt->program.resize(0);
20627     if (rt->children()->contains(current)==0) 
20628       // it could be that current is already added as a child to rt, so we
20629       // only delete it if this is not the case. See bug 635317.
20630     {
20631       delete current; current=0;
20632     }
20633
20634     parseCompounds(rt);
20635
20636     inputFile.close();
20637
20638     anonNSCount++;
20639   }
20640 }
20641
20642 //----------------------------------------------------------------------------
20643
20644 static void parsePrototype(const QCString &text)
20645 {
20646   //printf("**** parsePrototype(%s) begin\n",text.data());
20647   if (text.isEmpty()) 
20648   {
20649     warn(yyFileName,yyLineNr,"Empty prototype found!");
20650     return;
20651   }
20652
20653   const char *orgInputString;
20654   int orgInputPosition;
20655   YY_BUFFER_STATE orgState;
20656   bool orgInputFromFile;
20657   
20658   // save scanner state
20659   orgState = YY_CURRENT_BUFFER;
20660   scanYY_switch_to_buffer(scanYY_create_buffer(scanYYin,YY_BUF_SIZE));
20661   orgInputString = inputString; 
20662   orgInputPosition = inputPosition;
20663   orgInputFromFile = g_inputFromFile;
20664
20665   // set new string
20666   inputString = text;
20667   inputPosition = 0;
20668   g_column = 0;
20669   g_inputFromFile = FALSE;
20670   scanYYrestart( scanYYin );
20671   BEGIN(Prototype);
20672   scanYYlex();
20673   g_lexInit=TRUE;
20674
20675   current->name = current->name.stripWhiteSpace();
20676   if (current->section == Entry::MEMBERDOC_SEC && current->args.isEmpty())
20677     current->section = Entry::VARIABLEDOC_SEC;
20678
20679   // restore original scanner state
20680   YY_BUFFER_STATE tmpState = YY_CURRENT_BUFFER;
20681   scanYY_switch_to_buffer(orgState);
20682   scanYY_delete_buffer(tmpState);
20683   inputString = orgInputString; 
20684   inputPosition = orgInputPosition;
20685   g_inputFromFile = orgInputFromFile;
20686
20687   //printf("**** parsePrototype end\n");
20688 }
20689
20690 void scanFreeScanner()
20691 {
20692 #if defined(YY_FLEX_SUBMINOR_VERSION)
20693   if (g_lexInit)
20694   {
20695     scanYYlex_destroy();
20696   }
20697 #endif
20698 }
20699
20700 //static void handleGroupStartCommand(const char *header)
20701 //{
20702 //  memberGroupHeader=header;
20703 //  startGroupInDoc();
20704 //}
20705 //
20706 //static void handleGroupEndCommand()
20707 //{
20708 //  endGroup();
20709 //  previous=0;
20710 //}
20711
20712 //----------------------------------------------------------------------------
20713
20714 void CLanguageScanner::parseInput(const char *fileName,const char *fileBuf,Entry *root)
20715 {
20716   g_thisParser = this;
20717   ::parseMain(fileName,fileBuf,root);
20718 }
20719
20720 void CLanguageScanner::parseCode(CodeOutputInterface & codeOutIntf,
20721                    const char * scopeName,
20722                    const QCString & input,
20723                    bool isExampleBlock,
20724                    const char * exampleName,
20725                    FileDef * fileDef,
20726                    int startLine,
20727                    int endLine,
20728                    bool inlineFragment,
20729                    MemberDef *memberDef,
20730                    bool showLineNumbers,
20731                    Definition *searchCtx
20732                   )
20733 {
20734   ::parseCCode(codeOutIntf,scopeName,input,isExampleBlock,exampleName,
20735                fileDef,startLine,endLine,inlineFragment,memberDef,
20736                showLineNumbers,searchCtx);
20737 }
20738
20739 bool CLanguageScanner::needsPreprocessing(const QCString &extension)
20740 {
20741   QCString fe=extension.lower();
20742   return 
20743    !( fe==".java" || fe==".as"  || fe==".d"    || fe==".php" || 
20744       fe==".php4" || fe==".inc" || fe==".phtml" 
20745     );
20746 }
20747
20748 void CLanguageScanner::resetCodeParserState()
20749 {
20750   ::resetCCodeParserState();
20751 }
20752
20753 void CLanguageScanner::parsePrototype(const char *text)
20754 {
20755   ::parsePrototype(text);
20756 }
20757
20758 //----------------------------------------------------------------------------
20759
20760 #if !defined(YY_FLEX_SUBMINOR_VERSION) 
20761 //----------------------------------------------------------------------------
20762 extern "C" { // some bogus code to keep the compiler happy
20763   void scannerYYdummy() { yy_flex_realloc(0,0); } 
20764 }
20765 #endif
20766
20767