Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
automatically regenerate these files
[simgrid.git] / src / surf / xml / simgrid_dtd.c
1
2 #define  YY_INT_ALIGNED short int
3
4 /* A lexical scanner generated by flex */
5
6 #define yy_create_buffer surf_parse__create_buffer
7 #define yy_delete_buffer surf_parse__delete_buffer
8 #define yy_scan_buffer surf_parse__scan_buffer
9 #define yy_scan_string surf_parse__scan_string
10 #define yy_scan_bytes surf_parse__scan_bytes
11 #define yy_init_buffer surf_parse__init_buffer
12 #define yy_flush_buffer surf_parse__flush_buffer
13 #define yy_load_buffer_state surf_parse__load_buffer_state
14 #define yy_switch_to_buffer surf_parse__switch_to_buffer
15 #define yypush_buffer_state surf_parse_push_buffer_state
16 #define yypop_buffer_state surf_parse_pop_buffer_state
17 #define yyensure_buffer_stack surf_parse_ensure_buffer_stack
18 #define yy_flex_debug surf_parse__flex_debug
19 #define yyin surf_parse_in
20 #define yyleng surf_parse_leng
21 #define yylex surf_parse_lex
22 #define yylineno surf_parse_lineno
23 #define yyout surf_parse_out
24 #define yyrestart surf_parse_restart
25 #define yytext surf_parse_text
26 #define yywrap surf_parse_wrap
27 #define yyalloc surf_parse_alloc
28 #define yyrealloc surf_parse_realloc
29 #define yyfree surf_parse_free
30
31 #define FLEX_SCANNER
32 #define YY_FLEX_MAJOR_VERSION 2
33 #define YY_FLEX_MINOR_VERSION 6
34 #define YY_FLEX_SUBMINOR_VERSION 4
35 #if YY_FLEX_SUBMINOR_VERSION > 0
36 #define FLEX_BETA
37 #endif
38
39 #ifdef yy_create_buffer
40 #define surf_parse__create_buffer_ALREADY_DEFINED
41 #else
42 #define yy_create_buffer surf_parse__create_buffer
43 #endif
44
45 #ifdef yy_delete_buffer
46 #define surf_parse__delete_buffer_ALREADY_DEFINED
47 #else
48 #define yy_delete_buffer surf_parse__delete_buffer
49 #endif
50
51 #ifdef yy_scan_buffer
52 #define surf_parse__scan_buffer_ALREADY_DEFINED
53 #else
54 #define yy_scan_buffer surf_parse__scan_buffer
55 #endif
56
57 #ifdef yy_scan_string
58 #define surf_parse__scan_string_ALREADY_DEFINED
59 #else
60 #define yy_scan_string surf_parse__scan_string
61 #endif
62
63 #ifdef yy_scan_bytes
64 #define surf_parse__scan_bytes_ALREADY_DEFINED
65 #else
66 #define yy_scan_bytes surf_parse__scan_bytes
67 #endif
68
69 #ifdef yy_init_buffer
70 #define surf_parse__init_buffer_ALREADY_DEFINED
71 #else
72 #define yy_init_buffer surf_parse__init_buffer
73 #endif
74
75 #ifdef yy_flush_buffer
76 #define surf_parse__flush_buffer_ALREADY_DEFINED
77 #else
78 #define yy_flush_buffer surf_parse__flush_buffer
79 #endif
80
81 #ifdef yy_load_buffer_state
82 #define surf_parse__load_buffer_state_ALREADY_DEFINED
83 #else
84 #define yy_load_buffer_state surf_parse__load_buffer_state
85 #endif
86
87 #ifdef yy_switch_to_buffer
88 #define surf_parse__switch_to_buffer_ALREADY_DEFINED
89 #else
90 #define yy_switch_to_buffer surf_parse__switch_to_buffer
91 #endif
92
93 #ifdef yypush_buffer_state
94 #define surf_parse_push_buffer_state_ALREADY_DEFINED
95 #else
96 #define yypush_buffer_state surf_parse_push_buffer_state
97 #endif
98
99 #ifdef yypop_buffer_state
100 #define surf_parse_pop_buffer_state_ALREADY_DEFINED
101 #else
102 #define yypop_buffer_state surf_parse_pop_buffer_state
103 #endif
104
105 #ifdef yyensure_buffer_stack
106 #define surf_parse_ensure_buffer_stack_ALREADY_DEFINED
107 #else
108 #define yyensure_buffer_stack surf_parse_ensure_buffer_stack
109 #endif
110
111 #ifdef yylex
112 #define surf_parse_lex_ALREADY_DEFINED
113 #else
114 #define yylex surf_parse_lex
115 #endif
116
117 #ifdef yyrestart
118 #define surf_parse_restart_ALREADY_DEFINED
119 #else
120 #define yyrestart surf_parse_restart
121 #endif
122
123 #ifdef yylex_init
124 #define surf_parse_lex_init_ALREADY_DEFINED
125 #else
126 #define yylex_init surf_parse_lex_init
127 #endif
128
129 #ifdef yylex_init_extra
130 #define surf_parse_lex_init_extra_ALREADY_DEFINED
131 #else
132 #define yylex_init_extra surf_parse_lex_init_extra
133 #endif
134
135 #ifdef yylex_destroy
136 #define surf_parse_lex_destroy_ALREADY_DEFINED
137 #else
138 #define yylex_destroy surf_parse_lex_destroy
139 #endif
140
141 #ifdef yyget_debug
142 #define surf_parse_get_debug_ALREADY_DEFINED
143 #else
144 #define yyget_debug surf_parse_get_debug
145 #endif
146
147 #ifdef yyset_debug
148 #define surf_parse_set_debug_ALREADY_DEFINED
149 #else
150 #define yyset_debug surf_parse_set_debug
151 #endif
152
153 #ifdef yyget_extra
154 #define surf_parse_get_extra_ALREADY_DEFINED
155 #else
156 #define yyget_extra surf_parse_get_extra
157 #endif
158
159 #ifdef yyset_extra
160 #define surf_parse_set_extra_ALREADY_DEFINED
161 #else
162 #define yyset_extra surf_parse_set_extra
163 #endif
164
165 #ifdef yyget_in
166 #define surf_parse_get_in_ALREADY_DEFINED
167 #else
168 #define yyget_in surf_parse_get_in
169 #endif
170
171 #ifdef yyset_in
172 #define surf_parse_set_in_ALREADY_DEFINED
173 #else
174 #define yyset_in surf_parse_set_in
175 #endif
176
177 #ifdef yyget_out
178 #define surf_parse_get_out_ALREADY_DEFINED
179 #else
180 #define yyget_out surf_parse_get_out
181 #endif
182
183 #ifdef yyset_out
184 #define surf_parse_set_out_ALREADY_DEFINED
185 #else
186 #define yyset_out surf_parse_set_out
187 #endif
188
189 #ifdef yyget_leng
190 #define surf_parse_get_leng_ALREADY_DEFINED
191 #else
192 #define yyget_leng surf_parse_get_leng
193 #endif
194
195 #ifdef yyget_text
196 #define surf_parse_get_text_ALREADY_DEFINED
197 #else
198 #define yyget_text surf_parse_get_text
199 #endif
200
201 #ifdef yyget_lineno
202 #define surf_parse_get_lineno_ALREADY_DEFINED
203 #else
204 #define yyget_lineno surf_parse_get_lineno
205 #endif
206
207 #ifdef yyset_lineno
208 #define surf_parse_set_lineno_ALREADY_DEFINED
209 #else
210 #define yyset_lineno surf_parse_set_lineno
211 #endif
212
213 #ifdef yywrap
214 #define surf_parse_wrap_ALREADY_DEFINED
215 #else
216 #define yywrap surf_parse_wrap
217 #endif
218
219 #ifdef yyalloc
220 #define surf_parse_alloc_ALREADY_DEFINED
221 #else
222 #define yyalloc surf_parse_alloc
223 #endif
224
225 #ifdef yyrealloc
226 #define surf_parse_realloc_ALREADY_DEFINED
227 #else
228 #define yyrealloc surf_parse_realloc
229 #endif
230
231 #ifdef yyfree
232 #define surf_parse_free_ALREADY_DEFINED
233 #else
234 #define yyfree surf_parse_free
235 #endif
236
237 #ifdef yytext
238 #define surf_parse_text_ALREADY_DEFINED
239 #else
240 #define yytext surf_parse_text
241 #endif
242
243 #ifdef yyleng
244 #define surf_parse_leng_ALREADY_DEFINED
245 #else
246 #define yyleng surf_parse_leng
247 #endif
248
249 #ifdef yyin
250 #define surf_parse_in_ALREADY_DEFINED
251 #else
252 #define yyin surf_parse_in
253 #endif
254
255 #ifdef yyout
256 #define surf_parse_out_ALREADY_DEFINED
257 #else
258 #define yyout surf_parse_out
259 #endif
260
261 #ifdef yy_flex_debug
262 #define surf_parse__flex_debug_ALREADY_DEFINED
263 #else
264 #define yy_flex_debug surf_parse__flex_debug
265 #endif
266
267 #ifdef yylineno
268 #define surf_parse_lineno_ALREADY_DEFINED
269 #else
270 #define yylineno surf_parse_lineno
271 #endif
272
273 /* First, we deal with  platform-specific or compiler-specific issues. */
274
275 /* begin standard C headers. */
276 #include <stdio.h>
277 #include <string.h>
278 #include <errno.h>
279 #include <stdlib.h>
280
281 /* end standard C headers. */
282
283 /* flex integer type definitions */
284
285 #ifndef FLEXINT_H
286 #define FLEXINT_H
287
288 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
289
290 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
291
292 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
293  * if you want the limit (max/min) macros for int types. 
294  */
295 #ifndef __STDC_LIMIT_MACROS
296 #define __STDC_LIMIT_MACROS 1
297 #endif
298
299 #include <inttypes.h>
300 typedef int8_t flex_int8_t;
301 typedef uint8_t flex_uint8_t;
302 typedef int16_t flex_int16_t;
303 typedef uint16_t flex_uint16_t;
304 typedef int32_t flex_int32_t;
305 typedef uint32_t flex_uint32_t;
306 #else
307 typedef signed char flex_int8_t;
308 typedef short int flex_int16_t;
309 typedef int flex_int32_t;
310 typedef unsigned char flex_uint8_t; 
311 typedef unsigned short int flex_uint16_t;
312 typedef unsigned int flex_uint32_t;
313
314 /* Limits of integral types. */
315 #ifndef INT8_MIN
316 #define INT8_MIN               (-128)
317 #endif
318 #ifndef INT16_MIN
319 #define INT16_MIN              (-32767-1)
320 #endif
321 #ifndef INT32_MIN
322 #define INT32_MIN              (-2147483647-1)
323 #endif
324 #ifndef INT8_MAX
325 #define INT8_MAX               (127)
326 #endif
327 #ifndef INT16_MAX
328 #define INT16_MAX              (32767)
329 #endif
330 #ifndef INT32_MAX
331 #define INT32_MAX              (2147483647)
332 #endif
333 #ifndef UINT8_MAX
334 #define UINT8_MAX              (255U)
335 #endif
336 #ifndef UINT16_MAX
337 #define UINT16_MAX             (65535U)
338 #endif
339 #ifndef UINT32_MAX
340 #define UINT32_MAX             (4294967295U)
341 #endif
342
343 #ifndef SIZE_MAX
344 #define SIZE_MAX               (~(size_t)0)
345 #endif
346
347 #endif /* ! C99 */
348
349 #endif /* ! FLEXINT_H */
350
351 /* begin standard C++ headers. */
352
353 /* TODO: this is always defined, so inline it */
354 #define yyconst const
355
356 #if defined(__GNUC__) && __GNUC__ >= 3
357 #define yynoreturn __attribute__((__noreturn__))
358 #else
359 #define yynoreturn
360 #endif
361
362 /* Returned upon end-of-file. */
363 #define YY_NULL 0
364
365 /* Promotes a possibly negative, possibly signed char to an
366  *   integer in range [0..255] for use as an array index.
367  */
368 #define YY_SC_TO_UI(c) ((YY_CHAR) (c))
369
370 /* Enter a start condition.  This macro really ought to take a parameter,
371  * but we do it the disgusting crufty way forced on us by the ()-less
372  * definition of BEGIN.
373  */
374 #define BEGIN (yy_start) = 1 + 2 *
375 /* Translate the current start state into a value that can be later handed
376  * to BEGIN to return to the state.  The YYSTATE alias is for lex
377  * compatibility.
378  */
379 #define YY_START (((yy_start) - 1) / 2)
380 #define YYSTATE YY_START
381 /* Action number for EOF rule of a given start state. */
382 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
383 /* Special action meaning "start processing a new file". */
384 #define YY_NEW_FILE yyrestart( yyin  )
385 #define YY_END_OF_BUFFER_CHAR 0
386
387 /* Size of default input buffer. */
388 #ifndef YY_BUF_SIZE
389 #ifdef __ia64__
390 /* On IA-64, the buffer size is 16k, not 8k.
391  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
392  * Ditto for the __ia64__ case accordingly.
393  */
394 #define YY_BUF_SIZE 32768
395 #else
396 #define YY_BUF_SIZE 16384
397 #endif /* __ia64__ */
398 #endif
399
400 /* The state buf must be large enough to hold one state per character in the main buffer.
401  */
402 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
403
404 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
405 #define YY_TYPEDEF_YY_BUFFER_STATE
406 typedef struct yy_buffer_state *YY_BUFFER_STATE;
407 #endif
408
409 #ifndef YY_TYPEDEF_YY_SIZE_T
410 #define YY_TYPEDEF_YY_SIZE_T
411 typedef size_t yy_size_t;
412 #endif
413
414 extern int yyleng;
415
416 extern FILE *yyin, *yyout;
417
418 #define EOB_ACT_CONTINUE_SCAN 0
419 #define EOB_ACT_END_OF_FILE 1
420 #define EOB_ACT_LAST_MATCH 2
421     
422     /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
423      *       access to the local variable yy_act. Since yyless() is a macro, it would break
424      *       existing scanners that call yyless() from OUTSIDE yylex.
425      *       One obvious solution it to make yy_act a global. I tried that, and saw
426      *       a 5% performance hit in a non-yylineno scanner, because yy_act is
427      *       normally declared as a register variable-- so it is not worth it.
428      */
429     #define  YY_LESS_LINENO(n) \
430             do { \
431                 int yyl;\
432                 for ( yyl = n; yyl < yyleng; ++yyl )\
433                     if ( yytext[yyl] == '\n' )\
434                         --yylineno;\
435             }while(0)
436     #define YY_LINENO_REWIND_TO(dst) \
437             do {\
438                 const char *p;\
439                 for ( p = yy_cp-1; p >= (dst); --p)\
440                     if ( *p == '\n' )\
441                         --yylineno;\
442             }while(0)
443     
444 /* Return all but the first "n" matched characters back to the input stream. */
445 #define yyless(n) \
446         do \
447                 { \
448                 /* Undo effects of setting up yytext. */ \
449         int yyless_macro_arg = (n); \
450         YY_LESS_LINENO(yyless_macro_arg);\
451                 *yy_cp = (yy_hold_char); \
452                 YY_RESTORE_YY_MORE_OFFSET \
453                 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
454                 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
455                 } \
456         while ( 0 )
457 #define unput(c) yyunput( c, (yytext_ptr)  )
458
459 #ifndef YY_STRUCT_YY_BUFFER_STATE
460 #define YY_STRUCT_YY_BUFFER_STATE
461 struct yy_buffer_state
462         {
463         FILE *yy_input_file;
464
465         char *yy_ch_buf;                /* input buffer */
466         char *yy_buf_pos;               /* current position in input buffer */
467
468         /* Size of input buffer in bytes, not including room for EOB
469          * characters.
470          */
471         int yy_buf_size;
472
473         /* Number of characters read into yy_ch_buf, not including EOB
474          * characters.
475          */
476         int yy_n_chars;
477
478         /* Whether we "own" the buffer - i.e., we know we created it,
479          * and can realloc() it to grow it, and should free() it to
480          * delete it.
481          */
482         int yy_is_our_buffer;
483
484         /* Whether this is an "interactive" input source; if so, and
485          * if we're using stdio for input, then we want to use getc()
486          * instead of fread(), to make sure we stop fetching input after
487          * each newline.
488          */
489         int yy_is_interactive;
490
491         /* Whether we're considered to be at the beginning of a line.
492          * If so, '^' rules will be active on the next match, otherwise
493          * not.
494          */
495         int yy_at_bol;
496
497     int yy_bs_lineno; /**< The line count. */
498     int yy_bs_column; /**< The column count. */
499
500         /* Whether to try to fill the input buffer when we reach the
501          * end of it.
502          */
503         int yy_fill_buffer;
504
505         int yy_buffer_status;
506
507 #define YY_BUFFER_NEW 0
508 #define YY_BUFFER_NORMAL 1
509         /* When an EOF's been seen but there's still some text to process
510          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
511          * shouldn't try reading from the input source any more.  We might
512          * still have a bunch of tokens to match, though, because of
513          * possible backing-up.
514          *
515          * When we actually see the EOF, we change the status to "new"
516          * (via yyrestart()), so that the user can continue scanning by
517          * just pointing yyin at a new input file.
518          */
519 #define YY_BUFFER_EOF_PENDING 2
520
521         };
522 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
523
524 /* Stack of input buffers. */
525 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
526 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
527 static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */
528
529 /* We provide macros for accessing buffer states in case in the
530  * future we want to put the buffer states in a more general
531  * "scanner state".
532  *
533  * Returns the top of the stack, or NULL.
534  */
535 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
536                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
537                           : NULL)
538 /* Same as previous macro, but useful when we know that the buffer stack is not
539  * NULL or when we need an lvalue. For internal use only.
540  */
541 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
542
543 /* yy_hold_char holds the character lost when yytext is formed. */
544 static char yy_hold_char;
545 static int yy_n_chars;          /* number of characters read into yy_ch_buf */
546 int yyleng;
547
548 /* Points to current character in buffer. */
549 static char *yy_c_buf_p = NULL;
550 static int yy_init = 0;         /* whether we need to initialize */
551 static int yy_start = 0;        /* start state number */
552
553 /* Flag which is used to allow yywrap()'s to do buffer switches
554  * instead of setting up a fresh yyin.  A bit of a hack ...
555  */
556 static int yy_did_buffer_switch_on_eof;
557
558 void yyrestart ( FILE *input_file  );
559 void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer  );
560 YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size  );
561 void yy_delete_buffer ( YY_BUFFER_STATE b  );
562 void yy_flush_buffer ( YY_BUFFER_STATE b  );
563 void yypush_buffer_state ( YY_BUFFER_STATE new_buffer  );
564 void yypop_buffer_state ( void );
565
566 static void yyensure_buffer_stack ( void );
567 static void yy_load_buffer_state ( void );
568 static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file  );
569 #define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER )
570
571 YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size  );
572 YY_BUFFER_STATE yy_scan_string ( const char *yy_str  );
573 YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len  );
574
575 void *yyalloc ( yy_size_t  );
576 void *yyrealloc ( void *, yy_size_t  );
577 void yyfree ( void *  );
578
579 #define yy_new_buffer yy_create_buffer
580 #define yy_set_interactive(is_interactive) \
581         { \
582         if ( ! YY_CURRENT_BUFFER ){ \
583         yyensure_buffer_stack (); \
584                 YY_CURRENT_BUFFER_LVALUE =    \
585             yy_create_buffer( yyin, YY_BUF_SIZE ); \
586         } \
587         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
588         }
589 #define yy_set_bol(at_bol) \
590         { \
591         if ( ! YY_CURRENT_BUFFER ){\
592         yyensure_buffer_stack (); \
593                 YY_CURRENT_BUFFER_LVALUE =    \
594             yy_create_buffer( yyin, YY_BUF_SIZE ); \
595         } \
596         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
597         }
598 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
599
600 /* Begin user sect3 */
601
602 #define surf_parse_wrap() (/*CONSTCOND*/1)
603 #define YY_SKIP_YYWRAP
604 typedef flex_uint8_t YY_CHAR;
605
606 FILE *yyin = NULL, *yyout = NULL;
607
608 typedef int yy_state_type;
609
610 extern int yylineno;
611 int yylineno = 1;
612
613 extern char *yytext;
614 #ifdef yytext_ptr
615 #undef yytext_ptr
616 #endif
617 #define yytext_ptr yytext
618
619 static yy_state_type yy_get_previous_state ( void );
620 static yy_state_type yy_try_NUL_trans ( yy_state_type current_state  );
621 static int yy_get_next_buffer ( void );
622 static void yynoreturn yy_fatal_error ( const char* msg  );
623
624 /* Done after the current pattern has been matched and before the
625  * corresponding action - sets up yytext.
626  */
627 #define YY_DO_BEFORE_ACTION \
628         (yytext_ptr) = yy_bp; \
629         yyleng = (int) (yy_cp - yy_bp); \
630         (yy_hold_char) = *yy_cp; \
631         *yy_cp = '\0'; \
632         (yy_c_buf_p) = yy_cp;
633 #define YY_NUM_RULES 664
634 #define YY_END_OF_BUFFER 665
635 /* This struct is not used in this scanner,
636    but its presence is necessary. */
637 struct yy_trans_info
638         {
639         flex_int32_t yy_verify;
640         flex_int32_t yy_nxt;
641         };
642 static const flex_int16_t yy_accept[4086] =
643     {   0,
644         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
645         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
646         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
647         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
648         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
649         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
650         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
651         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
652         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
653         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
654
655         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
656         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
657         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
658         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
659         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
660         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
661         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
662         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
663         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
664         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
665
666         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
667         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
668         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
669         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
670         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
671         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
672         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
673         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
674         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
675         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
676
677         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
678         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
679         0,    0,  665,  663,   16,   10,   10,   16,   16,  643,
680        10,  643,    5,    6,    5,    8,    9,    8,  659,  651,
681       652,  660,  657,  660,  658,  662,  651,  652,  662,   43,
682        10,   43,   43,   43,   41,   43,   43,   47,   10,   47,
683        47,  663,   47,  663,   47,   47,  663,  663,   47,  663,
684        47,  663,   47,   68,   10,   68,   68,   68,   66,   68,
685        68,   68,   72,   10,   72,  663,   72,   89,   10,   89,
686        89,   89,   87,   89,   89,   89,   89,   89,   93,   10,
687
688        93,  663,   93,  100,   10,  100,  100,  100,   98,  100,
689       104,   10,  104,  115,   10,  115,  115,  115,  113,  115,
690       115,  115,  119,   10,  119,  132,   10,  132,  132,  132,
691       130,  132,  132,  132,  136,   10,  136,  136,  145,   10,
692       145,  145,  145,  143,  145,  145,  149,   10,  149,  149,
693       162,   10,  162,  162,  162,  160,  162,  162,  162,  166,
694        10,  166,  166,  185,   10,  185,  185,  185,  183,  185,
695       185,  185,  185,  185,  185,  189,   10,  189,  244,   10,
696       244,  244,  244,  242,  244,  244,  244,  244,  244,  244,
697       244,  244,  248,   10,  248,  248,  255,   10,  255,  255,
698
699       255,  253,  255,  259,   10,  259,  259,  278,   10,  278,
700       278,  278,  276,  278,  278,  278,  278,  278,  282,   10,
701       282,  663,  282,  293,   10,  293,  293,  293,  291,  293,
702       293,  293,  297,   10,  297,  304,   10,  304,  304,  304,
703       302,  304,  308,   10,  308,  663,  308,  333,   10,  333,
704       333,  333,  331,  333,  333,  333,  333,  337,   10,  337,
705       337,  350,   10,  350,  350,  350,  348,  350,  350,  354,
706        10,  354,  363,   10,  363,  363,  363,  361,  363,  363,
707       367,   10,  367,  376,   10,  376,  376,  376,  374,  376,
708       376,  380,   10,  380,  401,   10,  401,  401,  401,  399,
709
710       401,  401,  401,  401,  401,  401,  405,   10,  405,  663,
711       412,   10,  412,  412,  412,  410,  412,  416,   10,  416,
712       416,  663,  416,  663,  416,  433,   10,  433,  433,  433,
713       431,  433,  433,  433,  433,  433,  437,   10,  437,  437,
714       446,   10,  446,  446,  446,  444,  446,  446,  450,   10,
715       450,  477,   10,  477,  477,  477,  475,  477,  477,  477,
716       477,  477,  481,   10,  481,  498,   10,  498,  498,  498,
717       496,  498,  498,  502,   10,  502,  502,  511,   10,  511,
718       511,  511,  509,  511,  511,  515,   10,  515,  528,   10,
719       528,  528,  528,  526,  528,  528,  528,  528,  532,   10,
720
721       532,  532,  545,   10,  545,  545,  545,  543,  545,  545,
722       545,  545,  549,   10,  549,  663,  549,  560,   10,  560,
723       560,  560,  558,  560,  560,  560,  660,  659,  582,   10,
724       582,  582,  582,  580,  582,  582,  582,  586,   10,  586,
725       613,   10,  613,  613,  613,  611,  613,  613,  617,   10,
726       617,  617,  617,  617,  617,  617,  617,  617,  638,   10,
727       638,  638,  638,  636,  638,  638,  638,  642,   10,  642,
728       642,   10,    0,    2,    2,    0,    4,    7,  654,  653,
729         0,    0,    0,    0,    0,    0,   42,   44,   44,   44,
730         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
731
732         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
733         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
734         0,    0,    0,    0,    0,    0,    0,    0,    0,   67,
735        69,   69,   69,   69,   69,    0,    0,   88,   90,   90,
736        90,   90,   90,   90,    0,    0,   99,  101,  101,    0,
737       114,  116,  116,  116,  116,    0,  131,  133,  133,  133,
738       133,    0,  144,  146,  146,  146,    0,  161,  163,  163,
739       163,  163,    0,  184,  186,  186,  186,  186,  186,  186,
740       186,  186,    0,  243,  245,  245,  245,  245,  245,  245,
741       245,  245,  245,  245,  245,  245,  245,  245,  245,    0,
742
743       254,  256,  256,    0,  277,  279,  279,  279,  279,  279,
744       279,  279,    0,    0,  292,  294,  294,  294,  294,    0,
745       303,  305,  305,    0,  332,  334,  334,  334,  334,  334,
746       334,    0,  349,  351,  351,  351,    0,  362,  364,  364,
747       364,    0,  375,  377,  377,  377,    0,  400,  402,  402,
748       402,  402,  402,  402,  402,  402,    0,    0,  411,  413,
749       413,    0,    0,    0,    0,    0,    0,    0,  432,  434,
750       434,  434,  434,  434,  434,    0,  445,  447,  447,  447,
751         0,  476,  478,  478,  478,  478,  478,  478,  478,  478,
752       478,    0,  497,  499,  499,  499,  499,    0,  510,  512,
753
754       512,  512,    0,  527,  529,  529,  529,  529,  529,    0,
755       544,  546,  546,  546,  546,  546,    0,    0,  559,  561,
756       561,  561,  561,    0,    0,    0,  581,  583,  583,  583,
757       583,    0,  612,  614,  614,  614,    0,  637,  639,  639,
758       639,  639,  639,    0,    0,    0,    0,    0,    3,    0,
759         0,    0,    0,    0,    0,    0,  661,    0,    0,   44,
760         0,    0,   18,    0,    0,    0,    0,    0,    0,    0,
761         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
762         0,    0,    0,   17,    0,    0,    0,    0,    0,    0,
763         0,    0,    0,    0,    0,    0,   17,    0,    0,   18,
764
765         0,    0,    0,    0,   69,   69,   69,   69,    0,    0,
766         0,   90,   90,   90,   90,   90,    0,    0,    0,  101,
767         0,    0,  116,    0,    0,  116,    0,    0,  133,  133,
768       133,    0,    0,  146,  146,    0,    0,  163,  163,  163,
769         0,    0,    0,    0,    0,    0,  186,  186,  186,  186,
770       186,    0,    0,  245,    0,    0,  245,    0,    0,  245,
771       245,  245,  245,  245,  245,  245,  245,  245,  245,    0,
772         0,    0,    0,    0,    0,  279,  279,  279,    0,    0,
773       279,  279,  279,    0,    0,    0,  294,    0,    0,    0,
774         0,    0,    0,  305,    0,    0,  334,    0,    0,  334,
775
776       334,  334,    0,    0,  351,    0,    0,    0,    0,    0,
777         0,  364,    0,    0,  377,  377,    0,    0,  402,  402,
778       402,    0,    0,  402,  402,  402,    0,    0,    0,  413,
779         0,    0,    0,    0,    0,    0,  434,  434,  434,  434,
780       434,    0,    0,    0,    0,  447,    0,    0,  478,    0,
781         0,  478,  478,  478,  478,  478,  478,    0,    0,  499,
782       499,  499,    0,    0,  512,    0,    0,    0,    0,  529,
783       529,    0,    0,  529,    0,    0,  546,    0,    0,  546,
784       546,    0,    0,    0,  561,    0,    0,  561,    0,    0,
785         0,  656,  583,  583,  583,    0,    0,    0,    0,  614,
786
787         0,    0,  639,  639,  639,  639,    0,    0,    0,   15,
788         1,    0,    0,  649,    0,    0,    0,  646,  645,    0,
789         0,   20,   19,   44,    0,    0,   46,    0,   18,    0,
790         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
791         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
792         0,   17,    0,    0,    0,    0,    0,    0,    0,    0,
793         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
794         0,    0,    0,   69,   69,    0,    0,   69,    0,    0,
795        71,    0,    0,   90,   90,   90,   90,   90,    0,    0,
796        92,    0,    0,  101,    0,    0,  103,    0,  116,    0,
797
798       110,  109,  116,    0,    0,  118,    0,    0,    0,  133,
799       133,    0,    0,    0,    0,  135,    0,    0,    0,    0,
800         0,    0,    0,  148,    0,    0,    0,  163,  163,    0,
801         0,    0,    0,  165,    0,    0,  170,  169,    0,  172,
802       171,    0,    0,  186,  186,  186,  186,    0,    0,  188,
803         0,  245,  245,  245,    0,  201,  200,  245,    0,  205,
804       204,    0,    0,  245,  245,  245,  245,  245,  245,  245,
805       245,  245,    0,    0,  247,    0,    0,  252,  251,    0,
806         0,  258,    0,  279,  279,  279,    0,  269,  268,  279,
807       279,  279,    0,    0,  281,    0,    0,  294,    0,  288,
808
809       287,    0,  290,  289,    0,    0,  296,    0,  305,    0,
810         0,  307,    0,  334,    0,  316,  315,  334,  334,  334,
811         0,    0,  336,    0,  351,    0,  347,  346,    0,    0,
812       353,    0,    0,  358,  357,  364,    0,    0,  366,    0,
813       377,  377,    0,    0,  379,    0,  402,  402,  402,  402,
814         0,  392,  391,    0,    0,  402,  402,    0,    0,  404,
815         0,    0,  413,    0,    0,  415,    0,    0,    0,    0,
816         0,  434,  434,  434,  434,  434,    0,    0,  436,    0,
817         0,  441,  440,  447,    0,    0,  449,    0,  478,    0,
818       462,  461,    0,    0,  478,    0,    0,  478,  478,  478,
819
820         0,    0,  480,    0,    0,    0,    0,    0,  499,    0,
821         0,  501,    0,  512,    0,  508,  507,    0,    0,  514,
822         0,  529,  529,    0,  523,  522,  529,    0,    0,  531,
823         0,  546,    0,  538,  537,  546,  546,    0,    0,  548,
824         0,    0,  561,    0,  555,  554,  561,    0,    0,    0,
825       563,    0,  583,  583,  583,    0,    0,  585,    0,    0,
826       590,  589,  614,    0,    0,  616,    0,    0,    0,  639,
827       639,    0,    0,  639,    0,    0,  641,    0,    0,    0,
828       650,  644,    0,    0,   44,    0,   45,    0,    0,    0,
829         0,    0,    0,    0,    0,  261,    0,  310,    0,    0,
830
831       382,    0,    0,  439,    0,    0,    0,    0,  588,  438,
832         0,    0,    0,    0,    0,  260,    0,  309,  381,    0,
833         0,    0,  587,    0,  587,  588,    0,    0,    0,    0,
834        51,   50,   69,   69,    0,   57,   56,   69,    0,  309,
835        90,    0,    0,   90,   90,   90,    0,    0,  101,    0,
836       116,  116,    0,    0,  123,  122,  133,  133,    0,  129,
837       128,    0,    0,  140,  139,    0,  142,  141,    0,    0,
838       153,  152,  163,  163,    0,  159,  158,    0,    0,  174,
839       173,  186,  186,  186,  186,    0,  245,  245,  245,    0,
840         0,    0,  207,  206,  245,  245,  245,  245,  245,  245,
841
842       245,  245,  245,  245,    0,    0,  279,  279,    0,    0,
843       279,  279,  279,    0,    0,    0,    0,    0,    0,    0,
844         0,  334,  334,  334,  334,    0,  351,    0,  364,    0,
845         0,    0,  377,    0,  402,  402,  402,  402,    0,  394,
846       393,  402,  402,    0,    0,  413,    0,    0,    0,    0,
847         0,  434,    0,    0,  434,  434,  434,    0,  447,    0,
848       478,    0,  464,  463,    0,    0,    0,  468,  467,  478,
849         0,    0,  478,    0,    0,  485,  484,    0,  487,  486,
850       499,    0,  512,    0,  529,  529,  529,    0,  546,  546,
851         0,    0,    0,    0,    0,    0,  561,    0,    0,  583,
852
853         0,    0,  583,    0,  614,    0,    0,  621,  620,  639,
854       639,    0,  627,  626,  639,    0,    0,    0,    0,   12,
855         0,  647,  648,   44,    0,   73,    0,    0,    0,    0,
856         0,    0,  261,    0,    0,  310,    0,    0,  368,  382,
857         0,    0,  439,    0,  483,    0,  551,  588,    0,  438,
858         0,    0,    0,    0,    0,  260,    0,    0,  309,  381,
859       482,    0,  550,  587,    0,    0,    0,  483,  482,   69,
860        69,   69,    0,    0,   90,    0,   78,   77,   90,   90,
861        90,    0,    0,    0,    0,    0,  116,  116,    0,  133,
862       133,    0,    0,  163,  163,    0,  186,  186,    0,    0,
863
864       186,    0,    0,    0,  245,  245,    0,  203,  202,  245,
865       245,  245,  245,  245,  245,    0,    0,  245,  245,  245,
866         0,    0,  279,  279,    0,  267,  266,  279,    0,    0,
867       279,    0,  369,    0,  286,  285,    0,    0,  301,  300,
868         0,  334,  334,  334,  334,    0,  351,    0,    0,    0,
869         0,    0,  371,  370,  377,    0,  402,    0,    0,  402,
870       402,    0,    0,  402,    0,    0,  413,    0,   74,    0,
871         0,    0,  434,    0,  422,  421,  434,  434,  434,    0,
872         0,    0,    0,  478,    0,  466,  465,  478,    0,  472,
873       471,  478,    0,  499,    0,  512,    0,  529,  529,  529,
874
875         0,  546,    0,    0,    0,  542,  541,    0,    0,    0,
876       553,  552,  561,    0,    0,  583,    0,    0,    0,    0,
877         0,    0,  614,    0,  639,  639,  639,    0,    0,    0,
878         0,   11,   44,    0,   73,    0,    0,    0,    0,    0,
879       249,    0,    0,    0,    0,  368,    0,    0,  451,  483,
880       504,    0,  551,    0,    0,    0,    0,    0,    0,    0,
881         0,    0,  482,  503,    0,  550,    0,    0,    0,    0,
882         0,    0,    0,    0,   69,    0,    0,   90,   90,   90,
883        90,    0,    0,    0,   97,   96,    0,  116,  116,    0,
884         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
885
886         0,    0,    0,  186,    0,  180,  179,    0,    0,    0,
887         0,  193,  192,    0,    0,  245,  245,  245,    0,    0,
888       245,  245,  245,    0,  229,  228,    0,    0,  245,  245,
889         0,    0,  279,  279,    0,    0,    0,  273,  272,  279,
890         0,  280,  369,    0,    0,  334,  334,  334,  334,    0,
891       335,  351,    0,    0,  360,  359,    0,  377,    0,  402,
892         0,  386,  385,    0,    0,  402,    0,  396,  395,  402,
893         0,  403,    0,  413,    0,   74,  250,    0,  452,  434,
894       434,  434,  434,    0,    0,  443,  442,    0,  448,  478,
895       478,  478,    0,  499,    0,  512,    0,    0,    0,  529,
896
897         0,    0,    0,  546,    0,  540,  539,    0,    0,  561,
898         0,    0,  583,    0,    0,    0,    0,    0,    0,    0,
899         0,    0,  579,  578,    0,  614,    0,  615,    0,    0,
900         0,    0,  639,    0,    0,    0,    0,    0,    0,   49,
901         0,    0,    0,    0,    0,  168,  191,  249,    0,  299,
902         0,    0,    0,  417,  451,  504,  517,    0,    0,   48,
903         0,    0,    0,    0,  167,  190,    0,  298,  503,  516,
904         0,    0,    0,   53,   52,    0,   55,   54,   69,    0,
905         0,   90,   90,   90,   90,    0,   91,    0,    0,  116,
906         0,    0,    0,    0,  125,  124,    0,  127,  126,    0,
907
908         0,    0,  155,  154,    0,  157,  156,    0,    0,  176,
909       175,    0,    0,    0,  182,  181,    0,    0,  195,  194,
910       245,  245,  245,    0,  215,  214,    0,    0,  245,  245,
911         0,  231,  230,  245,  245,    0,    0,  279,  279,    0,
912       271,  270,  279,    0,    0,  334,    0,    0,  334,  334,
913       334,  351,    0,    0,  377,    0,  378,  402,    0,  388,
914       387,  402,  402,    0,    0,    0,    0,  250,  418,  452,
915       434,  434,  434,  434,    0,  478,    0,    0,  478,    0,
916       499,    0,  500,  512,    0,    0,  519,  518,    0,    0,
917         0,  525,  524,    0,    0,    0,    0,    0,  561,    0,
918
919         0,  562,    0,    0,    0,    0,    0,    0,    0,    0,
920         0,    0,    0,    0,    0,    0,    0,    0,  623,  622,
921         0,  625,  624,  639,    0,    0,    0,    0,    0,    0,
922         0,   49,   94,  106,    0,    0,    0,  168,  191,    0,
923       299,  338,    0,  406,  417,  517,    0,    0,    0,   48,
924       105,    0,    0,    0,  167,  190,    0,  298,  516,    0,
925         0,    0,   69,    0,  339,    0,    0,   90,   90,   90,
926        95,    0,  116,    0,  112,  111,    0,    0,    0,    0,
927         0,  178,  177,    0,  245,  245,  245,    0,  217,  216,
928       245,  245,  245,    0,    0,    0,    0,  257,  279,  279,
929
930       279,    0,    0,  334,    0,  318,  317,  334,  334,  334,
931       351,    0,    0,  377,  402,  402,  402,  407,    0,  409,
932       408,    0,  418,    0,    0,  434,  434,  434,    0,  478,
933         0,  470,  469,  478,    0,  479,  499,  512,    0,  513,
934         0,  521,  520,    0,    0,  536,  535,    0,    0,  561,
935       655,    0,  567,  566,    0,    0,    0,    0,    0,    0,
936         0,    0,    0,    0,    0,    0,    0,    0,  639,    0,
937         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
938         0,    0,    0,   94,  106,    0,    0,    0,  284,  338,
939         0,  406,    0,    0,  619,  105,    0,    0,    0,  283,
940
941         0,    0,  618,   69,    0,   70,  339,    0,   76,   75,
942         0,    0,   90,   90,   95,    0,    0,    0,    0,    0,
943         0,    0,    0,  187,  245,  245,  245,  245,    0,    0,
944       245,  245,    0,    0,    0,    0,  246,  279,  279,  279,
945         0,    0,  306,    0,    0,  334,  334,  334,  334,    0,
946         0,    0,    0,    0,    0,  402,  402,  402,  407,    0,
947         0,  420,  419,    0,    0,  434,  434,    0,  435,    0,
948         0,  478,  499,  512,    0,  530,    0,    0,  561,    0,
949         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
950         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
951
952       639,    0,    0,    0,    0,    0,    0,    0,    0,    0,
953         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
954       284,  355,    0,    0,  619,    0,    0,    0,  283,    0,
955         0,  618,   69,    0,   80,   79,    0,    0,    0,    0,
956         0,  102,    0,  108,  107,    0,  117,    0,    0,    0,
957       245,  245,  245,  245,    0,  219,  218,  245,  245,    0,
958         0,    0,    0,    0,    0,  279,  279,    0,    0,    0,
959         0,  312,  311,  334,  334,  334,    0,    0,    0,    0,
960         0,    0,  352,    0,    0,  373,  372,  402,  402,    0,
961         0,    0,  414,    0,  424,  423,    0,    0,    0,    0,
962
963         0,    0,    0,  478,  499,  512,    0,  356,  561,    0,
964         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
965         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
966         0,    0,  639,    0,    0,    0,    0,    0,    0,    0,
967         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
968       138,    0,  355,    0,    0,    0,  137,    0,    0,    0,
969         0,    0,    0,    0,    0,    0,   86,   85,    0,    0,
970         0,  245,  245,    0,    0,  245,  245,  245,    0,    0,
971         0,    0,    0,    0,    0,    0,  279,    0,    0,    0,
972       275,  274,    0,  295,  334,  334,  334,    0,  330,  329,
973
974         0,    0,    0,    0,    0,    0,    0,  402,    0,    0,
975         0,  398,  397,    0,    0,    0,    0,  430,  429,    0,
976         0,    0,    0,    0,    0,  478,    0,    0,    0,    0,
977         0,  356,    0,    0,    0,    0,    0,    0,  571,    0,
978         0,    0,    0,  570,    0,    0,    0,    0,    0,    0,
979         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
980       640,    0,    0,    0,    0,    0,    0,    0,    0,    0,
981         0,    0,    0,    0,    0,    0,    0,  138,    0,  534,
982         0,    0,  137,    0,  533,    0,    0,    0,    0,    0,
983         0,    0,    0,    0,    0,    0,  245,    0,    0,    0,
984
985       211,  210,    0,    0,  245,  245,    0,    0,    0,    0,
986         0,    0,    0,    0,  279,    0,  265,  264,  334,    0,
987         0,  334,    0,    0,    0,    0,    0,    0,    0,  365,
988       402,    0,  390,  389,    0,    0,    0,    0,    0,    0,
989         0,    0,    0,    0,    0,    0,  478,    0,    0,    0,
990         0,  506,  505,    0,    0,  557,  556,    0,    0,    0,
991         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
992         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
993         0,    0,    0,    0,    0,    0,    0,    0,   22,   30,
994         0,    0,    0,    0,   21,   29,    0,  121,    0,  534,
995
996       565,  120,    0,  533,  564,    0,    0,    0,    0,    0,
997         0,    0,    0,    0,    0,    0,    0,    0,    0,  147,
998         0,  245,    0,  209,  208,    0,  213,  212,  245,  245,
999         0,    0,    0,    0,    0,    0,    0,    0,  279,  334,
1000         0,  320,  319,  334,    0,    0,  341,    0,    0,  340,
1001       402,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1002         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1003         0,    0,    0,    0,    0,    0,  577,    0,    0,    0,
1004       576,    0,    0,    0,    0,    0,  592,  600,    0,    0,
1005         0,    0,  591,  599,    0,    0,    0,    0,    0,    0,
1006
1007         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1008         0,   24,    0,    0,    0,   23,    0,  121,    0,  565,
1009       120,    0,  564,    0,    0,    0,    0,    0,    0,    0,
1010         0,    0,    0,    0,    0,    0,    0,  245,    0,    0,
1011       245,    0,    0,  235,    0,    0,    0,  234,    0,  279,
1012         0,    0,    0,    0,    0,    0,    0,    0,  402,    0,
1013         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1014         0,    0,  474,  473,    0,    0,    0,    0,    0,    0,
1015         0,    0,    0,  547,    0,    0,    0,    0,    0,    0,
1016         0,    0,    0,  594,    0,    0,    0,  593,    0,    0,
1017
1018         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1019         0,    0,    0,    0,    0,    0,    0,    0,    0,  151,
1020       150,   61,    0,   65,    0,   60,    0,   64,    0,   82,
1021         0,   81,    0,    0,  134,    0,  245,    0,    0,    0,
1022         0,    0,    0,    0,  237,    0,    0,  236,  279,    0,
1023       314,  313,    0,    0,    0,  343,  345,  342,  344,  402,
1024       426,    0,  425,    0,    0,  460,  456,    0,    0,  459,
1025       455,    0,  491,    0,  495,    0,  490,    0,  494,    0,
1026       575,    0,    0,  574,    0,    0,    0,  584,    0,    0,
1027         0,    0,    0,    0,  631,    0,  635,    0,  630,    0,
1028
1029       634,    0,    0,    0,    0,   12,    0,   12,    0,   34,
1030         0,    0,    0,    0,   32,   33,    0,    0,    0,    0,
1031        31,  151,  150,   59,   63,   58,   62,    0,    0,    0,
1032       245,    0,    0,    0,    0,    0,  233,  232,    0,    0,
1033         0,    0,  279,    0,    0,    0,    0,  402,    0,    0,
1034         0,    0,    0,    0,  489,  493,  488,  492,  569,  573,
1035       568,  572,  604,    0,    0,    0,    0,  602,  603,    0,
1036         0,    0,    0,  601,  629,  633,  628,  632,    0,    0,
1037         0,    0,    0,    0,    0,    0,   26,    0,    0,    0,
1038         0,   25,    0,    0,    0,    0,  164,    0,    0,    0,
1039
1040         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1041         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1042         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1043         0,    0,  596,    0,    0,    0,    0,  595,    0,    0,
1044         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1045         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1046         0,    0,    0,  239,    0,  238,    0,  263,  262,    0,
1047         0,    0,    0,    0,    0,    0,    0,    0,  384,  383,
1048         0,    0,  454,    0,  453,    0,    0,    0,    0,    0,
1049         0,    0,    0,    0,    0,   11,    0,    0,    0,    0,
1050
1051         0,    0,    0,    0,   84,   83,    0,    0,    0,    0,
1052         0,    0,    0,    0,    0,    0,    0,    0,  241,  240,
1053         0,    0,    0,    0,    0,    0,    0,    0,  428,  427,
1054         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1055         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1056         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1057         0,    0,    0,    0,    0,    0,    0,    0,    0,  458,
1058       457,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1059         0,    0,   36,    0,    0,    0,   35,    0,    0,    0,
1060         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1061
1062         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1063       606,    0,    0,    0,  605,    0,    0,    0,    0,   28,
1064         0,    0,   27,    0,    0,    0,    0,    0,    0,  221,
1065         0,    0,    0,  220,    0,    0,    0,  322,    0,    0,
1066         0,  321,    0,    0,    0,  598,    0,    0,  597,    0,
1067         0,   38,    0,   37,    0,    0,    0,    0,  227,    0,
1068         0,  226,    0,    0,  328,    0,    0,  327,    0,    0,
1069         0,  608,    0,  607,    0,    0,    0,    0,    0,    0,
1070         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1071         0,    0,   40,   39,    0,  197,    0,  196,    0,    0,
1072
1073         0,    0,    0,    0,    0,    0,  610,  609,    0,    0,
1074       199,  198,  225,    0,  224,    0,  326,    0,  325,    0,
1075         0,    0,  223,  222,  324,  323,    0,    0,    0,    0,
1076         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1077         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1078         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1079         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1080         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1081         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1082         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1083
1084         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1085         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1086         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1087         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1088         0,    0,    0,    0,    0,   14,    0,    0,    0,    0,
1089         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1090         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1091         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1092         0,    0,    0,   13,    0
1093     } ;
1094
1095 static const YY_CHAR yy_ec[256] =
1096     {   0,
1097         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
1098         1,    2,    4,    1,    1,    1,    1,    1,    1,    1,
1099         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1100         1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
1101         1,    1,    1,    1,   10,   11,   12,   13,   13,   13,
1102        13,   14,   13,   13,   13,   15,   13,   16,   17,   18,
1103        19,   20,   21,    1,   22,   23,   24,   25,   26,   27,
1104        28,   29,   30,   31,   32,   33,   34,   35,   36,   37,
1105        31,   38,   39,   40,   41,   42,   43,   44,   45,   46,
1106        47,    1,   48,    1,   49,    1,   50,   51,   52,   53,
1107
1108        54,   55,   56,   57,   58,   59,   60,   61,   62,   63,
1109        64,   65,   66,   67,   68,   69,   70,   71,   72,   73,
1110        74,   75,    1,    1,    1,    1,    1,    1,    1,    1,
1111         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1112         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1113         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1114         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1115         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1116         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1117         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1118
1119         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1120         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1121         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1122         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1123         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1124         1,    1,    1,    1,    1
1125     } ;
1126
1127 static const YY_CHAR yy_meta[76] =
1128     {   0,
1129         1,    2,    2,    2,    1,    1,    1,    1,    1,    3,
1130         3,    1,    4,    4,    4,    5,    6,    1,    7,    8,
1131         1,    9,    9,    9,    9,    9,    9,    5,    5,    5,
1132         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
1133         5,    5,    5,    5,    5,    5,    1,    1,    5,    9,
1134         9,    9,    9,    9,    9,    5,    5,    5,    5,    5,
1135         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
1136         5,    5,    5,    5,    5
1137     } ;
1138
1139 static const flex_int16_t yy_base[4638] =
1140     {   0,
1141         0,    0,    0,    3,    6,    9,   12,   29,   16,   19,
1142        14,   17,   33,   36,   49,   55,   45,   61,  109,  176,
1143        66,   72,   76,   79,   83,  129,  132,  135,  140,  157,
1144       196,  199,  202,  207,  224,  227,  233,  236,  244,  253,
1145       256,  261,  264,  273,  281,  284,  290,  293,  301,  310,
1146       313,  318,  321,  330,  338,  341,  359,  427,  379,  382,
1147       385,  390,  407,  447,  450,  453,  495,  563,  458,  475,
1148       515,  518,  521,  526,  543,  583,  631,  702,  586,  589,
1149       773,  834,  594,  611,  895,  963,  651,  654,  657,  662,
1150       679,  682,  722,  725, 1031, 1099,  728,  733,  750,  753,
1151
1152       793,  796,  799,  804, 1167, 1235,  854,  857,  860,  865,
1153       915,  918,  921,  926, 1303, 1371,  943,  983, 1439, 1508,
1154       986,  989,  994, 1011, 1051, 1054, 1057, 1062, 1577, 1635,
1155      1079, 1119, 1122, 1125, 1130, 1147, 1187, 1190, 1693, 1761,
1156      1193, 1198, 1215, 1255, 1258, 1261, 1266, 1283, 1829, 1899,
1157      1323, 1326, 1969, 2024, 1329, 1334, 1391, 1394, 1397, 1402,
1158      1459, 1462, 2079, 2147, 1465, 1470, 1528, 1531, 1534, 1539,
1159      1597, 1600, 2215, 2273, 1603, 1608, 2331, 2402, 1655, 1658,
1160      2473, 2541, 1661, 1666, 2609, 2677, 1713, 1716, 1719, 1724,
1161      2745, 2816, 1781, 1784, 1787, 1792, 1849, 1852, 1855, 1860,
1162
1163      1877, 1919, 1922, 1925, 1930, 1947, 1989, 1992, 1995, 2000,
1164      2044, 2047, 2887, 2955, 2050, 2055, 2099, 2102, 2105, 2110,
1165      2167, 2170, 3023, 3094, 2173, 2178, 3165, 3233, 2235, 2238,
1166      3301, 3369, 2241, 2246, 2293, 2296, 2299, 2304, 2351, 2354,
1167      3437, 3495, 2357, 2362, 3553, 3622, 2379, 2382, 2422, 2425,
1168      2428, 2433, 2450, 2453, 3691, 3759, 2493, 2496, 2499, 2504,
1169      2521, 2561, 2564, 2567, 3827, 3892,  204, 2583, 3957, 4026,
1170      2572, 2590, 4095, 4162, 2630, 2633, 2636, 2640, 2697, 2700,
1171      2703, 2708, 2765, 2768, 2771, 2776, 2793, 2796, 2836, 2839,
1172      2842, 2847, 2864, 2867, 2907, 2910, 2913, 2918, 2935, 2975,
1173
1174      2978, 2981, 2986, 3003, 3043, 3046, 3049, 3054, 3071, 3074,
1175      4229, 4297, 3114, 3117, 3120, 3125, 3142, 3145, 3185, 3188,
1176         0,    0,10958,14057,14057,   96,  100,   29,   41,14057,
1177       103,   51,14057,14057,10947,14057,14057,10936,14057,10947,
1178     10947,  762,14057,14057,14057,14057,10945,10943,10897,14057,
1179       160,10924,    0,   87,14057,10886,10874,14057,  166, 4361,
1180     10872, 4432, 3142, 4503,  278,   76,10922,   26,  279, 3203,
1181       392,10921,   31,14057,  169,10912,    0,  144,14057,10859,
1182     10854,   81,14057,  347,  154,  188,  204,14057,  414,10905,
1183         0,  268,14057,10852,10857,10862,10852,10845,14057,  417,
1184
1185        16,10863,  325,14057,  420,10890,    0,  305,14057,10859,
1186     14057,  482,  393,14057,  485,10888,    0,  370,14057,10853,
1187     10849,10851,14057,  488,  461,14057,  554,10878,    0,  506,
1188     14057,10829,10824,10824,14057,  622,  541,  469,14057,  685,
1189     10870,    0,  527,14057,10821,10819,14057,  688,  609,  514,
1190     14057,  691,10865,    0,  530,14057,10816,10807,10811,14057,
1191       756,  754,  529,14057,  759,10857,    0,  533,14057,10802,
1192     10820,10822,10800,10816,   81,14057,  823,  865,14057,  885,
1193     10845,    0,  595,14057,  141,10798,10808,  545,10793,   90,
1194       606,10791,14057,  950,10842,  801,14057,  953,10833,    0,
1195
1196       713,14057,10797,14057,  956,10837,  861,14057, 1018,10828,
1197         0,  743,14057,10772,10778,10788,10770,  330,14057, 1021,
1198       295,10775,  862,14057, 1024,10816,    0,  784,14057,10767,
1199     10777,10764,14057, 1083,  929,14057, 1086,10806,    0,  811,
1200     14057,10767,14057, 1089,  616,  219,  867,14057, 1092,10804,
1201         0,  974,14057,10769,10765,10767,   20,14057, 1151,10802,
1202       872,14057, 1154,10793,    0,  997,14057,10754,10754,14057,
1203      1157, 1201,14057, 1160,10786,    0, 1042,14057,10752,10752,
1204     14057, 1222, 1269,14057, 1225,10781,    0, 1110,14057,10750,
1205     10726,14057, 1228, 1334,14057, 1290,10774,    0, 1178,14057,
1206
1207     10722,10718,10725,10735,10733,  398,14057, 1293, 1337, 1338,
1208     14057, 1296,10762,    0, 1246,14057,10727,14057, 1363, 3149,
1209       166, 1356, 1405,  597,  997,14057, 1422,10758,    0, 1314,
1210     14057,10707,10712,10713,10707,10700,14057, 1431,  297, 1005,
1211     14057, 1490,10746,    0, 1335,14057,10712,10714,14057, 1499,
1212      1348,14057, 1559,10739,    0, 1406,14057,10704,10704, 1421,
1213     10704,  796,14057, 1568, 1477,14057, 1625,10733,    0, 1409,
1214     14057,10684,  671,14057, 1628, 1483, 1065,14057, 1683,10727,
1215         0, 1519,14057,10682,10692,14057, 1686, 1546,14057, 1744,
1216     10722,    0, 1588,14057,10672,10676,10682,10660,14057, 1750,
1217
1218     10721, 1133,14057, 1753,10710,    0, 1612,14057,10665,10675,
1219     10659,10664,14057, 1812,  340,10659, 1322,14057, 1818,10698,
1220         0, 1646,14057,10659,10663,10657, 1863,10662,14057, 1821,
1221     10689,    0, 1670,14057,10645,10647,10637,14057, 1886, 1933,
1222     14057, 1889,10679,    0, 1704,14057,10645,10633,14057, 1894,
1223      3207,10629, 3208, 1989, 1416, 1864, 3272, 1345,14057, 1956,
1224     10673,    0, 1728,14057,10624,10615,  698,14057, 1959, 1732,
1225      1351, 1964,  866,10605,14057,10667,10656,14057,14057,14057,
1226      2061,  179,10602,10601,10599,10644,14057,    0, 2643,10593,
1227     10640,10618, 1432,  420,  408,10592,10592,10592,10585, 1954,
1228
1229       555,10579,10576,10578, 2002,10602,  759,  683,10572,10572,
1230     10576, 2057,  558,10560,10561,10563,10583,  861, 2068,10557,
1231     10581,  888,10551,  956, 1024,  830,  944, 1157, 1092,14057,
1232         0,10545,10564,10556,10545,10584,10543,14057,    0,10537,
1233     10531,10533,10544,10542,10537, 1487,14057,    0,10525,10535,
1234     14057,    0,10517, 3323,10510,10527,14057,    0,10504,10523,
1235     10519,10515,14057,    0,10496,10512,10508,14057,    0,10489,
1236     10508,10500,10500,14057,    0, 3326, 3331,10481,10491,10491,
1237     10489,10483,10485,14057,    0,10487, 3336,10464, 3349,10461,
1238     10467,10460,10469,10469,10447,10466,10461,10455,10444,10456,
1239
1240     14057,    0, 3389,10451,14057,    0,10452,  214, 3392,10432,
1241     10442,10445,10437,10425,14057,    0,10416, 3395, 3399,10430,
1242     14057,    0,10421,10423,14057,    0,10417, 3402,10406,10424,
1243     10423,10407,14057,    0,10400, 3457,10405,14057,    0, 3460,
1244      9779, 9777,14057,    0, 9775, 9772, 9773,14057,    0, 9784,
1245      9784, 9768, 3463, 9762, 9775, 9778, 9761, 9757,14057,    0,
1246      9750, 9750, 1498, 1216, 2071, 1225, 1558, 2125,14057,    0,
1247      9744, 9738, 9743, 9746, 9743, 9723,14057,    0, 3467, 9726,
1248      9720,14057,    0, 9717, 3471, 9706, 9722, 9708, 9716, 9714,
1249      9701, 9686,14057,    0, 9682, 9690, 9678, 9669,14057,    0,
1250
1251      9670, 3515, 9666,14057,    0, 9662, 9667, 3518, 9659, 9655,
1252     14057,    0, 9658, 3521, 9667, 9628, 9633, 9634,14057,    0,
1253      9634, 3525, 9626,   13, 9605, 9653,14057,    0, 9617, 9603,
1254      9615, 9594,14057,    0, 3529, 9587, 9580,14057,    0, 9582,
1255      9591, 9587, 9561, 9547, 9600, 9605, 1781, 9552,14057, 2128,
1256         0, 9547, 9533, 9575, 9574, 9516,14057, 3573, 2197, 9510,
1257      3259, 3576, 2263, 9508, 9520, 9517, 9503, 9515, 9488, 9494,
1258      9487, 9502, 9489,  265, 9484, 9487, 9457, 9457, 9447, 9451,
1259      9460, 9446, 9443, 2321, 9443, 9429, 9441, 9420, 9421, 9422,
1260      9409, 9417, 9399, 9403, 9416, 9401, 2325, 9379, 9380, 2391,
1261
1262      9372, 9361, 9354, 9353, 3579, 3585, 3591, 3645, 3582, 3642,
1263      9347, 9357, 9338, 9345, 9345, 9331, 3648, 3663, 9338, 9318,
1264      3653, 3656, 9329, 3714, 2460, 9327, 3717, 3725, 3722, 3728,
1265      3732, 3780, 3783, 3786, 3789, 3795, 3847, 3850, 3861, 3857,
1266      3868, 3913, 3916, 2524, 3922, 2593, 3934, 3987, 3990, 3995,
1267      3999, 3928, 4061, 2009, 3977, 2662, 9325, 3981, 2728, 4048,
1268      9310, 9302, 9310, 9302, 9290, 9290, 9302, 9299, 9288, 4055,
1269      4058, 4066, 2799, 4118, 4121, 9293, 9282, 9275, 4125, 2870,
1270      9278, 9257, 9239, 4128, 4131,  285, 9244, 4184, 3081, 4187,
1271      3153, 4194, 4197, 9251, 4249, 4260, 9251, 4209, 3284, 9248,
1272
1273      9223, 9220, 4252, 4255, 9229, 4264, 3354, 4317, 4322, 4327,
1274      3421, 9208, 4331, 4336, 9223, 9208, 4355, 4367, 9209,  473,
1275      9197, 4345, 3610, 4358, 9205, 9189, 4382, 4386, 9202, 9179,
1276      4389, 4394, 9177, 9181, 9172, 9172, 9180, 9162, 9168, 9173,
1277      9159, 4401, 4413, 4439, 3810, 9147, 4442, 4445, 9161, 4448,
1278      3875, 4457, 9147, 4466, 9151, 9154, 9150, 4471, 4484, 4507,
1279      4511, 4514, 4475, 4517, 9131, 4525, 3940, 4536, 4539, 9146,
1280      9122, 4543, 4085, 9135, 4546, 4571, 9119, 4580, 4143, 9132,
1281      9129, 4584, 4590,  343, 9127, 4593, 4152, 9105, 9137, 4598,
1282      4603,14057, 9095, 9102, 9096, 4611, 4617, 4622, 4284, 9065,
1283
1284      4625, 4630, 4644, 4649, 4652, 4658, 4662, 4670, 9109,14057,
1285     14057,  979, 9066,14057, 9109, 9107, 9048,14057,14057, 9046,
1286      4677,14057,14057, 9051, 4685, 4689,14057, 4693, 2207, 9044,
1287      9042, 9021, 9030, 9030, 9021, 9009, 9014, 8999, 9005, 9001,
1288      9006, 8995, 8986, 8977,  497, 8991, 8974, 8974, 8977, 8973,
1289       565, 2210, 8962, 8963, 8972, 8962, 8939, 8930, 8925, 8925,
1290      8914, 8904, 8888, 8902, 8889, 8886, 8879, 8871, 8874, 8827,
1291      8825, 4696, 4719, 8825, 8801, 4708, 4727, 8804, 4704, 4735,
1292     14057, 4738, 8778, 8705, 4741, 8715, 8701, 8617, 4744, 4747,
1293     14057, 4750, 8598, 8587, 4759, 4769,14057, 4772, 8557, 4778,
1294
1295     14057,14057, 8559, 4791, 4794,14057, 4797, 4804, 4818, 8476,
1296      8471, 4827, 4830, 4838, 4841,14057, 4848, 4851, 4860, 4869,
1297      4872, 4880, 4883,14057, 4887, 4890, 4893, 8448, 8418, 4902,
1298      4908, 4916, 4920,14057, 4923, 4926,14057,14057, 4935,14057,
1299     14057, 4943, 4947, 8334, 8281, 8277, 8256, 4955, 4961,14057,
1300      4964, 8117, 8134, 8065, 4967,14057,14057, 4975, 4983,14057,
1301     14057, 4993, 4996, 8046, 8040, 8032, 7979, 7970, 7894, 7882,
1302      7872, 1617, 5004, 5007,14057, 5014, 5017,14057,14057, 5026,
1303      5029,14057, 5033, 7791, 7748, 5036, 5039,14057,14057, 7672,
1304      7678, 7659, 5048, 5054,14057, 5057, 7578, 5060, 5063,14057,
1305
1306     14057, 5079,14057,14057, 5087, 5090,14057, 5095, 5098, 5101,
1307      5109,14057, 5116, 7504, 5124,14057,14057, 7445, 7437, 7425,
1308      5120, 5135,14057, 5139, 7367, 5142,14057,14057, 5150, 5154,
1309     14057, 5158, 5163,14057,14057, 7363, 5173, 5177,14057, 5180,
1310      5184, 5187, 5192, 5205,14057, 5211, 7341, 7338, 7329,   18,
1311      5214,14057,14057, 5224, 5232,   72,   98, 5242, 5245,14057,
1312      5248,  105,  163, 5251, 5254,14057, 5257,  168,  195, 1809,
1313       208,  203, 5276,  249,  256,  258, 5280, 5283,14057, 5286,
1314      5290,14057,14057,  304, 5306, 5309,14057, 5312,  334, 5315,
1315     14057,14057, 5332, 5335, 5343, 5350, 5354,  374, 5362,  411,
1316
1317      5368, 5371,14057, 5375, 5380, 5383, 5394, 5398,  486, 5406,
1318      5412,14057, 5415,  507, 5418,14057,14057, 5426, 5437,14057,
1319      5440,  547,  614, 5445,14057,14057,  643, 5459, 5462,14057,
1320      5466,  642, 5469,14057,14057,  637, 5485, 5488, 5491,14057,
1321      5494,  645, 5497, 5503,14057,14057, 5515,  676, 5518, 5521,
1322     14057, 5524,  685, 5529,  687, 5533, 5543,14057, 5547, 5553,
1323     14057,14057,  684, 5562, 5566,14057, 5569, 5573, 5581,  699,
1324       703, 5591, 5596,  750, 5604, 5609,14057, 5613,  790, 5616,
1325     14057,14057,  812,  854,  827, 5619,14057,  823,  864,  878,
1326       898,  932, 1004,  999, 1013, 2267, 1003, 2603, 1015, 1066,
1327
1328      2670, 1081, 1084, 2737, 1075, 1087, 1094, 1149, 3193, 2740,
1329      1134, 1158, 1142, 1149, 1165, 2946, 1201, 3014, 3263, 1218,
1330      1228, 1248, 3294, 1277, 3362, 3430, 1280, 1308, 1348, 5638,
1331     14057,14057, 1338, 1361, 5646,14057,14057, 1362, 5623, 3489,
1332      1379, 5654, 5657, 1407, 1420, 1447, 5665, 1443, 5675, 5668,
1333      1487, 1495, 5679, 5687,14057,14057, 1484, 1512, 5698,14057,
1334     14057, 5706, 5709,14057,14057, 5718,14057,14057, 5728, 5731,
1335     14057,14057, 1499, 1522, 5740,14057,14057, 5748, 5751,14057,
1336     14057, 1540, 1564, 5760, 1543, 5763, 5767, 5770, 5773, 5778,
1337      5797, 5805,14057,14057, 5791, 5813, 5816, 5822, 5825, 5834,
1338
1339      5845, 5848, 5852, 5855, 5858, 5873, 1570, 1565, 5866, 5877,
1340      1580, 5892, 1622, 5896, 1603, 5899, 5903, 5911, 5920, 5931,
1341      5939, 1616, 1625, 1617, 1632, 5942, 1623, 5946, 5949, 5953,
1342      5967, 5972, 1668, 5981, 1679, 5985, 1661, 1674, 5988,14057,
1343     14057, 6006, 1686, 6009, 1681, 1674, 6012, 1672, 1692, 1705,
1344      1696, 1719, 6015, 6018, 1723, 1740, 1751, 6033, 6036, 6039,
1345      1753, 6043,14057,14057, 6054, 6058, 6066,14057,14057, 1754,
1346      6075, 6080, 1752, 6088, 6093,14057,14057, 6103,14057,14057,
1347      1738, 6111, 1754, 6114, 1761, 1764, 1775, 6117, 1782, 6120,
1348      6123, 6126, 6141, 1799, 6144, 6147, 1812, 1844, 6155, 1806,
1349
1350      6162, 6165, 6174, 6183, 1808, 6186, 6192,14057,14057, 1803,
1351      1831, 6207,14057,14057, 1816, 6216, 1910, 1874, 6219,14057,
1352      1915,14057,14057, 1880, 1872, 3547, 1888, 1880, 1885, 1902,
1353      1910, 1929, 3604, 1939, 1952, 3675, 1954, 1960, 3682, 3685,
1354      1948, 1946, 3752, 1957, 3820, 1964, 4017, 3887, 1958, 3952,
1355      1954, 1991, 1993, 2012, 2013, 4020, 2017, 2042, 4080, 4190,
1356      4222, 2054, 4292, 4219, 2051, 2048, 2051, 4800, 6222, 6225,
1357      6228, 6239, 6246, 2069, 2067, 6250,14057,14057, 2075, 2075,
1358      2070, 6258, 2090, 6261, 6265, 6273, 2093, 2089, 6279, 6282,
1359      6292, 6300, 6306, 6310, 6315, 6319, 6329, 6334, 6338, 6341,
1360
1361      6352, 6356, 6359, 6363, 6377, 6380, 6388,14057,14057, 6398,
1362      6401, 6404, 6407, 6410, 6429, 6432, 6435, 6452, 6458, 6470,
1363      6476, 6479, 2127, 2120, 6484,14057,14057, 6498, 6501, 6507,
1364      2129, 6519, 4640, 6525,14057,14057, 6538, 6544,14057,14057,
1365      6552, 2134, 2115, 2134, 2138, 6557, 2139, 6560, 6563, 6567,
1366      6581, 6586,14057,14057, 2148, 6594, 2153, 6600, 6604, 6613,
1367      2144, 6621, 6624, 2176, 6632, 2182, 2184, 6635, 6641, 2195,
1368      2184, 2192, 2191, 6644,14057,14057, 2199, 2197, 2191, 6654,
1369      6657, 6662, 6675, 2192, 6678,14057,14057, 2211, 6690,14057,
1370     14057, 2218, 6698, 2237, 6701, 2242, 6707, 6710, 6713, 6720,
1371
1372      6731, 2240, 6734, 6738, 6754,14057,14057, 6746, 2261, 6765,
1373     14057,14057, 2254, 2273, 6773, 2246, 6781, 3719, 5047, 6776,
1374      6795, 6803, 2262, 6806, 6809, 6812, 6815, 6818, 2350, 2299,
1375      2347,14057, 6833, 2293, 6837, 2300, 2305, 2352, 2302, 2306,
1376      6840, 2318, 2323, 2322, 2331, 6843, 2332, 2350, 6846, 6851,
1377      6856, 2379, 6859, 2382, 2368, 2385, 2378, 2467, 2373, 2377,
1378      2387, 2393, 6862, 6865, 2394, 6868, 2407, 2391, 2494, 2535,
1379      6871, 6874, 6882, 6885, 2407, 6893, 2398, 2407, 2410, 2434,
1380      2451, 6896, 2447, 6900,14057,14057, 6915, 2443, 6908, 6918,
1381      6921, 6927, 6939, 6942, 6950, 6953, 6957, 6962, 6975, 6981,
1382
1383      6989, 6993, 6996, 7004, 7011,14057,14057, 7022, 7025, 7033,
1384      7036,14057,14057, 7044, 7052, 2457, 2469, 2459, 7047, 7065,
1385      7073, 2471, 2482, 7076,14057,14057, 7086, 7091, 2467, 2461,
1386      7099, 7104, 2479, 2488, 7107, 7111, 7119,14057,14057, 2514,
1387      7127,14057, 7130, 7134, 7137, 2508, 7140, 2529, 2522, 7146,
1388     14057, 2519, 7159, 7165,14057,14057, 7173, 2554, 7178, 2540,
1389      7182,14057,14057, 7197, 7200, 2550, 7211,14057,14057, 2545,
1390      7221,14057, 2558, 7224, 7227, 7230, 7233, 2573, 7236, 2586,
1391      2588, 2583, 2597, 7242, 7246,14057,14057, 7254,14057, 2599,
1392      7257, 2611, 7261, 2617, 7264, 2626, 7267, 7275, 7286, 7294,
1393
1394      7297, 7300, 7315, 7318, 7322,14057,14057, 7336, 2628, 2656,
1395      2687, 7339, 7342, 2691, 2678, 2754, 2679, 2695, 2683, 2755,
1396      2683, 7345,14057,14057, 7360, 7363, 7366,14057, 7370, 7375,
1397      7391, 7394, 2664, 7402, 2761, 2795, 2786, 7409, 7412, 7421,
1398      2654, 2679, 2697, 2697, 2718, 7427, 7430, 7433, 2725, 7436,
1399      2727, 2724, 2742, 7439, 7442, 7445, 7448, 2743, 2740, 7451,
1400      2756, 2773, 2749, 2768, 7454, 7457, 2785, 7460, 7465, 7468,
1401      2788, 2786, 7471,14057,14057, 7479,14057,14057, 2804, 7487,
1402      2795, 7490, 7496, 7499, 7502, 7508,14057, 2790, 7520, 2804,
1403      7523, 7527, 7535, 7542,14057,14057, 7550,14057,14057, 7558,
1404
1405      7565, 7568,14057,14057, 7584,14057,14057, 7592, 7598,14057,
1406     14057, 7606, 7611, 7620,14057,14057, 7628, 7631,14057,14057,
1407      2799, 2814, 2828, 7640,14057,14057, 7648, 7651, 2825, 2815,
1408      7659,14057,14057, 2831, 7667, 7670, 7673, 2822, 2815, 7676,
1409     14057,14057, 2825, 7685, 7692, 2846, 7696, 7700, 2863, 2854,
1410      2862, 2861, 7714, 7719, 2873, 7722,14057, 2866, 7726,14057,
1411     14057, 2860, 2869, 2870, 7745, 7748, 7756, 7759, 7763, 7766,
1412      7769, 7775, 7778, 7787, 7783, 2866, 7796, 7805, 2890, 7814,
1413      2889, 7817,14057, 2874, 7822, 7829,14057,14057, 7837, 7844,
1414      7855,14057,14057, 7863, 7866, 7869, 7877, 2878, 2888, 2905,
1415
1416      7884,14057, 7887, 7890, 2919, 2932, 2946, 2952, 2965, 2957,
1417      2955, 2957, 2963, 2974, 7898, 7905, 7910, 7919,14057,14057,
1418      7930,14057,14057, 2949, 7938, 7941, 2991, 2994, 7945, 3831,
1419      5298, 7953, 7960, 7963, 2941, 2939, 2950, 7966, 7969, 2960,
1420      7972, 7975, 2958, 7978, 7981, 7984, 2970, 2991, 3005, 7987,
1421      7990, 2993, 2995, 3003, 7993, 7996, 3008, 7999, 8002, 3000,
1422      3016, 3026, 3032, 8007, 8010, 8013, 8016, 8026, 8031, 8034,
1423      8037, 8040, 8044, 8052,14057,14057, 8062, 8066, 8069, 8072,
1424      8075,14057,14057, 8091, 3030, 3030, 3075, 8094,14057,14057,
1425      8104, 3027, 3031, 8110, 8115, 8123, 8128,14057, 3052, 3071,
1426
1427      3076, 8135, 8138, 8142, 8147,14057,14057, 8160, 8163, 8166,
1428      8169, 8172, 8191, 8197, 3073, 3079, 3080, 8200, 8203,14057,
1429     14057, 8211, 8219, 8222, 8230, 8226, 8240, 8244, 8247, 8250,
1430      8262,14057,14057, 8253, 8258,14057, 3087, 3085, 8272,14057,
1431      8277,14057,14057, 8285, 8293,14057,14057, 8304, 3076, 3081,
1432     14057, 8307,14057,14057, 3126, 3113, 3132, 3149, 3168, 3173,
1433      3162, 3178, 3173, 3182, 8315, 8323, 7557, 8296, 3159, 8337,
1434      8340, 3204, 3198, 3154, 3164, 3215, 3162, 3170, 3188, 3211,
1435      3349, 3220, 3234, 8343, 8346, 3235, 3248, 3277, 8352, 8359,
1436      3271, 8362, 3267, 3280, 8365, 8368, 3280, 3277, 3305, 8371,
1437
1438      3287, 3299, 8374, 3306, 8378,14057, 8381, 8384,14057,14057,
1439      8392, 8398, 8406, 8410, 8413, 8416, 8419, 8424, 8437, 8440,
1440      8443, 8446, 8449,14057, 3336, 3344, 3337, 3362, 8452, 8470,
1441      3352, 3361, 8478, 3985, 4052, 8486,14057, 3351, 3358, 8489,
1442      8492, 8495,14057, 8498, 8516, 3373, 3368, 3370, 8524, 8527,
1443      8530, 8501, 8538, 8545, 8551, 3366, 3368, 8559, 8563, 8566,
1444      8570,14057,14057, 8578, 8581, 8589, 8592, 8596,14057, 8601,
1445      8615, 3395, 3411, 3409, 8610,14057, 8623, 3413, 3406, 3438,
1446      3434, 3452, 3439, 3469, 3468, 3477, 3495, 3486, 3511, 8630,
1447      3478, 3483, 3529, 3481, 3488, 3491, 3511, 3548, 3527, 3539,
1448
1449      3556, 8633, 3600, 3655, 3730, 3551, 3595, 3599, 3610, 3619,
1450      3619, 3644, 3663, 3676, 3683, 3683, 3686, 3725, 3747, 3764,
1451      8636, 8642, 3739, 3755, 8645, 3740, 3764, 3782, 8652, 3760,
1452      3772, 8655, 8658, 8661,14057,14057, 8669, 8672, 8680, 8692,
1453      8687,14057, 8700,14057,14057, 8708,14057, 8711, 8714, 8717,
1454      3778, 3802, 8720, 3799, 8723,14057,14057, 3825, 3817, 3870,
1455      3901, 3886, 3889, 4104, 3892, 3871, 8738, 8741, 8744, 8752,
1456      8759,14057,14057, 3893, 3898, 3915, 8774, 8778, 8786, 4431,
1457      4544, 8794,14057, 8797, 8800,14057,14057, 3908, 8808, 8816,
1458      8819, 8827,14057, 8830,14057,14057, 8838, 8842, 8850, 8857,
1459
1460      8868, 4180, 4235, 3922, 8876, 8879, 8882, 8885, 8888, 3958,
1461      3973, 3983, 3986, 4007, 3985, 3994, 4029, 4033, 4047, 8897,
1462      4001, 4013, 4012, 4029, 4030, 4046, 4048, 4077, 4075, 4079,
1463      4087, 4086, 8901, 8906, 4158, 4139, 4164, 4092, 4144, 4133,
1464      4155, 4165, 4195, 4197, 4211, 4200, 4217, 4225, 4231, 4215,
1465      8909, 4227, 8912, 4238, 4270, 4258, 8919, 4264, 4278, 4284,
1466      8925, 8928, 8936, 4329, 4330, 8944,14057,14057, 8955, 8959,
1467      8962, 4279, 8965, 8968, 8974, 8986, 4300, 4309, 4350, 4334,
1468      4354, 4340, 4357, 4341, 4372, 4357, 4350, 8989, 8992, 9000,
1469     14057,14057, 9008,14057, 4340, 9012, 4355, 9015,14057,14057,
1470
1471      4372, 4374, 4383, 4388, 4389, 4390, 9030, 4383, 9033, 9036,
1472      9045,14057,14057, 9053, 4467, 4497, 9061,14057,14057, 4396,
1473      4399, 4501, 4400, 4403, 4545, 4394, 9069, 9072, 9080, 9083,
1474      9091, 9094, 9098, 9101, 4438, 4422, 4426, 4439,14057, 4471,
1475      4456, 4457, 4461,14057, 9110, 4438, 4471, 4458, 4490, 4498,
1476      4507, 4490, 4503, 4503, 4528, 4536, 4548, 9116, 9119, 9129,
1477     14057, 4588, 4602, 9134, 4540, 4543, 4563, 4611, 4624, 4574,
1478      4567, 4570, 4586, 4640, 4658, 4608, 4621, 9137, 4606, 9140,
1479      4609, 4631, 9143, 4631, 9148, 4634, 9156, 5166, 5285, 4674,
1480      4688, 4686, 4692, 9164, 9167, 9170, 4658, 9173, 9176, 9191,
1481
1482     14057,14057, 9199, 9202, 4652, 4665, 4707, 4707, 4717, 4718,
1483      4737, 4717, 4728, 4728, 4722, 9210,14057,14057, 4724, 9218,
1484      9221, 4709, 4742, 4751, 4782, 4747, 4756, 4800, 9236,14057,
1485      4755, 9239,14057,14057, 4782, 4787, 4785, 4790, 4796, 4790,
1486      4791, 4807, 4815, 4803, 4812, 4820, 9247, 9251, 5439, 5629,
1487      9259,14057,14057, 9267, 9270,14057,14057, 4816, 4835, 4853,
1488      4838, 4825, 4855, 4870, 4858, 9278, 4829, 4833, 4855, 4909,
1489      4910, 4870, 4864, 4866, 4889, 4939, 4945, 4894, 9282, 5919,
1490      6353, 4970, 9290, 9293, 9297, 4906, 4892, 4966,14057,14057,
1491      4921, 4926, 4913, 4974,14057,14057, 4938, 9312, 4924, 9316,
1492
1493      9320, 9323, 4932, 9329, 9332, 4967, 4978, 4949, 4960, 4986,
1494      5018, 4983, 5000, 5045, 5034, 5049, 5039, 9335, 9338,14057,
1495      9341, 5029, 9344,14057,14057, 9360,14057,14057, 9368, 5027,
1496      5070, 5068, 5103, 5075, 5080, 5091, 5123, 5095, 5077, 9371,
1497      9374,14057,14057, 9382, 5112, 5123,14057, 5115, 5138,14057,
1498      5113, 5147, 5146, 5166, 5159, 5164, 5178, 5180, 5171, 5184,
1499      5196, 5199, 5191, 9389, 9393, 5196, 5213, 5178, 5209, 5228,
1500      5240, 5203, 5215, 9401, 5241, 5242,14057, 5243, 5246, 5246,
1501     14057, 5261, 9410, 5243, 5229, 5295,14057,14057, 5251, 5251,
1502      5258, 5319,14057,14057, 5278, 5306, 5317, 5285, 5301, 5325,
1503
1504      5341, 5304, 5326, 5370, 9413, 9416, 9425, 9479, 9527, 5326,
1505      5327,14057, 5345, 5338, 5339,14057, 5353, 9435, 5358, 9438,
1506      9444, 5369, 9447, 5419, 5392, 5427, 5368, 5428, 5406, 5441,
1507      5384, 5447, 5415, 5447, 5418, 9450, 9453, 5407, 9456, 9459,
1508      9474, 5432, 5438,14057, 5471, 5445, 5443,14057, 5474, 5442,
1509      9499, 9502, 9521, 9510, 5509, 5523, 5530, 5531, 5481, 5537,
1510      5512, 5545, 5520, 5536, 5572, 5574, 5541, 5563, 5582, 5587,
1511      5561, 9547,14057,14057, 5597, 5565, 5603, 5546, 5619, 5591,
1512      5622, 5566, 9539,14057, 5629, 5605, 5612, 5637, 5618, 5620,
1513      9558, 5587, 5595,14057, 5607, 5608, 5613,14057, 5626, 5680,
1514
1515      5656, 5691, 5630, 5696, 5667, 5705, 5648, 5721, 9561, 5739,
1516      5708, 9581, 9629, 5806, 5669, 5717, 6467, 5675, 5727, 9569,
1517      9592,14057, 5741,14057, 5752,14057, 5752,14057, 5775,14057,
1518      5763,14057, 5765, 9601,14057, 9604, 5716, 9607, 5795, 5803,
1519      9623, 9650, 5764, 5770,14057, 5775, 5778,14057, 5751, 9658,
1520     14057,14057, 9666, 5881, 5933,14057,14057,14057,14057, 5759,
1521     14057, 5818,14057, 5821, 5851,14057,14057, 5828, 5859,14057,
1522     14057, 5844,14057, 5878,14057, 5881,14057, 5879,14057, 5881,
1523     14057, 5885, 5898,14057, 5901, 5916, 9676,14057, 6418, 5877,
1524      5923, 6645, 5880, 5923,14057, 5930,14057, 5932,14057, 5938,
1525
1526     14057, 5949, 5941, 5957, 5975, 5961, 6045, 5970, 9679,14057,
1527      5931, 5949, 5941, 6024,14057,14057, 5956, 5976, 5964, 6042,
1528     14057, 9615, 9641,14057,14057,14057,14057, 5993, 5995, 9682,
1529      9685, 6052, 6034, 6111, 6051, 9688,14057,14057, 6017, 6061,
1530      6065, 6074, 9703, 6114, 6074, 6132, 6133, 9706, 6063, 6072,
1531      6123, 6114, 6145, 6146,14057,14057,14057,14057,14057,14057,
1532     14057,14057,14057, 6112, 6132, 6127, 6191,14057,14057, 6125,
1533      6149, 6136, 6193,14057,14057,14057,14057,14057, 9709, 6198,
1534      6184, 6203, 9712, 6164, 6164, 6167,14057, 6187, 6188, 6176,
1535      6179,14057, 6201, 6215, 6217, 9715,14057, 9724, 9735, 6232,
1536
1537      6246, 6265, 6255, 6251, 6259, 6275, 6265, 6255, 6299, 6262,
1538      6306, 9743, 9746, 6284, 6294, 6306, 6313, 6309, 6318, 6330,
1539      6331, 9754, 9761, 6330, 6333, 6369, 6355, 6376, 6364, 6339,
1540      6324, 6348,14057, 6368, 6371, 6353, 6358,14057, 6378, 9757,
1541      6410, 6384, 6402, 6376, 6397, 6394, 6412, 6387, 6411, 6458,
1542      6457, 9772, 6479, 6485, 6430, 6436, 6432, 6445, 6447, 6458,
1543      6457, 6467, 6492,14057, 6505,14057, 9780,14057,14057, 6478,
1544      6486, 6487, 6500, 6495, 6500, 6497, 6506, 9788,14057,14057,
1545      6532, 6534,14057, 6510,14057, 6515, 6495, 6512, 6487, 6516,
1546      6518, 6535, 6508, 6527, 6566,14057, 6517, 6524, 6525, 6537,
1547
1548      6535, 6533, 6537, 6555,14057,14057, 6596, 6591, 6599, 6600,
1549      6601, 6616, 6623, 6611, 6632, 6642, 6643, 6633,14057,14057,
1550      6645, 6658, 6660, 6648, 6659, 6666, 6671, 6658,14057,14057,
1551      6700, 6698, 6655, 6653, 6657, 6669, 6664, 6663, 6663, 6686,
1552      6725, 6683, 6698, 6748, 6705, 6702, 6716, 6763, 6719, 6746,
1553      6766, 6749, 6769, 6755, 6753, 6775, 6777, 6766, 6783, 6800,
1554      6804, 6793, 6791, 6808, 6826, 6842, 6840, 6867, 6868,14057,
1555     14057, 6842, 6853, 6902, 6860, 6852, 6872, 6919, 6878, 6927,
1556      6879, 6883,14057, 6933, 6894, 6896,14057, 6954, 6935, 6936,
1557      6938, 6942, 6955, 6949, 6982, 6948, 6975, 6966, 6995, 6969,
1558
1559      6985, 6979, 7013, 6981, 7004, 6995, 7024, 7002, 6989, 6998,
1560     14057, 7053, 7005, 7008,14057, 7055, 7078, 7004, 7064,14057,
1561      7011, 7064,14057, 7051, 7057, 7054, 7060, 7085, 7063,14057,
1562      7062, 7103, 7083,14057, 7081, 7121, 7102,14057, 7108, 7137,
1563      7118,14057, 7115, 7094, 7150,14057, 7097, 7155,14057, 7153,
1564      7091,14057, 7096,14057, 7135, 7153, 7146, 7167,14057, 7168,
1565      7163,14057, 7171, 7172,14057, 7181, 7175,14057, 7184, 7179,
1566      7144,14057, 7145,14057, 9796, 7215, 7233, 7225, 7247, 7228,
1567      7263, 7229, 7249, 7236, 7256, 7239, 7259, 7242, 7267, 7299,
1568      7298, 9799,14057,14057, 7302,14057, 7302,14057, 7306, 7270,
1569
1570      7306, 7283, 7323, 7286, 7323, 7289,14057,14057, 7330, 7333,
1571     14057,14057,14057, 7330,14057, 7343,14057, 7349,14057, 7348,
1572      7338, 7407,14057,14057,14057,14057, 7445, 7466, 7355, 7467,
1573      7559, 7724, 7371, 7500, 7537, 7527, 7553, 7577, 7599, 7616,
1574      7340, 7627, 7538, 7644, 7368, 7598, 7476, 7639, 7543, 7625,
1575      7596, 7661, 7664, 7671, 7718, 7691, 7688, 7807, 7755, 7842,
1576      7785, 7793, 7816, 7810, 7775, 7824, 7885, 7895, 7365, 7906,
1577      7681, 7907, 7864, 7716, 7890, 7782, 7458, 7790, 7464, 7987,
1578      8003, 8032, 8037, 8067, 8090, 8006, 8170, 8127, 8140, 7784,
1579      8161, 7883, 8029, 8060, 8100, 8084, 8166, 8001, 8167, 8139,
1580
1581      8257, 7694, 8270, 8220, 7792, 8280, 8271, 8281, 8218, 8284,
1582      8292, 8332, 8377, 8404, 8412, 8417, 7571, 8082, 8160, 8250,
1583      8273, 8447, 8448, 8466, 7690, 8338, 7856, 8411, 8504, 8414,
1584      8539, 8441, 7917, 8458, 8525, 8503, 8555, 8383, 8611, 8199,
1585      8530, 9807, 8531, 8515, 9810,14057, 8589, 8649, 8677, 8718,
1586      8738, 8608, 8622, 8632, 8716, 8595, 8688, 8739, 8747, 8715,
1587      8750, 8729, 8732, 8710, 8793, 8759, 8830, 8766, 8817, 8823,
1588      8853, 8590, 8844, 8898, 8899, 8445, 8796, 8921, 8977, 8929,
1589      8847, 9818, 9821,14057,14057, 9841, 9850, 9859, 9868, 9877,
1590      9886, 9895, 9904, 9913, 9922, 9931, 9940, 9949, 9958, 9967,
1591
1592      9976, 9985, 9994,10003,10012,10021,10030,10039,10048,10057,
1593     10066,10075,10084,10093,10102,10111,10120,10129,10138,10147,
1594     10156,10165,10174,10183,10192,10201,10210,10219,10228,10237,
1595     10246,10255,10264,10273,10282,10291,10300,10309,10318,10327,
1596     10336,10345,10354,10363,10372,10381,10390,10399,10408,10417,
1597     10426,10435,10444,10453,10460,10467,10474,10481,10488,10495,
1598     10502,10509,10516,10523,10530,10537,10544,10551,10558,10565,
1599     10572,10579,10586,10593,10600,10607,10614,10621,10628,10635,
1600     10642,10649,10656,10663,10670,10679,10686,10691,10698,10703,
1601     10710,10715,10722,10727,10734,10739,10746,10751,10758,10763,
1602
1603     10770,10775,10782,10787,10794,10799,10806,10811,10818,10823,
1604     10830,10835,10842,10847,10854,10859,10866,10871,10878,10883,
1605     10890,10895,10902,10907,10914,10919,10926,10931,10938,10943,
1606     10950,10955,10962,10967,10974,10979,10986,10991,10998,11003,
1607     11010,11015,11022,11027,11034,11039,11046,11051,11060,11066,
1608     11073,11081,11089,11097,11104,11112,11119,11127,11134,11142,
1609     11150,11158,11166,11174,11182,11190,11198,11206,11213,11221,
1610     11229,11236,11244,11251,11259,11266,11274,11281,11289,11296,
1611     11304,11311,11319,11326,11334,11341,11349,11356,11364,11371,
1612     11379,11386,11394,11401,11409,11417,11425,11432,11440,11447,
1613
1614     11455,11462,11470,11477,11485,11492,11500,11507,11515,11523,
1615     11531,11540,11546,11553,11561,11568,11576,11583,11591,11598,
1616     11606,11613,11621,11628,11636,11644,11651,11659,11666,11674,
1617     11681,11689,11697,11704,11712,11720,11728,11736,11744,11751,
1618     11759,11766,11774,11781,11789,11797,11805,11812,11820,11827,
1619     11835,11842,11850,11857,11865,11872,11880,11887,11895,11902,
1620     11910,11917,11925,11932,11940,11948,11956,11963,11971,11978,
1621     11986,11993,12001,12010,12019,12026,12033,12041,12048,12056,
1622     12064,12072,12079,12087,12094,12102,12110,12117,12125,12132,
1623     12140,12148,12156,12164,12171,12179,12187,12195,12202,12210,
1624
1625     12217,12225,12233,12241,12248,12256,12263,12271,12278,12286,
1626     12293,12301,12309,12317,12324,12332,12339,12347,12354,12362,
1627     12369,12377,12384,12392,12399,12407,12414,12422,12429,12437,
1628     12444,12452,12461,12470,12477,12485,12493,12500,12508,12516,
1629     12523,12531,12539,12547,12555,12563,12571,12579,12587,12595,
1630     12603,12611,12618,12626,12634,12642,12649,12657,12664,12672,
1631     12680,12687,12695,12702,12710,12717,12725,12732,12740,12748,
1632     12755,12763,12770,12778,12785,12793,12801,12809,12816,12824,
1633     12831,12839,12846,12854,12861,12869,12877,12885,12894,12903,
1634     12911,12918,12926,12933,12941,12949,12956,12964,12972,12980,
1635
1636     12988,12996,13004,13011,13019,13027,13034,13042,13050,13057,
1637     13064,13072,13080,13087,13095,13102,13110,13118,13125,13133,
1638     13140,13148,13155,13163,13170,13178,13186,13194,13202,13210,
1639     13217,13225,13233,13241,13249,13256,13264,13273,13282,13289,
1640     13297,13305,13313,13320,13328,13336,13344,13352,13360,13367,
1641     13375,13383,13390,13398,13406,13413,13420,13428,13436,13443,
1642     13450,13458,13466,13474,13481,13489,13496,13503,13511,13519,
1643     13527,13534,13542,13549,13557,13566,13575,13582,13590,13598,
1644     13606,13614,13622,13630,13638,13646,13654,13661,13669,13676,
1645     13684,13692,13700,13708,13716,13724,13732,13739,13747,13755,
1646
1647     13763,13771,13778,13785,13793,13801,13808,13816,13823,13831,
1648     13840,13849,13856,13864,13872,13880,13888,13896,13904,13911,
1649     13918,13926,13933,13941,13949,13956,13964,13972,13979,13986,
1650     13993,14002,14011,14020,14029,14038,14047
1651     } ;
1652
1653 static const flex_int16_t yy_def[4638] =
1654     {   0,
1655      4086, 4086, 4087, 4087, 4087, 4087, 4088, 4088, 4089, 4089,
1656      4090, 4090, 4091, 4091, 4091, 4091, 4092, 4092, 4093, 4093,
1657      4094, 4094, 4094, 4094, 4086, 4086, 4094, 4094, 4094, 4094,
1658      4086, 4086, 4094, 4094, 4094, 4094, 4086, 4086, 4094, 4094,
1659      4086, 4086, 4094, 4094, 4094, 4094, 4086, 4086, 4094, 4094,
1660      4086, 4086, 4094, 4094, 4094, 4094, 4095, 4095, 4096, 4096,
1661      4086, 4086, 4096, 4096, 4096, 4096, 4097, 4097, 4098, 4098,
1662      4086, 4086, 4098, 4098, 4098, 4098, 4099, 4099, 4100, 4100,
1663      4101, 4101, 4102, 4102, 4103, 4103, 4104, 4104, 4086, 4086,
1664      4104, 4104, 4104, 4104, 4105, 4105, 4106, 4106, 4086, 4086,
1665
1666      4106, 4106, 4106, 4106, 4107, 4107, 4108, 4108, 4086, 4086,
1667      4108, 4108, 4108, 4108, 4109, 4109, 4110, 4110, 4111, 4111,
1668      4112, 4112, 4086, 4086, 4112, 4112, 4112, 4112, 4113, 4113,
1669      4114, 4114, 4086, 4086, 4114, 4114, 4114, 4114, 4115, 4115,
1670      4116, 4116, 4086, 4086, 4116, 4116, 4116, 4116, 4117, 4117,
1671      4118, 4118, 4119, 4119, 4120, 4120, 4086, 4086, 4120, 4120,
1672      4120, 4120, 4121, 4121, 4122, 4122, 4086, 4086, 4122, 4122,
1673      4122, 4122, 4123, 4123, 4124, 4124, 4125, 4125, 4126, 4126,
1674      4127, 4127, 4128, 4128, 4129, 4129, 4130, 4130, 4086, 4086,
1675      4131, 4131, 4132, 4132, 4132, 4132, 4086, 4086, 4132, 4132,
1676
1677      4132, 4132, 4086, 4086, 4132, 4132, 4086, 4086, 4132, 4132,
1678      4132, 4132, 4133, 4133, 4134, 4134, 4086, 4086, 4134, 4134,
1679      4134, 4134, 4135, 4135, 4136, 4136, 4137, 4137, 4138, 4138,
1680      4139, 4139, 4140, 4140, 4086, 4086, 4140, 4140, 4140, 4140,
1681      4141, 4141, 4142, 4142, 4143, 4143, 4144, 4144, 4086, 4086,
1682      4144, 4144, 4144, 4144, 4145, 4145, 4146, 4146, 4086, 4086,
1683      4146, 4146, 4146, 4146, 4147, 4147, 4148, 4148, 4149, 4149,
1684      4150, 4150, 4151, 4151, 4152, 4152, 4152, 4152, 4086, 4086,
1685      4152, 4152, 4152, 4152, 4086, 4086, 4152, 4152, 4152, 4152,
1686      4086, 4086, 4152, 4152, 4086, 4086, 4152, 4152, 4152, 4152,
1687
1688      4086, 4086, 4152, 4152, 4086, 4086, 4152, 4152, 4152, 4152,
1689      4153, 4153, 4154, 4154, 4086, 4086, 4154, 4154, 4154, 4154,
1690      4086, 4086, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
1691      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
1692      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
1693      4085, 4085, 4155, 4085, 4085, 4155, 4155, 4085, 4085, 4085,
1694       360, 4085,  362, 4085,  364,  362,  363,  362,  363,  364,
1695       370,  369,  362, 4085, 4085, 4085, 4156, 4085, 4085, 4156,
1696      4156, 4156, 4085, 4085,  362,  362,  362, 4085, 4085, 4085,
1697      4157, 4085, 4085, 4157, 4157, 4157, 4157, 4157, 4085, 4085,
1698
1699       362,  362,  362, 4085, 4085, 4085, 4158, 4085, 4085, 4158,
1700      4085, 4085, 4085, 4085, 4085, 4085, 4159, 4085, 4085, 4159,
1701      4159, 4159, 4085, 4085, 4085, 4085, 4085, 4085, 4160, 4085,
1702      4085, 4160, 4160, 4160, 4085, 4085,  362,  362, 4085, 4085,
1703      4085, 4161, 4085, 4085, 4161, 4161, 4085, 4085,  362,  362,
1704      4085, 4085, 4085, 4162, 4085, 4085, 4162, 4162, 4162, 4085,
1705      4085,  362,  362, 4085, 4085, 4085, 4163, 4085, 4085, 4163,
1706      4163, 4163, 4163, 4163, 4163, 4085, 4085, 4085, 4085, 4085,
1707      4085, 4164, 4085, 4085, 4164, 4164, 4164, 4164, 4164, 4164,
1708      4164, 4164, 4085, 4085,  362,  362, 4085, 4085, 4085, 4165,
1709
1710      4085, 4085, 4165, 4085, 4085,  362,  362, 4085, 4085, 4085,
1711      4166, 4085, 4085, 4166, 4166, 4166, 4166, 4166, 4085, 4085,
1712       362,  362,  362, 4085, 4085, 4085, 4167, 4085, 4085, 4167,
1713      4167, 4167, 4085, 4085, 4085, 4085, 4085, 4085, 4168, 4085,
1714      4085, 4168, 4085, 4085,  364,  364,  362, 4085, 4085, 4085,
1715      4169, 4085, 4085, 4169, 4169, 4169, 4169, 4085, 4085,  362,
1716       362, 4085, 4085, 4085, 4170, 4085, 4085, 4170, 4170, 4085,
1717      4085, 4085, 4085, 4085, 4085, 4171, 4085, 4085, 4171, 4171,
1718      4085, 4085, 4085, 4085, 4085, 4085, 4172, 4085, 4085, 4172,
1719      4172, 4085, 4085, 4085, 4085, 4085, 4085, 4173, 4085, 4085,
1720
1721      4173, 4173, 4173, 4173, 4173, 4173, 4085, 4085, 4085, 4085,
1722      4085, 4085, 4085, 4174, 4085, 4085, 4174, 4085, 4085,  364,
1723       620,  362,  362,  362,  362, 4085, 4085, 4085, 4175, 4085,
1724      4085, 4175, 4175, 4175, 4175, 4175, 4085, 4085,  362,  362,
1725      4085, 4085, 4085, 4176, 4085, 4085, 4176, 4176, 4085, 4085,
1726      4085, 4085, 4085, 4085, 4177, 4085, 4085, 4177, 4177, 4177,
1727      4177, 4177, 4085, 4085, 4085, 4085, 4085, 4085, 4178, 4085,
1728      4085, 4178, 4178, 4085, 4085,  362,  362, 4085, 4085, 4085,
1729      4179, 4085, 4085, 4179, 4179, 4085, 4085, 4085, 4085, 4085,
1730      4085, 4180, 4085, 4085, 4180, 4180, 4180, 4180, 4085, 4085,
1731
1732       362,  362, 4085, 4085, 4085, 4181, 4085, 4085, 4181, 4181,
1733      4181, 4181, 4085, 4085,  362,  362,  362, 4085, 4085, 4085,
1734      4182, 4085, 4085, 4182, 4182, 4182, 4085, 4085, 4085, 4085,
1735      4085, 4183, 4085, 4085, 4183, 4183, 4183, 4085, 4085, 4085,
1736      4085, 4085, 4085, 4184, 4085, 4085, 4184, 4184, 4085, 4085,
1737       364,  751,  362,  364,  362,  753,  751,  362, 4085, 4085,
1738      4085, 4185, 4085, 4085, 4185, 4185, 4185, 4085, 4085,  362,
1739       362, 4085, 4186, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
1740      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4187, 4187, 4187,
1741      4188, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
1742
1743      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
1744      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
1745      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
1746      4189, 4189, 4189, 4189, 4189, 4190, 4085, 4085, 4191, 4191,
1747      4191, 4191, 4191, 4191, 4192, 4085, 4085, 4193, 4193, 4194,
1748      4085, 4195, 4195, 4195, 4195, 4196, 4085, 4197, 4197, 4197,
1749      4197, 4198, 4085, 4199, 4199, 4199, 4200, 4085, 4201, 4201,
1750      4201, 4201, 4202, 4085, 4203, 4203, 4203, 4203, 4203, 4203,
1751      4203, 4203, 4204, 4085, 4205, 4205, 4205, 4205, 4205, 4205,
1752      4205, 4205, 4205, 4205, 4205, 4205, 4205, 4205, 4205, 4206,
1753
1754      4085, 4207, 4207, 4208, 4085, 4209, 4209, 4209, 4209, 4209,
1755      4209, 4209, 4210, 4085, 4085, 4211, 4211, 4211, 4211, 4212,
1756      4085, 4213, 4213, 4214, 4085, 4215, 4215, 4215, 4215, 4215,
1757      4215, 4216, 4085, 4217, 4217, 4217, 4218, 4085, 4219, 4219,
1758      4219, 4220, 4085, 4221, 4221, 4221, 4222, 4085, 4223, 4223,
1759      4223, 4223, 4223, 4223, 4223, 4223, 4224, 4085, 4085, 4225,
1760      4225, 4226, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4227,
1761      4227, 4227, 4227, 4227, 4227, 4228, 4085, 4229, 4229, 4229,
1762      4230, 4085, 4231, 4231, 4231, 4231, 4231, 4231, 4231, 4231,
1763      4231, 4232, 4085, 4233, 4233, 4233, 4233, 4234, 4085, 4235,
1764
1765      4235, 4235, 4236, 4085, 4237, 4237, 4237, 4237, 4237, 4238,
1766      4085, 4239, 4239, 4239, 4239, 4239, 4240, 4085, 4085, 4241,
1767      4241, 4241, 4241, 4085, 4242, 4085, 4085, 4243, 4243, 4243,
1768      4243, 4244, 4085, 4245, 4245, 4245, 4246, 4085, 4247, 4247,
1769      4247, 4247, 4247, 4248, 4249, 4085, 4249, 4085, 4085, 4085,
1770      4250, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4251,
1771      4252, 4252, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
1772      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
1773      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
1774      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
1775
1776      4085, 4085, 4085, 4085, 4253, 4253, 4253, 4253, 4254, 4254,
1777      4085, 4255, 4255, 4255, 4255, 4255, 4256, 4256, 4085, 4257,
1778      4258, 4258, 4259, 4085, 4085, 4259, 4260, 4260, 4261, 4261,
1779      4261, 4262, 4262, 4263, 4263, 4264, 4264, 4265, 4265, 4265,
1780      4266, 4266, 4085, 4085, 4085, 4085, 4267, 4267, 4267, 4267,
1781      4267, 4268, 4268, 4269, 4085, 4085, 4269, 4085, 4085, 4269,
1782      4269, 4269, 4269, 4269, 4269, 4269, 4269, 4269, 4269, 4270,
1783      4270, 4085, 4085, 4271, 4271, 4272, 4272, 4272, 4085, 4085,
1784      4272, 4272, 4272, 4273, 4273, 4085, 4274, 4085, 4085, 4085,
1785      4085, 4275, 4275, 4276, 4277, 4277, 4278, 4085, 4085, 4278,
1786
1787      4278, 4278, 4279, 4279, 4280, 4085, 4085, 4281, 4281, 4085,
1788      4085, 4282, 4283, 4283, 4284, 4284, 4285, 4285, 4286, 4286,
1789      4286, 4085, 4085, 4286, 4286, 4286, 4287, 4287, 4085, 4288,
1790      4289, 4289, 4085, 4085, 4085, 4085, 4290, 4290, 4290, 4290,
1791      4290, 4291, 4291, 4085, 4085, 4292, 4293, 4293, 4294, 4085,
1792      4085, 4294, 4294, 4294, 4294, 4294, 4294, 4295, 4295, 4296,
1793      4296, 4296, 4297, 4297, 4298, 4085, 4085, 4299, 4299, 4300,
1794      4300, 4085, 4085, 4300, 4301, 4301, 4302, 4085, 4085, 4302,
1795      4302, 4303, 4303, 4085, 4304, 4085, 4085, 4304, 4085, 4305,
1796      4305, 4085, 4306, 4306, 4306, 4307, 4307, 4085, 4085, 4308,
1797
1798      4309, 4309, 4310, 4310, 4310, 4310, 4311, 4311, 4312, 4085,
1799      4085, 4312, 4085, 4085, 4313, 4085, 4085, 4085, 4085, 4085,
1800      4085, 4085, 4085, 4314, 4085, 4315, 4085, 4315, 4085, 4085,
1801      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
1802      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
1803      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
1804      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
1805      4085, 4085, 4085, 4316, 4316, 4085, 4085, 4316, 4085, 4317,
1806      4085, 4317, 4085, 4318, 4318, 4318, 4318, 4318, 4085, 4319,
1807      4085, 4319, 4085, 4320, 4085, 4321, 4085, 4321, 4322, 4085,
1808
1809      4085, 4085, 4322, 4085, 4323, 4085, 4323, 4085, 4085, 4324,
1810      4324, 4085, 4085, 4085, 4325, 4085, 4325, 4085, 4085, 4085,
1811      4085, 4085, 4326, 4085, 4326, 4085, 4085, 4327, 4327, 4085,
1812      4085, 4085, 4328, 4085, 4328, 4085, 4085, 4085, 4085, 4085,
1813      4085, 4085, 4085, 4329, 4329, 4329, 4329, 4085, 4330, 4085,
1814      4330, 4331, 4331, 4331, 4085, 4085, 4085, 4331, 4085, 4085,
1815      4085, 4085, 4085, 4331, 4331, 4331, 4331, 4331, 4331, 4331,
1816      4331, 4331, 4085, 4332, 4085, 4332, 4085, 4085, 4085, 4085,
1817      4333, 4085, 4333, 4334, 4334, 4334, 4085, 4085, 4085, 4334,
1818      4334, 4334, 4085, 4335, 4085, 4335, 4085, 4336, 4085, 4085,
1819
1820      4085, 4085, 4085, 4085, 4085, 4337, 4085, 4337, 4338, 4085,
1821      4339, 4085, 4339, 4340, 4085, 4085, 4085, 4340, 4340, 4340,
1822      4085, 4341, 4085, 4341, 4342, 4085, 4085, 4085, 4085, 4343,
1823      4085, 4343, 4085, 4085, 4085, 4344, 4085, 4345, 4085, 4345,
1824      4346, 4346, 4085, 4347, 4085, 4347, 4348, 4348, 4348, 4348,
1825      4085, 4085, 4085, 4085, 4085, 4348, 4348, 4085, 4349, 4085,
1826      4349, 4085, 4350, 4085, 4351, 4085, 4351, 4085, 4085, 4085,
1827      4085, 4352, 4352, 4352, 4352, 4352, 4085, 4353, 4085, 4353,
1828      4085, 4085, 4085, 4354, 4085, 4355, 4085, 4355, 4356, 4085,
1829      4085, 4085, 4085, 4085, 4356, 4085, 4085, 4356, 4356, 4356,
1830
1831      4085, 4357, 4085, 4357, 4085, 4085, 4085, 4085, 4358, 4085,
1832      4359, 4085, 4359, 4360, 4085, 4085, 4085, 4085, 4361, 4085,
1833      4361, 4362, 4362, 4085, 4085, 4085, 4362, 4085, 4363, 4085,
1834      4363, 4364, 4085, 4085, 4085, 4364, 4364, 4085, 4365, 4085,
1835      4365, 4085, 4366, 4085, 4085, 4085, 4366, 4085, 4085, 4367,
1836      4085, 4367, 4368, 4368, 4368, 4085, 4369, 4085, 4369, 4085,
1837      4085, 4085, 4370, 4085, 4371, 4085, 4371, 4085, 4085, 4372,
1838      4372, 4085, 4085, 4372, 4085, 4373, 4085, 4373, 4374, 4375,
1839      4085, 4085, 4085, 4085, 4376, 4085, 4085, 4085, 4085, 4085,
1840      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
1841
1842      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
1843      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
1844      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
1845      4085, 4085, 4377, 4377, 4085, 4085, 4085, 4377, 4378, 4085,
1846      4379, 4085, 4085, 4379, 4379, 4379, 4380, 4085, 4381, 4382,
1847      4383, 4383, 4384, 4085, 4085, 4085, 4385, 4385, 4085, 4085,
1848      4085, 4386, 4085, 4085, 4085, 4085, 4085, 4085, 4387, 4085,
1849      4085, 4085, 4388, 4388, 4085, 4085, 4085, 4389, 4085, 4085,
1850      4085, 4390, 4390, 4390, 4390, 4391, 4392, 4392, 4392, 4085,
1851      4085, 4085, 4085, 4085, 4392, 4392, 4392, 4392, 4392, 4392,
1852
1853      4392, 4392, 4392, 4392, 4393, 4394, 4395, 4395, 4085, 4085,
1854      4395, 4395, 4395, 4396, 4085, 4085, 4085, 4397, 4085, 4085,
1855      4398, 4399, 4399, 4399, 4399, 4400, 4401, 4402, 4403, 4404,
1856      4085, 4085, 4405, 4406, 4407, 4407, 4407, 4407, 4085, 4085,
1857      4085, 4407, 4407, 4408, 4085, 4409, 4410, 4085, 4085, 4085,
1858      4085, 4411, 4085, 4085, 4411, 4411, 4411, 4412, 4413, 4414,
1859      4415, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4415,
1860      4085, 4085, 4415, 4416, 4085, 4085, 4085, 4085, 4085, 4085,
1861      4417, 4418, 4419, 4420, 4421, 4421, 4421, 4422, 4423, 4423,
1862      4085, 4085, 4424, 4085, 4085, 4085, 4425, 4085, 4426, 4427,
1863
1864      4085, 4085, 4427, 4428, 4429, 4430, 4085, 4085, 4085, 4431,
1865      4431, 4085, 4085, 4085, 4431, 4432, 4433, 4434, 4434, 4085,
1866      4434, 4085, 4085, 4435, 4085, 4085, 4085, 4085, 4085, 4085,
1867      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
1868      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
1869      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
1870      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4436,
1871      4436, 4436, 4437, 4085, 4438, 4085, 4085, 4085, 4438, 4438,
1872      4438, 4439, 4085, 4085, 4085, 4440, 4441, 4441, 4442, 4443,
1873      4443, 4444, 4445, 4446, 4446, 4447, 4448, 4448, 4085, 4085,
1874
1875      4448, 4449, 4085, 4085, 4450, 4450, 4085, 4085, 4085, 4450,
1876      4450, 4450, 4450, 4450, 4450, 4085, 4085, 4450, 4450, 4450,
1877      4451, 4452, 4453, 4453, 4085, 4085, 4085, 4453, 4085, 4085,
1878      4453, 4454, 4085, 4085, 4085, 4085, 4455, 4085, 4085, 4085,
1879      4456, 4457, 4457, 4457, 4457, 4458, 4459, 4460, 4085, 4085,
1880      4461, 4085, 4085, 4085, 4462, 4463, 4464, 4085, 4085, 4464,
1881      4464, 4085, 4085, 4464, 4465, 4085, 4466, 4467, 4085, 4085,
1882      4085, 4085, 4468, 4085, 4085, 4085, 4468, 4468, 4468, 4469,
1883      4085, 4085, 4470, 4471, 4085, 4085, 4085, 4471, 4085, 4085,
1884      4085, 4471, 4472, 4473, 4474, 4475, 4476, 4477, 4477, 4477,
1885
1886      4478, 4479, 4085, 4085, 4085, 4085, 4085, 4480, 4085, 4085,
1887      4085, 4085, 4481, 4085, 4482, 4483, 4085, 4085, 4085, 4085,
1888      4085, 4484, 4485, 4486, 4487, 4487, 4487, 4488, 4489, 4490,
1889      4490, 4085, 4491, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
1890      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
1891      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
1892      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
1893      4085, 4085, 4085, 4085, 4492, 4493, 4085, 4494, 4494, 4494,
1894      4494, 4495, 4085, 4085, 4085, 4085, 4496, 4497, 4497, 4498,
1895      4085, 4085, 4085, 4085, 4499, 4500, 4085, 4085, 4085, 4085,
1896
1897      4501, 4085, 4085, 4502, 4085, 4085, 4085, 4085, 4085, 4503,
1898      4085, 4085, 4085, 4085, 4085, 4504, 4504, 4504, 4085, 4085,
1899      4504, 4504, 4504, 4085, 4085, 4085, 4085, 4085, 4504, 4504,
1900      4505, 4506, 4507, 4507, 4085, 4085, 4085, 4085, 4085, 4507,
1901      4085, 4085, 4085, 4508, 4509, 4510, 4510, 4510, 4510, 4085,
1902      4085, 4511, 4512, 4085, 4085, 4085, 4513, 4514, 4515, 4516,
1903      4085, 4085, 4085, 4085, 4085, 4516, 4085, 4085, 4085, 4516,
1904      4085, 4085, 4085, 4517, 4518, 4085, 4085, 4085, 4085, 4519,
1905      4519, 4519, 4519, 4520, 4085, 4085, 4085, 4085, 4085, 4521,
1906      4521, 4521, 4522, 4523, 4524, 4525, 4526, 4085, 4085, 4527,
1907
1908      4085, 4085, 4528, 4529, 4085, 4085, 4085, 4530, 4085, 4531,
1909      4085, 4532, 4533, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
1910      4085, 4085, 4085, 4085, 4534, 4535, 4085, 4085, 4085, 4085,
1911      4085, 4085, 4536, 4537, 4538, 4539, 4539, 4085, 4085, 4085,
1912      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
1913      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
1914      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
1915      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4540, 4541,
1916      4085, 4542, 4542, 4542, 4542, 4085, 4085, 4085, 4543, 4544,
1917      4085, 4085, 4545, 4085, 4085, 4085, 4085, 4085, 4085, 4546,
1918
1919      4547, 4085, 4085, 4085, 4085, 4085, 4085, 4548, 4085, 4085,
1920      4085, 4085, 4085, 4085, 4085, 4085, 4549, 4085, 4085, 4085,
1921      4550, 4550, 4550, 4085, 4085, 4085, 4085, 4085, 4550, 4550,
1922      4085, 4085, 4085, 4550, 4550, 4551, 4552, 4553, 4553, 4085,
1923      4085, 4085, 4553, 4554, 4555, 4556, 4085, 4085, 4556, 4556,
1924      4556, 4557, 4558, 4559, 4560, 4085, 4085, 4561, 4085, 4085,
1925      4085, 4561, 4561, 4085, 4085, 4085, 4562, 4085, 4085, 4085,
1926      4563, 4563, 4563, 4563, 4564, 4565, 4085, 4085, 4565, 4566,
1927      4567, 4085, 4085, 4568, 4569, 4085, 4085, 4085, 4085, 4085,
1928      4085, 4085, 4085, 4570, 4085, 4085, 4571, 4085, 4572, 4085,
1929
1930      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
1931      4085, 4085, 4085, 4085, 4573, 4085, 4085, 4085, 4085, 4085,
1932      4085, 4085, 4085, 4574, 4575, 4576, 4577, 4577, 4085, 4085,
1933      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
1934      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
1935      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
1936      4085, 4085, 4578, 4579, 4085, 4085, 4085, 4580, 4580, 4580,
1937      4085, 4581, 4582, 4085, 4085, 4085, 4583, 4584, 4585, 4586,
1938      4085, 4085, 4085, 4587, 4588, 4588, 4588, 4085, 4085, 4085,
1939      4588, 4588, 4588, 4085, 4085, 4589, 4085, 4085, 4590, 4590,
1940
1941      4590, 4591, 4592, 4593, 4085, 4085, 4085, 4593, 4593, 4593,
1942      4594, 4595, 4596, 4597, 4598, 4598, 4598, 4085, 4085, 4085,
1943      4085, 4599, 4085, 4085, 4085, 4600, 4600, 4600, 4601, 4602,
1944      4085, 4085, 4085, 4602, 4085, 4085, 4603, 4604, 4085, 4085,
1945      4085, 4085, 4085, 4605, 4085, 4085, 4085, 4606, 4085, 4607,
1946      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
1947      4085, 4085, 4085, 4085, 4608, 4085, 4085, 4085, 4609, 4610,
1948      4611, 4612, 4612, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
1949      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
1950      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
1951
1952      4085, 4085, 4085, 4613, 4085, 4085, 4085, 4085, 4085, 4085,
1953      4085, 4085, 4614, 4614, 4085, 4615, 4085, 4085, 4616, 4617,
1954      4618, 4619, 4085, 4085, 4620, 4620, 4620, 4620, 4085, 4085,
1955      4620, 4620, 4085, 4085, 4085, 4085, 4085, 4621, 4621, 4621,
1956      4622, 4085, 4085, 4085, 4085, 4623, 4623, 4623, 4623, 4085,
1957      4085, 4624, 4625, 4085, 4085, 4626, 4626, 4626, 4085, 4627,
1958      4085, 4085, 4085, 4085, 4085, 4628, 4628, 4085, 4085, 4085,
1959      4085, 4629, 4630, 4631, 4085, 4085, 4606, 4085, 4607, 4085,
1960      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4608,
1961      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
1962
1963      4609, 4610, 4611, 4612, 4612, 4085, 4085, 4085, 4085, 4085,
1964      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
1965      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
1966      4085, 4085, 4613, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
1967      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4617, 4618, 4619,
1968      4620, 4620, 4620, 4620, 4085, 4085, 4085, 4620, 4620, 4085,
1969      4085, 4085, 4085, 4085, 4085, 4621, 4621, 4085, 4085, 4622,
1970      4085, 4085, 4085, 4623, 4623, 4623, 4085, 4085, 4085, 4085,
1971      4085, 4085, 4085, 4625, 4085, 4085, 4085, 4626, 4626, 4085,
1972      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
1973
1974      4085, 4085, 4085, 4629, 4630, 4631, 4606, 4085, 4607, 4085,
1975      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4608,
1976      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
1977      4085, 4085, 4609, 4610, 4611, 4612, 4612, 4085, 4085, 4085,
1978      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
1979      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
1980      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4617, 4618,
1981      4619, 4620, 4620, 4085, 4085, 4620, 4620, 4620, 4085, 4085,
1982      4085, 4085, 4085, 4085, 4085, 4085, 4621, 4085, 4085, 4085,
1983      4085, 4085, 4085, 4085, 4623, 4623, 4623, 4085, 4085, 4085,
1984
1985      4085, 4085, 4085, 4085, 4085, 4085, 4625, 4626, 4085, 4085,
1986      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
1987      4085, 4085, 4085, 4085, 4085, 4629, 4085, 4085, 4085, 4085,
1988      4606, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
1989      4085, 4085, 4085, 4085, 4608, 4085, 4085, 4085, 4085, 4085,
1990      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
1991      4085, 4611, 4612, 4612, 4085, 4085, 4085, 4085, 4085, 4085,
1992      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
1993      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
1994      4085, 4085, 4085, 4617, 4618, 4619, 4620, 4085, 4085, 4085,
1995
1996      4085, 4085, 4085, 4085, 4620, 4620, 4085, 4085, 4085, 4085,
1997      4085, 4085, 4085, 4085, 4621, 4085, 4085, 4085, 4623, 4085,
1998      4085, 4623, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
1999      4626, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2000      4085, 4085, 4085, 4085, 4085, 4085, 4629, 4085, 4085, 4085,
2001      4085, 4085, 4085, 4606, 4085, 4085, 4085, 4085, 4085, 4085,
2002      4085, 4085, 4085, 4085, 4085, 4608, 4085, 4085, 4085, 4085,
2003      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2004      4085, 4611, 4612, 4612, 4612, 4085, 4085, 4085, 4085, 4085,
2005      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2006
2007      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2008      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4617, 4085, 4085,
2009      4619, 4620, 4085, 4085, 4085, 4085, 4085, 4085, 4620, 4620,
2010      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4621, 4623,
2011      4085, 4085, 4085, 4623, 4085, 4085, 4085, 4085, 4085, 4085,
2012      4626, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2013      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2014      4085, 4085, 4085, 4606, 4085, 4085, 4085, 4085, 4085, 4085,
2015      4085, 4085, 4608, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2016      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2017
2018      4085, 4085, 4085, 4611, 4612, 4612, 4612, 4632, 4633, 4085,
2019      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2020      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2021      4085, 4085, 4085, 4085, 4085, 4617, 4619, 4620, 4085, 4085,
2022      4620, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4621,
2023      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4626, 4085,
2024      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2025      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2026      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2027      4608, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2028
2029      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4611, 4612, 4634,
2030      4635, 4632, 4633, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2031      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2032      4085, 4085, 4085, 4085, 4085, 4619, 4620, 4085, 4085, 4085,
2033      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4621, 4085,
2034      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4626,
2035      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2036      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2037      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2038      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2039
2040      4085, 4085, 4611, 4634, 4612, 4636, 4635, 4637, 4612, 4085,
2041      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2042      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4619,
2043      4620, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2044      4085, 4085, 4621, 4085, 4085, 4085, 4085, 4626, 4085, 4085,
2045      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2046      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2047      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4611, 4636,
2048      4085, 4637, 4612, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2049      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2050
2051      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2052      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2053      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2054      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4611,
2055      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2056      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2057      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2058      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2059      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2060      4085, 4085, 4085, 4085, 4611, 4085, 4085, 4085, 4085, 4085,
2061
2062      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2063      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2064      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2065      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2066      4611, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2067      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2068      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2069      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4611,
2070      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2071      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2072
2073      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2074      4085, 4085, 4085, 4085, 4085, 4085, 4611, 4085, 4085, 4085,
2075      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2076      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2077      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4611,
2078      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2079      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2080      4085, 4085, 4085, 4085, 4611, 4085, 4085, 4085, 4085, 4085,
2081      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2082      4085, 4611, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2083
2084      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4611, 4611,
2085      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2086      4611, 4611, 4085, 4085, 4085, 4085, 4611, 4611, 4611, 4611,
2087      4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611,
2088      4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611,
2089      4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611,
2090      4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611,
2091      4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611,
2092      4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611,
2093      4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611,
2094
2095      4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611,
2096      4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611,
2097      4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611,
2098      4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611,
2099      4611, 4611, 4611, 4611, 4611, 4085, 4611, 4611, 4611, 4611,
2100      4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611,
2101      4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611,
2102      4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611,
2103      4611, 4611, 4611, 4085,    0, 4085, 4085, 4085, 4085, 4085,
2104      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2105
2106      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2107      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2108      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2109      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2110      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2111      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2112      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2113      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2114      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2115      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2116
2117      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2118      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2119      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2120      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2121      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2122      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2123      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2124      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2125      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2126      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2127
2128      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2129      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2130      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2131      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2132      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2133      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2134      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2135      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2136      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2137      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2138
2139      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2140      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2141      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2142      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2143      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2144      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2145      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2146      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2147      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2148      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2149
2150      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2151      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2152      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2153      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2154      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2155      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2156      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2157      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2158      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2159      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2160
2161      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2162      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2163      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
2164      4085, 4085, 4085, 4085, 4085, 4085, 4085
2165     } ;
2166
2167 static const flex_int16_t yy_nxt[14133] =
2168     {   0,
2169      4085,  326,  327,  326,  326,  327,  326,  326,  327,  326,
2170       326,  327,  326,  331,  327,  331,  337,  328,  334,  337,
2171       328,  334, 1046,  329, 4085,  335,  329,  845,  335,  332,
2172       331,  327,  331,  773,  338,  340,  341,  338,  340,  341,
2173       342,  343,  791,  342,  343,  773,  332,  347,  348,  774,
2174       344,  340,  341,  344,  345,  776,  342,  340,  341, 1289,
2175       345,  775,  342,  347,  348,  846,  344,  359,  327,  359,
2176      1838,  775,  344,  359,  327,  359,  930,  359,  327,  359,
2177       359,  327,  359,  360,  327,  327,  327,  791,  931,  360,
2178       819,  776,  349,  361,  803,  819,  361,  772,  772,  772,
2179
2180       362,  772,  772,  772,  772,  772,  772,  775,  349,  350,
2181       351,  327,  351,  350,  350,  350,  350,  350,  350,  350,
2182       352,  350,  350,  350, 1842,  350,  354,  350,  355,  350,
2183       327,  327,  327,  359,  327,  359,  359,  327,  359,  894,
2184       819,  359,  327,  359,  803,  881,  362,  834,  776,  360,
2185       882, 1843,  360,  895,  835,  350,  350,  363,  359,  327,
2186       359,  772,  772,  772,  775,  836,  356,  772,  772,  772,
2187       772,  772,  772, 1845,  363,  357,  350,  351,  327,  351,
2188       350,  350,  350,  350,  350,  350,  350,  352,  350,  350,
2189       350,  886,  350,  354,  350,  355,  350,  327,  327,  327,
2190
2191       327,  327,  327,  359,  327,  359,  340,  341,  359,  327,
2192       359,  342,  887,  364,  837,  836,  364,  795,  819,  365,
2193      1846,  727,  350,  350,  365,  359,  327,  359,  359,  327,
2194       359, 1848,  813,  356,  327,  327,  327,  327,  327,  327,
2195      1052,  366,  357, 1053,  366,  359,  327,  359,  837, 1849,
2196       367,  728,  819,  367,  359,  327,  359,  327,  327,  327,
2197      1851,  363,  327,  327,  327,  359,  327,  359,  819,  807,
2198       363, 1852,  776,  368,  359,  327,  359, 1177,  368,  811,
2199      1178,  366,  359,  327,  359,  359,  327,  359,  775,  791,
2200       366,  327,  327,  327,  327,  327,  327, 1855,  369,  792,
2201
2202       806,  369,  359,  327,  359, 1856,  913,  370,  976,  776,
2203       370,  359,  327,  359,  327,  327,  327, 1341,  371,  327,
2204       327,  327,  359,  327,  359,  775, 1857,  371,  824,  825,
2205       372,  359,  327,  359, 1342,  372,  845, 1341,  369,  359,
2206       327,  359,  359,  327,  359,  826,  846,  369,  772,  772,
2207       772, 1017,  804,  816, 1497,  373,  914, 1859,  373,  374,
2208       375,  327,  375,  374,  374,  374,  374,  374,  374,  374,
2209       376,  374,  374,  374,  776,  374,  378,  374,  379,  374,
2210       384,  327,  384,  384,  327,  384,  327,  327,  327,  819,
2211       775,  327,  327,  327,  911, 1642,  385,  776,  912,  385,
2212
2213      1861, 1018,  386,  791,  850,  374,  374,  386,  384,  327,
2214       384,  380, 1342,  775,  381,  772,  772,  772,  772,  772,
2215       772,  772,  772,  772,  385, 1870,  382,  374,  375,  327,
2216       375,  374,  374,  374,  374,  374,  374,  374,  376,  374,
2217       374,  374,  829,  374,  378,  374,  379,  374,  384,  327,
2218       384,  384,  327,  384,  384,  327,  384, 1068,  801,  400,
2219       327,  400,  955, 1873,  385,  776,  956,  387, 1069, 1066,
2220       387, 1070,  856,  374,  374,  401,  400,  327,  400,  380,
2221       862,  775,  381,  772,  772,  772,  772,  772,  772,  772,
2222       772,  772,  401, 1067,  382,  388,  389,  327,  389,  388,
2223
2224       388,  388,  388,  388,  388,  388,  390,  388,  388,  388,
2225       776,  388,  392,  388,  393,  388,  327,  327,  327,  327,
2226       327,  327,  400,  327,  400,  867,  775,  400,  327,  400,
2227      1548,  776,  402,  819,  776,  402, 1549,  776,  401, 1881,
2228       873,  388,  388,  401,  400,  327,  400,  775, 1703,  394,
2229       775,  395,  862,  775,  396,  772,  772,  772,  397, 1883,
2230       403, 1704,  398,  388,  389,  327,  389,  388,  388,  388,
2231       388,  388,  388,  388,  390,  388,  388,  388,  819,  388,
2232       392,  388,  393,  388,  400,  327,  400,  412,  327,  412,
2233       412,  327,  412,  819,  890,  424,  327,  424, 1885,  776,
2234
2235       403,  837,  891,  413, 1078,  819,  413, 1078,  892,  388,
2236       388,  425,  424,  327,  424,  775, 1703,  394, 1079,  395,
2237       867, 1093,  396,  772,  772,  772,  397,  924,  425, 1710,
2238       398,  404,  405,  327,  405,  404,  404,  404,  404,  404,
2239       404,  404,  406,  404,  404,  404,  963,  404,  408,  404,
2240       409,  404,  436,  327,  436,  436,  327,  436,  327,  327,
2241       327,  968,  896,  327,  327,  327,  807, 1886,  437,  837,
2242       897,  437, 1887,  819,  386,  898,  811,  404,  404,  386,
2243       436,  327,  436,  436,  327,  436,  772,  772,  772,  772,
2244       772,  772,  772,  772,  772, 1889,  437, 1890, 1894,  437,
2245
2246      1898,  410,  404,  405,  327,  405,  404,  404,  404,  404,
2247       404,  404,  404,  406,  404,  404,  404,  776,  404,  408,
2248       404,  409,  404,  436,  327,  436,  436,  327,  436,  448,
2249       327,  448, 1087,  775,  448,  327,  448,  996, 1900,  438,
2250      1903, 1905,  438, 1088,  997,  449, 1070,  776,  404,  404,
2251       449,  327,  327,  327,  327,  327,  327,  772,  772,  772,
2252       772,  772,  772,  775, 1042,  873, 1910,  386,  781, 1911,
2253       386, 1043,  410,  414,  415,  327,  415,  414,  414,  414,
2254       414,  414,  414,  414,  416,  414,  414,  414,  776,  414,
2255       418,  414,  419,  414,  448,  327,  448,  448,  327,  448,
2256
2257       448,  327,  448, 1915,  775,  448,  327,  448, 1085, 1310,
2258       449,  782,  900,  449,  837,  776,  450,  783,  819,  414,
2259       414,  450,  784,  420,  772,  772,  772,  785, 1922, 1917,
2260       421,  775, 1086,  422,  414,  415,  327,  415,  414,  414,
2261       414,  414,  414,  414,  414,  416,  414,  414,  414,  990,
2262       414,  418,  414,  419,  414,  461,  327,  461,  461,  327,
2263       461,  327,  327,  327,  991,  819,  327,  327,  327,  776,
2264      1923,  462,  904,  913,  462, 1046,  883,  386,  924, 1078,
2265       414,  414,  386,  932,  420,  775,  772,  772,  772, 1924,
2266      1047,  421, 1925, 1103,  422,  426,  427,  327,  427,  426,
2267
2268       426,  426,  426,  426,  426,  426,  428,  426,  426,  426,
2269      1085,  426,  430,  426,  431,  426,  461,  327,  461,  461,
2270       327,  461,  461,  327,  461,  819,  819,  461,  327,  461,
2271      1926,  819,  462,  776, 1098,  462,  819, 1066,  463, 1927,
2272       920,  426,  426,  463,  477,  327,  477,  432, 1928,  775,
2273       433,  772,  772,  772,  772,  772,  772,  772,  772,  772,
2274       478, 1086,  434,  426,  427,  327,  427,  426,  426,  426,
2275       426,  426,  426,  426,  428,  426,  426,  426,  776,  426,
2276       430,  426,  431,  426,  477,  327,  477,  494,  327,  494,
2277       494,  327,  494, 1068,  775,  327,  327,  327, 1310, 1929,
2278
2279       478,  776, 1679,  495, 1088, 1066,  495, 1070,  962,  426,
2280       426,  362,  327,  327,  327,  432,  976,  775,  433,  772,
2281       772,  772,  772,  772,  772,  772,  772,  772,  362, 1098,
2282       434,  439,  440,  327,  440,  439,  439,  439,  439,  439,
2283       439,  439,  441,  439,  439,  439,  776,  439,  443,  439,
2284       444,  439,  494,  327,  494,  494,  327,  494,  494,  327,
2285       494,  819,  775,  494,  327,  494, 1930, 1931,  495,  819,
2286      1932,  495, 1935, 1085,  496, 1938,  998,  439,  439,  496,
2287       505,  327,  505,  445,  772,  772,  772,  772,  772,  772,
2288       772,  772,  772,  772,  772,  772,  506, 1102,  446,  439,
2289
2290       440,  327,  440,  439,  439,  439,  439,  439,  439,  439,
2291       441,  439,  439,  439,  776,  439,  443,  439,  444,  439,
2292       505,  327,  505,  327,  327,  327,  327,  327,  327,  819,
2293       775,  505,  327,  505, 1939, 1941,  506, 1942, 1944,  362,
2294      1945, 1066,  362, 1946, 1010,  439,  439,  506,  505,  327,
2295       505,  445,  772,  772,  772,  772,  772,  772,  772,  772,
2296       772,  772,  772,  772,  506, 1102,  446,  451,  452,  327,
2297       452,  451,  451,  451,  451,  451,  451,  451,  453,  451,
2298       451,  451,  776,  451,  455,  451,  456,  451,  505,  327,
2299       505,  505,  327,  505,  520,  327,  520,  819,  775,  520,
2300
2301       327,  520, 1947, 1951,  507,  776, 1078,  507, 1952, 1953,
2302       521, 1954,  937,  451,  451,  521,  327,  327,  327,  457,
2303      1104,  775,  458,  772,  772,  772,  772,  772,  772,  772,
2304       772,  772,  522, 1955,  459,  451,  452,  327,  452,  451,
2305       451,  451,  451,  451,  451,  451,  453,  451,  451,  451,
2306       776,  451,  455,  451,  456,  451,  327,  327,  327,  520,
2307       327,  520,  520,  327,  520, 1068,  775,  520,  327,  520,
2308      1958, 1961,  522,  776, 1236,  521, 1069, 1962,  521, 1234,
2309       942,  451,  451,  523,  520,  327,  520,  457, 1093,  775,
2310       458,  772,  772,  772,  772,  772,  772,  772,  772,  772,
2311
2312       523, 1963,  459,  464,  465,  327,  465,  464,  464,  464,
2313       464,  464,  464,  464,  466,  464,  464,  464,  776,  464,
2314       468,  464,  469,  464,  534,  327,  534,  534,  327,  534,
2315       544,  327,  544, 1017,  775,  544,  327,  544,  776,  776,
2316       535,  776,  776,  535, 1966,  947,  545, 1967,  957,  464,
2317       464,  545,  776,  470,  775,  775, 1037,  775,  775,  981,
2318       471, 1968, 1044,  472,  772,  772,  772,  473,  775,  474,
2319       475,  464,  465,  327,  465,  464,  464,  464,  464,  464,
2320       464,  464,  466,  464,  464,  464,  819,  464,  468,  464,
2321       469,  464,  327,  327,  327,  327,  327,  327,  544,  327,
2322
2323       544, 1969,  958,  544,  327,  544, 1970,  967,  546,  819,
2324       776,  546, 1971,  776,  545,  819,  962,  464,  464,  545,
2325       819,  470,  966,  772,  772,  772,  775, 1037,  471,  775,
2326      1972,  472,  772,  772,  772,  473, 1975,  474,  475,  479,
2327       480,  327,  480,  479,  479,  479,  479,  479,  479,  479,
2328       481,  479,  479,  479,  963,  479,  483,  479,  484,  479,
2329       544,  327,  544,  544,  327,  544,  559,  327,  559,  968,
2330       986,  559,  327,  559,  987, 1979,  547, 1980,  988,  547,
2331       819,  776,  560, 1064,  803,  479,  479,  560,  992,  485,
2332       486,  772,  772,  772,  998, 1981,  487,  775, 1065,  488,
2333
2334       772,  772,  772,  489, 1983,  490,  491,  492,  479,  480,
2335       327,  480,  479,  479,  479,  479,  479,  479,  479,  481,
2336       479,  479,  479,  776,  479,  483,  479,  484,  479,  327,
2337       327,  327,  327,  327,  327,  559,  327,  559, 1064,  775,
2338       559,  327,  559,  837, 1987,  362, 1988,  819,  362, 1233,
2339       776,  560, 1990, 1119,  479,  479,  560, 1003,  485,  486,
2340       772,  772,  772, 1991, 1065,  487,  775, 1994,  488,  772,
2341       772,  772,  489, 1995,  490,  491,  492,  497,  498,  327,
2342       498,  497,  497,  497,  497,  497,  497,  497,  499,  497,
2343       497,  497,  776,  497,  501,  497,  502,  497,  559,  327,
2344
2345       559,  559,  327,  559,  571,  327,  571, 1087,  775,  571,
2346       327,  571, 1997, 1998,  561, 2001,  776,  561, 1088, 2023,
2347       572, 1234, 2024,  497,  497,  572,  772,  772,  772,  772,
2348       772,  772,  775, 2028,  503,  497,  498,  327,  498,  497,
2349       497,  497,  497,  497,  497,  497,  499,  497,  497,  497,
2350       776,  497,  501,  497,  502,  497,  582,  327,  582,  582,
2351       327,  582,  593,  327,  593, 1803,  775,  593,  327,  593,
2352      2031, 2033,  583, 2042,  776,  583, 2043, 1804,  594, 2044,
2353      2045,  497,  497,  594,  772,  772,  772,  772,  772,  772,
2354       775, 2047,  503,  508,  509,  327,  509,  508,  508,  508,
2355
2356       508,  508,  508,  508,  510,  508,  508,  508,  776,  508,
2357       512,  508,  513,  508,  608,  327,  608,  608,  327,  608,
2358       327,  327,  327, 2055,  775,  327,  327,  327, 2057, 2060,
2359       609, 2061,  776,  609, 2064, 2066,  610, 2067, 2069,  508,
2360       508,  610,  514, 1044,  515,  772,  772,  772,  775, 2070,
2361       516,  772,  772,  772,  772,  772,  772,  517, 2071, 2072,
2362       518,  508,  509,  327,  509,  508,  508,  508,  508,  508,
2363       508,  508,  510,  508,  508,  508, 2073,  508,  512,  508,
2364       513,  508,  619,  327,  619,  619,  327,  619,  619,  327,
2365       619, 2077,  837,  619,  327,  619,  819, 2078,  620, 2079,
2366
2367      1310,  620, 2084, 2088,  621, 2092, 2094,  508,  508,  621,
2368       514, 2096,  515,  772,  772,  772, 1312, 2098,  516,  772,
2369       772,  772,  772,  772,  772,  517, 2099, 2100,  518,  524,
2370       525,  327,  525,  524,  524,  524,  524,  524,  524,  524,
2371       526,  524,  524,  524, 2102,  524,  528,  524,  529,  524,
2372       327,  327,  327,  327,  327,  327,  619,  327,  619, 2109,
2373      1850,  619,  327,  619, 2113, 2114,  622, 1024, 2116,  622,
2374      2123, 2125,  620, 1710, 1025,  524,  524,  620,  619,  327,
2375       619,  530, 2126,  775, 2127,  806,  531,  772,  772,  772,
2376       772,  772,  772, 1920,  623,  772,  772,  772,  532,  524,
2377
2378       525,  327,  525,  524,  524,  524,  524,  524,  524,  524,
2379       526,  524,  524,  524,  825,  524,  528,  524,  529,  524,
2380       619,  327,  619,  327,  327,  327,  327,  327,  327, 1310,
2381       826,  619,  327,  619, 2132, 2133,  623,  776,  816,  546,
2382      2134, 2136,  546, 2137, 1032,  524,  524,  621,  619,  327,
2383       619,  530, 2138,  775, 2129, 2139,  531,  772,  772,  772,
2384       772,  772,  772, 2140,  621,  772,  772,  772,  532,  536,
2385       537,  327,  537,  536,  536,  536,  536,  536,  536,  536,
2386       538,  536,  536,  536, 2141,  536,  540,  536,  541,  536,
2387       327,  327,  327,  327,  327,  327,  619,  327,  619, 2142,
2388
2389      1037,  619,  327,  619, 2143, 2144,  624, 1075, 2145,  624,
2390       792, 2147,  623, 2148, 1076,  536,  536,  623, 2149, 2152,
2391      1077, 2155, 2156,  542,  536,  537,  327,  537,  536,  536,
2392       536,  536,  536,  536,  536,  538,  536,  536,  536,  824,
2393       536,  540,  536,  541,  536,  619,  327,  619,  619,  327,
2394       619,  638,  327,  638, 2157, 1075,  638,  327,  638, 1452,
2395      2158,  625, 1076,  804,  625, 2159, 2160,  639, 1083, 1453,
2396       536,  536,  639, 1050, 1050, 1050, 1454, 2161,  542,  548,
2397       549,  327,  549,  548,  548,  548,  548,  548,  548,  548,
2398       550,  548,  548,  548, 2162,  548,  552,  548,  553,  548,
2399
2400       327,  327,  327,  327,  327,  327,  638,  327,  638, 2165,
2401      1092,  638,  327,  638, 2168, 2169,  402, 1076, 2170,  402,
2402      2177, 1092,  639, 1077, 1075,  548,  548,  639, 1076,  554,
2403      2178, 1076, 2179, 1051, 1083, 2180,  555, 1235, 2181,  556,
2404      1050, 1050, 1050, 2183, 1314, 2188,  557,  548,  549,  327,
2405       549,  548,  548,  548,  548,  548,  548,  548,  550,  548,
2406       548,  548, 2189,  548,  552,  548,  553,  548,  638,  327,
2407       638,  638,  327,  638,  650,  327,  650, 2233, 1092,  650,
2408       327,  650, 2234, 2240,  640, 1076, 2246,  640, 2247, 2248,
2409       651, 1235, 2249,  548,  548,  651, 2252,  554, 1321, 1321,
2410
2411      1321, 2258, 1322, 2260,  555, 1323, 2266,  556, 1329, 1329,
2412      1329, 1352, 1352, 1352,  557,  562,  563,  327,  563,  562,
2413       562,  562,  562,  562,  562,  562,  564,  562,  562,  562,
2414      2270,  562,  566,  562,  567,  562,  664,  327,  664,  664,
2415       327,  664,  675,  327,  675, 2273, 2274,  675,  327,  675,
2416      2277, 2278,  665, 2279, 2280,  665, 2281, 2282,  676, 2283,
2417      2290,  562,  562,  676, 1329, 1329, 1329,  568, 1933, 1933,
2418      1933, 2291,  569,  562,  563,  327,  563,  562,  562,  562,
2419       562,  562,  562,  562,  564,  562,  562,  562, 2292,  562,
2420       566,  562,  567,  562,  327,  327,  327,  327,  327,  327,
2421
2422       675,  327,  675, 2294, 2296,  675,  327,  675, 2304, 2309,
2423       386, 2310, 2311,  386, 2313, 1934,  676, 2326, 1920,  562,
2424       562,  676, 1352, 1352, 1352,  568, 1352, 1352, 1352, 1330,
2425       569,  573,  574,  327,  574,  573,  573,  573,  573,  573,
2426       573,  573,  575,  573,  573,  573, 2340,  573,  577,  573,
2427       578,  573,  675,  327,  675,  675,  327,  675,  687,  327,
2428       687, 2336, 2341,  687,  327,  687, 1920, 2342,  677, 1310,
2429      2346,  677, 2347, 2343,  688, 2349, 2350,  573,  573,  688,
2430       700,  327,  700,  700,  327,  700, 2335, 1353,  579, 2344,
2431      2351, 1330, 1329, 1329, 1329, 2352,  701, 2345, 2353,  701,
2432
2433      2337,  580,  573,  574,  327,  574,  573,  573,  573,  573,
2434       573,  573,  573,  575,  573,  573,  573, 2354,  573,  577,
2435       573,  578,  573,  327,  327,  327,  327,  327,  327,  700,
2436       327,  700, 2357, 2358,  700,  327,  700, 2359, 2360,  362,
2437      2361, 2365,  362, 2366, 2367,  701, 2368, 2370,  573,  573,
2438       701,  700,  327,  700,  700,  327,  700, 1353, 2371,  579,
2439      2372, 1400, 1400, 1400, 2379, 1401, 2381,  702, 1402, 2382,
2440       702, 2383,  580,  584,  585,  327,  585,  584,  584,  584,
2441       584,  584,  584,  584,  586,  584,  584,  584, 2362,  584,
2442       588,  584,  589,  584,  714,  327,  714,  714,  327,  714,
2443
2444       327,  327,  327, 2384, 2363,  327,  327,  327, 2385, 2388,
2445       715, 2390, 2364,  715, 2421, 2343,  716, 2422, 2423,  584,
2446       584,  716,  714,  327,  714, 1436, 1436, 1436, 2429, 1437,
2447      2430, 2363, 1438, 2434, 2435,  590, 2438, 2439,  715, 2345,
2448       591,  584,  585,  327,  585,  584,  584,  584,  584,  584,
2449       584,  584,  586,  584,  584,  584, 2362,  584,  588,  584,
2450       589,  584,  714,  327,  714,  714,  327,  714,  714,  327,
2451       714, 2443, 2344,  739,  327,  739, 2446, 2450,  715, 2451,
2452      2364,  717, 2452, 2455,  717,  340,  341,  584,  584,  740,
2453       342,  739,  327,  739, 1439, 1439, 1439, 2458, 1440, 2462,
2454
2455       727, 1441, 2463,  590, 1936, 1936, 1936,  740,  591,  595,
2456       596,  327,  596,  595,  595,  595,  595,  595,  595,  595,
2457       597,  595,  595,  595, 2464,  595,  599,  595,  600,  595,
2458       728,  750,  327,  750,  750,  327,  750,  750,  327,  750,
2459      2469,  750,  327,  750, 1058, 1058, 1058,  751, 2471, 2472,
2460       751, 1937, 2473,  752, 2474,  595,  595,  752,  601,  602,
2461       603, 1059, 2476, 1455, 1455, 1455,  604, 1456, 2479,  605,
2462      1457, 1940, 1940, 1940, 2481, 2484,  606,  595,  596,  327,
2463       596,  595,  595,  595,  595,  595,  595,  595,  597,  595,
2464       595,  595, 2498,  595,  599,  595,  600,  595,  327,  327,
2465
2466       327,  327,  327,  327,  750,  327,  750, 2499, 2500,  750,
2467       327,  750, 2505, 2506,  362, 2509, 2510,  362, 2511, 2514,
2468       751, 2524, 2533,  595,  595,  751,  601,  602,  603, 1459,
2469      1459, 1459, 2534, 1460,  604, 2535, 1461,  605, 1943, 1943,
2470      1943, 1950, 1950, 1950,  606,  611,  612,  327,  612,  611,
2471       611,  611,  611,  611,  611,  611,  613,  611,  611,  611,
2472      2536,  611,  615,  611,  616,  611,  750,  327,  750,  750,
2473       327,  750,  327,  327,  327, 2507, 2512,  327,  327,  327,
2474      1310, 2537,  753, 2508, 2513,  753, 2526, 2540,  364, 2542,
2475      2543,  611,  611,  364,  750,  327,  750,  750,  327,  750,
2476
2477      1477, 1477, 1477, 2544, 1478, 1920, 2548, 1479, 2549, 2551,
2478       754, 2552, 2553,  754, 1920,  617,  611,  612,  327,  612,
2479       611,  611,  611,  611,  611,  611,  611,  613,  611,  611,
2480       611, 2554,  611,  615,  611,  616,  611,  750,  327,  750,
2481       750,  327,  750,  327,  327,  327, 2527, 2557,  327,  327,
2482       327, 2561, 2528,  755, 2562, 2563,  755, 2565, 2571,  367,
2483      2573, 2585,  611,  611,  367,  750,  327,  750,  750,  327,
2484       750, 1487, 1487, 1487, 2586, 1488, 2587, 2591, 1489, 2592,
2485      2593,  753, 2599, 2600,  753, 2601,  617,  626,  627,  327,
2486       627,  626,  626,  626,  626,  626,  626,  626,  628,  626,
2487
2488       626,  626, 2604,  626,  630,  626,  631,  626,  327,  327,
2489       327,  327,  327,  327,  750,  327,  750, 2608, 2609,  750,
2490       327,  750, 2610, 2611,  368, 2614, 2615,  368, 2616, 2617,
2491       755, 2618, 2630,  626,  626,  755,  750,  327,  750, 2634,
2492      2637,  632, 2638,  633, 2649, 2650,  634, 1956, 1956, 1956,
2493       635, 2651,  756, 2655,  636,  626,  627,  327,  627,  626,
2494       626,  626,  626,  626,  626,  626,  628,  626,  626,  626,
2495      2656,  626,  630,  626,  631,  626,  750,  327,  750,  327,
2496       327,  327,  327,  327,  327, 2657, 2658,  750,  327,  750,
2497      2659, 2660,  756, 2661, 1957,  370, 2662, 2663,  370, 2664,
2498
2499      2669,  626,  626,  757,  750,  327,  750, 2686, 2687,  632,
2500      1920,  633, 2688, 1920,  634, 1959, 1959, 1959,  635, 2689,
2501       757, 2691,  636,  641,  642,  327,  642,  641,  641,  641,
2502       641,  641,  641,  641,  643,  641,  641,  641, 2693,  641,
2503       645,  641,  646,  641,  327,  327,  327,  327,  327,  327,
2504       750,  327,  750, 2694, 2672,  750,  327,  750, 2695, 2697,
2505       372, 2673, 1937,  372, 2698, 2699,  756, 2700, 2701,  641,
2506       641,  756,  750,  327,  750,  750,  327,  750, 2702, 2703,
2507       647, 2704, 1499, 1499, 1499, 2725, 1500, 2726,  758, 1501,
2508      2731,  758, 2732,  648,  641,  642,  327,  642,  641,  641,
2509
2510       641,  641,  641,  641,  641,  643,  641,  641,  641, 2738,
2511       641,  645,  641,  646,  641,  769,  327,  769,  769,  327,
2512       769,  327,  327,  327, 2739, 2727,  327,  327,  327, 2740,
2513      2756,  770, 2757, 2758,  770, 2728, 2773,  386, 2774, 2778,
2514       641,  641,  386,  769,  327,  769,  769,  327,  769, 2779,
2515      2780,  647, 2781,  791, 1502, 1502, 1502, 2782, 1503,  770,
2516       962, 1504,  770,  817,  648,  652,  653,  327,  653,  652,
2517       652,  652,  652,  652,  652,  652,  654,  652,  652,  652,
2518      2783,  652,  656,  652,  657,  652,  769,  327,  769,  769,
2519       327,  769,  818, 2784, 1948, 1948, 1948, 2785,  963,  807,
2520
2521       964, 2786,  771, 2787, 2788,  771,  819, 2789, 2801,  811,
2522       803,  652,  652,  965, 2806,  966,  820, 1920, 1037, 1037,
2523       658, 2807,  659, 1920,  806, 2810,  660, 2811,  792,  817,
2524      1949,  661,  662,  652,  653,  327,  653,  652,  652,  652,
2525       652,  652,  652,  652,  654,  652,  652,  652, 2812,  652,
2526       656,  652,  657,  652,  827, 2805, 2804,  794,  818,  796,
2527      1325, 1325, 1325,  796, 1960, 1960, 1960,  819, 2813,  828,
2528       802,  800,  819,  801,  802, 2808,  803,  816, 1327,  652,
2529       652,  804,  820, 2816, 2809, 1515, 1515, 1515,  658, 1516,
2530       659, 2817, 1517,  806,  660, 1964, 1964, 1964, 2818,  661,
2531
2532       662,  666,  667,  327,  667,  666,  666,  666,  666,  666,
2533       666,  666,  668,  666,  666,  666, 2819,  666,  670,  666,
2534       671,  666,  829,  827, 1124, 1124, 1124, 1143, 1143, 1143,
2535      2820, 1965, 1145, 1145, 1145, 2822,  819, 1155, 1155, 1155,
2536      2823, 1125, 2824, 2826, 1144, 2827,  816,  666,  666, 1146,
2537      1158, 1158, 1158,  672, 1156, 1526, 1526, 1526, 2828, 1527,
2538      2830, 2831, 1528, 1964, 1964, 1964, 2833, 1159,  673,  666,
2539       667,  327,  667,  666,  666,  666,  666,  666,  666,  666,
2540       668,  666,  666,  666, 2851,  666,  670,  666,  671,  666,
2541      1172, 1172, 1172, 1179, 1179, 1179, 1188, 1188, 1188, 1949,
2542
2543      1190, 1190, 1190, 1198, 1198, 1198, 2852, 1173, 2853, 2814,
2544      1180, 2854, 2858, 1189, 2859,  666,  666, 1191, 2815, 2866,
2545      1199,  672, 1533, 1533, 1533, 2867, 1534, 2874, 2875, 1535,
2546      2876, 1948, 1948, 1948, 2888, 2889,  673,  678,  679,  327,
2547       679,  678,  678,  678,  678,  678,  678,  678,  680,  678,
2548       678,  678, 2904,  678,  682,  678,  683,  678, 1206, 1206,
2549      1206, 1210, 1210, 1210, 1222, 1222, 1222, 1965, 1244, 1244,
2550      1244, 2905, 1250, 1250, 1250, 1207, 2906, 2908, 1211, 2909,
2551      2910, 1223, 2911,  678,  678, 1245, 2912, 2913,  684, 1251,
2552      1959, 1959, 1959, 2914,  685,  678,  679,  327,  679,  678,
2553
2554       678,  678,  678,  678,  678,  678,  680,  678,  678,  678,
2555      2915,  678,  682,  678,  683,  678, 1266, 1266, 1266, 1272,
2556      1272, 1272, 1278, 1278, 1278, 2916, 1286, 1286, 1286, 2917,
2557      1298, 1298, 1298, 1267, 2918, 2919, 1273, 1974, 2921, 1279,
2558      2922,  678,  678, 1287, 2925, 2926,  684, 1299, 2135, 2135,
2559      2135, 2927,  685,  689,  690,  327,  690,  689,  689,  689,
2560       689,  689,  689,  689,  691,  689,  689,  689, 2928,  689,
2561       693,  689,  694,  689, 1058, 1058, 1058, 1325, 1325, 1325,
2562      1372, 1372, 1372, 1379, 1379, 1379, 4085, 4085, 4085, 2923,
2563      2931, 1059, 1376, 1376, 1376, 1327, 2932, 1373, 2924,  689,
2564
2565       689, 1381,  695, 4085,  696, 1933, 1933, 1933, 2929, 1377,
2566       697, 1551, 1551, 1551, 1328, 1552, 2933, 2930, 1553, 1310,
2567      2938,  698,  689,  690,  327,  690,  689,  689,  689,  689,
2568       689,  689,  689,  691,  689,  689,  689, 1374,  689,  693,
2569       689,  694,  689, 1379, 1379, 1379, 4085, 4085, 4085, 1389,
2570      1389, 1389, 1375, 2939, 1395, 1395, 1395, 1395, 1395, 1395,
2571      2935, 1381, 2940, 4085, 1389, 1389, 1389, 1391,  689,  689,
2572      2941,  695, 1397,  696, 1920, 1397, 1936, 1936, 1936,  697,
2573      1382, 2942, 1391, 2146, 2146, 2146, 1940, 1940, 1940, 2943,
2574       698,  703,  704,  327,  704,  703,  703,  703,  703,  703,
2575
2576       703,  703,  705,  703,  703,  703, 1378,  703,  707,  703,
2577       708,  703, 2936, 2944, 1392, 1124, 1124, 1124, 1404, 1404,
2578      1404, 2945, 1398, 1408, 1408, 1408, 1404, 1404, 1404, 4085,
2579      4085, 4085, 1125, 1412, 1412, 1412, 1406,  703,  703, 2946,
2580      1409, 2314,  709, 2947, 1406, 2948, 4085, 2315,  710, 1920,
2581      1413, 2316,  711, 1943, 1943, 1943, 2949, 2317,  712,  703,
2582       704,  327,  704,  703,  703,  703,  703,  703,  703,  703,
2583       705,  703,  703,  703, 1407,  703,  707,  703,  708,  703,
2584      1410, 1414, 1414, 1414, 1414, 1414, 1414, 1418, 1418, 1418,
2585      1420, 1420, 1420, 2937, 2950, 1411, 1422, 1422, 1422, 1416,
2586
2587      2951, 2952, 1416, 2954, 1419,  703,  703, 1421, 2955, 2956,
2588       709, 1581, 1581, 1581, 1424, 1582,  710, 2957, 1583, 2958,
2589       711, 2150, 2150, 2150, 2959, 2960,  712,  718,  719,  327,
2590       719,  718,  718,  718,  718,  718,  718,  718,  720,  718,
2591       718,  718, 2972,  718,  722,  718,  723,  718, 1422, 1422,
2592      1422, 1426, 1426, 1426, 2674, 2675, 1417, 2676, 1430, 1430,
2593      1430, 2973, 4085, 4085, 4085, 2677, 1424, 2976, 1427, 1432,
2594      1432, 1432, 2678,  718,  718, 1431, 1590, 1590, 1590, 4085,
2595      1591,  724, 2977, 1592,  725, 2978, 2151, 1434, 1948, 1948,
2596      1948,  726,  718,  719,  327,  719,  718,  718,  718,  718,
2597
2598       718,  718,  718,  720,  718,  718,  718, 2979,  718,  722,
2599       718,  723,  718, 1428, 1432, 1432, 1432, 1143, 1143, 1143,
2600      1425, 2982, 2980, 1145, 1145, 1145, 2983, 2986, 1429, 1448,
2601      1448, 1448, 1434, 2981, 1144, 1442, 1442, 1442,  718,  718,
2602      1146, 1615, 1615, 1615, 2987, 1616,  724, 1450, 1617,  725,
2603      2995, 2996, 1443, 1950, 1950, 1950,  726,  729,  730,  327,
2604       730,  729,  729,  729,  729,  729,  729,  729,  731,  729,
2605       729,  729, 2997,  729,  733,  729,  734,  729, 1155, 1155,
2606      1155, 3008, 1158, 1158, 1158, 3026, 1435, 3035, 4085, 4085,
2607      4085, 4085, 4085, 4085, 3036, 1156, 4085, 4085, 4085, 1159,
2608
2609      4085, 4085, 4085,  729,  729, 4085, 3037, 3038, 4085, 2860,
2610       735, 2861, 3039, 4085, 3040, 3041,  736, 4085, 2153, 2153,
2611      2153, 1956, 1956, 1956, 2862,  737,  729,  730,  327,  730,
2612       729,  729,  729,  729,  729,  729,  729,  731,  729,  729,
2613       729, 1444,  729,  733,  729,  734,  729, 1445, 1446, 1462,
2614      1462, 1462, 3042, 1447, 3043, 3044, 1473, 1473, 1473, 1473,
2615      1473, 1473, 1448, 1448, 1448, 2154, 1463, 1172, 1172, 1172,
2616      3046, 3047,  729,  729, 1475, 3048, 2863, 1475, 2864,  735,
2617      1450, 1959, 1959, 1959, 1173,  736, 1624, 1624, 1624, 3049,
2618      1625, 2865, 3050, 1626,  737,  741,  742,  327,  742,  741,
2619
2620       741,  741,  741,  741,  741,  741,  743,  741,  741,  741,
2621      1451,  741,  745,  741,  746,  741, 3051, 3052, 1476, 1480,
2622      1480, 1480, 1480, 1480, 1480, 2984, 1179, 1179, 1179, 1493,
2623      1493, 1493, 1493, 1493, 1493, 3053, 2985, 1482, 3054, 3055,
2624      1482,  741,  741, 1180, 1633, 1633, 1633, 1495, 1634, 3056,
2625      1495, 1635,  747, 1644, 1644, 1644, 3057, 1645, 1920, 3065,
2626      1646,  748,  741,  742,  327,  742,  741,  741,  741,  741,
2627       741,  741,  741,  743,  741,  741,  741, 1310,  741,  745,
2628       741,  746,  741, 1920, 1483, 1188, 1188, 1188, 1190, 1190,
2629      1190, 1960, 1960, 1960, 1496, 1505, 1505, 1505, 1505, 1505,
2630
2631      1505, 3063, 1189, 3066, 3020, 1191, 3067, 3062,  741,  741,
2632      1198, 1198, 1198, 1507, 3021, 3068, 1507, 3022, 3069,  747,
2633      1964, 1964, 1964, 2163, 2163, 2163, 3064, 1199,  748,  759,
2634       760,  327,  760,  759,  759,  759,  759,  759,  759,  759,
2635       761,  759,  759,  759, 3070,  759,  763,  759,  764,  759,
2636      1510, 1510, 1510, 1521, 1521, 1521, 1521, 1521, 1521, 3023,
2637      1508, 1510, 1510, 1510, 3071, 1206, 1206, 1206, 1512, 3024,
2638      3072, 1523, 3025, 3073, 1523,  759,  759, 3074, 3075, 1512,
2639      3076,  765, 1207, 3077,  766, 1660, 1660, 1660, 2164, 1661,
2640      3079, 3080, 1662, 2166, 2166, 2166,  767,  759,  760,  327,
2641
2642       760,  759,  759,  759,  759,  759,  759,  759,  761,  759,
2643       759,  759, 1524,  759,  763,  759,  764,  759, 1529, 1529,
2644      1529, 3081, 1513, 1529, 1529, 1529, 3082, 3084, 1210, 1210,
2645      1210, 3085, 1537, 1537, 1537, 3086, 1531, 1537, 1537, 1537,
2646      2167, 1531, 3097,  759,  759, 1211, 1222, 1222, 1222,  765,
2647      1539, 3105,  766, 3090, 3092, 1539, 1543, 1543, 1543, 1554,
2648      1554, 1554, 3106, 1223,  767,  776, 3091, 3093, 1543, 1543,
2649      1543, 3107,  791, 3108, 1545, 3109, 1555, 3110, 3111, 1532,
2650      3112,  775,  792, 1558, 1558, 1558, 1545, 1558, 1558, 1558,
2651      1564, 1564, 1564, 3113, 3114, 1564, 1564, 1564, 3115, 1540,
2652
2653      3119, 1560, 1577, 1577, 1577, 1560, 3122, 3123, 1566, 3124,
2654       793,  794,  795, 1566, 1577, 1577, 1577,  796,  797, 3125,
2655      1579,  798,  799, 3126, 3127,  800, 3128,  801,  802,  803,
2656      1546, 3131, 1579, 3139, 3140,  804,  776, 3143, 3144, 1561,
2657      1244, 1244, 1244, 1585, 1585, 1585, 1585, 1585, 1585, 1250,
2658      1250, 1250,  775,  806, 1567, 3001, 3147, 1245, 1593, 1593,
2659      1593, 1587, 3158, 3159, 1587, 3002, 1251, 1596, 1596, 1596,
2660      3160, 3003, 1601, 1601, 1601, 1594, 1610, 1610, 1610, 1580,
2661      3161,  793,  807,  808, 1597, 1601, 1601, 1601,  809,  810,
2662      1603, 3135,  811,  799, 1612, 3162,  812, 3163,  813,  814,
2663
2664       815, 3164, 3165, 1603, 3136, 3167,  816,  776, 1605, 1605,
2665      1605, 1588, 1607, 1607, 1607, 4085, 4085, 4085, 1610, 1610,
2666      1610, 3137, 3141,  775,  821, 1606, 1266, 1266, 1266, 1608,
2667      3168, 3169, 4085, 1604, 3138, 3142, 1612, 1618, 1618, 1618,
2668      1618, 1618, 1618, 1267, 1272, 1272, 1272, 1628, 1628, 1628,
2669      3170, 3171,  793,  822,  795, 1620, 3172, 3173, 1620,  809,
2670       797, 1273, 3174,  798,  799, 1630, 3145,  805, 3004,  813,
2671       814,  803, 1628, 1628, 1628, 1609, 3175,  823, 3005, 3146,
2672      1613, 1278, 1278, 1278, 3006, 1638, 1638, 1638, 3176, 3177,
2673      1630, 1638, 1638, 1638, 1286, 1286, 1286, 3178, 1279, 1649,
2674
2675      1649, 1649, 1621, 1640, 1649, 1649, 1649, 1310, 3186, 1640,
2676      3187, 1287, 1656, 1656, 1656, 3188, 3189, 1651, 1656, 1656,
2677      1656, 1920, 1651, 1298, 1298, 1298, 1664, 1664, 1664, 3190,
2678      1658, 1664, 1664, 1664, 3191, 3192, 1658, 3193, 3194, 1631,
2679      1299, 2243, 2243, 2243, 1666, 1668, 1668, 1668, 3195, 1666,
2680      4085, 4085, 4085, 1672, 1672, 1672, 3182, 3183, 1641, 4085,
2681      4085, 4085, 1669, 1675, 1675, 1675, 3196, 4085, 3197, 1652,
2682      1673, 1675, 1675, 1675, 3198, 3199, 4085, 3201, 1321, 1321,
2683      1321, 1677, 1322, 1659, 3202, 1323, 1325, 1325, 1325, 1677,
2684      1325, 1325, 1325, 1667, 1686, 1686, 1686, 1372, 1372, 1372,
2685
2686      3203, 1670, 3205, 3214, 1327, 1379, 1379, 1379, 1327, 1376,
2687      1376, 1376, 1687, 3215, 1373, 3216, 1671, 3217, 3222, 1674,
2688      1730, 1730, 1730, 1381, 1731, 3229, 1377, 1732, 1735, 1735,
2689      1735, 3230, 1736, 1678, 3231, 1737, 1379, 1379, 1379, 1379,
2690      1379, 1379, 1742, 1742, 1742, 1389, 1389, 1389, 1389, 1389,
2691      1389, 1389, 1389, 1389, 1381, 3232, 3233, 1381, 3234, 1743,
2692      1395, 1395, 1395, 1391, 3235, 3236, 1391, 3237, 3238, 1391,
2693      1395, 1395, 1395, 1395, 1395, 1395, 3239, 3240, 1397, 1400,
2694      1400, 1400, 3244, 1401, 3245, 3246, 1402, 3247, 1397, 3248,
2695      3249, 1397, 1404, 1404, 1404, 1404, 1404, 1404, 1404, 1404,
2696
2697      1404, 2150, 2150, 2150, 1739, 1408, 1408, 1408, 3250, 3251,
2698      1406, 3252, 3253, 1406, 3254, 3255, 1406, 3256, 1747, 1754,
2699      1754, 1754, 1409, 1755, 3257, 3258, 1756, 1750, 1412, 1412,
2700      1412, 1759, 1759, 1759, 3259, 1760, 3260, 3261, 1761, 1414,
2701      1414, 1414, 1414, 1414, 1414, 1413, 3262, 3263, 1753, 1414,
2702      1414, 1414, 1418, 1418, 1418, 3275, 3276, 1416, 3277, 3278,
2703      1416, 1763, 1763, 1763, 3279, 1764, 2164, 1416, 1765, 1419,
2704      1420, 1420, 1420, 1766, 1766, 1766, 3280, 1767, 3281, 3282,
2705      1768, 1422, 1422, 1422, 1422, 1422, 1422, 1421, 1422, 1422,
2706      1422, 1426, 1426, 1426, 1770, 1770, 1770, 3284, 1771, 1424,
2707
2708      3285, 1772, 1424, 1430, 1430, 1430, 1424, 3286, 1427, 1775,
2709      1775, 1775, 1762, 1776, 3287, 3288, 1777, 1432, 1432, 1432,
2710      1431, 1432, 1432, 1432, 1432, 1432, 1432, 1436, 1436, 1436,
2711      3289, 1437, 3290, 3291, 1438, 1434, 1439, 1439, 1439, 1434,
2712      1440, 3292, 1434, 1441, 1442, 1442, 1442, 3293, 1779, 1779,
2713      1779, 1769, 1780, 3294, 3295, 1781, 1448, 1448, 1448, 3310,
2714      3311, 1443, 1448, 1448, 1448, 1448, 1448, 1448, 1455, 1455,
2715      1455, 3312, 1456, 3313, 1450, 1457, 1790, 1790, 1790, 3314,
2716      1450, 3315, 3316, 1450, 1459, 1459, 1459, 1778, 1460, 1310,
2717      3317, 1461, 3319, 1791, 1462, 1462, 1462, 1792, 1792, 1792,
2718
2719      3322, 1793, 3324, 3325, 1794, 1473, 1473, 1473, 1473, 1473,
2720      1473, 1463, 3326, 3327, 1786, 1473, 1473, 1473, 1477, 1477,
2721      1477, 3328, 1478, 1475, 3304, 1479, 1475, 1480, 1480, 1480,
2722      1480, 1480, 1480, 1475, 1480, 1480, 1480, 1809, 1809, 1809,
2723      1487, 1487, 1487, 3329, 1488, 1482, 3330, 1489, 1482, 1493,
2724      1493, 1493, 1482, 3331, 1810, 1493, 1493, 1493, 1493, 1493,
2725      1493, 1816, 1816, 1816, 1499, 1499, 1499, 1495, 1500, 2318,
2726      3332, 1501, 3333, 1495, 3334, 2319, 1495, 3335, 1817, 2320,
2727      1502, 1502, 1502, 1805, 1503, 2321, 3338, 1504, 1505, 1505,
2728      1505, 1505, 1505, 1505, 3341, 1806, 1505, 1505, 1505, 1819,
2729
2730      1819, 1819, 1510, 1510, 1510, 3342, 1507, 3343, 3344, 1507,
2731      1510, 1510, 1510, 3345, 1507, 3346, 1820, 1510, 1510, 1510,
2732      1512, 1521, 1521, 1521, 1814, 1515, 1515, 1515, 1512, 1516,
2733      3347, 3348, 1517, 3349, 3350, 1512, 1521, 1521, 1521, 1523,
2734      1521, 1521, 1521, 1526, 1526, 1526, 3355, 1527, 3356, 3357,
2735      1528, 1529, 1529, 1529, 1523, 1529, 1529, 1529, 1523, 1529,
2736      1529, 1529, 1818, 3358, 1533, 1533, 1533, 1821, 1534, 1531,
2737      3359, 1535, 3360, 1531, 1537, 1537, 1537, 1531, 1537, 1537,
2738      1537, 1537, 1537, 1537, 3361, 1831, 1831, 1831, 4085, 4085,
2739      4085, 3362, 1539, 1543, 1543, 1543, 1539, 3363, 3364, 1539,
2740
2741      3206, 1826, 1832, 3365, 3366, 4085, 1543, 1543, 1543, 3367,
2742      3207, 1545, 1543, 1543, 1543, 1551, 1551, 1551, 3368, 1552,
2743      1828, 3369, 1553, 3370, 1545, 1554, 1554, 1554, 3208, 3371,
2744      1545, 3375, 1830, 1839, 1839, 1839, 1833, 1840, 3376, 3209,
2745      1841, 3377, 1555, 1558, 1558, 1558, 1558, 1558, 1558, 1558,
2746      1558, 1558, 1564, 1564, 1564, 1564, 1564, 1564, 1564, 1564,
2747      1564, 1560, 3378, 3379, 1560, 3380, 3381, 1560, 3382, 3385,
2748      1566, 3386, 3387, 1566, 3388, 3389, 1566, 1853, 1853, 1853,
2749      1834, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577, 1577,
2750      3390, 1581, 1581, 1581, 1854, 1582, 3392, 3393, 1583, 1579,
2751
2752      3394, 1844, 1579, 3395, 3396, 1579, 1847, 1585, 1585, 1585,
2753      1585, 1585, 1585, 1585, 1585, 1585, 1590, 1590, 1590, 3210,
2754      1591, 2679, 2680, 1592, 2681, 1587, 3397, 3398, 1587, 3211,
2755      3399, 1587, 2682, 1593, 1593, 1593, 1862, 1862, 1862, 2683,
2756      1863, 3400, 3401, 1864, 1865, 1865, 1865, 3212, 3402, 1858,
2757      1594, 1596, 1596, 1596, 3403, 1867, 1867, 1867, 3213, 1868,
2758      3404, 1866, 1869, 1871, 1871, 1871, 3405, 3406, 1597, 1601,
2759      1601, 1601, 1601, 1601, 1601, 1860, 1601, 1601, 1601, 3407,
2760      1872, 1605, 1605, 1605, 1875, 1875, 1875, 1603, 1876, 1310,
2761      1603, 1877, 3414, 3415, 1603, 1607, 1607, 1607, 1606, 1878,
2762
2763      1878, 1878, 3416, 1879, 3417, 3418, 1880, 1610, 1610, 1610,
2764      3419, 3420, 1608, 1610, 1610, 1610, 1610, 1610, 1610, 1615,
2765      1615, 1615, 3421, 1616, 3422, 1612, 1617, 1618, 1618, 1618,
2766      3423, 1612, 3424, 3408, 1612, 3425, 3426, 1874, 1618, 1618,
2767      1618, 1618, 1618, 1618, 3427, 1620, 1624, 1624, 1624, 3428,
2768      1625, 3429, 3430, 1626, 3431, 3432, 1620, 3433, 3437, 1620,
2769      1628, 1628, 1628, 1628, 1628, 1628, 3443, 1628, 1628, 1628,
2770      1633, 1633, 1633, 3266, 1634, 3444, 3445, 1635, 1630, 3446,
2771      3447, 1630, 3448, 3267, 1882, 1630, 1891, 1891, 1891, 1638,
2772      1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1895, 1895,
2773
2774      1895, 3268, 3449, 1892, 1644, 1644, 1644, 1640, 1645, 1884,
2775      1640, 1646, 3269, 1640, 3456, 1896, 4085, 4085, 4085, 1649,
2776      1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 3457, 1888,
2777      1901, 1901, 1901, 4085, 1656, 1656, 1656, 1651, 3458, 3459,
2778      1651, 3460, 3461, 1651, 1656, 1656, 1656, 1902, 1656, 1656,
2779      1656, 3462, 1658, 3463, 1660, 1660, 1660, 1893, 1661, 3464,
2780      3465, 1662, 1658, 1664, 1664, 1664, 1658, 1664, 1664, 1664,
2781      1664, 1664, 1664, 1899, 1668, 1668, 1668, 3466, 1897, 3467,
2782      3468, 1666, 1907, 1907, 1907, 1666, 1908, 3469, 1666, 1909,
2783      3470, 1669, 1672, 1672, 1672, 3471, 1904, 1912, 1912, 1912,
2784
2785      3472, 1913, 3473, 3474, 1914, 1675, 1675, 1675, 3475, 1673,
2786      1675, 1675, 1675, 3476, 1675, 1675, 1675, 1919, 1919, 1919,
2787      1686, 1686, 1686, 1677, 1379, 1379, 1379, 3477, 1677, 3478,
2788      3479, 1906, 1677, 3480, 3481, 1920, 1921, 3482, 1687, 1730,
2789      1730, 1730, 1381, 1731, 3483, 3484, 1732, 1735, 1735, 1735,
2790      3485, 1736, 3486, 3489, 1737, 1742, 1742, 1742, 1976, 1976,
2791      1976, 3490, 1977, 3270, 3491, 1978, 1389, 1389, 1389, 1395,
2792      1395, 1395, 1743, 3271, 3492, 1916, 1984, 1984, 1984, 3493,
2793      1404, 1404, 1404, 3494, 1391, 3495, 1973, 1397, 1754, 1754,
2794      1754, 3272, 1755, 1985, 3496, 1756, 3497, 3498, 1406, 1759,
2795
2796      1759, 1759, 3273, 1760, 3499, 3500, 1761, 1414, 1414, 1414,
2797      1763, 1763, 1763, 3501, 1764, 3502, 3505, 1765, 3514, 1766,
2798      1766, 1766, 3515, 1767, 3520, 1416, 1768, 3508, 1982, 1422,
2799      1422, 1422, 1770, 1770, 1770, 3521, 1771, 1986, 1989, 1772,
2800      1310, 1775, 1775, 1775, 3505, 1776, 3524, 1424, 1777, 1432,
2801      1432, 1432, 1779, 1779, 1779, 1992, 1780, 3525, 3506, 1781,
2802      3526, 1999, 1999, 1999, 1448, 1448, 1448, 1434, 2003, 2003,
2803      2003, 4085, 4085, 4085, 4085, 4085, 4085, 1993, 2000, 1790,
2804      1790, 1790, 1450, 3527, 3528, 2004, 3529, 3503, 4085, 3531,
2805      3539, 4085, 4085, 4085, 4085, 3540, 1791, 1996, 2007, 2007,
2806
2807      2007, 3541, 2008, 3542, 3543, 2009, 1792, 1792, 1792, 4085,
2808      1793, 3510, 3548, 1794, 4085, 4085, 4085, 4085, 4085, 4085,
2809      2002, 3532, 2006, 4085, 4085, 4085, 4085, 4085, 4085, 3534,
2810      3511, 4085, 3512, 3533, 4085, 4085, 4085, 4085, 2005, 3549,
2811      4085, 3535, 3550, 4085, 2010, 3513, 2016, 2016, 2016, 4085,
2812      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 1473,
2813      1473, 1473, 2011, 2017, 3551, 3552, 4085, 1809, 1809, 1809,
2814      4085, 2013, 3553, 4085, 1480, 1480, 1480, 1475, 2025, 2025,
2815      2025, 3554, 2026, 3555, 1810, 2027, 3556, 3557, 2012, 3558,
2816      3559, 2014, 1482, 2029, 2029, 2029, 2015, 1493, 1493, 1493,
2817
2818      1816, 1816, 1816, 3560, 2034, 2034, 2034, 3544, 2035, 3561,
2819      2030, 2036, 1505, 1505, 1505, 1495, 2019, 1817, 2020, 3545,
2820      2018, 1819, 1819, 1819, 3562, 2021, 3567, 2022, 3568, 3573,
2821      1507, 3574, 2038, 2038, 2038, 3575, 2039, 3576, 1820, 2040,
2822      1510, 1510, 1510, 1521, 1521, 1521, 3577, 1529, 1529, 1529,
2823      2049, 2049, 2049, 3296, 1537, 1537, 1537, 3578, 1512, 3546,
2824      1310, 1523, 3505, 3297, 2032, 1531, 3581, 2050, 1831, 1831,
2825      1831, 3547, 1539, 2052, 2052, 2052, 3506, 2053, 3581, 2037,
2826      2054, 3298, 1543, 1543, 1543, 1832, 2058, 2058, 2058, 1839,
2827      1839, 1839, 3299, 1840, 1920, 1921, 1841, 3584, 3585, 2041,
2828
2829      1545, 2046, 3579, 2059, 3586, 2048, 2051, 2062, 2062, 2062,
2830      1558, 1558, 1558, 1564, 1564, 1564, 1853, 1853, 1853, 2074,
2831      2074, 2074, 3589, 2075, 2063, 3590, 2076, 3591, 1560, 3587,
2832      3594, 1566, 3595, 1854, 1577, 1577, 1577, 2081, 2081, 2081,
2833      1585, 1585, 1585, 2056, 1862, 1862, 1862, 3588, 1863, 3608,
2834      3592, 1864, 1579, 3505, 2082, 1865, 1865, 1865, 1587, 2085,
2835      2085, 2085, 3602, 2086, 3508, 3593, 2087, 1867, 1867, 1867,
2836      3603, 1868, 1866, 3600, 1869, 2065, 1871, 1871, 1871, 3606,
2837      2068, 2089, 2089, 2089, 2080, 2090, 3609, 3607, 2091, 1601,
2838      1601, 1601, 3601, 1872, 1875, 1875, 1875, 3610, 1876, 3611,
2839
2840      3624, 1877, 3616, 2083, 1878, 1878, 1878, 1603, 1879, 3625,
2841      3617, 1880, 1610, 1610, 1610, 1618, 1618, 1618, 1628, 1628,
2842      1628, 2103, 2103, 2103, 1891, 1891, 1891, 2105, 2105, 2105,
2843      1612, 2106, 3604, 1620, 2107, 3614, 1630, 3626, 2104, 3627,
2844      2093, 1892, 1638, 1638, 1638, 1895, 1895, 1895, 2110, 2110,
2845      2110, 3605, 2111, 3618, 3615, 2112, 1649, 1649, 1649, 3628,
2846      1640, 3620, 1896, 1901, 1901, 1901, 2117, 2117, 2117, 3621,
2847      2118, 3629, 3619, 2119, 1651, 2120, 2120, 2120, 3630, 2095,
2848      1902, 3631, 2097, 2101, 1656, 1656, 1656, 1664, 1664, 1664,
2849      3632, 3635, 2121, 1907, 1907, 1907, 3633, 1908, 3636, 3637,
2850
2851      1909, 3638, 1658, 3581, 3641, 1666, 2115, 2108, 1912, 1912,
2852      1912, 3581, 1913, 3642, 3634, 1914, 3639, 1675, 1675, 1675,
2853      1919, 1919, 1919, 2163, 2163, 2163, 2171, 2171, 2171, 2173,
2854      2173, 2173, 3643, 3644, 2122, 1677, 3645, 3646, 1920, 2124,
2855      4085, 4085, 4085, 2172, 3647, 3648, 2174, 1379, 1379, 1379,
2856      3649, 1976, 1976, 1976, 3650, 1977, 3651, 4085, 1978, 1389,
2857      1389, 1389, 1984, 1984, 1984, 1381, 2184, 2184, 2184, 2128,
2858      2185, 3655, 2130, 2186, 1395, 1395, 1395, 1391, 3656, 1985,
2859      1404, 1404, 1404, 2191, 2191, 2191, 3657, 3658, 2151, 2131,
2860      3659, 3660, 1397, 2193, 2193, 2193, 3661, 3662, 1406, 3663,
2861
2862      2192, 1414, 1414, 1414, 3664, 2175, 3665, 1422, 1422, 1422,
2863      2194, 2197, 2197, 2197, 3666, 2176, 2199, 2199, 2199, 1416,
2864      1432, 1432, 1432, 3670, 2182, 1424, 3671, 3672, 2198, 2190,
2865      2202, 2202, 2202, 2200, 2187, 4085, 4085, 4085, 1434, 1999,
2866      1999, 1999, 2205, 2205, 2205, 3673, 2206, 2203, 3674, 2207,
2867      3675, 3676, 4085, 2208, 2208, 2208, 2000, 1448, 1448, 1448,
2868      2003, 2003, 2003, 3677, 2211, 2211, 2211, 2195, 2212, 3681,
2869      2209, 2213, 3682, 2196, 3683, 1450, 3684, 2004, 2214, 2214,
2870      2214, 4085, 4085, 4085, 3685, 3686, 2201, 3300, 3687, 2007,
2871      2007, 2007, 3688, 2008, 2204, 2215, 2009, 3301, 4085, 4085,
2872
2873      4085, 4085, 4085, 4085, 4085, 2219, 2219, 2219, 4085, 4085,
2874      4085, 4085, 4085, 4085, 3689, 3302, 4085, 3690, 2210, 4085,
2875      3691, 3692, 2220, 3563, 3693, 4085, 3303, 3694, 4085, 3696,
2876      4085, 4085, 4085, 2016, 2016, 2016, 2224, 2224, 2224, 3697,
2877      2225, 3698, 3564, 2226, 3565, 3699, 2216, 4085, 3700, 3701,
2878      2017, 3702, 2218, 2227, 2227, 2227, 3703, 3566, 2222, 4085,
2879      4085, 4085, 3704, 3705, 2217, 3706, 3711, 2221, 3712, 3713,
2880      2228, 4085, 4085, 4085, 3714, 3516, 4085, 1473, 1473, 1473,
2881      1480, 1480, 1480, 3715, 2223, 2025, 2025, 2025, 4085, 2026,
2882      3716, 3517, 2027, 3518, 3717, 1475, 3718, 3719, 1482, 2235,
2883
2884      2235, 2235, 2029, 2029, 2029, 3707, 3519, 2229, 2237, 2237,
2885      2237, 3709, 2238, 3720, 3721, 2239, 2236, 3708, 3722, 2030,
2886      2241, 2241, 2241, 3710, 3723, 2230, 2034, 2034, 2034, 3724,
2887      2035, 3725, 3726, 2036, 3727, 3728, 2232, 3729, 2242, 1505,
2888      1505, 1505, 3730, 3731, 2231, 2038, 2038, 2038, 3732, 2039,
2889      3733, 3734, 2040, 1510, 1510, 1510, 3735, 1507, 2250, 2250,
2890      2250, 1529, 1529, 1529, 2049, 2049, 2049, 3736, 2254, 2254,
2891      2254, 1512, 2255, 3737, 3738, 2256, 2251, 3739, 3740, 1531,
2892      3742, 2050, 1537, 1537, 1537, 1310, 2244, 2052, 2052, 2052,
2893      3743, 2053, 3744, 3745, 2054, 1543, 1543, 1543, 3746, 3747,
2894
2895      1539, 2058, 2058, 2058, 3748, 2261, 2261, 2261, 2253, 2262,
2896      3741, 3749, 2263, 1545, 2264, 2264, 2264, 3750, 2059, 3751,
2897      3752, 2245, 2062, 2062, 2062, 2267, 2267, 2267, 3753, 2268,
2898      3754, 2265, 2269, 2271, 2271, 2271, 1564, 1564, 1564, 2063,
2899      3755, 2257, 2276, 2276, 2276, 2074, 2074, 2074, 3756, 2075,
2900      3757, 2272, 2076, 3569, 1566, 1577, 1577, 1577, 2081, 2081,
2901      2081, 3758, 2259, 2285, 2285, 2285, 3759, 2286, 3760, 3570,
2902      2287, 3571, 3761, 1579, 3762, 2082, 2288, 2288, 2288, 2085,
2903      2085, 2085, 3763, 2086, 3572, 3764, 2087, 3765, 3766, 2275,
2904      3767, 2089, 2089, 2089, 2289, 2090, 3768, 3769, 2091, 1601,
2905
2906      1601, 1601, 1610, 1610, 1610, 3770, 3771, 2284, 1618, 1618,
2907      1618, 2298, 2298, 2298, 4085, 4085, 4085, 1603, 3772, 3773,
2908      1612, 2301, 2301, 2301, 3774, 3775, 1620, 3776, 2299, 3777,
2909      3778, 4085, 1628, 1628, 1628, 2103, 2103, 2103, 2302, 2305,
2910      2305, 2305, 3779, 2306, 1310, 3781, 2307, 1638, 1638, 1638,
2911      1630, 3782, 2104, 3783, 2295, 2105, 2105, 2105, 3784, 2106,
2912      2297, 2293, 2107, 3780, 3785, 1640, 2110, 2110, 2110, 3786,
2913      2111, 3787, 3788, 2112, 1649, 1649, 1649, 2120, 2120, 2120,
2914      2303, 2300, 2117, 2117, 2117, 3789, 2118, 3790, 3791, 2119,
2915      3792, 3793, 1651, 3794, 2121, 2308, 2322, 2322, 2322, 3795,
2916
2917      2323, 3796, 3797, 2324, 1656, 1656, 1656, 2327, 2327, 2327,
2918      2329, 2329, 2329, 2331, 2331, 2331, 4085, 4085, 4085, 1675,
2919      1675, 1675, 1658, 3798, 3799, 2328, 2312, 2330, 3800, 3801,
2920      2332, 3802, 3803, 4085, 2338, 2338, 2338, 1677, 2135, 2135,
2921      2135, 2348, 2348, 2348, 2146, 2146, 2146, 2355, 2355, 2355,
2922      3804, 2339, 2150, 2150, 2150, 2334, 2325, 2356, 2356, 2356,
2923      2153, 2153, 2153, 2163, 2163, 2163, 2369, 2369, 2369, 2166,
2924      2166, 2166, 2171, 2171, 2171, 2373, 2373, 2373, 3805, 2374,
2925      3806, 2333, 2375, 2173, 2173, 2173, 2376, 2376, 2376, 2172,
2926      2377, 3807, 3808, 2378, 1379, 1379, 1379, 2386, 2386, 2386,
2927
2928      2174, 2184, 2184, 2184, 3809, 2185, 3810, 3811, 2186, 2391,
2929      2391, 2391, 1381, 3812, 3813, 2387, 1395, 1395, 1395, 1404,
2930      1404, 1404, 2191, 2191, 2191, 3814, 2392, 3815, 2394, 2394,
2931      2394, 3816, 2395, 3818, 1397, 2396, 3819, 1406, 3820, 2192,
2932      2193, 2193, 2193, 2397, 2397, 2397, 1310, 2398, 3821, 3822,
2933      2399, 1414, 1414, 1414, 1422, 1422, 1422, 2194, 2197, 2197,
2934      2197, 2380, 3823, 2402, 2402, 2402, 3817, 2403, 2389, 1416,
2935      2404, 3824, 1424, 3825, 3826, 2198, 2199, 2199, 2199, 3827,
2936      3828, 2393, 2405, 2405, 2405, 3829, 2406, 3830, 3831, 2407,
2937      1432, 1432, 1432, 2200, 2202, 2202, 2202, 2409, 2409, 2409,
2938
2939      3832, 2410, 3833, 3834, 2411, 2412, 2412, 2412, 1434, 3835,
2940      3836, 2203, 2205, 2205, 2205, 3837, 2206, 2400, 3838, 2207,
2941      2401, 3839, 2413, 2208, 2208, 2208, 2414, 2414, 2414, 3840,
2942      2415, 3841, 3842, 2416, 1448, 1448, 1448, 2211, 2211, 2211,
2943      2209, 2212, 3843, 3844, 2213, 2214, 2214, 2214, 2219, 2219,
2944      2219, 3845, 1450, 2418, 2418, 2418, 2408, 2419, 3846, 3847,
2945      2420, 3848, 2215, 3849, 3851, 2220, 2424, 2424, 2424, 3852,
2946      2425, 3853, 3854, 2426, 2427, 2427, 2427, 2224, 2224, 2224,
2947      3855, 2225, 3856, 3857, 2226, 3858, 2417, 2227, 2227, 2227,
2948      3859, 2428, 2431, 2431, 2431, 3860, 2432, 1310, 3861, 2433,
2949
2950      1473, 1473, 1473, 3850, 2228, 1480, 1480, 1480, 2235, 2235,
2951      2235, 3862, 2440, 2440, 2440, 3863, 2441, 3864, 1475, 2442,
2952      2237, 2237, 2237, 1482, 2238, 2236, 3865, 2239, 2241, 2241,
2953      2241, 2243, 2243, 2243, 3866, 1505, 1505, 1505, 1510, 1510,
2954      1510, 2447, 2447, 2447, 3867, 3868, 2242, 2250, 2250, 2250,
2955      3869, 3870, 2436, 1507, 3871, 3872, 1512, 3873, 2448, 2437,
2956      1529, 1529, 1529, 3874, 3876, 2251, 2254, 2254, 2254, 3877,
2957      2255, 3878, 1310, 2256, 1537, 1537, 1537, 3879, 1531, 2456,
2958      2456, 2456, 3880, 2261, 2261, 2261, 3875, 2262, 2449, 2445,
2959      2263, 3881, 1539, 3882, 2444, 3883, 3884, 2457, 2264, 2264,
2960
2961      2264, 2459, 2459, 2459, 3885, 2460, 3886, 3887, 2461, 3888,
2962      2453, 3889, 2267, 2267, 2267, 2265, 2268, 3890, 3891, 2269,
2963      3893, 2454, 2271, 2271, 2271, 2465, 2465, 2465, 1564, 1564,
2964      1564, 2276, 2276, 2276, 2468, 2468, 2468, 2470, 2470, 2470,
2965      2272, 3894, 2466, 1577, 1577, 1577, 1566, 2285, 2285, 2285,
2966      3895, 2286, 3896, 3897, 2287, 2288, 2288, 2288, 2477, 2477,
2967      2477, 1579, 1601, 1601, 1601, 2482, 2482, 2482, 1618, 1618,
2968      1618, 3898, 3899, 2289, 3900, 2478, 2298, 2298, 2298, 3901,
2969      1603, 3902, 3903, 2483, 3904, 3905, 1620, 2486, 2486, 2486,
2970      2467, 2487, 3906, 2299, 2488, 2489, 2489, 2489, 2301, 2301,
2971
2972      2301, 2491, 2491, 2491, 3907, 2492, 3908, 3911, 2493, 2475,
2973      3912, 3913, 2490, 3914, 3915, 2302, 1628, 1628, 1628, 2495,
2974      2495, 2495, 2480, 2305, 2305, 2305, 3916, 2306, 3917, 3918,
2975      2307, 3919, 3920, 2485, 1630, 3923, 2496, 1638, 1638, 1638,
2976      2501, 2501, 2501, 2503, 2503, 2503, 2322, 2322, 2322, 1310,
2977      2323, 3924, 1310, 2324, 3925, 1640, 3926, 1310, 2502, 1310,
2978      2504, 1656, 1656, 1656, 2516, 2516, 2516, 2327, 2327, 2327,
2979      2494, 2329, 2329, 2329, 1310, 3973, 2518, 2518, 2518, 1658,
2980      2519, 2517, 3937, 2520, 1310, 2328, 3921, 1310, 2330, 3922,
2981      1310, 2497, 2331, 2331, 2331, 2521, 2521, 2521, 1837, 2522,
2982
2983      1836, 1835, 2523, 1675, 1675, 1675, 3927, 3945, 2515, 2332,
2984      2338, 2338, 2338, 2529, 2529, 2529, 1829, 2530, 1827, 3931,
2985      2531, 1677, 2532, 2532, 2532, 3949, 1310, 2339, 2538, 2538,
2986      2538, 2539, 2539, 2539, 2348, 2348, 2348, 2541, 2541, 2541,
2987      2545, 2545, 2545, 2355, 2355, 2355, 2356, 2356, 2356, 2546,
2988      2546, 2546, 2550, 2550, 2550, 2555, 2555, 2555, 2556, 2556,
2989      2556, 2558, 2558, 2558, 1310, 2525, 2369, 2369, 2369, 2559,
2990      2559, 2559, 2373, 2373, 2373, 3928, 2374, 1310, 1825, 2375,
2991      2376, 2376, 2376, 1310, 2377, 1310, 1310, 2378, 1379, 1379,
2992      1379, 2566, 2566, 2566, 1824, 1310, 2547, 4085, 4085, 4085,
2993
2994      4085, 4085, 4085, 4085, 4085, 4085, 1381, 1823, 2567, 2386,
2995      2386, 2386, 3981, 3929, 4085, 3938, 2560, 4085, 3983, 1310,
2996      4085, 1395, 1395, 1395, 2391, 2391, 2391, 2387, 2574, 2574,
2997      2574, 3932, 2575, 3951, 3930, 2576, 1404, 1404, 1404, 1397,
2998      2564, 2392, 3940, 2394, 2394, 2394, 1310, 2395, 3939, 2568,
2999      2396, 2397, 2397, 2397, 1406, 2398, 1310, 1310, 2399, 1414,
3000      1414, 1414, 1310, 2570, 3941, 2569, 1422, 1422, 1422, 2402,
3001      2402, 2402, 1310, 2403, 3933, 1822, 2404, 1416, 1310, 2578,
3002      2791, 2792, 2572, 2793, 1424, 2405, 2405, 2405, 3942, 2406,
3003      1310, 2794, 2407, 1432, 1432, 1432, 1310, 2577, 2795, 2409,
3004
3005      2409, 2409, 2579, 2410, 3953, 3947, 2411, 2412, 2412, 2412,
3006      3943, 1434, 2581, 2581, 2581, 1310, 2582, 1310, 1310, 2583,
3007      4021, 2414, 2414, 2414, 2413, 2415, 3934, 3944, 2416, 1448,
3008      1448, 1448, 2418, 2418, 2418, 1310, 2419, 2580, 3946, 2420,
3009      1815, 2424, 2424, 2424, 1310, 2425, 1310, 1450, 2426, 2427,
3010      2427, 2427, 2588, 2588, 2588, 3948, 2589, 3955, 1310, 2590,
3011      2431, 2431, 2431, 1310, 2432, 3950, 2428, 2433, 2594, 2594,
3012      2594, 1473, 1473, 1473, 2597, 2597, 2597, 2440, 2440, 2440,
3013      1310, 2441, 3954, 1310, 2442, 2595, 1505, 1505, 1505, 1475,
3014      1310, 3975, 2598, 1510, 1510, 1510, 2584, 2447, 2447, 2447,
3015
3016      1310, 2605, 2605, 2605, 1507, 2606, 3952, 1310, 2607, 1310,
3017      1310, 1512, 1813, 1310, 2448, 1529, 1529, 1529, 3956, 3957,
3018      1537, 1537, 1537, 2456, 2456, 2456, 3978, 2459, 2459, 2459,
3019      1812, 2460, 3958, 1531, 2461, 1310, 2596, 1310, 1539, 3935,
3020      1811, 2457, 2602, 1310, 4029, 2603, 2465, 2465, 2465, 2619,
3021      2619, 2619, 3960, 2620, 3961, 4006, 2621, 1564, 1564, 1564,
3022      2468, 2468, 2468, 2466, 2623, 2623, 2623, 2470, 2470, 2470,
3023      2624, 2624, 2624, 3959, 1310, 1566, 4085, 4085, 4085, 4085,
3024      4085, 4085, 2612, 2613, 1577, 1577, 1577, 2625, 4085, 4085,
3025      4085, 3936, 3980, 4085, 1310, 3994, 4085, 2477, 2477, 2477,
3026
3027      1808, 1310, 1579, 1310, 1310, 4085, 2631, 2631, 2631, 1310,
3028      2632, 1310, 1310, 2633, 2478, 2635, 2635, 2635, 2482, 2482,
3029      2482, 3963, 2622, 2639, 2639, 2639, 1310, 3969, 2626, 1310,
3030      2486, 2486, 2486, 2636, 2487, 1310, 2483, 2488, 2489, 2489,
3031      2489, 2640, 3965, 1310, 2627, 2641, 2641, 2641, 2628, 2642,
3032      2629, 1807, 2643, 3982, 4009, 2490, 2491, 2491, 2491, 3966,
3033      2492, 1310, 3962, 2493, 1628, 1628, 1628, 2495, 2495, 2495,
3034      2645, 2645, 2645, 3967, 2646, 1310, 3968, 2647, 1638, 1638,
3035      1638, 3970, 1630, 1310, 2496, 2501, 2501, 2501, 2503, 2503,
3036      2503, 2652, 2652, 2652, 3996, 2653, 1640, 3964, 2654, 1656,
3037
3038      1656, 1656, 1310, 2502, 1310, 2504, 2516, 2516, 2516, 1310,
3039      4031, 2666, 2666, 2666, 1310, 2667, 2644, 1658, 2668, 3977,
3040      2518, 2518, 2518, 2517, 2519, 1310, 1310, 2520, 4037, 1802,
3041      2648, 2521, 2521, 2521, 1801, 2522, 1310, 3971, 2523, 1675,
3042      1675, 1675, 2671, 2671, 2671, 3979, 2529, 2529, 2529, 2665,
3043      2530, 1800, 3972, 2531, 2532, 2532, 2532, 1677, 3974, 3976,
3044      1310, 2684, 2684, 2684, 2685, 2685, 2685, 2538, 2538, 2538,
3045      2539, 2539, 2539, 2541, 2541, 2541, 2690, 2690, 2690, 2692,
3046      2692, 2692, 2545, 2545, 2545, 2546, 2546, 2546, 2550, 2550,
3047      2550, 2696, 2696, 2696, 2555, 2555, 2555, 2556, 2556, 2556,
3048
3049      2558, 2558, 2558, 2559, 2559, 2559, 1310, 2670, 2705, 2705,
3050      2705, 2707, 2707, 2707, 2566, 2566, 2566, 2708, 2708, 2708,
3051      1310, 2709, 1310, 1799, 2710, 1310, 2706, 2711, 2711, 2711,
3052      1798, 2567, 4085, 4085, 4085, 4085, 4085, 4085, 2715, 2715,
3053      2715, 1395, 1395, 1395, 2712, 2717, 2717, 2717, 1310, 4085,
3054      3984, 1310, 4085, 2574, 2574, 2574, 1310, 2575, 4002, 1397,
3055      2576, 3990, 2718, 1404, 1404, 1404, 3985, 1414, 1414, 1414,
3056      1422, 1422, 1422, 1432, 1432, 1432, 2581, 2581, 2581, 1310,
3057      2582, 1406, 3997, 2583, 2713, 1416, 1310, 2714, 1424, 1797,
3058      1796, 1434, 2723, 2723, 2723, 2588, 2588, 2588, 3986, 2589,
3059
3060      3987, 1310, 2590, 1310, 2720, 2729, 2729, 2729, 2716, 1310,
3061      2724, 2594, 2594, 2594, 1795, 2719, 2733, 2733, 2733, 1310,
3062      2734, 1789, 2730, 2735, 2736, 2736, 2736, 3998, 2595, 2597,
3063      2597, 2597, 2721, 3988, 4022, 2722, 1505, 1505, 1505, 2742,
3064      2742, 2742, 2737, 2744, 2744, 2744, 1310, 2598, 2605, 2605,
3065      2605, 4000, 2606, 3999, 1507, 2607, 3989, 2743, 1310, 1310,
3066      2745, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
3067      2750, 2750, 2750, 1529, 1529, 1529, 4001, 4003, 4085, 1310,
3068      1310, 4085, 3992, 1788, 4085, 1310, 1310, 2751, 1787, 1310,
3069      2746, 1531, 1537, 1537, 1537, 3993, 4004, 2741, 2754, 2754,
3070
3071      2754, 2759, 2759, 2759, 2619, 2619, 2619, 4042, 2620, 4023,
3072      1539, 2621, 1564, 1564, 1564, 2755, 3995, 2747, 1310, 2749,
3073      2623, 2623, 2623, 2624, 2624, 2624, 2748, 2764, 2764, 2764,
3074      1566, 2761, 2761, 2761, 2752, 2762, 3991, 1310, 2763, 1310,
3075      2625, 4085, 4085, 4085, 2765, 4085, 4085, 4085, 2768, 2768,
3076      2768, 2770, 2770, 2770, 4085, 4085, 4085, 2753, 4085, 2635,
3077      2635, 2635, 4085, 2631, 2631, 2631, 2769, 2632, 2771, 1310,
3078      2633, 4085, 2760, 2639, 2639, 2639, 1310, 2636, 2641, 2641,
3079      2641, 4008, 2642, 4025, 4013, 2643, 2775, 2775, 2775, 1310,
3080      1310, 2640, 1310, 2766, 2645, 2645, 2645, 2767, 2646, 1310,
3081
3082      1310, 2647, 4024, 1310, 2776, 1638, 1638, 1638, 2652, 2652,
3083      2652, 1310, 2653, 1785, 4005, 2654, 1656, 1656, 1656, 2796,
3084      2797, 2772, 2798, 1640, 2666, 2666, 2666, 4007, 2667, 1784,
3085      2799, 2668, 1783, 4011, 1658, 4010, 4012, 2800, 1675, 1675,
3086      1675, 2671, 2671, 2671, 2684, 2684, 2684, 2685, 2685, 2685,
3087      4014, 1310, 2777, 2821, 2821, 2821, 1677, 1310, 4015, 1310,
3088      2690, 2690, 2690, 2692, 2692, 2692, 2825, 2825, 2825, 2696,
3089      2696, 2696, 2829, 2829, 2829, 2832, 2832, 2832, 2790, 2705,
3090      2705, 2705, 2707, 2707, 2707, 2708, 2708, 2708, 4042, 2709,
3091      4030, 1782, 2710, 2711, 2711, 2711, 1310, 2706, 4016, 2834,
3092
3093      2834, 2834, 1310, 2835, 2803, 2802, 2836, 2837, 2837, 2837,
3094      2712, 2839, 2839, 2839, 2715, 2715, 2715, 2841, 2841, 2841,
3095      2717, 2717, 2717, 1310, 2838, 2843, 2843, 2843, 2840, 2844,
3096      1310, 1310, 2845, 1310, 4017, 2842, 1310, 2718, 2846, 2846,
3097      2846, 1414, 1414, 1414, 1422, 1422, 1422, 1432, 1432, 1432,
3098      2723, 2723, 2723, 2729, 2729, 2729, 2847, 4026, 4027, 1416,
3099      1310, 4018, 1424, 4032, 1310, 1434, 1310, 1310, 2724, 4019,
3100      2730, 2855, 2855, 2855, 4020, 2856, 4028, 1310, 2857, 2733,
3101      2733, 2733, 4034, 2734, 1774, 1310, 2735, 2736, 2736, 2736,
3102      2868, 2868, 2868, 1505, 1505, 1505, 2742, 2742, 2742, 2744,
3103
3104      2744, 2744, 2882, 2882, 2882, 2737, 2848, 2869, 2850, 4036,
3105      4038, 1507, 2849, 4078, 2743, 1773, 2745, 2871, 2871, 2871,
3106      2883, 2872, 1310, 1310, 2873, 2877, 2877, 2877, 2750, 2750,
3107      2750, 2879, 2879, 2879, 1310, 2880, 4039, 1758, 2881, 1537,
3108      1537, 1537, 2878, 1757, 1310, 2751, 2754, 2754, 2754, 1310,
3109      1310, 2870, 2885, 2885, 2885, 4040, 2886, 1539, 1310, 2887,
3110      2890, 2890, 2890, 2755, 2759, 2759, 2759, 2892, 2892, 2892,
3111      4033, 2761, 2761, 2761, 1310, 2762, 4048, 2891, 2763, 2764,
3112      2764, 2764, 2894, 2894, 2894, 2893, 2895, 4044, 4047, 2896,
3113      2897, 2897, 2897, 2899, 2899, 2899, 2765, 2768, 2768, 2768,
3114
3115      4074, 2884, 2770, 2770, 2770, 4035, 4058, 2898, 1310, 1310,
3116      2900, 2775, 2775, 2775, 1310, 2769, 2901, 2901, 2901, 2771,
3117      2902, 1752, 4041, 2903, 1638, 1638, 1638, 1310, 1751, 2776,
3118      1310, 1656, 1656, 1656, 1675, 1675, 1675, 2821, 2821, 2821,
3119      1749, 1310, 1640, 2953, 2953, 2953, 2825, 2825, 2825, 1658,
3120      4049, 1310, 1677, 2829, 2829, 2829, 2832, 2832, 2832, 2961,
3121      2961, 2961, 2834, 2834, 2834, 4054, 2835, 1748, 1310, 2836,
3122      2837, 2837, 2837, 2963, 2963, 2963, 2962, 2964, 4043, 4055,
3123      2965, 2839, 2839, 2839, 4056, 1746, 2934, 2838, 2841, 2841,
3124      2841, 2907, 2920, 2966, 2966, 2966, 1310, 2967, 2840, 4059,
3125
3126      2968, 2843, 2843, 2843, 4050, 2844, 2842, 1310, 2845, 2846,
3127      2846, 2846, 1414, 1414, 1414, 1422, 1422, 1422, 1432, 1432,
3128      1432, 2974, 2974, 2974, 2855, 2855, 2855, 2847, 2856, 1310,
3129      1416, 2857, 4051, 1424, 1310, 1310, 1434, 1310, 2975, 2988,
3130      2988, 2988, 2868, 2868, 2868, 2990, 2990, 2990, 1310, 2991,
3131      1745, 1310, 2992, 2993, 2993, 2993, 2989, 1310, 1310, 2869,
3132      2871, 2871, 2871, 1744, 2872, 4066, 1310, 2873, 4057, 1310,
3133      2971, 2994, 4062, 1741, 2969, 2877, 2877, 2877, 1310, 2998,
3134      2998, 2998, 2970, 2999, 4052, 1310, 3000, 2879, 2879, 2879,
3135      4064, 2880, 2878, 4065, 2881, 2882, 2882, 2882, 1537, 1537,
3136
3137      1537, 2885, 2885, 2885, 4053, 2886, 4060, 4063, 2887, 3009,
3138      3009, 3009, 1310, 2883, 4061, 1310, 1539, 2890, 2890, 2890,
3139      3011, 3011, 3011, 4070, 3012, 4068, 3010, 3013, 2892, 2892,
3140      2892, 2894, 2894, 2894, 2891, 2895, 1310, 1740, 2896, 2897,
3141      2897, 2897, 1310, 3014, 3014, 3014, 2893, 3015, 4067, 1310,
3142      3016, 2899, 2899, 2899, 4075, 4082, 2898, 1738, 3017, 3017,
3143      3017, 3007, 3018, 1310, 4079, 3019, 1310, 1734, 2900, 2901,
3144      2901, 2901, 1310, 2902, 4071, 4072, 2903, 3027, 3027, 3027,
3145      3029, 3029, 3029, 1638, 1638, 1638, 3032, 3032, 3032, 3033,
3146      3033, 3033, 1733, 1729, 3028, 1728, 4069, 3030, 1656, 1656,
3147
3148      1656, 1640, 3058, 3058, 3058, 4073, 3034, 3060, 3060, 3060,
3149      3078, 3078, 3078, 2953, 2953, 2953, 1658, 1310, 1310, 3059,
3150      3083, 3083, 3083, 1727, 1726, 3061, 2961, 2961, 2961, 3087,
3151      3087, 3087, 1725, 3088, 4082, 1724, 3089, 2963, 2963, 2963,
3152      1310, 2964, 1723, 2962, 2965, 2966, 2966, 2966, 1310, 2967,
3153      4076, 4077, 2968, 1722, 1721, 3031, 1414, 1414, 1414, 3045,
3154      1422, 1422, 1422, 1432, 1432, 1432, 3098, 3098, 3098, 2974,
3155      2974, 2974, 1720, 4080, 1416, 3100, 3100, 3100, 1424, 3101,
3156      1719, 1434, 3102, 3099, 1718, 1717, 2975, 3103, 3103, 3103,
3157      2988, 2988, 2988, 3116, 3116, 3116, 1310, 3117, 1716, 3096,
3158
3159      3118, 2990, 2990, 2990, 3104, 2991, 1715, 2989, 2992, 2993,
3160      2993, 2993, 3095, 3120, 3120, 3120, 2998, 2998, 2998, 1714,
3161      2999, 1713, 1712, 3000, 3094, 1711, 1709, 2994, 1708, 4081,
3162      3121, 3129, 3129, 3129, 3009, 3009, 3009, 3132, 3132, 3132,
3163      1707, 3133, 1706, 1705, 3134, 1702, 3011, 3011, 3011, 3130,
3164      3012, 3010, 1701, 3013, 3014, 3014, 3014, 1700, 3015, 1699,
3165      1698, 3016, 3017, 3017, 3017, 1697, 3018, 1696, 1695, 3019,
3166      3027, 3027, 3027, 3148, 3148, 3148, 1694, 3149, 1693, 1692,
3167      3150, 3029, 3029, 3029, 3151, 3151, 3151, 3028, 3152, 1691,
3168      1690, 3153, 1638, 1638, 1638, 3032, 3032, 3032, 3030, 3033,
3169
3170      3033, 3033, 3155, 3155, 3155, 1689, 3156, 1688, 1685, 3157,
3171      1640, 1656, 1656, 1656, 1684, 1683, 3034, 3058, 3058, 3058,
3172      3179, 3179, 3179, 1682, 3180, 1681, 1680, 3181, 1310, 1658,
3173      3060, 3060, 3060, 1663, 3059, 3184, 3184, 3184, 3078, 3078,
3174      3078, 3200, 3200, 3200, 3083, 3083, 3083, 1655, 3061, 3204,
3175      3204, 3204, 3185, 1920, 1654, 3154, 1653, 3087, 3087, 3087,
3176      1648, 3088, 1647, 3166, 3089, 1414, 1414, 1414, 3219, 3219,
3177      3219, 1432, 1432, 1432, 3098, 3098, 3098, 3223, 3223, 3223,
3178      1643, 3224, 1637, 1416, 3225, 1636, 3220, 1632, 1627, 1434,
3179      1623, 3099, 3100, 3100, 3100, 1622, 3101, 1614, 1600, 3102,
3180
3181      3103, 3103, 3103, 3226, 3226, 3226, 1599, 3227, 1598, 1595,
3182      3228, 3116, 3116, 3116, 1589, 3117, 1584, 3104, 3118, 3120,
3183      3120, 3120, 3241, 3241, 3241, 1576, 3242, 1575, 1574, 3243,
3184      1573, 1572, 3218, 3221, 1571, 1570, 3121, 3129, 3129, 3129,
3185      3132, 3132, 3132, 1569, 3133, 1568, 1563, 3134, 3264, 3264,
3186      3264, 1562, 3148, 3148, 3148, 3130, 3149, 1557, 1556, 3150,
3187      3151, 3151, 3151, 1550, 3152, 3265, 1547, 3153, 1638, 1638,
3188      1638, 3155, 3155, 3155, 1542, 3156, 1541, 1536, 3157, 1656,
3189      1656, 1656, 1525, 3179, 3179, 3179, 1640, 3180, 1520, 1519,
3190      3181, 3305, 3305, 3305, 3184, 3184, 3184, 1658, 3307, 3307,
3191
3192      3307, 1518, 3308, 1514, 1509, 3309, 1498, 1492, 3306, 1920,
3193      1491, 3185, 1920, 3318, 3318, 3318, 1920, 3200, 3200, 3200,
3194      3274, 3320, 3320, 3320, 3321, 3321, 3321, 1490, 1486, 3283,
3195      3204, 3204, 3204, 3323, 3323, 3323, 1414, 1414, 1414, 3219,
3196      3219, 3219, 1432, 1432, 1432, 3223, 3223, 3223, 1485, 3224,
3197      1484, 1472, 3225, 1471, 1416, 1470, 1469, 3220, 1468, 1467,
3198      1434, 3226, 3226, 3226, 1466, 3227, 1465, 1464, 3228, 3339,
3199      3339, 3339, 3351, 3351, 3351, 3241, 3241, 3241, 1458, 3242,
3200      1403, 1399, 3243, 3353, 3353, 3353, 3340, 1394, 3336, 3352,
3201      3264, 3264, 3264, 1393, 3372, 3372, 3372, 1388, 3373, 1387,
3202
3203      3354, 3374, 3383, 3383, 3383, 1386, 1385, 3265, 1384, 1383,
3204      3337, 1656, 1656, 1656, 3305, 3305, 3305, 3409, 3409, 3409,
3205      3384, 3410, 1371, 1370, 3411, 1369, 3307, 3307, 3307, 1658,
3206      3308, 3306, 1920, 3309, 1368, 1920, 3318, 3318, 3318, 3320,
3207      3320, 3320, 1367, 1366, 1920, 3321, 3321, 3321, 3323, 3323,
3208      3323, 3434, 3434, 3434, 1432, 1432, 1432, 3339, 3339, 3339,
3209      3438, 3438, 3438, 1365, 3439, 1364, 1363, 3440, 1362, 3435,
3210      1361, 1360, 1434, 1359, 3340, 3441, 3441, 3441, 3391, 1918,
3211      1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1358, 1357,
3212      1918, 1356, 3442, 1355, 1354, 1918, 1918, 1918, 1920, 1918,
3213
3214      3351, 3351, 3351, 3450, 3450, 3450, 1351, 3451, 1350, 1349,
3215      3452, 3453, 3453, 3453, 1348, 3454, 1347, 3352, 3455, 1346,
3216      1345, 3436, 3353, 3353, 3353, 1918, 1918, 1918, 1918, 1918,
3217      1918, 1918, 1918, 1918, 1918, 1918, 1344, 1343, 1918, 3354,
3218      3383, 3383, 3383, 1918, 1918, 1918, 1920, 1918, 3372, 3372,
3219      3372, 1340, 3373, 1339, 1338, 3374, 1337, 1336, 3384, 3487,
3220      3487, 3487, 3409, 3409, 3409, 1335, 3410, 1334, 1333, 3411,
3221      3522, 3522, 3522, 1918, 1918, 1332, 1331, 3488, 1324, 1320,
3222      1920, 1918, 1918, 1918, 1918, 1918, 3509, 1918, 1918, 1918,
3223      1319, 1318, 1918, 3523, 3523, 3523, 1317, 1918, 1918, 1918,
3224
3225      1920, 1918, 3434, 3434, 3434, 1432, 1432, 1432, 3438, 3438,
3226      3438, 1316, 3439, 1313, 1311, 3440, 3522, 3522, 3522, 1310,
3227      3435, 1308, 1306, 1434, 3441, 3441, 3441, 1918, 1918, 1918,
3228      1918, 1918, 1918, 1918, 1918, 1918, 1918, 3509, 1305, 1304,
3229      1918, 3442, 3523, 3523, 3523, 1918, 1918, 1918, 1920, 1918,
3230      1303, 3536, 3536, 3536, 1302, 3537, 1300, 3530, 3538, 3450,
3231      3450, 3450, 1297, 3451, 1295, 1294, 3452, 3453, 3453, 3453,
3232      1293, 3454, 1292, 1291, 3455, 1918, 1918, 3487, 3487, 3487,
3233      3583, 3583, 3583, 3596, 3596, 3596, 3598, 3598, 3598, 3536,
3234      3536, 3536, 1288, 3537, 1285, 3488, 3538, 1284, 1920, 1921,
3235
3236      1283, 3597, 1281, 3599, 3612, 3612, 3612, 3622, 3622, 3622,
3237      3640, 3640, 3640, 3583, 3583, 3583, 3596, 3596, 3596, 1280,
3238      1277, 3613, 1276, 1274, 3623, 3598, 3598, 3598, 1310, 1271,
3239      1270, 1920, 1269, 1265, 3597, 1264, 3652, 3652, 3652, 1262,
3240      3653, 1261, 3599, 3654, 3612, 3612, 3612, 3667, 3667, 3667,
3241      1260, 3668, 1259, 1257, 3669, 3622, 3622, 3622, 3640, 3640,
3242      3640, 3613, 3678, 3678, 3678, 2130, 3679, 1256, 1255, 3680,
3243      1254, 1253, 3623, 3652, 3652, 3652, 1310, 3653, 1252, 1249,
3244      3654, 3667, 3667, 3667, 1248, 3668, 1246, 1243, 3669, 3678,
3245      3678, 3678, 1241, 3679, 1240, 3695, 3680, 3892, 3892, 3892,
3246
3247      3892, 3892, 3892, 1239, 3909, 1238, 1237, 3910, 4045, 4045,
3248      4045, 4045, 4045, 4045, 1232, 1310, 1230, 1229, 1310, 4083,
3249      4083, 4083, 4083, 4083, 4083, 1228, 4046, 1226, 1225, 4046,
3250      1224, 1221, 1220, 1219, 1218, 1216, 1215, 4084, 1214, 1212,
3251      4084,  324,  324,  324,  324,  324,  324,  324,  324,  324,
3252       325,  325,  325,  325,  325,  325,  325,  325,  325,  330,
3253       330,  330,  330,  330,  330,  330,  330,  330,  333,  333,
3254       333,  333,  333,  333,  333,  333,  333,  336,  336,  336,
3255       336,  336,  336,  336,  336,  336,  339,  339,  339,  339,
3256       339,  339,  339,  339,  339,  346,  346,  346,  346,  346,
3257
3258       346,  346,  346,  346,  353,  353,  353,  353,  353,  353,
3259       353,  353,  353,  358,  358,  358,  358,  358,  358,  358,
3260       358,  358,  377,  377,  377,  377,  377,  377,  377,  377,
3261       377,  383,  383,  383,  383,  383,  383,  383,  383,  383,
3262       391,  391,  391,  391,  391,  391,  391,  391,  391,  399,
3263       399,  399,  399,  399,  399,  399,  399,  399,  407,  407,
3264       407,  407,  407,  407,  407,  407,  407,  411,  411,  411,
3265       411,  411,  411,  411,  411,  411,  417,  417,  417,  417,
3266       417,  417,  417,  417,  417,  423,  423,  423,  423,  423,
3267       423,  423,  423,  423,  429,  429,  429,  429,  429,  429,
3268
3269       429,  429,  429,  435,  435,  435,  435,  435,  435,  435,
3270       435,  435,  442,  442,  442,  442,  442,  442,  442,  442,
3271       442,  447,  447,  447,  447,  447,  447,  447,  447,  447,
3272       454,  454,  454,  454,  454,  454,  454,  454,  454,  460,
3273       460,  460,  460,  460,  460,  460,  460,  460,  467,  467,
3274       467,  467,  467,  467,  467,  467,  467,  476,  476,  476,
3275       476,  476,  476,  476,  476,  476,  482,  482,  482,  482,
3276       482,  482,  482,  482,  482,  493,  493,  493,  493,  493,
3277       493,  493,  493,  493,  500,  500,  500,  500,  500,  500,
3278       500,  500,  500,  504,  504,  504,  504,  504,  504,  504,
3279
3280       504,  504,  511,  511,  511,  511,  511,  511,  511,  511,
3281       511,  519,  519,  519,  519,  519,  519,  519,  519,  519,
3282       527,  527,  527,  527,  527,  527,  527,  527,  527,  533,
3283       533,  533,  533,  533,  533,  533,  533,  533,  539,  539,
3284       539,  539,  539,  539,  539,  539,  539,  543,  543,  543,
3285       543,  543,  543,  543,  543,  543,  551,  551,  551,  551,
3286       551,  551,  551,  551,  551,  558,  558,  558,  558,  558,
3287       558,  558,  558,  558,  565,  565,  565,  565,  565,  565,
3288       565,  565,  565,  570,  570,  570,  570,  570,  570,  570,
3289       570,  570,  576,  576,  576,  576,  576,  576,  576,  576,
3290
3291       576,  581,  581,  581,  581,  581,  581,  581,  581,  581,
3292       587,  587,  587,  587,  587,  587,  587,  587,  587,  592,
3293       592,  592,  592,  592,  592,  592,  592,  592,  598,  598,
3294       598,  598,  598,  598,  598,  598,  598,  607,  607,  607,
3295       607,  607,  607,  607,  607,  607,  614,  614,  614,  614,
3296       614,  614,  614,  614,  614,  618,  618,  618,  618,  618,
3297       618,  618,  618,  618,  629,  629,  629,  629,  629,  629,
3298       629,  629,  629,  637,  637,  637,  637,  637,  637,  637,
3299       637,  637,  644,  644,  644,  644,  644,  644,  644,  644,
3300       644,  649,  649,  649,  649,  649,  649,  649,  649,  649,
3301
3302       655,  655,  655,  655,  655,  655,  655,  655,  655,  663,
3303       663,  663,  663,  663,  663,  663,  663,  663,  669,  669,
3304       669,  669,  669,  669,  669,  669,  669,  674,  674,  674,
3305       674,  674,  674,  674,  674,  674,  681,  681,  681,  681,
3306       681,  681,  681,  681,  681,  686,  686,  686,  686,  686,
3307       686,  686,  686,  686,  692,  692,  692,  692,  692,  692,
3308       692,  692,  692,  699,  699,  699,  699,  699,  699,  699,
3309       699,  699,  706,  706,  706,  706,  706,  706,  706,  706,
3310       706,  713,  713,  713,  713,  713,  713,  713,  713,  713,
3311       721,  721,  721,  721,  721,  721,  721,  721,  721,  339,
3312
3313       339,  339,  339,  339,  339,  339,  339,  339,  732,  732,
3314       732,  732,  732,  732,  732,  732,  732,  738,  738,  738,
3315       738,  738,  738,  738,  738,  738,  744,  744,  744,  744,
3316       744,  744,  744,  744,  744,  749,  749,  749,  749,  749,
3317       749,  749,  749,  749,  762,  762,  762,  762,  762,  762,
3318       762,  762,  762,  768,  768,  768,  768,  768,  768,  768,
3319       768,  768,  788,  788,  788, 1209, 1205, 1204,  788,  831,
3320       831,  831, 1202, 1201, 1200,  831,  839,  839,  839, 1197,
3321      1196, 1194,  839,  848,  848,  848, 1193, 1187, 1186,  848,
3322       852,  852,  852, 1185, 1183, 1182,  852,  858,  858,  858,
3323
3324      1181, 1176, 1175,  858,  864,  864,  864, 1171, 1169, 1168,
3325       864,  869,  869,  869, 1167, 1166, 1165,  869,  875,  875,
3326       875, 1164, 1163, 1162,  875,  885,  885,  885, 1161, 1160,
3327      1157,  885,  902,  902,  902, 1154, 1153, 1151,  902,  906,
3328       906,  906, 1150, 1149, 1148,  906,  916,  916,  916, 1147,
3329      1142, 1140,  916,  922,  922,  922, 1139, 1138, 1137,  922,
3330       926,  926,  926, 1135, 1134, 1133,  926,  934,  934,  934,
3331      1131, 1130, 1129,  934,  939,  939,  939, 1128, 1126, 1123,
3332       939,  944,  944,  944, 1122, 1120, 1118,  944,  949,  949,
3333       949, 1116, 1115, 1114,  949,  960,  960,  960, 1113, 1112,
3334
3335      1111,  960,  970,  970,  970, 1110, 1108, 1107,  970,  978,
3336       978,  978, 1106, 1105, 1101,  978,  983,  983,  983, 1100,
3337      1099, 1097,  983,  994,  994,  994, 1096, 1095, 1094,  994,
3338      1000, 1000, 1000, 1091, 1090, 1089, 1000, 1005, 1005, 1005,
3339      1084, 1082, 1081, 1005, 1012, 1012, 1012, 1080, 1074, 1073,
3340      1012, 1020, 1020, 1020, 1072, 1071, 1063, 1020, 1028, 1028,
3341      1028, 1062, 1060, 1057, 1028, 1034, 1034, 1034, 1056, 1055,
3342      1054, 1034, 1039, 1039, 1039, 1049, 1046, 1048, 1039, 1045,
3343      1045, 1045, 1045, 1045, 1045, 1045, 1041, 1045,  788,  788,
3344       788, 1040, 1038,  805,  788, 1061, 1036, 1035, 1033, 1061,
3345
3346       831,  831,  831, 1031, 1030, 1029,  831, 1109, 1027, 1026,
3347      1023, 1109,  839,  839,  839, 1022, 1021, 1019,  839, 1117,
3348      1018, 1016, 1015, 1117,  848,  848,  848, 1014, 1013, 1011,
3349       848, 1121, 1010, 1009, 1008, 1121,  852,  852,  852, 1007,
3350      1006, 1004,  852, 1127, 1002, 1001,  999, 1127,  858,  858,
3351       858,  995,  993,  989,  858, 1132,  985,  984,  982, 1132,
3352       864,  864,  864,  980,  979,  977,  864, 1136,  975,  974,
3353       973, 1136,  869,  869,  869,  972,  971,  969,  869, 1141,
3354       961,  959,  954, 1141,  875,  875,  875,  953,  952,  951,
3355       875, 1152,  950,  948,  946, 1152,  885,  885,  885,  945,
3356
3357       943,  941,  885, 1170,  940,  938,  936, 1170,  902,  902,
3358       902,  935,  933,  932,  902, 1174,  929,  928,  927, 1174,
3359       906,  906,  906,  925,  923,  921,  906, 1184,  919,  918,
3360       917, 1184,  916,  916,  916,  915,  914,  910,  916, 1192,
3361       909,  908,  907, 1192,  922,  922,  922,  905,  904,  903,
3362       922, 1195,  901,  900,  899, 1195,  926,  926,  926,  893,
3363       889,  888,  926, 1203,  884,  880,  879, 1203,  934,  934,
3364       934,  878,  877,  876,  934, 1208,  874,  872,  871, 1208,
3365       939,  939,  939,  870,  868,  866,  939, 1213,  865,  863,
3366       861, 1213,  944,  944,  944,  860,  859,  857,  944, 1217,
3367
3368       855,  854,  853, 1217,  949,  949,  949,  851,  849,  847,
3369       949, 1227,  846,  844,  843, 1227,  960,  960,  960,  842,
3370       841,  840,  960, 1231,  838,  833,  832, 1231,  970,  970,
3371       970,  830, 4085, 4085,  970, 1242,  805,  790,  789, 1242,
3372       978,  978,  978,  787,  786,  780,  978, 1247,  779,  780,
3373       779, 1247,  983,  983,  983,  778,  777, 4085,  983, 1258,
3374      4085, 4085, 4085, 1258,  994,  994,  994, 4085, 4085, 4085,
3375       994, 1263, 4085, 4085, 4085, 1263, 1000, 1000, 1000, 4085,
3376      4085, 4085, 1000, 1268, 4085, 4085, 4085, 1268, 1005, 1005,
3377      1005, 4085, 4085, 4085, 1005, 1275, 4085, 4085, 4085, 1275,
3378
3379      1012, 1012, 1012, 4085, 4085, 4085, 1012, 1282, 4085, 4085,
3380      4085, 1282, 1020, 1020, 1020, 4085, 4085, 4085, 1020, 1290,
3381      4085, 4085, 4085, 1290, 1028, 1028, 1028, 4085, 4085, 4085,
3382      1028, 1296, 4085, 4085, 4085, 1296, 1034, 1034, 1034, 4085,
3383      4085, 4085, 1034, 1301, 4085, 4085, 4085, 1301, 1039, 1039,
3384      1039, 4085, 4085, 4085, 1039, 1307, 4085, 4085, 4085, 1307,
3385      1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1315,
3386      4085, 4085, 4085, 4085, 1315,  788,  788,  788, 4085, 4085,
3387      4085,  788, 1326, 1326, 1326, 1326, 4085, 4085, 1326, 1326,
3388       831,  831,  831,  831, 4085,  831, 4085,  831, 1380, 1380,
3389
3390      1380, 1380, 4085, 4085, 1380, 1380,  839,  839,  839, 4085,
3391      4085, 4085,  839, 1390, 1390, 1390, 1390, 4085, 4085, 1390,
3392      1390,  848,  848,  848, 4085, 4085, 4085,  848, 1396, 1396,
3393      1396, 1396, 4085, 4085, 1396, 1396,  852,  852,  852, 4085,
3394      4085, 4085,  852, 1405, 1405, 1405, 1405, 4085, 4085, 1405,
3395      1405,  858,  858,  858,  858, 4085,  858, 4085,  858, 1415,
3396      1415, 1415, 1415, 4085, 4085, 1415, 1415,  864,  864,  864,
3397       864, 4085,  864, 4085,  864, 1423, 1423, 1423, 1423, 4085,
3398      4085, 1423, 1423,  869,  869,  869,  869, 4085,  869, 4085,
3399       869, 1433, 1433, 1433, 1433, 4085, 4085, 1433, 1433,  875,
3400
3401       875,  875,  875, 4085,  875, 4085,  875, 1449, 1449, 1449,
3402      1449, 4085, 4085, 1449, 1449,  885,  885,  885, 4085, 4085,
3403      4085,  885, 1474, 1474, 1474, 1474, 4085, 4085, 1474, 1474,
3404      1481, 1481, 1481, 1481, 4085, 4085, 1481, 1481,  906,  906,
3405       906, 4085, 4085, 4085,  906, 1494, 1494, 1494, 1494, 4085,
3406      4085, 1494, 1494,  916,  916,  916, 4085, 4085, 4085,  916,
3407      1506, 1506, 1506, 1506, 4085, 4085, 1506, 1506,  922,  922,
3408       922, 4085, 4085, 4085,  922, 1511, 1511, 1511, 1511, 4085,
3409      4085, 1511, 1511,  926,  926,  926, 4085, 4085, 4085,  926,
3410      1522, 1522, 1522, 1522, 4085, 4085, 1522, 1522,  934,  934,
3411
3412       934, 4085, 4085, 4085,  934, 1530, 1530, 1530, 1530, 4085,
3413      4085, 1530, 1530,  939,  939,  939, 4085, 4085, 4085,  939,
3414      1538, 1538, 1538, 1538, 4085, 4085, 1538, 1538,  944,  944,
3415       944, 4085, 4085, 4085,  944, 1544, 1544, 1544, 1544, 4085,
3416      4085, 1544, 1544,  949,  949,  949, 4085, 4085, 4085,  949,
3417      1559, 1559, 1559, 1559, 4085, 4085, 1559, 1559,  960,  960,
3418       960, 4085, 4085, 4085,  960, 1565, 1565, 1565, 1565, 4085,
3419      4085, 1565, 1565,  970,  970,  970, 4085, 4085, 4085,  970,
3420      1578, 1578, 1578, 1578, 4085, 4085, 1578, 1578,  978,  978,
3421       978, 4085, 4085, 4085,  978, 1586, 1586, 1586, 1586, 4085,
3422
3423      4085, 1586, 1586,  983,  983,  983, 4085, 4085, 4085,  983,
3424      1602, 1602, 1602, 1602, 4085, 4085, 1602, 1602,  994,  994,
3425       994,  994, 4085,  994, 4085,  994, 1611, 1611, 1611, 1611,
3426      4085, 4085, 1611, 1611, 1000, 1000, 1000, 4085, 4085, 4085,
3427      1000, 1619, 1619, 1619, 1619, 4085, 4085, 1619, 1619, 1005,
3428      1005, 1005, 4085, 4085, 4085, 1005, 1629, 1629, 1629, 1629,
3429      4085, 4085, 1629, 1629, 1012, 1012, 1012, 4085, 4085, 4085,
3430      1012, 1639, 1639, 1639, 1639, 4085, 4085, 1639, 1639, 1020,
3431      1020, 1020, 4085, 4085, 4085, 1020, 1650, 1650, 1650, 1650,
3432      4085, 4085, 1650, 1650, 1028, 1028, 1028, 4085, 4085, 4085,
3433
3434      1028, 1657, 1657, 1657, 1657, 4085, 4085, 1657, 1657, 1034,
3435      1034, 1034, 4085, 4085, 4085, 1034, 1665, 1665, 1665, 1665,
3436      4085, 4085, 1665, 1665, 1039, 1039, 1039, 1039, 4085, 1039,
3437      4085, 1039, 1676, 1676, 1676, 1676, 4085, 4085, 1676, 1676,
3438      1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1315,
3439      4085, 1315, 4085, 4085, 1315,  788,  788,  788, 4085, 4085,
3440      4085,  788, 1326, 1326, 1326, 1326, 4085, 4085, 1326, 1326,
3441       831,  831,  831, 4085, 4085, 4085,  831, 1380, 1380, 1380,
3442      1380, 4085, 4085, 1380, 1380,  839,  839,  839, 4085, 4085,
3443      4085,  839, 1390, 1390, 1390, 1390, 4085, 4085, 1390, 1390,
3444
3445       848,  848,  848, 4085, 4085, 4085,  848, 1396, 1396, 1396,
3446      1396, 4085, 4085, 1396, 1396,  852,  852,  852, 4085, 4085,
3447      4085,  852, 1405, 1405, 1405, 1405, 4085, 4085, 1405, 1405,
3448       858,  858,  858, 4085, 4085, 4085,  858, 1415, 1415, 1415,
3449      1415, 4085, 4085, 1415, 1415, 1423, 1423, 1423, 1423, 4085,
3450      4085, 1423, 1423,  869,  869,  869, 4085, 4085, 4085,  869,
3451      1433, 1433, 1433, 1433, 4085, 4085, 1433, 1433,  875,  875,
3452       875, 4085, 4085, 4085,  875, 1449, 1449, 1449, 1449, 4085,
3453      4085, 1449, 1449,  885,  885,  885, 4085, 4085, 4085,  885,
3454      1474, 1474, 1474, 1474, 4085, 4085, 1474, 1474, 1481, 1481,
3455
3456      1481, 1481, 4085, 4085, 1481, 1481,  906,  906,  906, 4085,
3457      4085, 4085,  906, 1494, 1494, 1494, 1494, 4085, 4085, 1494,
3458      1494,  916,  916,  916,  916, 4085,  916, 4085,  916, 1506,
3459      1506, 1506, 1506, 4085, 4085, 1506, 1506,  922,  922,  922,
3460       922, 4085,  922, 4085,  922, 1511, 1511, 1511, 1511, 4085,
3461      4085, 1511, 1511,  926,  926,  926, 4085, 4085, 4085,  926,
3462      1522, 1522, 1522, 1522, 4085, 4085, 1522, 1522,  934,  934,
3463       934, 4085, 4085, 4085,  934, 1530, 1530, 1530, 1530, 4085,
3464      4085, 1530, 1530,  939,  939,  939, 4085, 4085, 4085,  939,
3465      1538, 1538, 1538, 1538, 4085, 4085, 1538, 1538,  944,  944,
3466
3467       944,  944, 4085,  944, 4085,  944, 1544, 1544, 1544, 1544,
3468      4085, 4085, 1544, 1544,  949,  949,  949, 4085, 4085, 4085,
3469       949, 1559, 1559, 1559, 1559, 4085, 4085, 1559, 1559,  960,
3470       960,  960, 4085, 4085, 4085,  960, 1565, 1565, 1565, 1565,
3471      4085, 4085, 1565, 1565,  970,  970,  970, 4085, 4085, 4085,
3472       970, 1578, 1578, 1578, 1578, 4085, 4085, 1578, 1578,  978,
3473       978,  978, 4085, 4085, 4085,  978, 1586, 1586, 1586, 1586,
3474      4085, 4085, 1586, 1586,  983,  983,  983, 4085, 4085, 4085,
3475       983, 1602, 1602, 1602, 1602, 4085, 4085, 1602, 1602,  994,
3476       994,  994, 4085, 4085, 4085,  994, 1611, 1611, 1611, 1611,
3477
3478      4085, 4085, 1611, 1611, 1000, 1000, 1000, 4085, 4085, 4085,
3479      1000, 1619, 1619, 1619, 1619, 4085, 4085, 1619, 1619, 1005,
3480      1005, 1005, 4085, 4085, 4085, 1005, 1629, 1629, 1629, 1629,
3481      4085, 4085, 1629, 1629, 1012, 1012, 1012, 4085, 4085, 4085,
3482      1012, 1639, 1639, 1639, 1639, 4085, 4085, 1639, 1639, 1020,
3483      1020, 1020, 1020, 4085, 1020, 4085, 1020, 1650, 1650, 1650,
3484      1650, 4085, 4085, 1650, 1650, 1028, 1028, 1028, 4085, 4085,
3485      4085, 1028, 1657, 1657, 1657, 1657, 4085, 4085, 1657, 1657,
3486      1034, 1034, 1034, 4085, 4085, 4085, 1034, 1665, 1665, 1665,
3487      1665, 4085, 4085, 1665, 1665, 1039, 1039, 1039, 4085, 4085,
3488
3489      4085, 1039, 1676, 1676, 1676, 1676, 4085, 4085, 1676, 1676,
3490      1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1918,
3491      1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,  788,  788,
3492       788, 4085, 4085, 4085,  788,  831,  831,  831, 4085, 4085,
3493      4085,  831, 1380, 1380, 1380, 1380, 4085, 4085, 1380, 1380,
3494       839,  839,  839, 4085, 4085, 4085,  839, 1390, 1390, 1390,
3495      1390, 4085, 4085, 1390, 1390,  848,  848,  848,  848, 4085,
3496       848, 4085,  848, 1396, 1396, 1396, 1396, 4085, 4085, 1396,
3497      1396,  852,  852,  852, 4085, 4085, 4085,  852, 1405, 1405,
3498      1405, 1405, 4085, 4085, 1405, 1405,  858,  858,  858, 4085,
3499
3500      4085, 4085,  858, 1415, 1415, 1415, 1415, 4085, 4085, 1415,
3501      1415, 1423, 1423, 1423, 1423, 4085, 4085, 1423, 1423,  869,
3502       869,  869, 4085, 4085, 4085,  869, 1433, 1433, 1433, 1433,
3503      4085, 4085, 1433, 1433,  875,  875,  875, 4085, 4085, 4085,
3504       875, 1449, 1449, 1449, 1449, 4085, 4085, 1449, 1449,  885,
3505       885,  885,  885, 4085,  885, 4085,  885, 1474, 1474, 1474,
3506      1474, 4085, 4085, 1474, 1474, 1481, 1481, 1481, 1481, 4085,
3507      4085, 1481, 1481,  906,  906,  906, 4085, 4085, 4085,  906,
3508      1494, 1494, 1494, 1494, 4085, 4085, 1494, 1494, 1506, 1506,
3509      1506, 1506, 4085, 4085, 1506, 1506, 1511, 1511, 1511, 1511,
3510
3511      4085, 4085, 1511, 1511,  926,  926,  926, 4085, 4085, 4085,
3512       926, 1522, 1522, 1522, 1522, 4085, 4085, 1522, 1522,  934,
3513       934,  934, 4085, 4085, 4085,  934, 1530, 1530, 1530, 1530,
3514      4085, 4085, 1530, 1530,  939,  939,  939,  939, 4085,  939,
3515      4085,  939, 1538, 1538, 1538, 1538, 4085, 4085, 1538, 1538,
3516       944,  944,  944, 4085, 4085, 4085,  944, 1544, 1544, 1544,
3517      1544, 4085, 4085, 1544, 1544,  949,  949,  949, 4085, 4085,
3518      4085,  949, 1559, 1559, 1559, 1559, 4085, 4085, 1559, 1559,
3519       960,  960,  960, 4085, 4085, 4085,  960, 1565, 1565, 1565,
3520      1565, 4085, 4085, 1565, 1565,  970,  970,  970, 4085, 4085,
3521
3522      4085,  970, 1578, 1578, 1578, 1578, 4085, 4085, 1578, 1578,
3523       978,  978,  978,  978, 4085,  978, 4085,  978, 1586, 1586,
3524      1586, 1586, 4085, 4085, 1586, 1586,  983,  983,  983, 4085,
3525      4085, 4085,  983, 1602, 1602, 1602, 1602, 4085, 4085, 1602,
3526      1602,  994,  994,  994, 4085, 4085, 4085,  994, 1611, 1611,
3527      1611, 1611, 4085, 4085, 1611, 1611, 1000, 1000, 1000, 4085,
3528      4085, 4085, 1000, 1619, 1619, 1619, 1619, 4085, 4085, 1619,
3529      1619, 1005, 1005, 1005, 4085, 4085, 4085, 1005, 1629, 1629,
3530      1629, 1629, 4085, 4085, 1629, 1629, 1012, 1012, 1012, 4085,
3531      4085, 4085, 1012, 1639, 1639, 1639, 1639, 4085, 4085, 1639,
3532
3533      1639, 1020, 1020, 1020, 4085, 4085, 4085, 1020, 1650, 1650,
3534      1650, 1650, 4085, 4085, 1650, 1650, 1028, 1028, 1028, 4085,
3535      4085, 4085, 1028, 1657, 1657, 1657, 1657, 4085, 4085, 1657,
3536      1657, 1034, 1034, 1034, 4085, 4085, 4085, 1034, 1665, 1665,
3537      1665, 1665, 4085, 4085, 1665, 1665, 1039, 1039, 1039, 4085,
3538      4085, 4085, 1039, 1676, 1676, 1676, 1676, 4085, 4085, 1676,
3539      1676, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309,
3540      1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,  788,
3541       788,  788, 4085, 4085, 4085,  788,  831,  831,  831,  831,
3542      4085,  831, 4085,  831, 1380, 1380, 1380, 1380, 4085, 4085,
3543
3544      1380, 1380,  839,  839,  839, 4085, 4085, 4085,  839, 1390,
3545      1390, 1390, 1390, 4085, 4085, 1390, 1390, 1396, 1396, 1396,
3546      1396, 4085, 4085, 1396, 1396,  852,  852,  852, 4085, 4085,
3547      4085,  852, 1405, 1405, 1405, 1405, 4085, 4085, 1405, 1405,
3548       858,  858,  858,  858, 4085,  858, 4085,  858, 1415, 1415,
3549      1415, 1415, 4085, 4085, 1415, 1415, 1423, 1423, 1423, 1423,
3550      4085, 4085, 1423, 1423,  869,  869,  869,  869, 4085,  869,
3551      4085,  869, 1433, 1433, 1433, 1433, 4085, 4085, 1433, 1433,
3552       875,  875,  875,  875, 4085,  875, 4085,  875, 1449, 1449,
3553      1449, 1449, 4085, 4085, 1449, 1449,  885,  885,  885,  885,
3554
3555      4085,  885, 4085,  885, 1474, 1474, 1474, 1474, 4085, 4085,
3556      1474, 1474, 1481, 1481, 1481, 1481, 4085, 4085, 1481, 1481,
3557       906,  906,  906, 4085, 4085, 4085,  906, 1494, 1494, 1494,
3558      1494, 4085, 4085, 1494, 1494, 1506, 1506, 1506, 1506, 4085,
3559      4085, 1506, 1506, 1511, 1511, 1511, 1511, 4085, 4085, 1511,
3560      1511,  926,  926,  926, 4085, 4085, 4085,  926, 1522, 1522,
3561      1522, 1522, 4085, 4085, 1522, 1522,  934,  934,  934, 4085,
3562      4085, 4085,  934, 1530, 1530, 1530, 1530, 4085, 4085, 1530,
3563      1530, 1538, 1538, 1538, 1538, 4085, 4085, 1538, 1538,  944,
3564       944,  944, 4085, 4085, 4085,  944, 1544, 1544, 1544, 1544,
3565
3566      4085, 4085, 1544, 1544,  949,  949,  949, 4085, 4085, 4085,
3567       949, 1559, 1559, 1559, 1559, 4085, 4085, 1559, 1559,  960,
3568       960,  960, 4085, 4085, 4085,  960, 1565, 1565, 1565, 1565,
3569      4085, 4085, 1565, 1565,  970,  970,  970, 4085, 4085, 4085,
3570       970, 1578, 1578, 1578, 1578, 4085, 4085, 1578, 1578, 1586,
3571      1586, 1586, 1586, 4085, 4085, 1586, 1586,  983,  983,  983,
3572      4085, 4085, 4085,  983, 1602, 1602, 1602, 1602, 4085, 4085,
3573      1602, 1602,  994,  994,  994, 4085, 4085, 4085,  994, 1611,
3574      1611, 1611, 1611, 4085, 4085, 1611, 1611, 1000, 1000, 1000,
3575      4085, 4085, 4085, 1000, 1619, 1619, 1619, 1619, 4085, 4085,
3576
3577      1619, 1619, 1005, 1005, 1005, 1005, 4085, 1005, 4085, 1005,
3578      1629, 1629, 1629, 1629, 4085, 4085, 1629, 1629, 1012, 1012,
3579      1012, 4085, 4085, 4085, 1012, 1639, 1639, 1639, 1639, 4085,
3580      4085, 1639, 1639, 1020, 1020, 1020, 4085, 4085, 4085, 1020,
3581      1650, 1650, 1650, 1650, 4085, 4085, 1650, 1650, 1028, 1028,
3582      1028, 4085, 4085, 4085, 1028, 1657, 1657, 1657, 1657, 4085,
3583      4085, 1657, 1657, 1034, 1034, 1034, 4085, 4085, 4085, 1034,
3584      1665, 1665, 1665, 1665, 4085, 4085, 1665, 1665, 1039, 1039,
3585      1039, 1039, 4085, 1039, 4085, 1039, 1676, 1676, 1676, 1676,
3586      4085, 4085, 1676, 1676, 1309, 1309, 1309, 1309, 1309, 1309,
3587
3588      1309, 1309, 1309, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
3589      1918, 1918,  788,  788,  788,  788, 4085,  788, 4085,  788,
3590       831,  831,  831, 4085, 4085, 4085,  831, 1380, 1380, 1380,
3591      1380, 4085, 4085, 1380, 1380,  839,  839,  839, 4085, 4085,
3592      4085,  839, 1390, 1390, 1390, 1390, 4085, 4085, 1390, 1390,
3593      1396, 1396, 1396, 1396, 4085, 4085, 1396, 1396,  852,  852,
3594       852, 4085, 4085, 4085,  852, 1405, 1405, 1405, 1405, 4085,
3595      4085, 1405, 1405, 1415, 1415, 1415, 1415, 4085, 4085, 1415,
3596      1415, 1423, 1423, 1423, 1423, 4085, 4085, 1423, 1423, 1433,
3597      1433, 1433, 1433, 4085, 4085, 1433, 1433,  875,  875,  875,
3598
3599       875, 4085,  875, 4085,  875, 1449, 1449, 1449, 1449, 4085,
3600      4085, 1449, 1449,  885,  885,  885, 4085, 4085, 4085,  885,
3601      1474, 1474, 1474, 1474, 4085, 4085, 1474, 1474, 1481, 1481,
3602      1481, 1481, 4085, 4085, 1481, 1481,  906,  906,  906, 4085,
3603      4085, 4085,  906, 1506, 1506, 1506, 1506, 4085, 4085, 1506,
3604      1506, 1511, 1511, 1511, 1511, 4085, 4085, 1511, 1511,  926,
3605       926,  926, 4085, 4085, 4085,  926,  934,  934,  934, 4085,
3606      4085, 4085,  934, 1530, 1530, 1530, 1530, 4085, 4085, 1530,
3607      1530, 1538, 1538, 1538, 1538, 4085, 4085, 1538, 1538,  944,
3608       944,  944, 4085, 4085, 4085,  944, 1544, 1544, 1544, 1544,
3609
3610      4085, 4085, 1544, 1544,  949,  949,  949, 4085, 4085, 4085,
3611       949,  960,  960,  960,  960, 4085,  960, 4085,  960, 1565,
3612      1565, 1565, 1565, 4085, 4085, 1565, 1565,  970,  970,  970,
3613      4085, 4085, 4085,  970, 1578, 1578, 1578, 1578, 4085, 4085,
3614      1578, 1578,  983,  983,  983, 4085, 4085, 4085,  983, 1602,
3615      1602, 1602, 1602, 4085, 4085, 1602, 1602,  994,  994,  994,
3616      4085, 4085, 4085,  994, 1611, 1611, 1611, 1611, 4085, 4085,
3617      1611, 1611, 1000, 1000, 1000, 4085, 4085, 4085, 1000, 1619,
3618      1619, 1619, 1619, 4085, 4085, 1619, 1619, 1005, 1005, 1005,
3619      1005, 4085, 1005, 4085, 1005, 1629, 1629, 1629, 1629, 4085,
3620
3621      4085, 1629, 1629, 1012, 1012, 1012, 1012, 4085, 1012, 4085,
3622      1012, 1639, 1639, 1639, 1639, 4085, 4085, 1639, 1639, 1020,
3623      1020, 1020, 4085, 4085, 4085, 1020, 1650, 1650, 1650, 1650,
3624      4085, 4085, 1650, 1650, 1028, 1028, 1028, 1028, 4085, 1028,
3625      4085, 1028, 1657, 1657, 1657, 1657, 4085, 4085, 1657, 1657,
3626      1034, 1034, 1034, 1034, 4085, 1034, 4085, 1034, 1039, 1039,
3627      1039, 4085, 4085, 4085, 1039, 1676, 1676, 1676, 1676, 4085,
3628      4085, 1676, 1676, 1309, 1309, 1309, 1309, 1309, 1309, 1309,
3629      1309, 1309, 1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,
3630      1918,  831,  831,  831, 4085, 4085, 4085,  831, 1380, 1380,
3631
3632      1380, 1380, 4085, 4085, 1380, 1380,  839,  839,  839,  839,
3633      4085,  839, 4085,  839, 1396, 1396, 1396, 1396, 4085, 4085,
3634      1396, 1396,  852,  852,  852, 4085, 4085, 4085,  852, 1405,
3635      1405, 1405, 1405, 4085, 4085, 1405, 1405, 1415, 1415, 1415,
3636      1415, 4085, 4085, 1415, 1415, 1423, 1423, 1423, 1423, 4085,
3637      4085, 1423, 1423, 1433, 1433, 1433, 1433, 4085, 4085, 1433,
3638      1433, 1449, 1449, 1449, 1449, 4085, 4085, 1449, 1449,  885,
3639       885,  885, 4085, 4085, 4085,  885, 1474, 1474, 1474, 1474,
3640      4085, 4085, 1474, 1474, 1481, 1481, 1481, 1481, 4085, 4085,
3641      1481, 1481,  906,  906,  906, 4085, 4085, 4085,  906, 1506,
3642
3643      1506, 1506, 1506, 4085, 4085, 1506, 1506, 1511, 1511, 1511,
3644      1511, 4085, 4085, 1511, 1511,  926,  926,  926, 4085, 4085,
3645      4085,  926,  934,  934,  934, 4085, 4085, 4085,  934, 1530,
3646      1530, 1530, 1530, 4085, 4085, 1530, 1530, 1538, 1538, 1538,
3647      1538, 4085, 4085, 1538, 1538,  944,  944,  944, 4085, 4085,
3648      4085,  944,  949,  949,  949, 4085, 4085, 4085,  949, 1565,
3649      1565, 1565, 1565, 4085, 4085, 1565, 1565,  970,  970,  970,
3650       970, 4085,  970, 4085,  970, 1578, 1578, 1578, 1578, 4085,
3651      4085, 1578, 1578,  983,  983,  983, 4085, 4085, 4085,  983,
3652      1602, 1602, 1602, 1602, 4085, 4085, 1602, 1602,  994,  994,
3653
3654       994, 4085, 4085, 4085,  994, 1000, 1000, 1000, 4085, 4085,
3655      4085, 1000, 1619, 1619, 1619, 1619, 4085, 4085, 1619, 1619,
3656      1629, 1629, 1629, 1629, 4085, 4085, 1629, 1629, 1639, 1639,
3657      1639, 1639, 4085, 4085, 1639, 1639, 1020, 1020, 1020, 4085,
3658      4085, 4085, 1020, 1657, 1657, 1657, 1657, 4085, 4085, 1657,
3659      1657, 1039, 1039, 1039, 4085, 4085, 4085, 1039, 1676, 1676,
3660      1676, 1676, 4085, 4085, 1676, 1676, 1309, 1309, 1309, 1309,
3661      1309, 1309, 1309, 1309, 1309, 1918, 1918, 1918, 1918, 1918,
3662      1918, 1918, 1918, 1918,  831,  831,  831, 4085, 4085, 4085,
3663       831, 1380, 1380, 1380, 1380, 4085, 4085, 1380, 1380,  839,
3664
3665       839,  839,  839, 4085,  839, 4085,  839, 1396, 1396, 1396,
3666      1396, 4085, 4085, 1396, 1396,  852,  852,  852,  852, 4085,
3667       852, 4085,  852, 1405, 1405, 1405, 1405, 4085, 4085, 1405,
3668      1405, 1415, 1415, 1415, 1415, 4085, 4085, 1415, 1415, 1423,
3669      1423, 1423, 1423, 4085, 4085, 1423, 1423, 1433, 1433, 1433,
3670      1433, 4085, 4085, 1433, 1433, 1449, 1449, 1449, 1449, 4085,
3671      4085, 1449, 1449,  885,  885,  885, 4085, 4085, 4085,  885,
3672      1474, 1474, 1474, 1474, 4085, 4085, 1474, 1474,  906,  906,
3673       906, 4085, 4085, 4085,  906, 1506, 1506, 1506, 1506, 4085,
3674      4085, 1506, 1506, 1511, 1511, 1511, 1511, 4085, 4085, 1511,
3675
3676      1511,  926,  926,  926,  926, 4085,  926, 4085,  926,  934,
3677       934,  934,  934, 4085,  934, 4085,  934, 1530, 1530, 1530,
3678      1530, 4085, 4085, 1530, 1530, 1538, 1538, 1538, 1538, 4085,
3679      4085, 1538, 1538,  944,  944,  944,  944, 4085,  944, 4085,
3680       944,  949,  949,  949, 4085, 4085, 4085,  949, 1565, 1565,
3681      1565, 1565, 4085, 4085, 1565, 1565,  970,  970,  970,  970,
3682      4085,  970, 4085,  970, 1578, 1578, 1578, 1578, 4085, 4085,
3683      1578, 1578,  983,  983,  983,  983, 4085,  983, 4085,  983,
3684       994,  994,  994, 4085, 4085, 4085,  994, 1000, 1000, 1000,
3685      4085, 4085, 4085, 1000, 1629, 1629, 1629, 1629, 4085, 4085,
3686
3687      1629, 1629, 1639, 1639, 1639, 1639, 4085, 4085, 1639, 1639,
3688      1020, 1020, 1020, 4085, 4085, 4085, 1020, 1657, 1657, 1657,
3689      1657, 4085, 4085, 1657, 1657, 1039, 1039, 1039, 4085, 4085,
3690      4085, 1039, 1676, 1676, 1676, 1676, 4085, 4085, 1676, 1676,
3691      1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1918,
3692      1918, 1918, 1918, 1918, 1918, 1918, 1918, 1918,  831,  831,
3693       831, 4085, 4085, 4085,  831,  839,  839,  839,  839, 4085,
3694       839, 4085,  839, 1396, 1396, 1396, 1396, 4085, 4085, 1396,
3695      1396, 1405, 1405, 1405, 1405, 4085, 4085, 1405, 1405, 1415,
3696      1415, 1415, 1415, 4085, 4085, 1415, 1415, 1423, 1423, 1423,
3697
3698      1423, 4085, 4085, 1423, 1423, 1433, 1433, 1433, 1433, 4085,
3699      4085, 1433, 1433,  885,  885,  885, 4085, 4085, 4085,  885,
3700       906,  906,  906, 4085, 4085, 4085,  906, 1506, 1506, 1506,
3701      1506, 4085, 4085, 1506, 1506,  926,  926,  926, 4085, 4085,
3702      4085,  926, 1530, 1530, 1530, 1530, 4085, 4085, 1530, 1530,
3703      1538, 1538, 1538, 1538, 4085, 4085, 1538, 1538,  949,  949,
3704       949, 4085, 4085, 4085,  949, 1565, 1565, 1565, 1565, 4085,
3705      4085, 1565, 1565,  970,  970,  970,  970, 4085,  970, 4085,
3706       970,  983,  983,  983, 4085, 4085, 4085,  983,  994,  994,
3707       994, 4085, 4085, 4085,  994, 1000, 1000, 1000, 4085, 4085,
3708
3709      4085, 1000, 3412, 3412, 3412, 3412, 3412, 3412, 3412, 3412,
3710      3412, 3413, 3413, 3413, 3413, 3413, 3413, 3413, 3413, 3413,
3711      3504, 3504, 3504, 3504, 3504, 3504, 3504, 3504, 3504, 3507,
3712      3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3580, 3580,
3713      3580, 3580, 3580, 3580, 3580, 3580, 3580, 3582, 3582, 3582,
3714      3582, 3582, 3582, 3582, 3582, 3582,  323, 4085, 4085, 4085,
3715      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
3716      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
3717      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
3718      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
3719
3720      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
3721      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
3722      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
3723      4085, 4085
3724     } ;
3725
3726 static const flex_int16_t yy_chk[14133] =
3727     {   0,
3728         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
3729         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
3730         4,   10, 1024,    5,    0,    9,    6,  401,   10,    7,
3731         8,    8,    8,  328,   11,   13,   13,   12,   14,   14,
3732        13,   13,  373,   14,   14,  329,    8,   17,   17,  328,
3733        13,   15,   15,   14,   15,  332,   15,   16,   16, 1024,
3734        16,  329,   16,   18,   18,  401,   15,   21,   21,   21,
3735      1550,  332,   16,   22,   22,   22,  557,   23,   23,   23,
3736        24,   24,   24,   21,   25,   25,   25,  366,  557,   22,
3737       368,  354,   17,   23,  368,  373,   24,  326,  326,  326,
3738
3739        25,  327,  327,  327,  331,  331,  331,  354,   18,   19,
3740        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
3741        19,   19,   19,   19, 1556,   19,   19,   19,   19,   19,
3742        26,   26,   26,   27,   27,   27,   28,   28,   28,  490,
3743       366,   29,   29,   29,  366,  475,   26,  382,  378,   27,
3744       475, 1557,   28,  490,  382,   19,   19,   29,   30,   30,
3745        30,  351,  351,  351,  378,  385,   19,  359,  359,  359,
3746       375,  375,  375, 1562,   30,   19,   20,   20,   20,   20,
3747        20,   20,   20,   20,   20,   20,   20,   20,   20,   20,
3748        20,  485,   20,   20,   20,   20,   20,   31,   31,   31,
3749
3750        32,   32,   32,   33,   33,   33,  267,  267,   34,   34,
3751        34,  267,  485,   31,  385,  387,   32,  621,  385,   33,
3752      1563,  267,   20,   20,   34,   35,   35,   35,   36,   36,
3753        36, 1568,  621,   20,   37,   37,   37,   38,   38,   38,
3754       782,   35,   20,  782,   36,   39,   39,   39,  386, 1569,
3755        37,  267,  386,   38,   40,   40,   40,   41,   41,   41,
3756      1571,   39,   42,   42,   42,   43,   43,   43,  387,  546,
3757        40, 1572,  392,   41,   44,   44,   44,  908,   42,  546,
3758       908,   43,   45,   45,   45,   46,   46,   46,  392,  365,
3759        44,   47,   47,   47,   48,   48,   48, 1574,   45,  365,
3760
3761       369,   46,   49,   49,   49, 1575,  521,   47,  639,  408,
3762        48,   50,   50,   50,   51,   51,   51, 1074,   49,   52,
3763        52,   52,   53,   53,   53,  408, 1576,   50,  365,  369,
3764        51,   54,   54,   54, 1074,   52,  403, 1186,   53,   55,
3765        55,   55,   56,   56,   56,  369,  639,   54,  384,  384,
3766       384,  715,  365,  369, 1186,   55,  521, 1584,   56,   57,
3767        57,   57,   57,   57,   57,   57,   57,   57,   57,   57,
3768        57,   57,   57,   57,  418,   57,   57,   57,   57,   57,
3769        59,   59,   59,   60,   60,   60,   61,   61,   61,  403,
3770       418,   62,   62,   62,  518, 1284,   59,  413,  518,   60,
3771
3772      1589,  715,   61,  371,  413,   57,   57,   62,   63,   63,
3773        63,   57, 1284,  413,   57,  389,  389,  389,  400,  400,
3774       400,  405,  405,  405,   63, 1598,   57,   58,   58,   58,
3775        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
3776        58,   58,  371,   58,   58,   58,   58,   58,   64,   64,
3777        64,   65,   65,   65,   66,   66,   66,  795,  371,   69,
3778        69,   69,  606, 1600,   64,  425,  606,   65,  795,  794,
3779        66,  795,  425,   58,   58,   69,   70,   70,   70,   58,
3780       438,  425,   58,  412,  412,  412,  415,  415,  415,  424,
3781       424,  424,   70,  794,   58,   67,   67,   67,   67,   67,
3782
3783        67,   67,   67,   67,   67,   67,   67,   67,   67,   67,
3784       430,   67,   67,   67,   67,   67,   71,   71,   71,   72,
3785        72,   72,   73,   73,   73,  450,  430,   74,   74,   74,
3786      1220,  443,   71,  438,  455,   72, 1220,  468,   73, 1609,
3787       463,   67,   67,   74,   75,   75,   75,  443, 1345,   67,
3788       455,   67,  437,  468,   67,  427,  427,  427,   67, 1614,
3789        75, 1345,   67,   68,   68,   68,   68,   68,   68,   68,
3790        68,   68,   68,   68,   68,   68,   68,   68,  450,   68,
3791        68,   68,   68,   68,   76,   76,   76,   79,   79,   79,
3792        80,   80,   80,  463,  488,   83,   83,   83, 1622,  483,
3793
3794        76,  437,  488,   79,  801,  437,   80,  813,  488,   68,
3795        68,   83,   84,   84,   84,  483, 1351,   68,  801,   68,
3796       449,  813,   68,  436,  436,  436,   68,  545,   84, 1351,
3797        68,   77,   77,   77,   77,   77,   77,   77,   77,   77,
3798        77,   77,   77,   77,   77,   77,  624,   77,   77,   77,
3799        77,   77,   87,   87,   87,   88,   88,   88,   89,   89,
3800        89,  624,  491,   90,   90,   90,  545, 1623,   87,  449,
3801       491,   88, 1627,  449,   89,  491,  545,   77,   77,   90,
3802        91,   91,   91,   92,   92,   92,  440,  440,  440,  448,
3803       448,  448,  452,  452,  452, 1632,   91, 1636, 1642,   92,
3804
3805      1648,   77,   78,   78,   78,   78,   78,   78,   78,   78,
3806        78,   78,   78,   78,   78,   78,   78,  501,   78,   78,
3807        78,   78,   78,   93,   93,   93,   94,   94,   94,   97,
3808        97,   97,  808,  501,   98,   98,   98,  673, 1653,   93,
3809      1655, 1663,   94,  808,  673,   97,  808,  512,   78,   78,
3810        98,   99,   99,   99,  100,  100,  100,  461,  461,  461,
3811       465,  465,  465,  512,  767,  462, 1670,   99,  342, 1671,
3812       100,  767,   78,   81,   81,   81,   81,   81,   81,   81,
3813        81,   81,   81,   81,   81,   81,   81,   81,  528,   81,
3814        81,   81,   81,   81,  101,  101,  101,  102,  102,  102,
3815
3816       103,  103,  103, 1674,  528,  104,  104,  104,  807, 1679,
3817       101,  342,  496,  102,  462,  540,  103,  342,  462,   81,
3818        81,  104,  342,   81,  477,  477,  477,  342, 1683, 1679,
3819        81,  540,  807,   81,   82,   82,   82,   82,   82,   82,
3820        82,   82,   82,   82,   82,   82,   82,   82,   82,  662,
3821        82,   82,   82,   82,   82,  107,  107,  107,  108,  108,
3822       108,  109,  109,  109,  662,  496,  110,  110,  110,  478,
3823      1684,  107,  507,  523,  108,  773,  478,  109,  547,  826,
3824        82,   82,  110,  561,   82,  478,  480,  480,  480, 1685,
3825       773,   82, 1688,  826,   82,   85,   85,   85,   85,   85,
3826
3827        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
3828       818,   85,   85,   85,   85,   85,  111,  111,  111,  112,
3829       112,  112,  113,  113,  113,  507,  523,  114,  114,  114,
3830      1689,  547,  111,  535,  818,  112,  561,  822,  113, 1690,
3831       535,   85,   85,  114,  117,  117,  117,   85, 1691,  535,
3832        85,  494,  494,  494,  498,  498,  498,  505,  505,  505,
3833       117,  822,   85,   86,   86,   86,   86,   86,   86,   86,
3834        86,   86,   86,   86,   86,   86,   86,   86,  552,   86,
3835        86,   86,   86,   86,  118,  118,  118,  121,  121,  121,
3836       122,  122,  122,  827,  552,  123,  123,  123, 1312, 1692,
3837
3838       118,  566, 1312,  121,  827,  824,  122,  827,  625,   86,
3839        86,  123,  124,  124,  124,   86,  640,  566,   86,  509,
3840       509,  509,  520,  520,  520,  525,  525,  525,  124,  824,
3841        86,   95,   95,   95,   95,   95,   95,   95,   95,   95,
3842        95,   95,   95,   95,   95,   95,  577,   95,   95,   95,
3843        95,   95,  125,  125,  125,  126,  126,  126,  127,  127,
3844       127,  625,  577,  128,  128,  128, 1693, 1694,  125,  640,
3845      1695,  126, 1697,  825,  127, 1699,  677,   95,   95,  128,
3846       131,  131,  131,   95,  534,  534,  534,  537,  537,  537,
3847       544,  544,  544,  549,  549,  549,  131,  825,   95,   96,
3848
3849        96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
3850        96,   96,   96,   96,  588,   96,   96,   96,   96,   96,
3851       132,  132,  132,  133,  133,  133,  134,  134,  134,  677,
3852       588,  135,  135,  135, 1700, 1702,  132, 1703, 1705,  133,
3853      1706,  829,  134, 1707,  702,   96,   96,  135,  136,  136,
3854       136,   96,  559,  559,  559,  563,  563,  563,  571,  571,
3855       571,  574,  574,  574,  136,  829,   96,  105,  105,  105,
3856       105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
3857       105,  105,  599,  105,  105,  105,  105,  105,  137,  137,
3858       137,  138,  138,  138,  141,  141,  141,  702,  599,  142,
3859
3860       142,  142, 1708, 1711,  137,  572,  828,  138, 1712, 1713,
3861       141, 1714,  572,  105,  105,  142,  143,  143,  143,  105,
3862       828,  572,  105,  582,  582,  582,  585,  585,  585,  593,
3863       593,  593,  143, 1715,  105,  106,  106,  106,  106,  106,
3864       106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
3865       615,  106,  106,  106,  106,  106,  144,  144,  144,  145,
3866       145,  145,  146,  146,  146,  964,  615,  147,  147,  147,
3867      1717, 1720,  144,  583,  966,  145,  964, 1721,  146,  964,
3868       583,  106,  106,  147,  148,  148,  148,  106,  966,  583,
3869       106,  596,  596,  596,  608,  608,  608,  612,  612,  612,
3870
3871       148, 1722,  106,  115,  115,  115,  115,  115,  115,  115,
3872       115,  115,  115,  115,  115,  115,  115,  115,  630,  115,
3873       115,  115,  115,  115,  151,  151,  151,  152,  152,  152,
3874       155,  155,  155,  717,  630,  156,  156,  156,  594,  645,
3875       151,  609,  610,  152, 1724,  594,  155, 1727,  609,  115,
3876       115,  156,  651,  115,  594,  645,  758,  609,  610,  651,
3877       115, 1728,  771,  115,  619,  619,  619,  115,  651,  115,
3878       115,  116,  116,  116,  116,  116,  116,  116,  116,  116,
3879       116,  116,  116,  116,  116,  116,  717,  116,  116,  116,
3880       116,  116,  157,  157,  157,  158,  158,  158,  159,  159,
3881
3882       159, 1729,  610,  160,  160,  160, 1733,  622,  157,  758,
3883       656,  158, 1734,  670,  159,  771,  623,  116,  116,  160,
3884       622,  116,  622,  627,  627,  627,  656,  755,  116,  670,
3885      1738,  116,  638,  638,  638,  116, 1741,  116,  116,  119,
3886       119,  119,  119,  119,  119,  119,  119,  119,  119,  119,
3887       119,  119,  119,  119,  623,  119,  119,  119,  119,  119,
3888       161,  161,  161,  162,  162,  162,  165,  165,  165,  623,
3889       660,  166,  166,  166,  660, 1744,  161, 1745,  660,  162,
3890       755,  665,  165,  793,  755,  119,  119,  166,  665,  119,
3891       119,  642,  642,  642,  676, 1746,  119,  665,  793,  119,
3892
3893       650,  650,  650,  119, 1748,  119,  119,  119,  120,  120,
3894       120,  120,  120,  120,  120,  120,  120,  120,  120,  120,
3895       120,  120,  120,  682,  120,  120,  120,  120,  120,  167,
3896       167,  167,  168,  168,  168,  169,  169,  169,  846,  682,
3897       170,  170,  170,  676, 1751,  167, 1752,  676,  168,  963,
3898       688,  169, 1757,  846,  120,  120,  170,  688,  120,  120,
3899       653,  653,  653, 1758,  963,  120,  688, 1773,  120,  664,
3900       664,  664,  120, 1774,  120,  120,  120,  129,  129,  129,
3901       129,  129,  129,  129,  129,  129,  129,  129,  129,  129,
3902       129,  129,  693,  129,  129,  129,  129,  129,  171,  171,
3903
3904       171,  172,  172,  172,  175,  175,  175,  967,  693,  176,
3905       176,  176, 1782, 1783,  171, 1785,  707,  172,  967, 1807,
3906       175,  967, 1808,  129,  129,  176,  667,  667,  667,  675,
3907       675,  675,  707, 1811,  129,  130,  130,  130,  130,  130,
3908       130,  130,  130,  130,  130,  130,  130,  130,  130,  130,
3909       722,  130,  130,  130,  130,  130,  179,  179,  179,  180,
3910       180,  180,  183,  183,  183, 1472,  722,  184,  184,  184,
3911      1813, 1815,  179, 1822,  733,  180, 1823, 1472,  183, 1824,
3912      1825,  130,  130,  184,  679,  679,  679,  687,  687,  687,
3913       733, 1827,  130,  139,  139,  139,  139,  139,  139,  139,
3914
3915       139,  139,  139,  139,  139,  139,  139,  139,  745,  139,
3916       139,  139,  139,  139,  187,  187,  187,  188,  188,  188,
3917       189,  189,  189, 1833,  745,  190,  190,  190, 1835, 1837,
3918       187, 1838,  763,  188, 1843, 1845,  189, 1846, 1848,  139,
3919       139,  190,  139,  770,  139,  690,  690,  690,  763, 1849,
3920       139,  700,  700,  700,  704,  704,  704,  139, 1850, 1851,
3921       139,  140,  140,  140,  140,  140,  140,  140,  140,  140,
3922       140,  140,  140,  140,  140,  140, 1852,  140,  140,  140,
3923       140,  140,  193,  193,  193,  194,  194,  194,  195,  195,
3924       195, 1855,  770,  196,  196,  196,  770, 1856,  193, 1857,
3925
3926      1047,  194, 1861, 1870,  195, 1873, 1881,  140,  140,  196,
3927       140, 1883,  140,  714,  714,  714, 1047, 1885,  140,  719,
3928       719,  719,  730,  730,  730,  140, 1886, 1887,  140,  149,
3929       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3930       149,  149,  149,  149, 1889,  149,  149,  149,  149,  149,
3931       197,  197,  197,  198,  198,  198,  199,  199,  199, 1894,
3932      1570,  200,  200,  200, 1897, 1898,  197,  727, 1900,  198,
3933      1905, 1910,  199, 1570,  727,  149,  149,  200,  201,  201,
3934       201,  149, 1911,  727, 1915,  756,  149,  739,  739,  739,
3935       742,  742,  742, 1918,  201,  750,  750,  750,  149,  150,
3936
3937       150,  150,  150,  150,  150,  150,  150,  150,  150,  150,
3938       150,  150,  150,  150,  756,  150,  150,  150,  150,  150,
3939       202,  202,  202,  203,  203,  203,  204,  204,  204, 1917,
3940       756,  205,  205,  205, 1921, 1924,  202,  740,  756,  203,
3941      1925, 1927,  204, 1928,  740,  150,  150,  205,  206,  206,
3942       206,  150, 1929,  740, 1917, 1930,  150,  760,  760,  760,
3943       769,  769,  769, 1931,  206,  772,  772,  772,  150,  153,
3944       153,  153,  153,  153,  153,  153,  153,  153,  153,  153,
3945       153,  153,  153,  153, 1932,  153,  153,  153,  153,  153,
3946       207,  207,  207,  208,  208,  208,  209,  209,  209, 1934,
3947
3948       754,  210,  210,  210, 1935, 1937,  207,  800, 1938,  208,
3949       754, 1941,  209, 1942,  800,  153,  153,  210, 1944, 1946,
3950       800, 1949, 1951,  153,  154,  154,  154,  154,  154,  154,
3951       154,  154,  154,  154,  154,  154,  154,  154,  154,  754,
3952       154,  154,  154,  154,  154,  211,  211,  211,  212,  212,
3953       212,  215,  215,  215, 1952,  805,  216,  216,  216, 1154,
3954      1953,  211,  805,  754,  212, 1954, 1955,  215,  805, 1154,
3955       154,  154,  216,  781,  781,  781, 1154, 1957,  154,  163,
3956       163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
3957       163,  163,  163,  163, 1958,  163,  163,  163,  163,  163,
3958
3959       217,  217,  217,  218,  218,  218,  219,  219,  219, 1962,
3960       812,  220,  220,  220, 1965, 1966,  217,  812, 1967,  218,
3961      1974,  819,  219,  812,  965,  163,  163,  220,  819,  163,
3962      1975,  965, 1979,  781,  819, 1980,  163,  965, 1981,  163,
3963      1050, 1050, 1050, 1983, 1050, 1987,  163,  164,  164,  164,
3964       164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
3965       164,  164, 1988,  164,  164,  164,  164,  164,  221,  221,
3966       221,  222,  222,  222,  225,  225,  225, 2023,  968,  226,
3967       226,  226, 2024, 2031,  221,  968, 2042,  222, 2043, 2044,
3968       225,  968, 2045,  164,  164,  226, 2047,  164, 1059, 1059,
3969
3970      1059, 2055, 1059, 2057,  164, 1059, 2061,  164, 1329, 1329,
3971      1329, 1352, 1352, 1352,  164,  173,  173,  173,  173,  173,
3972       173,  173,  173,  173,  173,  173,  173,  173,  173,  173,
3973      2064,  173,  173,  173,  173,  173,  229,  229,  229,  230,
3974       230,  230,  233,  233,  233, 2066, 2067,  234,  234,  234,
3975      2070, 2071,  229, 2072, 2073,  230, 2077, 2078,  233, 2079,
3976      2084,  173,  173,  234, 1063, 1063, 1063,  173, 1696, 1696,
3977      1696, 2088,  173,  174,  174,  174,  174,  174,  174,  174,
3978       174,  174,  174,  174,  174,  174,  174,  174, 2092,  174,
3979       174,  174,  174,  174,  235,  235,  235,  236,  236,  236,
3980
3981       237,  237,  237, 2094, 2096,  238,  238,  238, 2102, 2109,
3982       235, 2113, 2114,  236, 2116, 1696,  237, 2123, 2130,  174,
3983       174,  238, 1084, 1084, 1084,  174, 1097, 1097, 1097, 1063,
3984       174,  177,  177,  177,  177,  177,  177,  177,  177,  177,
3985       177,  177,  177,  177,  177,  177, 2134,  177,  177,  177,
3986       177,  177,  239,  239,  239,  240,  240,  240,  243,  243,
3987       243, 2130, 2136,  244,  244,  244, 2131, 2137,  239, 2129,
3988      2139,  240, 2140, 2138,  243, 2142, 2143,  177,  177,  244,
3989       247,  247,  247,  248,  248,  248, 2129, 1084,  177, 2138,
3990      2144, 1097, 1100, 1100, 1100, 2145,  247, 2138, 2147,  248,
3991
3992      2131,  177,  178,  178,  178,  178,  178,  178,  178,  178,
3993       178,  178,  178,  178,  178,  178,  178, 2148,  178,  178,
3994       178,  178,  178,  249,  249,  249,  250,  250,  250,  251,
3995       251,  251, 2152, 2154,  252,  252,  252, 2155, 2156,  249,
3996      2157, 2159,  250, 2160, 2161,  251, 2162, 2165,  178,  178,
3997       252,  253,  253,  253,  254,  254,  254, 1100, 2167,  178,
3998      2168, 1125, 1125, 1125, 2175, 1125, 2177,  253, 1125, 2178,
3999       254, 2179,  178,  181,  181,  181,  181,  181,  181,  181,
4000       181,  181,  181,  181,  181,  181,  181,  181, 2158,  181,
4001       181,  181,  181,  181,  257,  257,  257,  258,  258,  258,
4002
4003       259,  259,  259, 2180, 2158,  260,  260,  260, 2181, 2183,
4004       257, 2188, 2158,  258, 2216, 2169,  259, 2217, 2218,  181,
4005       181,  260,  261,  261,  261, 1144, 1144, 1144, 2222, 1144,
4006      2223, 2169, 1144, 2229, 2230,  181, 2233, 2234,  261, 2169,
4007       181,  182,  182,  182,  182,  182,  182,  182,  182,  182,
4008       182,  182,  182,  182,  182,  182, 2170,  182,  182,  182,
4009       182,  182,  262,  262,  262,  263,  263,  263,  264,  264,
4010       264, 2240, 2170,  271,  271,  271, 2246, 2248,  262, 2249,
4011      2170,  263, 2252, 2258,  264,  268,  268,  182,  182,  271,
4012       268,  272,  272,  272, 1146, 1146, 1146, 2260, 1146, 2266,
4013
4014       268, 1146, 2270,  182, 1698, 1698, 1698,  272,  182,  185,
4015       185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
4016       185,  185,  185,  185, 2273,  185,  185,  185,  185,  185,
4017       268,  275,  275,  275,  276,  276,  276,  277,  277,  277,
4018      2278,  278,  278,  278,  789,  789,  789,  275, 2280, 2281,
4019       276, 1698, 2282,  277, 2283,  185,  185,  278,  185,  185,
4020       185,  789, 2290, 1156, 1156, 1156,  185, 1156, 2292,  185,
4021      1156, 1701, 1701, 1701, 2294, 2296,  185,  186,  186,  186,
4022       186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
4023       186,  186, 2309,  186,  186,  186,  186,  186,  279,  279,
4024
4025       279,  280,  280,  280,  281,  281,  281, 2310, 2311,  282,
4026       282,  282, 2314, 2315,  279, 2317, 2318,  280, 2319, 2321,
4027       281, 2333, 2341,  186,  186,  282,  186,  186,  186, 1159,
4028      1159, 1159, 2342, 1159,  186, 2343, 1159,  186, 1704, 1704,
4029      1704, 1710, 1710, 1710,  186,  191,  191,  191,  191,  191,
4030       191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
4031      2344,  191,  191,  191,  191,  191,  283,  283,  283,  284,
4032       284,  284,  285,  285,  285, 2316, 2320,  286,  286,  286,
4033      2335, 2345,  283, 2316, 2320,  284, 2335, 2349,  285, 2351,
4034      2352,  191,  191,  286,  287,  287,  287,  288,  288,  288,
4035
4036      1173, 1173, 1173, 2353, 1173, 2337, 2358, 1173, 2359, 2361,
4037       287, 2362, 2363,  288, 2336,  191,  192,  192,  192,  192,
4038       192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
4039       192, 2364,  192,  192,  192,  192,  192,  289,  289,  289,
4040       290,  290,  290,  291,  291,  291, 2336, 2367,  292,  292,
4041       292, 2371, 2337,  289, 2372, 2379,  290, 2381, 2388,  291,
4042      2390, 2421,  192,  192,  292,  293,  293,  293,  294,  294,
4043       294, 1180, 1180, 1180, 2422, 1180, 2423, 2429, 1180, 2430,
4044      2434,  293, 2438, 2439,  294, 2443,  192,  213,  213,  213,
4045       213,  213,  213,  213,  213,  213,  213,  213,  213,  213,
4046
4047       213,  213, 2446,  213,  213,  213,  213,  213,  295,  295,
4048       295,  296,  296,  296,  297,  297,  297, 2449, 2450,  298,
4049       298,  298, 2451, 2452,  295, 2455, 2458,  296, 2462, 2463,
4050       297, 2464, 2476,  213,  213,  298,  299,  299,  299, 2479,
4051      2481,  213, 2484,  213, 2498, 2499,  213, 1716, 1716, 1716,
4052       213, 2500,  299, 2505,  213,  214,  214,  214,  214,  214,
4053       214,  214,  214,  214,  214,  214,  214,  214,  214,  214,
4054      2506,  214,  214,  214,  214,  214,  300,  300,  300,  301,
4055       301,  301,  302,  302,  302, 2507, 2508,  303,  303,  303,
4056      2509, 2510,  300, 2511, 1716,  301, 2512, 2513,  302, 2514,
4057
4058      2524,  214,  214,  303,  304,  304,  304, 2535, 2536,  214,
4059      2527,  214, 2537, 2528,  214, 1718, 1718, 1718,  214, 2540,
4060       304, 2543,  214,  223,  223,  223,  223,  223,  223,  223,
4061       223,  223,  223,  223,  223,  223,  223,  223, 2547,  223,
4062       223,  223,  223,  223,  305,  305,  305,  306,  306,  306,
4063       307,  307,  307, 2548, 2527,  308,  308,  308, 2549, 2552,
4064       305, 2528, 1718,  306, 2553, 2554,  307, 2557, 2560,  223,
4065       223,  308,  309,  309,  309,  310,  310,  310, 2561, 2562,
4066       223, 2563, 1189, 1189, 1189, 2585, 1189, 2586,  309, 1189,
4067      2592,  310, 2593,  223,  224,  224,  224,  224,  224,  224,
4068
4069       224,  224,  224,  224,  224,  224,  224,  224,  224, 2599,
4070       224,  224,  224,  224,  224,  313,  313,  313,  314,  314,
4071       314,  315,  315,  315, 2600, 2587,  316,  316,  316, 2601,
4072      2615,  313, 2616, 2617,  314, 2587, 2637,  315, 2638, 2649,
4073       224,  224,  316,  317,  317,  317,  318,  318,  318, 2650,
4074      2655,  224, 2656,  363, 1191, 1191, 1191, 2657, 1191,  317,
4075       620, 1191,  318,  363,  224,  227,  227,  227,  227,  227,
4076       227,  227,  227,  227,  227,  227,  227,  227,  227,  227,
4077      2658,  227,  227,  227,  227,  227,  319,  319,  319,  320,
4078       320,  320,  363, 2659, 1709, 1709, 1709, 2660,  620,  620,
4079
4080       620, 2661,  319, 2662, 2663,  320,  363, 2664, 2669,  620,
4081       363,  227,  227,  620, 2674,  620,  363, 2673,  751,  753,
4082       227, 2675,  227, 2672,  370, 2677,  227, 2678,  751,  753,
4083      1709,  227,  227,  228,  228,  228,  228,  228,  228,  228,
4084       228,  228,  228,  228,  228,  228,  228,  228, 2679,  228,
4085       228,  228,  228,  228,  370, 2673, 2672,  751,  753,  370,
4086      1061, 1061, 1061,  751, 1719, 1719, 1719,  370, 2680,  370,
4087       370,  751,  753,  751,  751, 2676,  753,  370, 1061,  228,
4088       228,  751,  753, 2682, 2676, 1199, 1199, 1199,  228, 1199,
4089       228, 2683, 1199,  757,  228, 1723, 1723, 1723, 2686,  228,
4090
4091       228,  231,  231,  231,  231,  231,  231,  231,  231,  231,
4092       231,  231,  231,  231,  231,  231, 2687,  231,  231,  231,
4093       231,  231,  757,  757,  854,  854,  854,  876,  876,  876,
4094      2688, 1723,  877,  877,  877, 2691,  757,  887,  887,  887,
4095      2693,  854, 2694, 2697,  876, 2698,  757,  231,  231,  877,
4096       889,  889,  889,  231,  887, 1207, 1207, 1207, 2699, 1207,
4097      2701, 2702, 1207, 1725, 1725, 1725, 2704,  889,  231,  232,
4098       232,  232,  232,  232,  232,  232,  232,  232,  232,  232,
4099       232,  232,  232,  232, 2725,  232,  232,  232,  232,  232,
4100       903,  903,  903,  909,  909,  909,  918,  918,  918, 1725,
4101
4102       919,  919,  919,  928,  928,  928, 2726,  903, 2727, 2681,
4103       909, 2728, 2731,  918, 2732,  232,  232,  919, 2681, 2738,
4104       928,  232, 1211, 1211, 1211, 2739, 1211, 2746, 2747, 1211,
4105      2748, 1726, 1726, 1726, 2756, 2757,  232,  241,  241,  241,
4106       241,  241,  241,  241,  241,  241,  241,  241,  241,  241,
4107       241,  241, 2772,  241,  241,  241,  241,  241,  936,  936,
4108       936,  940,  940,  940,  953,  953,  953, 1726,  979,  979,
4109       979, 2773,  985,  985,  985,  936, 2774, 2778,  940, 2779,
4110      2780,  953, 2781,  241,  241,  979, 2782, 2783,  241,  985,
4111      1740, 1740, 1740, 2784,  241,  242,  242,  242,  242,  242,
4112
4113       242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
4114      2785,  242,  242,  242,  242,  242, 1002, 1002, 1002, 1008,
4115      1008, 1008, 1014, 1014, 1014, 2786, 1022, 1022, 1022, 2787,
4116      1035, 1035, 1035, 1002, 2788, 2789, 1008, 1740, 2791, 1014,
4117      2792,  242,  242, 1022, 2794, 2795,  242, 1035, 1926, 1926,
4118      1926, 2796,  242,  245,  245,  245,  245,  245,  245,  245,
4119       245,  245,  245,  245,  245,  245,  245,  245, 2797,  245,
4120       245,  245,  245,  245, 1058, 1058, 1058, 1062, 1062, 1062,
4121      1105, 1105, 1105, 1109, 1109, 1109, 1106, 1106, 1106, 2793,
4122      2799, 1058, 1107, 1107, 1107, 1062, 2800, 1105, 2793,  245,
4123
4124       245, 1109,  245, 1106,  245, 1933, 1933, 1933, 2798, 1107,
4125       245, 1223, 1223, 1223, 1062, 1223, 2801, 2798, 1223, 2803,
4126      2806,  245,  246,  246,  246,  246,  246,  246,  246,  246,
4127       246,  246,  246,  246,  246,  246,  246, 1106,  246,  246,
4128       246,  246,  246, 1110, 1110, 1110, 1108, 1108, 1108, 1117,
4129      1117, 1117, 1106, 2807, 1121, 1121, 1121, 1122, 1122, 1122,
4130      2803, 1110, 2808, 1108, 1118, 1118, 1118, 1117,  246,  246,
4131      2809,  246, 1121,  246, 2804, 1122, 1936, 1936, 1936,  246,
4132      1110, 2810, 1118, 1939, 1939, 1939, 1940, 1940, 1940, 2811,
4133       246,  255,  255,  255,  255,  255,  255,  255,  255,  255,
4134
4135       255,  255,  255,  255,  255,  255, 1108,  255,  255,  255,
4136       255,  255, 2804, 2812, 1118, 1124, 1124, 1124, 1127, 1127,
4137      1127, 2813, 1122, 1129, 1129, 1129, 1128, 1128, 1128, 1130,
4138      1130, 1130, 1124, 1131, 1131, 1131, 1127,  255,  255, 2814,
4139      1129, 2118,  255, 2815, 1128, 2816, 1130, 2118,  255, 2805,
4140      1131, 2118,  255, 1943, 1943, 1943, 2817, 2118,  255,  256,
4141       256,  256,  256,  256,  256,  256,  256,  256,  256,  256,
4142       256,  256,  256,  256, 1128,  256,  256,  256,  256,  256,
4143      1130, 1132, 1132, 1132, 1133, 1133, 1133, 1134, 1134, 1134,
4144      1135, 1135, 1135, 2805, 2818, 1130, 1136, 1136, 1136, 1132,
4145
4146      2819, 2820, 1133, 2823, 1134,  256,  256, 1135, 2824, 2826,
4147       256, 1245, 1245, 1245, 1136, 1245,  256, 2827, 1245, 2828,
4148       256, 1945, 1945, 1945, 2830, 2831,  256,  265,  265,  265,
4149       265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
4150       265,  265, 2851,  265,  265,  265,  265,  265, 1137, 1137,
4151      1137, 1138, 1138, 1138, 2530, 2530, 1133, 2530, 1140, 1140,
4152      1140, 2852, 1139, 1139, 1139, 2530, 1137, 2854, 1138, 1141,
4153      1141, 1141, 2530,  265,  265, 1140, 1251, 1251, 1251, 1139,
4154      1251,  265, 2858, 1251,  265, 2859, 1945, 1141, 1948, 1948,
4155      1948,  265,  266,  266,  266,  266,  266,  266,  266,  266,
4156
4157       266,  266,  266,  266,  266,  266,  266, 2860,  266,  266,
4158       266,  266,  266, 1139, 1142, 1142, 1142, 1143, 1143, 1143,
4159      1137, 2862, 2861, 1145, 1145, 1145, 2863, 2865, 1139, 1152,
4160      1152, 1152, 1142, 2861, 1143, 1147, 1147, 1147,  266,  266,
4161      1145, 1267, 1267, 1267, 2866, 1267,  266, 1152, 1267,  266,
4162      2874, 2875, 1147, 1950, 1950, 1950,  266,  269,  269,  269,
4163       269,  269,  269,  269,  269,  269,  269,  269,  269,  269,
4164       269,  269, 2876,  269,  269,  269,  269,  269, 1155, 1155,
4165      1155, 2888, 1158, 1158, 1158, 2904, 1142, 2910, 1148, 1148,
4166      1148, 1149, 1149, 1149, 2911, 1155, 1150, 1150, 1150, 1158,
4167
4168      1151, 1151, 1151,  269,  269, 1148, 2912, 2913, 1149, 2734,
4169       269, 2734, 2914, 1150, 2915, 2916,  269, 1151, 1947, 1947,
4170      1947, 1956, 1956, 1956, 2734,  269,  270,  270,  270,  270,
4171       270,  270,  270,  270,  270,  270,  270,  270,  270,  270,
4172       270, 1148,  270,  270,  270,  270,  270, 1149, 1150, 1160,
4173      1160, 1160, 2917, 1151, 2918, 2919, 1170, 1170, 1170, 1171,
4174      1171, 1171, 1153, 1153, 1153, 1947, 1160, 1172, 1172, 1172,
4175      2921, 2922,  270,  270, 1170, 2923, 2735, 1171, 2735,  270,
4176      1153, 1959, 1959, 1959, 1172,  270, 1273, 1273, 1273, 2924,
4177      1273, 2735, 2925, 1273,  270,  273,  273,  273,  273,  273,
4178
4179       273,  273,  273,  273,  273,  273,  273,  273,  273,  273,
4180      1153,  273,  273,  273,  273,  273, 2926, 2927, 1171, 1174,
4181      1174, 1174, 1175, 1175, 1175, 2864, 1179, 1179, 1179, 1184,
4182      1184, 1184, 1185, 1185, 1185, 2928, 2864, 1174, 2929, 2930,
4183      1175,  273,  273, 1179, 1279, 1279, 1279, 1184, 1279, 2931,
4184      1185, 1279,  273, 1287, 1287, 1287, 2932, 1287, 2936, 2938,
4185      1287,  273,  274,  274,  274,  274,  274,  274,  274,  274,
4186       274,  274,  274,  274,  274,  274,  274, 2935,  274,  274,
4187       274,  274,  274, 2937, 1175, 1188, 1188, 1188, 1190, 1190,
4188      1190, 1960, 1960, 1960, 1185, 1192, 1192, 1192, 1193, 1193,
4189
4190      1193, 2936, 1188, 2939, 2902, 1190, 2940, 2935,  274,  274,
4191      1198, 1198, 1198, 1192, 2902, 2941, 1193, 2902, 2942,  274,
4192      1964, 1964, 1964, 1961, 1961, 1961, 2937, 1198,  274,  311,
4193       311,  311,  311,  311,  311,  311,  311,  311,  311,  311,
4194       311,  311,  311,  311, 2943,  311,  311,  311,  311,  311,
4195      1195, 1195, 1195, 1203, 1203, 1203, 1204, 1204, 1204, 2903,
4196      1193, 1196, 1196, 1196, 2944, 1206, 1206, 1206, 1195, 2903,
4197      2945, 1203, 2903, 2946, 1204,  311,  311, 2947, 2948, 1196,
4198      2949,  311, 1206, 2950,  311, 1299, 1299, 1299, 1961, 1299,
4199      2952, 2954, 1299, 1963, 1963, 1963,  311,  312,  312,  312,
4200
4201       312,  312,  312,  312,  312,  312,  312,  312,  312,  312,
4202       312,  312, 1204,  312,  312,  312,  312,  312, 1208, 1208,
4203      1208, 2955, 1196, 1209, 1209, 1209, 2956, 2958, 1210, 1210,
4204      1210, 2959, 1213, 1213, 1213, 2960, 1208, 1214, 1214, 1214,
4205      1963, 1209, 2972,  312,  312, 1210, 1222, 1222, 1222,  312,
4206      1213, 2977,  312, 2964, 2965, 1214, 1217, 1217, 1217, 1224,
4207      1224, 1224, 2978, 1222,  312,  360, 2964, 2965, 1218, 1218,
4208      1218, 2979,  360, 2980, 1217, 2981, 1224, 2982, 2983, 1209,
4209      2984,  360,  360, 1227, 1227, 1227, 1218, 1228, 1228, 1228,
4210      1231, 1231, 1231, 2985, 2986, 1232, 1232, 1232, 2987, 1214,
4211
4212      2995, 1227, 1242, 1242, 1242, 1228, 2997, 3001, 1231, 3002,
4213       360,  360,  360, 1232, 1243, 1243, 1243,  360,  360, 3003,
4214      1242,  360,  360, 3004, 3005,  360, 3006,  360,  360,  360,
4215      1218, 3008, 1243, 3020, 3021,  360,  362, 3023, 3024, 1228,
4216      1244, 1244, 1244, 1247, 1247, 1247, 1248, 1248, 1248, 1250,
4217      1250, 1250,  362,  362, 1232, 2880, 3026, 1244, 1252, 1252,
4218      1252, 1247, 3035, 3036, 1248, 2880, 1250, 1254, 1254, 1254,
4219      3037, 2880, 1258, 1258, 1258, 1252, 1263, 1263, 1263, 1243,
4220      3038,  362,  362,  362, 1254, 1259, 1259, 1259,  362,  362,
4221      1258, 3015,  362,  362, 1263, 3040,  362, 3041,  362,  362,
4222
4223       362, 3042, 3043, 1259, 3015, 3046,  362,  364, 1260, 1260,
4224      1260, 1248, 1261, 1261, 1261, 1262, 1262, 1262, 1264, 1264,
4225      1264, 3016, 3022,  364,  364, 1260, 1266, 1266, 1266, 1261,
4226      3047, 3048, 1262, 1259, 3016, 3022, 1264, 1268, 1268, 1268,
4227      1269, 1269, 1269, 1266, 1272, 1272, 1272, 1275, 1275, 1275,
4228      3049, 3050,  364,  364,  364, 1268, 3051, 3052, 1269,  364,
4229       364, 1272, 3053,  364,  364, 1275, 3025,  364, 2881,  364,
4230       364,  364, 1276, 1276, 1276, 1262, 3054,  364, 2881, 3025,
4231      1264, 1278, 1278, 1278, 2881, 1282, 1282, 1282, 3055, 3056,
4232      1276, 1283, 1283, 1283, 1286, 1286, 1286, 3057, 1278, 1290,
4233
4234      1290, 1290, 1269, 1282, 1291, 1291, 1291, 3062, 3065, 1283,
4235      3066, 1286, 1296, 1296, 1296, 3067, 3068, 1290, 1297, 1297,
4236      1297, 3063, 1291, 1298, 1298, 1298, 1301, 1301, 1301, 3069,
4237      1296, 1302, 1302, 1302, 3070, 3071, 1297, 3072, 3073, 1276,
4238      1298, 2033, 2033, 2033, 1301, 1303, 1303, 1303, 3074, 1302,
4239      1304, 1304, 1304, 1305, 1305, 1305, 3062, 3063, 1283, 1306,
4240      1306, 1306, 1303, 1307, 1307, 1307, 3075, 1304, 3076, 1291,
4241      1305, 1308, 1308, 1308, 3077, 3079, 1306, 3081, 1321, 1321,
4242      1321, 1307, 1321, 1297, 3082, 1321, 1325, 1325, 1325, 1308,
4243      1326, 1326, 1326, 1302, 1328, 1328, 1328, 1372, 1372, 1372,
4244
4245      3084, 1304, 3086, 3090, 1325, 1379, 1379, 1379, 1326, 1376,
4246      1376, 1376, 1328, 3091, 1372, 3092, 1304, 3093, 3097, 1306,
4247      1373, 1373, 1373, 1379, 1373, 3105, 1376, 1373, 1377, 1377,
4248      1377, 3106, 1377, 1308, 3107, 1377, 1380, 1380, 1380, 1382,
4249      1382, 1382, 1385, 1385, 1385, 1389, 1389, 1389, 1390, 1390,
4250      1390, 1392, 1392, 1392, 1380, 3108, 3109, 1382, 3110, 1385,
4251      1395, 1395, 1395, 1389, 3111, 3112, 1390, 3113, 3114, 1392,
4252      1396, 1396, 1396, 1398, 1398, 1398, 3115, 3119, 1395, 1400,
4253      1400, 1400, 3122, 1400, 3123, 3124, 1400, 3125, 1396, 3126,
4254      3127, 1398, 1404, 1404, 1404, 1405, 1405, 1405, 1407, 1407,
4255
4256      1407, 1968, 1968, 1968, 1382, 1408, 1408, 1408, 3128, 3131,
4257      1404, 3135, 3136, 1405, 3137, 3138, 1407, 3139, 1392, 1409,
4258      1409, 1409, 1408, 1409, 3140, 3141, 1409, 1398, 1412, 1412,
4259      1412, 1413, 1413, 1413, 3142, 1413, 3143, 3144, 1413, 1414,
4260      1414, 1414, 1415, 1415, 1415, 1412, 3145, 3146, 1407, 1417,
4261      1417, 1417, 1418, 1418, 1418, 3158, 3159, 1414, 3160, 3161,
4262      1415, 1419, 1419, 1419, 3162, 1419, 1968, 1417, 1419, 1418,
4263      1420, 1420, 1420, 1421, 1421, 1421, 3163, 1421, 3164, 3165,
4264      1421, 1422, 1422, 1422, 1423, 1423, 1423, 1420, 1425, 1425,
4265      1425, 1426, 1426, 1426, 1427, 1427, 1427, 3167, 1427, 1422,
4266
4267      3168, 1427, 1423, 1430, 1430, 1430, 1425, 3169, 1426, 1431,
4268      1431, 1431, 1417, 1431, 3170, 3171, 1431, 1432, 1432, 1432,
4269      1430, 1433, 1433, 1433, 1435, 1435, 1435, 1436, 1436, 1436,
4270      3172, 1436, 3173, 3174, 1436, 1432, 1439, 1439, 1439, 1433,
4271      1439, 3175, 1435, 1439, 1442, 1442, 1442, 3176, 1443, 1443,
4272      1443, 1425, 1443, 3177, 3178, 1443, 1448, 1448, 1448, 3186,
4273      3187, 1442, 1449, 1449, 1449, 1451, 1451, 1451, 1455, 1455,
4274      1455, 3188, 1455, 3191, 1448, 1455, 1458, 1458, 1458, 3192,
4275      1449, 3193, 3194, 1451, 1459, 1459, 1459, 1435, 1459, 3182,
4276      3197, 1459, 3199, 1458, 1462, 1462, 1462, 1463, 1463, 1463,
4277
4278      3203, 1463, 3206, 3207, 1463, 1473, 1473, 1473, 1474, 1474,
4279      1474, 1462, 3208, 3209, 1451, 1476, 1476, 1476, 1477, 1477,
4280      1477, 3210, 1477, 1473, 3182, 1477, 1474, 1480, 1480, 1480,
4281      1481, 1481, 1481, 1476, 1483, 1483, 1483, 1486, 1486, 1486,
4282      1487, 1487, 1487, 3211, 1487, 1480, 3212, 1487, 1481, 1493,
4283      1493, 1493, 1483, 3213, 1486, 1494, 1494, 1494, 1496, 1496,
4284      1496, 1498, 1498, 1498, 1499, 1499, 1499, 1493, 1499, 2119,
4285      3214, 1499, 3215, 1494, 3216, 2119, 1496, 3217, 1498, 2119,
4286      1502, 1502, 1502, 1476, 1502, 2119, 3222, 1502, 1505, 1505,
4287      1505, 1506, 1506, 1506, 3230, 1483, 1508, 1508, 1508, 1509,
4288
4289      1509, 1509, 1510, 1510, 1510, 3231, 1505, 3232, 3233, 1506,
4290      1511, 1511, 1511, 3234, 1508, 3235, 1509, 1513, 1513, 1513,
4291      1510, 1521, 1521, 1521, 1496, 1515, 1515, 1515, 1511, 1515,
4292      3236, 3237, 1515, 3238, 3239, 1513, 1522, 1522, 1522, 1521,
4293      1524, 1524, 1524, 1526, 1526, 1526, 3245, 1526, 3246, 3248,
4294      1526, 1529, 1529, 1529, 1522, 1530, 1530, 1530, 1524, 1532,
4295      1532, 1532, 1508, 3249, 1533, 1533, 1533, 1513, 1533, 1529,
4296      3251, 1533, 3252, 1530, 1537, 1537, 1537, 1532, 1538, 1538,
4297      1538, 1540, 1540, 1540, 3253, 1541, 1541, 1541, 1542, 1542,
4298      1542, 3254, 1537, 1543, 1543, 1543, 1538, 3255, 3256, 1540,
4299
4300      3088, 1524, 1541, 3257, 3258, 1542, 1544, 1544, 1544, 3259,
4301      3088, 1543, 1546, 1546, 1546, 1551, 1551, 1551, 3260, 1551,
4302      1532, 3261, 1551, 3262, 1544, 1554, 1554, 1554, 3088, 3263,
4303      1546, 3266, 1540, 1555, 1555, 1555, 1542, 1555, 3267, 3088,
4304      1555, 3268, 1554, 1558, 1558, 1558, 1559, 1559, 1559, 1561,
4305      1561, 1561, 1564, 1564, 1564, 1565, 1565, 1565, 1567, 1567,
4306      1567, 1558, 3269, 3270, 1559, 3271, 3272, 1561, 3273, 3275,
4307      1564, 3276, 3278, 1565, 3279, 3280, 1567, 1573, 1573, 1573,
4308      1546, 1577, 1577, 1577, 1578, 1578, 1578, 1580, 1580, 1580,
4309      3282, 1581, 1581, 1581, 1573, 1581, 3284, 3285, 1581, 1577,
4310
4311      3286, 1561, 1578, 3289, 3290, 1580, 1567, 1585, 1585, 1585,
4312      1586, 1586, 1586, 1588, 1588, 1588, 1590, 1590, 1590, 3089,
4313      1590, 2531, 2531, 1590, 2531, 1585, 3291, 3292, 1586, 3089,
4314      3295, 1588, 2531, 1593, 1593, 1593, 1594, 1594, 1594, 2531,
4315      1594, 3296, 3297, 1594, 1595, 1595, 1595, 3089, 3298, 1580,
4316      1593, 1596, 1596, 1596, 3299, 1597, 1597, 1597, 3089, 1597,
4317      3300, 1595, 1597, 1599, 1599, 1599, 3301, 3302, 1596, 1601,
4318      1601, 1601, 1602, 1602, 1602, 1588, 1604, 1604, 1604, 3303,
4319      1599, 1605, 1605, 1605, 1606, 1606, 1606, 1601, 1606, 3304,
4320      1602, 1606, 3310, 3311, 1604, 1607, 1607, 1607, 1605, 1608,
4321
4322      1608, 1608, 3313, 1608, 3314, 3315, 1608, 1610, 1610, 1610,
4323      3317, 3319, 1607, 1611, 1611, 1611, 1613, 1613, 1613, 1615,
4324      1615, 1615, 3322, 1615, 3324, 1610, 1615, 1618, 1618, 1618,
4325      3325, 1611, 3326, 3304, 1613, 3327, 3328, 1604, 1619, 1619,
4326      1619, 1621, 1621, 1621, 3329, 1618, 1624, 1624, 1624, 3330,
4327      1624, 3331, 3332, 1624, 3333, 3334, 1619, 3335, 3338, 1621,
4328      1628, 1628, 1628, 1629, 1629, 1629, 3342, 1631, 1631, 1631,
4329      1633, 1633, 1633, 3149, 1633, 3343, 3345, 1633, 1628, 3346,
4330      3347, 1629, 3349, 3149, 1613, 1631, 1637, 1637, 1637, 1638,
4331      1638, 1638, 1639, 1639, 1639, 1641, 1641, 1641, 1643, 1643,
4332
4333      1643, 3149, 3350, 1637, 1644, 1644, 1644, 1638, 1644, 1621,
4334      1639, 1644, 3149, 1641, 3355, 1643, 1647, 1647, 1647, 1649,
4335      1649, 1649, 1650, 1650, 1650, 1652, 1652, 1652, 3356, 1631,
4336      1654, 1654, 1654, 1647, 1656, 1656, 1656, 1649, 3357, 3358,
4337      1650, 3359, 3360, 1652, 1657, 1657, 1657, 1654, 1659, 1659,
4338      1659, 3361, 1656, 3362, 1660, 1660, 1660, 1641, 1660, 3363,
4339      3364, 1660, 1657, 1664, 1664, 1664, 1659, 1665, 1665, 1665,
4340      1667, 1667, 1667, 1652, 1668, 1668, 1668, 3365, 1647, 3366,
4341      3367, 1664, 1669, 1669, 1669, 1665, 1669, 3368, 1667, 1669,
4342      3369, 1668, 1672, 1672, 1672, 3370, 1659, 1673, 1673, 1673,
4343
4344      3371, 1673, 3375, 3376, 1673, 1675, 1675, 1675, 3377, 1672,
4345      1676, 1676, 1676, 3378, 1678, 1678, 1678, 1680, 1680, 1680,
4346      1686, 1686, 1686, 1675, 1739, 1739, 1739, 3379, 1676, 3380,
4347      3381, 1667, 1678, 3382, 3385, 1680, 1680, 3386, 1686, 1730,
4348      1730, 1730, 1739, 1730, 3387, 3388, 1730, 1735, 1735, 1735,
4349      3389, 1735, 3390, 3392, 1735, 1742, 1742, 1742, 1743, 1743,
4350      1743, 3393, 1743, 3150, 3395, 1743, 1747, 1747, 1747, 1750,
4351      1750, 1750, 1742, 3150, 3396, 1678, 1749, 1749, 1749, 3397,
4352      1753, 1753, 1753, 3399, 1747, 3400, 1739, 1750, 1754, 1754,
4353      1754, 3150, 1754, 1749, 3401, 1754, 3402, 3403, 1753, 1759,
4354
4355      1759, 1759, 3150, 1759, 3404, 3405, 1759, 1762, 1762, 1762,
4356      1763, 1763, 1763, 3406, 1763, 3407, 3411, 1763, 3415, 1766,
4357      1766, 1766, 3416, 1766, 3418, 1762, 1766, 3411, 1747, 1769,
4358      1769, 1769, 1770, 1770, 1770, 3419, 1770, 1750, 1753, 1770,
4359      3408, 1775, 1775, 1775, 3410, 1775, 3423, 1769, 1775, 1778,
4360      1778, 1778, 1779, 1779, 1779, 1762, 1779, 3425, 3410, 1779,
4361      3427, 1784, 1784, 1784, 1786, 1786, 1786, 1778, 1787, 1787,
4362      1787, 1788, 1788, 1788, 1789, 1789, 1789, 1769, 1784, 1790,
4363      1790, 1790, 1786, 3429, 3431, 1787, 3433, 3408, 1788, 3437,
4364      3443, 1789, 1795, 1795, 1795, 3444, 1790, 1778, 1791, 1791,
4365
4366      1791, 3446, 1791, 3447, 3449, 1791, 1792, 1792, 1792, 1795,
4367      1792, 3414, 3460, 1792, 1796, 1796, 1796, 1797, 1797, 1797,
4368      1786, 3439, 1789, 1798, 1798, 1798, 1799, 1799, 1799, 3440,
4369      3414, 1796, 3414, 3439, 1797, 1800, 1800, 1800, 1788, 3462,
4370      1798, 3440, 3464, 1799, 1795, 3414, 1801, 1801, 1801, 1802,
4371      1802, 1802, 1800, 1803, 1803, 1803, 1804, 1804, 1804, 1805,
4372      1805, 1805, 1796, 1801, 3465, 3468, 1802, 1809, 1809, 1809,
4373      1803, 1798, 3469, 1804, 1806, 1806, 1806, 1805, 1810, 1810,
4374      1810, 3472, 1810, 3474, 1809, 1810, 3476, 3478, 1797, 3480,
4375      3482, 1799, 1806, 1812, 1812, 1812, 1800, 1814, 1814, 1814,
4376
4377      1816, 1816, 1816, 3483, 1817, 1817, 1817, 3454, 1817, 3485,
4378      1812, 1817, 1818, 1818, 1818, 1814, 1803, 1816, 1804, 3454,
4379      1802, 1819, 1819, 1819, 3486, 1805, 3490, 1806, 3491, 3493,
4380      1818, 3494, 1820, 1820, 1820, 3496, 1820, 3498, 1819, 1820,
4381      1821, 1821, 1821, 1826, 1826, 1826, 3500, 1828, 1828, 1828,
4382      1829, 1829, 1829, 3180, 1830, 1830, 1830, 3502, 1821, 3455,
4383      3503, 1826, 3504, 3180, 1814, 1828, 3506, 1829, 1831, 1831,
4384      1831, 3455, 1830, 1832, 1832, 1832, 3504, 1832, 3508, 1818,
4385      1832, 3180, 1834, 1834, 1834, 1831, 1836, 1836, 1836, 1839,
4386      1839, 1839, 3180, 1839, 3505, 3505, 1839, 3511, 3512, 1821,
4387
4388      1834, 1826, 3503, 1836, 3513, 1828, 1830, 1842, 1842, 1842,
4389      1844, 1844, 1844, 1847, 1847, 1847, 1853, 1853, 1853, 1854,
4390      1854, 1854, 3517, 1854, 1842, 3518, 1854, 3519, 1844, 3514,
4391      3528, 1847, 3529, 1853, 1858, 1858, 1858, 1859, 1859, 1859,
4392      1860, 1860, 1860, 1834, 1862, 1862, 1862, 3514, 1862, 3539,
4393      3520, 1862, 1858, 3507, 1859, 1865, 1865, 1865, 1860, 1866,
4394      1866, 1866, 3533, 1866, 3507, 3520, 1866, 1867, 1867, 1867,
4395      3533, 1867, 1865, 3532, 1867, 1844, 1871, 1871, 1871, 3535,
4396      1847, 1872, 1872, 1872, 1858, 1872, 3540, 3535, 1872, 1874,
4397      1874, 1874, 3532, 1871, 1875, 1875, 1875, 3541, 1875, 3542,
4398
4399      3549, 1875, 3545, 1860, 1878, 1878, 1878, 1874, 1878, 3550,
4400      3545, 1878, 1882, 1882, 1882, 1884, 1884, 1884, 1888, 1888,
4401      1888, 1890, 1890, 1890, 1891, 1891, 1891, 1892, 1892, 1892,
4402      1882, 1892, 3534, 1884, 1892, 3544, 1888, 3551, 1890, 3552,
4403      1874, 1891, 1893, 1893, 1893, 1895, 1895, 1895, 1896, 1896,
4404      1896, 3534, 1896, 3546, 3544, 1896, 1899, 1899, 1899, 3553,
4405      1893, 3547, 1895, 1901, 1901, 1901, 1902, 1902, 1902, 3547,
4406      1902, 3554, 3546, 1902, 1899, 1903, 1903, 1903, 3564, 1882,
4407      1901, 3565, 1884, 1888, 1904, 1904, 1904, 1906, 1906, 1906,
4408      3566, 3570, 1903, 1907, 1907, 1907, 3567, 1907, 3571, 3572,
4409
4410      1907, 3573, 1904, 3580, 3581, 1906, 1899, 1893, 1912, 1912,
4411      1912, 3582, 1912, 3584, 3567, 1912, 3573, 1916, 1916, 1916,
4412      1919, 1919, 1919, 1969, 1969, 1969, 1970, 1970, 1970, 1971,
4413      1971, 1971, 3585, 3586, 1904, 1916, 3588, 3589, 1919, 1906,
4414      1972, 1972, 1972, 1970, 3590, 3591, 1971, 1973, 1973, 1973,
4415      3593, 1976, 1976, 1976, 3594, 1976, 3595, 1972, 1976, 1982,
4416      1982, 1982, 1984, 1984, 1984, 1973, 1985, 1985, 1985, 1916,
4417      1985, 3600, 1919, 1985, 1986, 1986, 1986, 1982, 3601, 1984,
4418      1989, 1989, 1989, 1990, 1990, 1990, 3602, 3603, 1969, 1919,
4419      3604, 3605, 1986, 1991, 1991, 1991, 3606, 3607, 1989, 3608,
4420
4421      1990, 1992, 1992, 1992, 3609, 1972, 3610, 1993, 1993, 1993,
4422      1991, 1994, 1994, 1994, 3611, 1973, 1995, 1995, 1995, 1992,
4423      1996, 1996, 1996, 3614, 1982, 1993, 3615, 3616, 1994, 1989,
4424      1997, 1997, 1997, 1995, 1986, 1998, 1998, 1998, 1996, 1999,
4425      1999, 1999, 2000, 2000, 2000, 3617, 2000, 1997, 3618, 2000,
4426      3619, 3620, 1998, 2001, 2001, 2001, 1999, 2002, 2002, 2002,
4427      2003, 2003, 2003, 3621, 2004, 2004, 2004, 1992, 2004, 3624,
4428      2001, 2004, 3625, 1993, 3626, 2002, 3627, 2003, 2005, 2005,
4429      2005, 2006, 2006, 2006, 3628, 3629, 1996, 3181, 3630, 2007,
4430      2007, 2007, 3631, 2007, 1998, 2005, 2007, 3181, 2006, 2010,
4431
4432      2010, 2010, 2011, 2011, 2011, 2012, 2012, 2012, 2013, 2013,
4433      2013, 2014, 2014, 2014, 3632, 3181, 2010, 3634, 2002, 2011,
4434      3635, 3636, 2012, 3489, 3637, 2013, 3181, 3639, 2014, 3641,
4435      2015, 2015, 2015, 2016, 2016, 2016, 2017, 2017, 2017, 3642,
4436      2017, 3643, 3489, 2017, 3489, 3644, 2006, 2015, 3645, 3646,
4437      2016, 3647, 2011, 2018, 2018, 2018, 3648, 3489, 2014, 2019,
4438      2019, 2019, 3649, 3650, 2010, 3651, 3655, 2013, 3656, 3657,
4439      2018, 2020, 2020, 2020, 3658, 3417, 2019, 2021, 2021, 2021,
4440      2022, 2022, 2022, 3659, 2015, 2025, 2025, 2025, 2020, 2025,
4441      3660, 3417, 2025, 3417, 3661, 2021, 3662, 3663, 2022, 2028,
4442
4443      2028, 2028, 2029, 2029, 2029, 3653, 3417, 2019, 2030, 2030,
4444      2030, 3654, 2030, 3665, 3670, 2030, 2028, 3653, 3671, 2029,
4445      2032, 2032, 2032, 3654, 3672, 2020, 2034, 2034, 2034, 3673,
4446      2034, 3674, 3675, 2034, 3676, 3677, 2022, 3681, 2032, 2037,
4447      2037, 2037, 3682, 3684, 2021, 2038, 2038, 2038, 3686, 2038,
4448      3687, 3688, 2038, 2041, 2041, 2041, 3689, 2037, 2046, 2046,
4449      2046, 2048, 2048, 2048, 2049, 2049, 2049, 3690, 2050, 2050,
4450      2050, 2041, 2050, 3691, 3692, 2050, 2046, 3693, 3694, 2048,
4451      3697, 2049, 2051, 2051, 2051, 3695, 2037, 2052, 2052, 2052,
4452      3698, 2052, 3699, 3700, 2052, 2056, 2056, 2056, 3701, 3702,
4453
4454      2051, 2058, 2058, 2058, 3703, 2059, 2059, 2059, 2048, 2059,
4455      3695, 3704, 2059, 2056, 2060, 2060, 2060, 3707, 2058, 3708,
4456      3709, 2041, 2062, 2062, 2062, 2063, 2063, 2063, 3710, 2063,
4457      3711, 2060, 2063, 2065, 2065, 2065, 2068, 2068, 2068, 2062,
4458      3712, 2051, 2069, 2069, 2069, 2074, 2074, 2074, 3713, 2074,
4459      3714, 2065, 2074, 3492, 2068, 2080, 2080, 2080, 2081, 2081,
4460      2081, 3715, 2056, 2082, 2082, 2082, 3716, 2082, 3717, 3492,
4461      2082, 3492, 3718, 2080, 3721, 2081, 2083, 2083, 2083, 2085,
4462      2085, 2085, 3722, 2085, 3492, 3723, 2085, 3724, 3725, 2068,
4463      3726, 2089, 2089, 2089, 2083, 2089, 3727, 3728, 2089, 2093,
4464
4465      2093, 2093, 2095, 2095, 2095, 3731, 3732, 2080, 2097, 2097,
4466      2097, 2098, 2098, 2098, 2099, 2099, 2099, 2093, 3733, 3734,
4467      2095, 2100, 2100, 2100, 3735, 3736, 2097, 3737, 2098, 3738,
4468      3739, 2099, 2101, 2101, 2101, 2103, 2103, 2103, 2100, 2104,
4469      2104, 2104, 3740, 2104, 3741, 3742, 2104, 2108, 2108, 2108,
4470      2101, 3743, 2103, 3744, 2095, 2105, 2105, 2105, 3745, 2105,
4471      2097, 2093, 2105, 3741, 3746, 2108, 2110, 2110, 2110, 3747,
4472      2110, 3748, 3749, 2110, 2115, 2115, 2115, 2120, 2120, 2120,
4473      2101, 2099, 2117, 2117, 2117, 3750, 2117, 3751, 3752, 2117,
4474      3753, 3754, 2115, 3755, 2120, 2108, 2121, 2121, 2121, 3756,
4475
4476      2121, 3757, 3758, 2121, 2122, 2122, 2122, 2124, 2124, 2124,
4477      2125, 2125, 2125, 2126, 2126, 2126, 2127, 2127, 2127, 2128,
4478      2128, 2128, 2122, 3759, 3760, 2124, 2115, 2125, 3761, 3762,
4479      2126, 3763, 3764, 2127, 2133, 2133, 2133, 2128, 2135, 2135,
4480      2135, 2141, 2141, 2141, 2146, 2146, 2146, 2149, 2149, 2149,
4481      3765, 2133, 2150, 2150, 2150, 2128, 2122, 2151, 2151, 2151,
4482      2153, 2153, 2153, 2163, 2163, 2163, 2164, 2164, 2164, 2166,
4483      2166, 2166, 2171, 2171, 2171, 2172, 2172, 2172, 3766, 2172,
4484      3767, 2127, 2172, 2173, 2173, 2173, 2174, 2174, 2174, 2171,
4485      2174, 3768, 3769, 2174, 2176, 2176, 2176, 2182, 2182, 2182,
4486
4487      2173, 2184, 2184, 2184, 3772, 2184, 3773, 3774, 2184, 2189,
4488      2189, 2189, 2176, 3775, 3776, 2182, 2187, 2187, 2187, 2190,
4489      2190, 2190, 2191, 2191, 2191, 3777, 2189, 3778, 2192, 2192,
4490      2192, 3779, 2192, 3781, 2187, 2192, 3782, 2190, 3784, 2191,
4491      2193, 2193, 2193, 2194, 2194, 2194, 3780, 2194, 3785, 3786,
4492      2194, 2195, 2195, 2195, 2196, 2196, 2196, 2193, 2197, 2197,
4493      2197, 2176, 3788, 2198, 2198, 2198, 3780, 2198, 2187, 2195,
4494      2198, 3789, 2196, 3790, 3791, 2197, 2199, 2199, 2199, 3792,
4495      3793, 2190, 2200, 2200, 2200, 3794, 2200, 3795, 3796, 2200,
4496      2201, 2201, 2201, 2199, 2202, 2202, 2202, 2203, 2203, 2203,
4497
4498      3797, 2203, 3798, 3799, 2203, 2204, 2204, 2204, 2201, 3800,
4499      3801, 2202, 2205, 2205, 2205, 3802, 2205, 2195, 3803, 2205,
4500      2196, 3804, 2204, 2208, 2208, 2208, 2209, 2209, 2209, 3805,
4501      2209, 3806, 3807, 2209, 2210, 2210, 2210, 2211, 2211, 2211,
4502      2208, 2211, 3808, 3809, 2211, 2214, 2214, 2214, 2219, 2219,
4503      2219, 3810, 2210, 2215, 2215, 2215, 2201, 2215, 3812, 3813,
4504      2215, 3814, 2214, 3816, 3818, 2219, 2220, 2220, 2220, 3819,
4505      2220, 3821, 3822, 2220, 2221, 2221, 2221, 2224, 2224, 2224,
4506      3824, 2224, 3825, 3826, 2224, 3827, 2210, 2227, 2227, 2227,
4507      3828, 2221, 2228, 2228, 2228, 3829, 2228, 3817, 3831, 2228,
4508
4509      2231, 2231, 2231, 3817, 2227, 2232, 2232, 2232, 2235, 2235,
4510      2235, 3832, 2236, 2236, 2236, 3833, 2236, 3835, 2231, 2236,
4511      2237, 2237, 2237, 2232, 2237, 2235, 3836, 2237, 2241, 2241,
4512      2241, 2243, 2243, 2243, 3837, 2244, 2244, 2244, 2245, 2245,
4513      2245, 2247, 2247, 2247, 3839, 3840, 2241, 2250, 2250, 2250,
4514      3841, 3843, 2231, 2244, 3844, 3845, 2245, 3847, 2247, 2232,
4515      2253, 2253, 2253, 3848, 3851, 2250, 2254, 2254, 2254, 3853,
4516      2254, 3855, 3850, 2254, 2257, 2257, 2257, 3856, 2253, 2259,
4517      2259, 2259, 3857, 2261, 2261, 2261, 3850, 2261, 2247, 2245,
4518      2261, 3858, 2257, 3860, 2244, 3861, 3863, 2259, 2264, 2264,
4519
4520      2264, 2265, 2265, 2265, 3864, 2265, 3866, 3867, 2265, 3869,
4521      2253, 3870, 2267, 2267, 2267, 2264, 2267, 3871, 3873, 2267,
4522      3876, 2257, 2271, 2271, 2271, 2274, 2274, 2274, 2275, 2275,
4523      2275, 2276, 2276, 2276, 2277, 2277, 2277, 2279, 2279, 2279,
4524      2271, 3877, 2274, 2284, 2284, 2284, 2275, 2285, 2285, 2285,
4525      3878, 2285, 3879, 3880, 2285, 2288, 2288, 2288, 2291, 2291,
4526      2291, 2284, 2293, 2293, 2293, 2295, 2295, 2295, 2297, 2297,
4527      2297, 3881, 3882, 2288, 3883, 2291, 2298, 2298, 2298, 3884,
4528      2293, 3885, 3886, 2295, 3887, 3888, 2297, 2299, 2299, 2299,
4529      2275, 2299, 3889, 2298, 2299, 2300, 2300, 2300, 2301, 2301,
4530
4531      2301, 2302, 2302, 2302, 3890, 2302, 3891, 3895, 2302, 2284,
4532      3897, 3899, 2300, 3900, 3901, 2301, 2303, 2303, 2303, 2304,
4533      2304, 2304, 2293, 2305, 2305, 2305, 3902, 2305, 3903, 3904,
4534      2305, 3905, 3906, 2297, 2303, 3914, 2304, 2308, 2308, 2308,
4535      2312, 2312, 2312, 2313, 2313, 2313, 2322, 2322, 2322, 3909,
4536      2322, 3916, 3910, 2322, 3918, 2308, 3920, 3921, 2312, 3941,
4537      2313, 2325, 2325, 2325, 2326, 2326, 2326, 2327, 2327, 2327,
4538      2303, 2329, 2329, 2329, 3929, 3969, 2330, 2330, 2330, 2325,
4539      2330, 2326, 3933, 2330, 3969, 2327, 3909, 3945, 2329, 3910,
4540      3933, 2308, 2331, 2331, 2331, 2332, 2332, 2332, 1549, 2332,
4541
4542      1548, 1547, 2332, 2334, 2334, 2334, 3921, 3941, 2325, 2331,
4543      2338, 2338, 2338, 2339, 2339, 2339, 1536, 2339, 1525, 3929,
4544      2339, 2334, 2340, 2340, 2340, 3945, 3922, 2338, 2346, 2346,
4545      2346, 2347, 2347, 2347, 2348, 2348, 2348, 2350, 2350, 2350,
4546      2354, 2354, 2354, 2355, 2355, 2355, 2356, 2356, 2356, 2357,
4547      2357, 2357, 2360, 2360, 2360, 2365, 2365, 2365, 2366, 2366,
4548      2366, 2368, 2368, 2368, 3927, 2334, 2369, 2369, 2369, 2370,
4549      2370, 2370, 2373, 2373, 2373, 3922, 2373, 3977, 1520, 2373,
4550      2376, 2376, 2376, 3979, 2376, 3928, 3930, 2376, 2380, 2380,
4551      2380, 2382, 2382, 2382, 1519, 3947, 2357, 2383, 2383, 2383,
4552
4553      2384, 2384, 2384, 2385, 2385, 2385, 2380, 1518, 2382, 2386,
4554      2386, 2386, 3977, 3927, 2383, 3934, 2370, 2384, 3979, 3934,
4555      2385, 2389, 2389, 2389, 2391, 2391, 2391, 2386, 2392, 2392,
4556      2392, 3930, 2392, 3947, 3928, 2392, 2393, 2393, 2393, 2389,
4557      2380, 2391, 3936, 2394, 2394, 2394, 3936, 2394, 3935, 2383,
4558      2394, 2397, 2397, 2397, 2393, 2397, 3935, 3943, 2397, 2400,
4559      2400, 2400, 3949, 2385, 3937, 2384, 2401, 2401, 2401, 2402,
4560      2402, 2402, 3937, 2402, 3931, 1514, 2402, 2400, 3931, 2400,
4561      2667, 2667, 2389, 2667, 2401, 2405, 2405, 2405, 3938, 2405,
4562      4017, 2667, 2405, 2408, 2408, 2408, 3938, 2393, 2667, 2409,
4563
4564      2409, 2409, 2401, 2409, 3949, 3943, 2409, 2412, 2412, 2412,
4565      3939, 2408, 2413, 2413, 2413, 3951, 2413, 3946, 3939, 2413,
4566      4017, 2414, 2414, 2414, 2412, 2414, 3931, 3940, 2414, 2417,
4567      2417, 2417, 2418, 2418, 2418, 3940, 2418, 2408, 3942, 2418,
4568      1497, 2424, 2424, 2424, 3950, 2424, 3942, 2417, 2424, 2427,
4569      2427, 2427, 2428, 2428, 2428, 3944, 2428, 3951, 3948, 2428,
4570      2431, 2431, 2431, 3944, 2431, 3946, 2427, 2431, 2435, 2435,
4571      2435, 2436, 2436, 2436, 2437, 2437, 2437, 2440, 2440, 2440,
4572      3952, 2440, 3950, 3953, 2440, 2435, 2444, 2444, 2444, 2436,
4573      3954, 3971, 2437, 2445, 2445, 2445, 2417, 2447, 2447, 2447,
4574
4575      3971, 2448, 2448, 2448, 2444, 2448, 3948, 3957, 2448, 4025,
4576      3956, 2445, 1492, 4002, 2447, 2453, 2453, 2453, 3952, 3953,
4577      2454, 2454, 2454, 2456, 2456, 2456, 3974, 2459, 2459, 2459,
4578      1491, 2459, 3954, 2453, 2459, 3974, 2436, 3955, 2454, 3932,
4579      1490, 2456, 2444, 3932, 4025, 2445, 2465, 2465, 2465, 2466,
4580      2466, 2466, 3956, 2466, 3957, 4002, 2466, 2467, 2467, 2467,
4581      2468, 2468, 2468, 2465, 2469, 2469, 2469, 2470, 2470, 2470,
4582      2471, 2471, 2471, 3955, 3959, 2467, 2472, 2472, 2472, 2473,
4583      2473, 2473, 2453, 2454, 2475, 2475, 2475, 2471, 2474, 2474,
4584      2474, 3932, 3976, 2472, 3965, 3990, 2473, 2477, 2477, 2477,
4585
4586      1485, 3976, 2475, 3990, 3961, 2474, 2478, 2478, 2478, 3978,
4587      2478, 4005, 3962, 2478, 2477, 2480, 2480, 2480, 2482, 2482,
4588      2482, 3959, 2467, 2485, 2485, 2485, 3958, 3965, 2472, 3964,
4589      2486, 2486, 2486, 2480, 2486, 3963, 2482, 2486, 2489, 2489,
4590      2489, 2485, 3961, 3966, 2473, 2490, 2490, 2490, 2474, 2490,
4591      2475, 1484, 2490, 3978, 4005, 2489, 2491, 2491, 2491, 3962,
4592      2491, 3960, 3958, 2491, 2494, 2494, 2494, 2495, 2495, 2495,
4593      2496, 2496, 2496, 3963, 2496, 4027, 3964, 2496, 2497, 2497,
4594      2497, 3966, 2494, 3973, 2495, 2501, 2501, 2501, 2503, 2503,
4595      2503, 2504, 2504, 2504, 3992, 2504, 2497, 3960, 2504, 2515,
4596
4597      2515, 2515, 3992, 2501, 3967, 2503, 2516, 2516, 2516, 3975,
4598      4027, 2517, 2517, 2517, 3968, 2517, 2494, 2515, 2517, 3973,
4599      2518, 2518, 2518, 2516, 2518, 3970, 3972, 2518, 4033, 1471,
4600      2497, 2521, 2521, 2521, 1470, 2521, 4033, 3967, 2521, 2525,
4601      2525, 2525, 2526, 2526, 2526, 3975, 2529, 2529, 2529, 2515,
4602      2529, 1469, 3968, 2529, 2532, 2532, 2532, 2525, 3970, 3972,
4603      2526, 2533, 2533, 2533, 2534, 2534, 2534, 2538, 2538, 2538,
4604      2539, 2539, 2539, 2541, 2541, 2541, 2542, 2542, 2542, 2544,
4605      2544, 2544, 2545, 2545, 2545, 2546, 2546, 2546, 2550, 2550,
4606      2550, 2551, 2551, 2551, 2555, 2555, 2555, 2556, 2556, 2556,
4607
4608      2558, 2558, 2558, 2559, 2559, 2559, 3980, 2525, 2564, 2564,
4609      2564, 2565, 2565, 2565, 2566, 2566, 2566, 2567, 2567, 2567,
4610      3998, 2567, 3981, 1468, 2567, 3986, 2564, 2568, 2568, 2568,
4611      1467, 2566, 2569, 2569, 2569, 2570, 2570, 2570, 2571, 2571,
4612      2571, 2572, 2572, 2572, 2568, 2573, 2573, 2573, 3993, 2569,
4613      3980, 3982, 2570, 2574, 2574, 2574, 3983, 2574, 3998, 2572,
4614      2574, 3986, 2573, 2577, 2577, 2577, 3981, 2578, 2578, 2578,
4615      2579, 2579, 2579, 2580, 2580, 2580, 2581, 2581, 2581, 3994,
4616      2581, 2577, 3993, 2581, 2569, 2578, 3984, 2570, 2579, 1466,
4617      1465, 2580, 2584, 2584, 2584, 2588, 2588, 2588, 3982, 2588,
4618
4619      3983, 4018, 2588, 3996, 2578, 2591, 2591, 2591, 2572, 3985,
4620      2584, 2594, 2594, 2594, 1464, 2577, 2595, 2595, 2595, 3995,
4621      2595, 1454, 2591, 2595, 2596, 2596, 2596, 3994, 2594, 2597,
4622      2597, 2597, 2579, 3984, 4018, 2580, 2602, 2602, 2602, 2603,
4623      2603, 2603, 2596, 2604, 2604, 2604, 3988, 2597, 2605, 2605,
4624      2605, 3996, 2605, 3995, 2602, 2605, 3985, 2603, 4000, 3989,
4625      2604, 2608, 2608, 2608, 2609, 2609, 2609, 2610, 2610, 2610,
4626      2611, 2611, 2611, 2612, 2612, 2612, 3997, 3999, 2608, 4019,
4627      3991, 2609, 3988, 1453, 2610, 3997, 3999, 2611, 1452, 3987,
4628      2604, 2612, 2613, 2613, 2613, 3989, 4000, 2602, 2614, 2614,
4629
4630      2614, 2618, 2618, 2618, 2619, 2619, 2619, 4040, 2619, 4019,
4631      2613, 2619, 2622, 2622, 2622, 2614, 3991, 2608, 4040, 2610,
4632      2623, 2623, 2623, 2624, 2624, 2624, 2609, 2626, 2626, 2626,
4633      2622, 2625, 2625, 2625, 2612, 2625, 3987, 4009, 2625, 4004,
4634      2624, 2627, 2627, 2627, 2626, 2628, 2628, 2628, 2629, 2629,
4635      2629, 2630, 2630, 2630, 2634, 2634, 2634, 2613, 2627, 2635,
4636      2635, 2635, 2628, 2631, 2631, 2631, 2629, 2631, 2630, 4020,
4637      2631, 2634, 2622, 2639, 2639, 2639, 4001, 2635, 2641, 2641,
4638      2641, 4004, 2641, 4021, 4009, 2641, 2644, 2644, 2644, 4003,
4639      4007, 2639, 4021, 2627, 2645, 2645, 2645, 2628, 2645, 4006,
4640
4641      4008, 2645, 4020, 4010, 2644, 2648, 2648, 2648, 2652, 2652,
4642      2652, 4011, 2652, 1447, 4001, 2652, 2665, 2665, 2665, 2668,
4643      2668, 2634, 2668, 2648, 2666, 2666, 2666, 4003, 2666, 1446,
4644      2668, 2666, 1445, 4007, 2665, 4006, 4008, 2668, 2670, 2670,
4645      2670, 2671, 2671, 2671, 2684, 2684, 2684, 2685, 2685, 2685,
4646      4010, 4012, 2648, 2689, 2689, 2689, 2670, 4026, 4011, 2671,
4647      2690, 2690, 2690, 2692, 2692, 2692, 2695, 2695, 2695, 2696,
4648      2696, 2696, 2700, 2700, 2700, 2703, 2703, 2703, 2665, 2705,
4649      2705, 2705, 2707, 2707, 2707, 2708, 2708, 2708, 4038, 2708,
4650      4026, 1444, 2708, 2711, 2711, 2711, 4013, 2705, 4012, 2712,
4651
4652      2712, 2712, 4038, 2712, 2671, 2670, 2712, 2713, 2713, 2713,
4653      2711, 2714, 2714, 2714, 2715, 2715, 2715, 2716, 2716, 2716,
4654      2717, 2717, 2717, 4014, 2713, 2718, 2718, 2718, 2714, 2718,
4655      4028, 4015, 2718, 4030, 4013, 2716, 4016, 2717, 2719, 2719,
4656      2719, 2720, 2720, 2720, 2721, 2721, 2721, 2722, 2722, 2722,
4657      2723, 2723, 2723, 2729, 2729, 2729, 2719, 4022, 4023, 2720,
4658      4032, 4014, 2721, 4028, 4076, 2722, 4022, 4023, 2723, 4015,
4659      2729, 2730, 2730, 2730, 4016, 2730, 4024, 4034, 2730, 2733,
4660      2733, 2733, 4030, 2733, 1429, 4024, 2733, 2736, 2736, 2736,
4661      2740, 2740, 2740, 2741, 2741, 2741, 2742, 2742, 2742, 2744,
4662
4663      2744, 2744, 2752, 2752, 2752, 2736, 2720, 2740, 2722, 4032,
4664      4034, 2741, 2721, 4076, 2742, 1428, 2744, 2745, 2745, 2745,
4665      2752, 2745, 4036, 4029, 2745, 2749, 2749, 2749, 2750, 2750,
4666      2750, 2751, 2751, 2751, 4044, 2751, 4035, 1411, 2751, 2753,
4667      2753, 2753, 2749, 1410, 4035, 2750, 2754, 2754, 2754, 4041,
4668      4043, 2741, 2755, 2755, 2755, 4036, 2755, 2753, 4031, 2755,
4669      2758, 2758, 2758, 2754, 2759, 2759, 2759, 2760, 2760, 2760,
4670      4029, 2761, 2761, 2761, 4037, 2761, 4044, 2758, 2761, 2764,
4671      2764, 2764, 2765, 2765, 2765, 2760, 2765, 4041, 4043, 2765,
4672      2766, 2766, 2766, 2767, 2767, 2767, 2764, 2768, 2768, 2768,
4673
4674      4072, 2753, 2770, 2770, 2770, 4031, 4056, 2766, 4047, 4072,
4675      2767, 2775, 2775, 2775, 4056, 2768, 2771, 2771, 2771, 2770,
4676      2771, 1403, 4037, 2771, 2777, 2777, 2777, 4052, 1399, 2775,
4677      4039, 2790, 2790, 2790, 2802, 2802, 2802, 2821, 2821, 2821,
4678      1394, 4053, 2777, 2822, 2822, 2822, 2825, 2825, 2825, 2790,
4679      4047, 4054, 2802, 2829, 2829, 2829, 2832, 2832, 2832, 2833,
4680      2833, 2833, 2834, 2834, 2834, 4052, 2834, 1393, 4048, 2834,
4681      2837, 2837, 2837, 2838, 2838, 2838, 2833, 2838, 4039, 4053,
4682      2838, 2839, 2839, 2839, 4054, 1388, 2802, 2837, 2841, 2841,
4683      2841, 2777, 2790, 2840, 2840, 2840, 4049, 2840, 2839, 4057,
4684
4685      2840, 2843, 2843, 2843, 4048, 2843, 2841, 4057, 2843, 2846,
4686      2846, 2846, 2848, 2848, 2848, 2849, 2849, 2849, 2850, 2850,
4687      2850, 2853, 2853, 2853, 2855, 2855, 2855, 2846, 2855, 4064,
4688      2848, 2855, 4049, 2849, 4060, 4055, 2850, 4050, 2853, 2867,
4689      2867, 2867, 2868, 2868, 2868, 2869, 2869, 2869, 4062, 2869,
4690      1387, 4063, 2869, 2870, 2870, 2870, 2867, 4051, 4058, 2868,
4691      2871, 2871, 2871, 1386, 2871, 4064, 4059, 2871, 4055, 4061,
4692      2850, 2870, 4060, 1384, 2848, 2877, 2877, 2877, 4066, 2878,
4693      2878, 2878, 2849, 2878, 4050, 4068, 2878, 2879, 2879, 2879,
4694      4062, 2879, 2877, 4063, 2879, 2882, 2882, 2882, 2884, 2884,
4695
4696      2884, 2885, 2885, 2885, 4051, 2885, 4058, 4061, 2885, 2889,
4697      2889, 2889, 4065, 2882, 4059, 4077, 2884, 2890, 2890, 2890,
4698      2891, 2891, 2891, 4068, 2891, 4066, 2889, 2891, 2892, 2892,
4699      2892, 2894, 2894, 2894, 2890, 2894, 4069, 1383, 2894, 2897,
4700      2897, 2897, 4070, 2898, 2898, 2898, 2892, 2898, 4065, 4067,
4701      2898, 2899, 2899, 2899, 4073, 4081, 2897, 1378, 2900, 2900,
4702      2900, 2884, 2900, 4073, 4077, 2900, 4081, 1375, 2899, 2901,
4703      2901, 2901, 4071, 2901, 4069, 4070, 2901, 2905, 2905, 2905,
4704      2906, 2906, 2906, 2907, 2907, 2907, 2908, 2908, 2908, 2909,
4705      2909, 2909, 1374, 1371, 2905, 1370, 4067, 2906, 2920, 2920,
4706
4707      2920, 2907, 2933, 2933, 2933, 4071, 2909, 2934, 2934, 2934,
4708      2951, 2951, 2951, 2953, 2953, 2953, 2920, 4074, 4075, 2933,
4709      2957, 2957, 2957, 1369, 1368, 2934, 2961, 2961, 2961, 2962,
4710      2962, 2962, 1367, 2962, 4080, 1366, 2962, 2963, 2963, 2963,
4711      4078, 2963, 1365, 2961, 2963, 2966, 2966, 2966, 4080, 2966,
4712      4074, 4075, 2966, 1364, 1363, 2907, 2969, 2969, 2969, 2920,
4713      2970, 2970, 2970, 2971, 2971, 2971, 2973, 2973, 2973, 2974,
4714      2974, 2974, 1362, 4078, 2969, 2975, 2975, 2975, 2970, 2975,
4715      1361, 2971, 2975, 2973, 1360, 1359, 2974, 2976, 2976, 2976,
4716      2988, 2988, 2988, 2989, 2989, 2989, 4079, 2989, 1358, 2971,
4717
4718      2989, 2990, 2990, 2990, 2976, 2990, 1357, 2988, 2990, 2993,
4719      2993, 2993, 2970, 2996, 2996, 2996, 2998, 2998, 2998, 1356,
4720      2998, 1355, 1354, 2998, 2969, 1353, 1350, 2993, 1349, 4079,
4721      2996, 3007, 3007, 3007, 3009, 3009, 3009, 3010, 3010, 3010,
4722      1348, 3010, 1347, 1346, 3010, 1344, 3011, 3011, 3011, 3007,
4723      3011, 3009, 1343, 3011, 3014, 3014, 3014, 1342, 3014, 1341,
4724      1340, 3014, 3017, 3017, 3017, 1339, 3017, 1338, 1337, 3017,
4725      3027, 3027, 3027, 3028, 3028, 3028, 1336, 3028, 1335, 1334,
4726      3028, 3029, 3029, 3029, 3030, 3030, 3030, 3027, 3030, 1333,
4727      1332, 3030, 3031, 3031, 3031, 3032, 3032, 3032, 3029, 3033,
4728
4729      3033, 3033, 3034, 3034, 3034, 1331, 3034, 1330, 1324, 3034,
4730      3031, 3045, 3045, 3045, 1320, 1317, 3033, 3058, 3058, 3058,
4731      3059, 3059, 3059, 1316, 3059, 1315, 1313, 3059, 1309, 3045,
4732      3060, 3060, 3060, 1300, 3058, 3064, 3064, 3064, 3078, 3078,
4733      3078, 3080, 3080, 3080, 3083, 3083, 3083, 1295, 3060, 3085,
4734      3085, 3085, 3064, 3064, 1294, 3031, 1293, 3087, 3087, 3087,
4735      1289, 3087, 1288, 3045, 3087, 3094, 3094, 3094, 3095, 3095,
4736      3095, 3096, 3096, 3096, 3098, 3098, 3098, 3099, 3099, 3099,
4737      1285, 3099, 1281, 3094, 3099, 1280, 3095, 1277, 1274, 3096,
4738      1271, 3098, 3100, 3100, 3100, 1270, 3100, 1265, 1257, 3100,
4739
4740      3103, 3103, 3103, 3104, 3104, 3104, 1256, 3104, 1255, 1253,
4741      3104, 3116, 3116, 3116, 1249, 3116, 1246, 3103, 3116, 3120,
4742      3120, 3120, 3121, 3121, 3121, 1241, 3121, 1240, 1239, 3121,
4743      1238, 1237, 3094, 3096, 1236, 1235, 3120, 3129, 3129, 3129,
4744      3132, 3132, 3132, 1234, 3132, 1233, 1230, 3132, 3147, 3147,
4745      3147, 1229, 3148, 3148, 3148, 3129, 3148, 1226, 1225, 3148,
4746      3151, 3151, 3151, 1221, 3151, 3147, 1219, 3151, 3154, 3154,
4747      3154, 3155, 3155, 3155, 1216, 3155, 1215, 1212, 3155, 3166,
4748      3166, 3166, 1205, 3179, 3179, 3179, 3154, 3179, 1202, 1201,
4749      3179, 3183, 3183, 3183, 3184, 3184, 3184, 3166, 3185, 3185,
4750
4751      3185, 1200, 3185, 1197, 1194, 3185, 1187, 1183, 3183, 3183,
4752      1182, 3184, 3184, 3198, 3198, 3198, 3185, 3200, 3200, 3200,
4753      3154, 3201, 3201, 3201, 3202, 3202, 3202, 1181, 1178, 3166,
4754      3204, 3204, 3204, 3205, 3205, 3205, 3218, 3218, 3218, 3219,
4755      3219, 3219, 3221, 3221, 3221, 3223, 3223, 3223, 1177, 3223,
4756      1176, 1169, 3223, 1168, 3218, 1167, 1166, 3219, 1165, 1164,
4757      3221, 3226, 3226, 3226, 1163, 3226, 1162, 1161, 3226, 3229,
4758      3229, 3229, 3240, 3240, 3240, 3241, 3241, 3241, 1157, 3241,
4759      1126, 1123, 3241, 3244, 3244, 3244, 3229, 1120, 3218, 3240,
4760      3264, 3264, 3264, 1119, 3265, 3265, 3265, 1116, 3265, 1115,
4761
4762      3244, 3265, 3274, 3274, 3274, 1114, 1113, 3264, 1112, 1111,
4763      3221, 3283, 3283, 3283, 3305, 3305, 3305, 3306, 3306, 3306,
4764      3274, 3306, 1104, 1103, 3306, 1102, 3307, 3307, 3307, 3283,
4765      3307, 3305, 3305, 3307, 1101, 3306, 3318, 3318, 3318, 3320,
4766      3320, 3320, 1099, 1098, 3307, 3321, 3321, 3321, 3323, 3323,
4767      3323, 3336, 3336, 3336, 3337, 3337, 3337, 3339, 3339, 3339,
4768      3340, 3340, 3340, 1096, 3340, 1095, 1094, 3340, 1093, 3336,
4769      1092, 1091, 3337, 1090, 3339, 3341, 3341, 3341, 3283, 3308,
4770      3308, 3308, 3308, 3308, 3308, 3308, 3308, 3308, 1089, 1088,
4771      3308, 1087, 3341, 1086, 1085, 3308, 3308, 3308, 3308, 3308,
4772
4773      3351, 3351, 3351, 3352, 3352, 3352, 1083, 3352, 1082, 1081,
4774      3352, 3354, 3354, 3354, 1080, 3354, 1079, 3351, 3354, 1078,
4775      1077, 3337, 3353, 3353, 3353, 3308, 3308, 3309, 3309, 3309,
4776      3309, 3309, 3309, 3309, 3309, 3309, 1076, 1075, 3309, 3353,
4777      3383, 3383, 3383, 3309, 3309, 3309, 3309, 3309, 3372, 3372,
4778      3372, 1073, 3372, 1072, 1071, 3372, 1070, 1069, 3383, 3391,
4779      3391, 3391, 3409, 3409, 3409, 1068, 3409, 1067, 1066, 3409,
4780      3420, 3420, 3420, 3309, 3309, 1065, 1064, 3391, 1060, 1056,
4781      3409, 3412, 3412, 3412, 3412, 3412, 3412, 3412, 3412, 3412,
4782      1055, 1054, 3412, 3421, 3421, 3421, 1053, 3412, 3412, 3412,
4783
4784      3412, 3412, 3434, 3434, 3434, 3436, 3436, 3436, 3438, 3438,
4785      3438, 1052, 3438, 1048, 1046, 3438, 3522, 3522, 3522, 1045,
4786      3434, 1044, 1043, 3436, 3441, 3441, 3441, 3412, 3412, 3413,
4787      3413, 3413, 3413, 3413, 3413, 3413, 3413, 3413, 1042, 1041,
4788      3413, 3441, 3523, 3523, 3523, 3413, 3413, 3413, 3413, 3413,
4789      1040, 3442, 3442, 3442, 1037, 3442, 1036, 3436, 3442, 3450,
4790      3450, 3450, 1032, 3450, 1031, 1030, 3450, 3453, 3453, 3453,
4791      1029, 3453, 1026, 1025, 3453, 3413, 3413, 3487, 3487, 3487,
4792      3509, 3509, 3509, 3530, 3530, 3530, 3531, 3531, 3531, 3536,
4793      3536, 3536, 1023, 3536, 1021, 3487, 3536, 1018, 3509, 3509,
4794
4795      1017, 3530, 1016, 3531, 3543, 3543, 3543, 3548, 3548, 3548,
4796      3579, 3579, 3579, 3583, 3583, 3583, 3596, 3596, 3596, 1015,
4797      1013, 3543, 1010, 1009, 3548, 3598, 3598, 3598, 3579, 1007,
4798      1006, 3583, 1003, 1001, 3596,  998, 3599, 3599, 3599,  997,
4799      3599,  996, 3598, 3599, 3612, 3612, 3612, 3613, 3613, 3613,
4800       995, 3613,  992,  991, 3613, 3622, 3622, 3622, 3640, 3640,
4801      3640, 3612, 3623, 3623, 3623, 3583, 3623,  990,  989, 3623,
4802       988,  987, 3622, 3652, 3652, 3652, 3640, 3652,  986,  984,
4803      3652, 3667, 3667, 3667,  981, 3667,  980,  976, 3667, 3678,
4804      3678, 3678,  975, 3678,  974, 3640, 3678, 3875, 3875, 3875,
4805
4806      3892, 3892, 3892,  973, 3892,  972,  971, 3892, 4042, 4042,
4807      4042, 4045, 4045, 4045,  962, 3875,  961,  958, 3892, 4082,
4808      4082, 4082, 4083, 4083, 4083,  957, 4042,  956,  955, 4045,
4809       954,  952,  951,  950,  947,  946,  945, 4082,  942,  941,
4810      4083, 4086, 4086, 4086, 4086, 4086, 4086, 4086, 4086, 4086,
4811      4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4088,
4812      4088, 4088, 4088, 4088, 4088, 4088, 4088, 4088, 4089, 4089,
4813      4089, 4089, 4089, 4089, 4089, 4089, 4089, 4090, 4090, 4090,
4814      4090, 4090, 4090, 4090, 4090, 4090, 4091, 4091, 4091, 4091,
4815      4091, 4091, 4091, 4091, 4091, 4092, 4092, 4092, 4092, 4092,
4816
4817      4092, 4092, 4092, 4092, 4093, 4093, 4093, 4093, 4093, 4093,
4818      4093, 4093, 4093, 4094, 4094, 4094, 4094, 4094, 4094, 4094,
4819      4094, 4094, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4820      4095, 4096, 4096, 4096, 4096, 4096, 4096, 4096, 4096, 4096,
4821      4097, 4097, 4097, 4097, 4097, 4097, 4097, 4097, 4097, 4098,
4822      4098, 4098, 4098, 4098, 4098, 4098, 4098, 4098, 4099, 4099,
4823      4099, 4099, 4099, 4099, 4099, 4099, 4099, 4100, 4100, 4100,
4824      4100, 4100, 4100, 4100, 4100, 4100, 4101, 4101, 4101, 4101,
4825      4101, 4101, 4101, 4101, 4101, 4102, 4102, 4102, 4102, 4102,
4826      4102, 4102, 4102, 4102, 4103, 4103, 4103, 4103, 4103, 4103,
4827
4828      4103, 4103, 4103, 4104, 4104, 4104, 4104, 4104, 4104, 4104,
4829      4104, 4104, 4105, 4105, 4105, 4105, 4105, 4105, 4105, 4105,
4830      4105, 4106, 4106, 4106, 4106, 4106, 4106, 4106, 4106, 4106,
4831      4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4107, 4108,
4832      4108, 4108, 4108, 4108, 4108, 4108, 4108, 4108, 4109, 4109,
4833      4109, 4109, 4109, 4109, 4109, 4109, 4109, 4110, 4110, 4110,
4834      4110, 4110, 4110, 4110, 4110, 4110, 4111, 4111, 4111, 4111,
4835      4111, 4111, 4111, 4111, 4111, 4112, 4112, 4112, 4112, 4112,
4836      4112, 4112, 4112, 4112, 4113, 4113, 4113, 4113, 4113, 4113,
4837      4113, 4113, 4113, 4114, 4114, 4114, 4114, 4114, 4114, 4114,
4838
4839      4114, 4114, 4115, 4115, 4115, 4115, 4115, 4115, 4115, 4115,
4840      4115, 4116, 4116, 4116, 4116, 4116, 4116, 4116, 4116, 4116,
4841      4117, 4117, 4117, 4117, 4117, 4117, 4117, 4117, 4117, 4118,
4842      4118, 4118, 4118, 4118, 4118, 4118, 4118, 4118, 4119, 4119,
4843      4119, 4119, 4119, 4119, 4119, 4119, 4119, 4120, 4120, 4120,
4844      4120, 4120, 4120, 4120, 4120, 4120, 4121, 4121, 4121, 4121,
4845      4121, 4121, 4121, 4121, 4121, 4122, 4122, 4122, 4122, 4122,
4846      4122, 4122, 4122, 4122, 4123, 4123, 4123, 4123, 4123, 4123,
4847      4123, 4123, 4123, 4124, 4124, 4124, 4124, 4124, 4124, 4124,
4848      4124, 4124, 4125, 4125, 4125, 4125, 4125, 4125, 4125, 4125,
4849
4850      4125, 4126, 4126, 4126, 4126, 4126, 4126, 4126, 4126, 4126,
4851      4127, 4127, 4127, 4127, 4127, 4127, 4127, 4127, 4127, 4128,
4852      4128, 4128, 4128, 4128, 4128, 4128, 4128, 4128, 4129, 4129,
4853      4129, 4129, 4129, 4129, 4129, 4129, 4129, 4130, 4130, 4130,
4854      4130, 4130, 4130, 4130, 4130, 4130, 4131, 4131, 4131, 4131,
4855      4131, 4131, 4131, 4131, 4131, 4132, 4132, 4132, 4132, 4132,
4856      4132, 4132, 4132, 4132, 4133, 4133, 4133, 4133, 4133, 4133,
4857      4133, 4133, 4133, 4134, 4134, 4134, 4134, 4134, 4134, 4134,
4858      4134, 4134, 4135, 4135, 4135, 4135, 4135, 4135, 4135, 4135,
4859      4135, 4136, 4136, 4136, 4136, 4136, 4136, 4136, 4136, 4136,
4860
4861      4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4138,
4862      4138, 4138, 4138, 4138, 4138, 4138, 4138, 4138, 4139, 4139,
4863      4139, 4139, 4139, 4139, 4139, 4139, 4139, 4140, 4140, 4140,
4864      4140, 4140, 4140, 4140, 4140, 4140, 4141, 4141, 4141, 4141,
4865      4141, 4141, 4141, 4141, 4141, 4142, 4142, 4142, 4142, 4142,
4866      4142, 4142, 4142, 4142, 4143, 4143, 4143, 4143, 4143, 4143,
4867      4143, 4143, 4143, 4144, 4144, 4144, 4144, 4144, 4144, 4144,
4868      4144, 4144, 4145, 4145, 4145, 4145, 4145, 4145, 4145, 4145,
4869      4145, 4146, 4146, 4146, 4146, 4146, 4146, 4146, 4146, 4146,
4870      4147, 4147, 4147, 4147, 4147, 4147, 4147, 4147, 4147, 4148,
4871
4872      4148, 4148, 4148, 4148, 4148, 4148, 4148, 4148, 4149, 4149,
4873      4149, 4149, 4149, 4149, 4149, 4149, 4149, 4150, 4150, 4150,
4874      4150, 4150, 4150, 4150, 4150, 4150, 4151, 4151, 4151, 4151,
4875      4151, 4151, 4151, 4151, 4151, 4152, 4152, 4152, 4152, 4152,
4876      4152, 4152, 4152, 4152, 4153, 4153, 4153, 4153, 4153, 4153,
4877      4153, 4153, 4153, 4154, 4154, 4154, 4154, 4154, 4154, 4154,
4878      4154, 4154, 4155, 4155, 4155,  937,  935,  932, 4155, 4156,
4879      4156, 4156,  931,  930,  929, 4156, 4157, 4157, 4157,  927,
4880       924,  923, 4157, 4158, 4158, 4158,  920,  917,  914, 4158,
4881      4159, 4159, 4159,  913,  912,  911, 4159, 4160, 4160, 4160,
4882
4883       910,  907,  904, 4160, 4161, 4161, 4161,  900,  899,  898,
4884      4161, 4162, 4162, 4162,  897,  896,  895, 4162, 4163, 4163,
4885      4163,  894,  893,  892, 4163, 4164, 4164, 4164,  891,  890,
4886       888, 4164, 4165, 4165, 4165,  886,  883,  882, 4165, 4166,
4887      4166, 4166,  881,  880,  879, 4166, 4167, 4167, 4167,  878,
4888       873,  872, 4167, 4168, 4168, 4168,  871,  870,  867, 4168,
4889      4169, 4169, 4169,  866,  865,  862, 4169, 4170, 4170, 4170,
4890       861,  860,  859, 4170, 4171, 4171, 4171,  856,  855,  853,
4891      4171, 4172, 4172, 4172,  850,  849,  845, 4172, 4173, 4173,
4892      4173,  844,  843,  842, 4173, 4174, 4174, 4174,  841,  840,
4893
4894       837, 4174, 4175, 4175, 4175,  836,  835,  834, 4175, 4176,
4895      4176, 4176,  833,  832,  823, 4176, 4177, 4177, 4177,  821,
4896       820,  817, 4177, 4178, 4178, 4178,  816,  815,  814, 4178,
4897      4179, 4179, 4179,  811,  810,  809, 4179, 4180, 4180, 4180,
4898       806,  804,  803, 4180, 4181, 4181, 4181,  802,  799,  798,
4899      4181, 4182, 4182, 4182,  797,  796,  792, 4182, 4183, 4183,
4900      4183,  791,  790,  786, 4183, 4184, 4184, 4184,  785,  784,
4901       783, 4184, 4185, 4185, 4185,  777,  776,  774, 4185, 4186,
4902      4186, 4186, 4186, 4186, 4186, 4186,  766, 4186, 4187, 4187,
4903      4187,  765,  761,  752, 4187, 4188,  748,  747,  743, 4188,
4904
4905      4189, 4189, 4189,  737,  736,  735, 4189, 4190,  731,  728,
4906       726, 4190, 4191, 4191, 4191,  725,  724,  720, 4191, 4192,
4907       716,  712,  711, 4192, 4193, 4193, 4193,  710,  709,  705,
4908      4193, 4194,  701,  698,  697, 4194, 4195, 4195, 4195,  696,
4909       695,  691, 4195, 4196,  685,  684,  680, 4196, 4197, 4197,
4910      4197,  672,  668,  661, 4197, 4198,  659,  658,  654, 4198,
4911      4199, 4199, 4199,  648,  647,  643, 4199, 4200,  636,  635,
4912       634, 4200, 4201, 4201, 4201,  633,  632,  628, 4201, 4202,
4913       617,  613,  605, 4202, 4203, 4203, 4203,  604,  603,  602,
4914      4203, 4204,  601,  597,  591, 4204, 4205, 4205, 4205,  590,
4915
4916       586,  580, 4205, 4206,  579,  575,  569, 4206, 4207, 4207,
4917      4207,  568,  564,  560, 4207, 4208,  556,  555,  554, 4208,
4918      4209, 4209, 4209,  550,  542,  538, 4209, 4210,  532,  531,
4919       530, 4210, 4211, 4211, 4211,  526,  522,  517, 4211, 4212,
4920       516,  515,  514, 4212, 4213, 4213, 4213,  510,  506,  503,
4921      4213, 4214,  499,  495,  492, 4214, 4215, 4215, 4215,  489,
4922       487,  486, 4215, 4216,  481,  474,  473, 4216, 4217, 4217,
4923      4217,  472,  471,  470, 4217, 4218,  466,  459,  458, 4218,
4924      4219, 4219, 4219,  457,  453,  446, 4219, 4220,  445,  441,
4925       434, 4220, 4221, 4221, 4221,  433,  432,  428, 4221, 4222,
4926
4927       422,  421,  420, 4222, 4223, 4223, 4223,  416,  410,  406,
4928      4223, 4224,  402,  398,  397, 4224, 4225, 4225, 4225,  396,
4929       395,  394, 4225, 4226,  390,  381,  380, 4226, 4227, 4227,
4930      4227,  376,  372,  367, 4227, 4228,  361,  357,  356, 4228,
4931      4229, 4229, 4229,  352,  349,  348, 4229, 4230,  347,  341,
4932       340, 4230, 4231, 4231, 4231,  338,  335,  323, 4231, 4232,
4933         0,    0,    0, 4232, 4233, 4233, 4233,    0,    0,    0,
4934      4233, 4234,    0,    0,    0, 4234, 4235, 4235, 4235,    0,
4935         0,    0, 4235, 4236,    0,    0,    0, 4236, 4237, 4237,
4936      4237,    0,    0,    0, 4237, 4238,    0,    0,    0, 4238,
4937
4938      4239, 4239, 4239,    0,    0,    0, 4239, 4240,    0,    0,
4939         0, 4240, 4241, 4241, 4241,    0,    0,    0, 4241, 4242,
4940         0,    0,    0, 4242, 4243, 4243, 4243,    0,    0,    0,
4941      4243, 4244,    0,    0,    0, 4244, 4245, 4245, 4245,    0,
4942         0,    0, 4245, 4246,    0,    0,    0, 4246, 4247, 4247,
4943      4247,    0,    0,    0, 4247, 4248,    0,    0,    0, 4248,
4944      4249, 4249, 4249, 4249, 4249, 4249, 4249, 4249, 4249, 4250,
4945         0,    0,    0,    0, 4250, 4251, 4251, 4251,    0,    0,
4946         0, 4251, 4252, 4252, 4252, 4252,    0,    0, 4252, 4252,
4947      4253, 4253, 4253, 4253,    0, 4253,    0, 4253, 4254, 4254,
4948
4949      4254, 4254,    0,    0, 4254, 4254, 4255, 4255, 4255,    0,
4950         0,    0, 4255, 4256, 4256, 4256, 4256,    0,    0, 4256,
4951      4256, 4257, 4257, 4257,    0,    0,    0, 4257, 4258, 4258,
4952      4258, 4258,    0,    0, 4258, 4258, 4259, 4259, 4259,    0,
4953         0,    0, 4259, 4260, 4260, 4260, 4260,    0,    0, 4260,
4954      4260, 4261, 4261, 4261, 4261,    0, 4261,    0, 4261, 4262,
4955      4262, 4262, 4262,    0,    0, 4262, 4262, 4263, 4263, 4263,
4956      4263,    0, 4263,    0, 4263, 4264, 4264, 4264, 4264,    0,
4957         0, 4264, 4264, 4265, 4265, 4265, 4265,    0, 4265,    0,
4958      4265, 4266, 4266, 4266, 4266,    0,    0, 4266, 4266, 4267,
4959
4960      4267, 4267, 4267,    0, 4267,    0, 4267, 4268, 4268, 4268,
4961      4268,    0,    0, 4268, 4268, 4269, 4269, 4269,    0,    0,
4962         0, 4269, 4270, 4270, 4270, 4270,    0,    0, 4270, 4270,
4963      4271, 4271, 4271, 4271,    0,    0, 4271, 4271, 4272, 4272,
4964      4272,    0,    0,    0, 4272, 4273, 4273, 4273, 4273,    0,
4965         0, 4273, 4273, 4274, 4274, 4274,    0,    0,    0, 4274,
4966      4275, 4275, 4275, 4275,    0,    0, 4275, 4275, 4276, 4276,
4967      4276,    0,    0,    0, 4276, 4277, 4277, 4277, 4277,    0,
4968         0, 4277, 4277, 4278, 4278, 4278,    0,    0,    0, 4278,
4969      4279, 4279, 4279, 4279,    0,    0, 4279, 4279, 4280, 4280,
4970
4971      4280,    0,    0,    0, 4280, 4281, 4281, 4281, 4281,    0,
4972         0, 4281, 4281, 4282, 4282, 4282,    0,    0,    0, 4282,
4973      4283, 4283, 4283, 4283,    0,    0, 4283, 4283, 4284, 4284,
4974      4284,    0,    0,    0, 4284, 4285, 4285, 4285, 4285,    0,
4975         0, 4285, 4285, 4286, 4286, 4286,    0,    0,    0, 4286,
4976      4287, 4287, 4287, 4287,    0,    0, 4287, 4287, 4288, 4288,
4977      4288,    0,    0,    0, 4288, 4289, 4289, 4289, 4289,    0,
4978         0, 4289, 4289, 4290, 4290, 4290,    0,    0,    0, 4290,
4979      4291, 4291, 4291, 4291,    0,    0, 4291, 4291, 4292, 4292,
4980      4292,    0,    0,    0, 4292, 4293, 4293, 4293, 4293,    0,
4981
4982         0, 4293, 4293, 4294, 4294, 4294,    0,    0,    0, 4294,
4983      4295, 4295, 4295, 4295,    0,    0, 4295, 4295, 4296, 4296,
4984      4296, 4296,    0, 4296,    0, 4296, 4297, 4297, 4297, 4297,
4985         0,    0, 4297, 4297, 4298, 4298, 4298,    0,    0,    0,
4986      4298, 4299, 4299, 4299, 4299,    0,    0, 4299, 4299, 4300,
4987      4300, 4300,    0,    0,    0, 4300, 4301, 4301, 4301, 4301,
4988         0,    0, 4301, 4301, 4302, 4302, 4302,    0,    0,    0,
4989      4302, 4303, 4303, 4303, 4303,    0,    0, 4303, 4303, 4304,
4990      4304, 4304,    0,    0,    0, 4304, 4305, 4305, 4305, 4305,
4991         0,    0, 4305, 4305, 4306, 4306, 4306,    0,    0,    0,
4992
4993      4306, 4307, 4307, 4307, 4307,    0,    0, 4307, 4307, 4308,
4994      4308, 4308,    0,    0,    0, 4308, 4309, 4309, 4309, 4309,
4995         0,    0, 4309, 4309, 4310, 4310, 4310, 4310,    0, 4310,
4996         0, 4310, 4311, 4311, 4311, 4311,    0,    0, 4311, 4311,
4997      4312, 4312, 4312, 4312, 4312, 4312, 4312, 4312, 4312, 4313,
4998         0, 4313,    0,    0, 4313, 4314, 4314, 4314,    0,    0,
4999         0, 4314, 4315, 4315, 4315, 4315,    0,    0, 4315, 4315,
5000      4316, 4316, 4316,    0,    0,    0, 4316, 4317, 4317, 4317,
5001      4317,    0,    0, 4317, 4317, 4318, 4318, 4318,    0,    0,
5002         0, 4318, 4319, 4319, 4319, 4319,    0,    0, 4319, 4319,
5003
5004      4320, 4320, 4320,    0,    0,    0, 4320, 4321, 4321, 4321,
5005      4321,    0,    0, 4321, 4321, 4322, 4322, 4322,    0,    0,
5006         0, 4322, 4323, 4323, 4323, 4323,    0,    0, 4323, 4323,
5007      4324, 4324, 4324,    0,    0,    0, 4324, 4325, 4325, 4325,
5008      4325,    0,    0, 4325, 4325, 4326, 4326, 4326, 4326,    0,
5009         0, 4326, 4326, 4327, 4327, 4327,    0,    0,    0, 4327,
5010      4328, 4328, 4328, 4328,    0,    0, 4328, 4328, 4329, 4329,
5011      4329,    0,    0,    0, 4329, 4330, 4330, 4330, 4330,    0,
5012         0, 4330, 4330, 4331, 4331, 4331,    0,    0,    0, 4331,
5013      4332, 4332, 4332, 4332,    0,    0, 4332, 4332, 4333, 4333,
5014
5015      4333, 4333,    0,    0, 4333, 4333, 4334, 4334, 4334,    0,
5016         0,    0, 4334, 4335, 4335, 4335, 4335,    0,    0, 4335,
5017      4335, 4336, 4336, 4336, 4336,    0, 4336,    0, 4336, 4337,
5018      4337, 4337, 4337,    0,    0, 4337, 4337, 4338, 4338, 4338,
5019      4338,    0, 4338,    0, 4338, 4339, 4339, 4339, 4339,    0,
5020         0, 4339, 4339, 4340, 4340, 4340,    0,    0,    0, 4340,
5021      4341, 4341, 4341, 4341,    0,    0, 4341, 4341, 4342, 4342,
5022      4342,    0,    0,    0, 4342, 4343, 4343, 4343, 4343,    0,
5023         0, 4343, 4343, 4344, 4344, 4344,    0,    0,    0, 4344,
5024      4345, 4345, 4345, 4345,    0,    0, 4345, 4345, 4346, 4346,
5025
5026      4346, 4346,    0, 4346,    0, 4346, 4347, 4347, 4347, 4347,
5027         0,    0, 4347, 4347, 4348, 4348, 4348,    0,    0,    0,
5028      4348, 4349, 4349, 4349, 4349,    0,    0, 4349, 4349, 4350,
5029      4350, 4350,    0,    0,    0, 4350, 4351, 4351, 4351, 4351,
5030         0,    0, 4351, 4351, 4352, 4352, 4352,    0,    0,    0,
5031      4352, 4353, 4353, 4353, 4353,    0,    0, 4353, 4353, 4354,
5032      4354, 4354,    0,    0,    0, 4354, 4355, 4355, 4355, 4355,
5033         0,    0, 4355, 4355, 4356, 4356, 4356,    0,    0,    0,
5034      4356, 4357, 4357, 4357, 4357,    0,    0, 4357, 4357, 4358,
5035      4358, 4358,    0,    0,    0, 4358, 4359, 4359, 4359, 4359,
5036
5037         0,    0, 4359, 4359, 4360, 4360, 4360,    0,    0,    0,
5038      4360, 4361, 4361, 4361, 4361,    0,    0, 4361, 4361, 4362,
5039      4362, 4362,    0,    0,    0, 4362, 4363, 4363, 4363, 4363,
5040         0,    0, 4363, 4363, 4364, 4364, 4364,    0,    0,    0,
5041      4364, 4365, 4365, 4365, 4365,    0,    0, 4365, 4365, 4366,
5042      4366, 4366, 4366,    0, 4366,    0, 4366, 4367, 4367, 4367,
5043      4367,    0,    0, 4367, 4367, 4368, 4368, 4368,    0,    0,
5044         0, 4368, 4369, 4369, 4369, 4369,    0,    0, 4369, 4369,
5045      4370, 4370, 4370,    0,    0,    0, 4370, 4371, 4371, 4371,
5046      4371,    0,    0, 4371, 4371, 4372, 4372, 4372,    0,    0,
5047
5048         0, 4372, 4373, 4373, 4373, 4373,    0,    0, 4373, 4373,
5049      4374, 4374, 4374, 4374, 4374, 4374, 4374, 4374, 4374, 4375,
5050      4375, 4375, 4375, 4375, 4375, 4375, 4375, 4375, 4376, 4376,
5051      4376,    0,    0,    0, 4376, 4377, 4377, 4377,    0,    0,
5052         0, 4377, 4378, 4378, 4378, 4378,    0,    0, 4378, 4378,
5053      4379, 4379, 4379,    0,    0,    0, 4379, 4380, 4380, 4380,
5054      4380,    0,    0, 4380, 4380, 4381, 4381, 4381, 4381,    0,
5055      4381,    0, 4381, 4382, 4382, 4382, 4382,    0,    0, 4382,
5056      4382, 4383, 4383, 4383,    0,    0,    0, 4383, 4384, 4384,
5057      4384, 4384,    0,    0, 4384, 4384, 4385, 4385, 4385,    0,
5058
5059         0,    0, 4385, 4386, 4386, 4386, 4386,    0,    0, 4386,
5060      4386, 4387, 4387, 4387, 4387,    0,    0, 4387, 4387, 4388,
5061      4388, 4388,    0,    0,    0, 4388, 4389, 4389, 4389, 4389,
5062         0,    0, 4389, 4389, 4390, 4390, 4390,    0,    0,    0,
5063      4390, 4391, 4391, 4391, 4391,    0,    0, 4391, 4391, 4392,
5064      4392, 4392, 4392,    0, 4392,    0, 4392, 4393, 4393, 4393,
5065      4393,    0,    0, 4393, 4393, 4394, 4394, 4394, 4394,    0,
5066         0, 4394, 4394, 4395, 4395, 4395,    0,    0,    0, 4395,
5067      4396, 4396, 4396, 4396,    0,    0, 4396, 4396, 4397, 4397,
5068      4397, 4397,    0,    0, 4397, 4397, 4398, 4398, 4398, 4398,
5069
5070         0,    0, 4398, 4398, 4399, 4399, 4399,    0,    0,    0,
5071      4399, 4400, 4400, 4400, 4400,    0,    0, 4400, 4400, 4401,
5072      4401, 4401,    0,    0,    0, 4401, 4402, 4402, 4402, 4402,
5073         0,    0, 4402, 4402, 4403, 4403, 4403, 4403,    0, 4403,
5074         0, 4403, 4404, 4404, 4404, 4404,    0,    0, 4404, 4404,
5075      4405, 4405, 4405,    0,    0,    0, 4405, 4406, 4406, 4406,
5076      4406,    0,    0, 4406, 4406, 4407, 4407, 4407,    0,    0,
5077         0, 4407, 4408, 4408, 4408, 4408,    0,    0, 4408, 4408,
5078      4409, 4409, 4409,    0,    0,    0, 4409, 4410, 4410, 4410,
5079      4410,    0,    0, 4410, 4410, 4411, 4411, 4411,    0,    0,
5080
5081         0, 4411, 4412, 4412, 4412, 4412,    0,    0, 4412, 4412,
5082      4413, 4413, 4413, 4413,    0, 4413,    0, 4413, 4414, 4414,
5083      4414, 4414,    0,    0, 4414, 4414, 4415, 4415, 4415,    0,
5084         0,    0, 4415, 4416, 4416, 4416, 4416,    0,    0, 4416,
5085      4416, 4417, 4417, 4417,    0,    0,    0, 4417, 4418, 4418,
5086      4418, 4418,    0,    0, 4418, 4418, 4419, 4419, 4419,    0,
5087         0,    0, 4419, 4420, 4420, 4420, 4420,    0,    0, 4420,
5088      4420, 4421, 4421, 4421,    0,    0,    0, 4421, 4422, 4422,
5089      4422, 4422,    0,    0, 4422, 4422, 4423, 4423, 4423,    0,
5090         0,    0, 4423, 4424, 4424, 4424, 4424,    0,    0, 4424,
5091
5092      4424, 4425, 4425, 4425,    0,    0,    0, 4425, 4426, 4426,
5093      4426, 4426,    0,    0, 4426, 4426, 4427, 4427, 4427,    0,
5094         0,    0, 4427, 4428, 4428, 4428, 4428,    0,    0, 4428,
5095      4428, 4429, 4429, 4429,    0,    0,    0, 4429, 4430, 4430,
5096      4430, 4430,    0,    0, 4430, 4430, 4431, 4431, 4431,    0,
5097         0,    0, 4431, 4432, 4432, 4432, 4432,    0,    0, 4432,
5098      4432, 4433, 4433, 4433, 4433, 4433, 4433, 4433, 4433, 4433,
5099      4434, 4434, 4434, 4434, 4434, 4434, 4434, 4434, 4434, 4435,
5100      4435, 4435,    0,    0,    0, 4435, 4436, 4436, 4436, 4436,
5101         0, 4436,    0, 4436, 4437, 4437, 4437, 4437,    0,    0,
5102
5103      4437, 4437, 4438, 4438, 4438,    0,    0,    0, 4438, 4439,
5104      4439, 4439, 4439,    0,    0, 4439, 4439, 4440, 4440, 4440,
5105      4440,    0,    0, 4440, 4440, 4441, 4441, 4441,    0,    0,
5106         0, 4441, 4442, 4442, 4442, 4442,    0,    0, 4442, 4442,
5107      4443, 4443, 4443, 4443,    0, 4443,    0, 4443, 4444, 4444,
5108      4444, 4444,    0,    0, 4444, 4444, 4445, 4445, 4445, 4445,
5109         0,    0, 4445, 4445, 4446, 4446, 4446, 4446,    0, 4446,
5110         0, 4446, 4447, 4447, 4447, 4447,    0,    0, 4447, 4447,
5111      4448, 4448, 4448, 4448,    0, 4448,    0, 4448, 4449, 4449,
5112      4449, 4449,    0,    0, 4449, 4449, 4450, 4450, 4450, 4450,
5113
5114         0, 4450,    0, 4450, 4451, 4451, 4451, 4451,    0,    0,
5115      4451, 4451, 4452, 4452, 4452, 4452,    0,    0, 4452, 4452,
5116      4453, 4453, 4453,    0,    0,    0, 4453, 4454, 4454, 4454,
5117      4454,    0,    0, 4454, 4454, 4455, 4455, 4455, 4455,    0,
5118         0, 4455, 4455, 4456, 4456, 4456, 4456,    0,    0, 4456,
5119      4456, 4457, 4457, 4457,    0,    0,    0, 4457, 4458, 4458,
5120      4458, 4458,    0,    0, 4458, 4458, 4459, 4459, 4459,    0,
5121         0,    0, 4459, 4460, 4460, 4460, 4460,    0,    0, 4460,
5122      4460, 4461, 4461, 4461, 4461,    0,    0, 4461, 4461, 4462,
5123      4462, 4462,    0,    0,    0, 4462, 4463, 4463, 4463, 4463,
5124
5125         0,    0, 4463, 4463, 4464, 4464, 4464,    0,    0,    0,
5126      4464, 4465, 4465, 4465, 4465,    0,    0, 4465, 4465, 4466,
5127      4466, 4466,    0,    0,    0, 4466, 4467, 4467, 4467, 4467,
5128         0,    0, 4467, 4467, 4468, 4468, 4468,    0,    0,    0,
5129      4468, 4469, 4469, 4469, 4469,    0,    0, 4469, 4469, 4470,
5130      4470, 4470, 4470,    0,    0, 4470, 4470, 4471, 4471, 4471,
5131         0,    0,    0, 4471, 4472, 4472, 4472, 4472,    0,    0,
5132      4472, 4472, 4473, 4473, 4473,    0,    0,    0, 4473, 4474,
5133      4474, 4474, 4474,    0,    0, 4474, 4474, 4475, 4475, 4475,
5134         0,    0,    0, 4475, 4476, 4476, 4476, 4476,    0,    0,
5135
5136      4476, 4476, 4477, 4477, 4477, 4477,    0, 4477,    0, 4477,
5137      4478, 4478, 4478, 4478,    0,    0, 4478, 4478, 4479, 4479,
5138      4479,    0,    0,    0, 4479, 4480, 4480, 4480, 4480,    0,
5139         0, 4480, 4480, 4481, 4481, 4481,    0,    0,    0, 4481,
5140      4482, 4482, 4482, 4482,    0,    0, 4482, 4482, 4483, 4483,
5141      4483,    0,    0,    0, 4483, 4484, 4484, 4484, 4484,    0,
5142         0, 4484, 4484, 4485, 4485, 4485,    0,    0,    0, 4485,
5143      4486, 4486, 4486, 4486,    0,    0, 4486, 4486, 4487, 4487,
5144      4487, 4487,    0, 4487,    0, 4487, 4488, 4488, 4488, 4488,
5145         0,    0, 4488, 4488, 4489, 4489, 4489, 4489, 4489, 4489,
5146
5147      4489, 4489, 4489, 4490, 4490, 4490, 4490, 4490, 4490, 4490,
5148      4490, 4490, 4491, 4491, 4491, 4491,    0, 4491,    0, 4491,
5149      4492, 4492, 4492,    0,    0,    0, 4492, 4493, 4493, 4493,
5150      4493,    0,    0, 4493, 4493, 4494, 4494, 4494,    0,    0,
5151         0, 4494, 4495, 4495, 4495, 4495,    0,    0, 4495, 4495,
5152      4496, 4496, 4496, 4496,    0,    0, 4496, 4496, 4497, 4497,
5153      4497,    0,    0,    0, 4497, 4498, 4498, 4498, 4498,    0,
5154         0, 4498, 4498, 4499, 4499, 4499, 4499,    0,    0, 4499,
5155      4499, 4500, 4500, 4500, 4500,    0,    0, 4500, 4500, 4501,
5156      4501, 4501, 4501,    0,    0, 4501, 4501, 4502, 4502, 4502,
5157
5158      4502,    0, 4502,    0, 4502, 4503, 4503, 4503, 4503,    0,
5159         0, 4503, 4503, 4504, 4504, 4504,    0,    0,    0, 4504,
5160      4505, 4505, 4505, 4505,    0,    0, 4505, 4505, 4506, 4506,
5161      4506, 4506,    0,    0, 4506, 4506, 4507, 4507, 4507,    0,
5162         0,    0, 4507, 4508, 4508, 4508, 4508,    0,    0, 4508,
5163      4508, 4509, 4509, 4509, 4509,    0,    0, 4509, 4509, 4510,
5164      4510, 4510,    0,    0,    0, 4510, 4511, 4511, 4511,    0,
5165         0,    0, 4511, 4512, 4512, 4512, 4512,    0,    0, 4512,
5166      4512, 4513, 4513, 4513, 4513,    0,    0, 4513, 4513, 4514,
5167      4514, 4514,    0,    0,    0, 4514, 4515, 4515, 4515, 4515,
5168
5169         0,    0, 4515, 4515, 4516, 4516, 4516,    0,    0,    0,
5170      4516, 4517, 4517, 4517, 4517,    0, 4517,    0, 4517, 4518,
5171      4518, 4518, 4518,    0,    0, 4518, 4518, 4519, 4519, 4519,
5172         0,    0,    0, 4519, 4520, 4520, 4520, 4520,    0,    0,
5173      4520, 4520, 4521, 4521, 4521,    0,    0,    0, 4521, 4522,
5174      4522, 4522, 4522,    0,    0, 4522, 4522, 4523, 4523, 4523,
5175         0,    0,    0, 4523, 4524, 4524, 4524, 4524,    0,    0,
5176      4524, 4524, 4525, 4525, 4525,    0,    0,    0, 4525, 4526,
5177      4526, 4526, 4526,    0,    0, 4526, 4526, 4527, 4527, 4527,
5178      4527,    0, 4527,    0, 4527, 4528, 4528, 4528, 4528,    0,
5179
5180         0, 4528, 4528, 4529, 4529, 4529, 4529,    0, 4529,    0,
5181      4529, 4530, 4530, 4530, 4530,    0,    0, 4530, 4530, 4531,
5182      4531, 4531,    0,    0,    0, 4531, 4532, 4532, 4532, 4532,
5183         0,    0, 4532, 4532, 4533, 4533, 4533, 4533,    0, 4533,
5184         0, 4533, 4534, 4534, 4534, 4534,    0,    0, 4534, 4534,
5185      4535, 4535, 4535, 4535,    0, 4535,    0, 4535, 4536, 4536,
5186      4536,    0,    0,    0, 4536, 4537, 4537, 4537, 4537,    0,
5187         0, 4537, 4537, 4538, 4538, 4538, 4538, 4538, 4538, 4538,
5188      4538, 4538, 4539, 4539, 4539, 4539, 4539, 4539, 4539, 4539,
5189      4539, 4540, 4540, 4540,    0,    0,    0, 4540, 4541, 4541,
5190
5191      4541, 4541,    0,    0, 4541, 4541, 4542, 4542, 4542, 4542,
5192         0, 4542,    0, 4542, 4543, 4543, 4543, 4543,    0,    0,
5193      4543, 4543, 4544, 4544, 4544,    0,    0,    0, 4544, 4545,
5194      4545, 4545, 4545,    0,    0, 4545, 4545, 4546, 4546, 4546,
5195      4546,    0,    0, 4546, 4546, 4547, 4547, 4547, 4547,    0,
5196         0, 4547, 4547, 4548, 4548, 4548, 4548,    0,    0, 4548,
5197      4548, 4549, 4549, 4549, 4549,    0,    0, 4549, 4549, 4550,
5198      4550, 4550,    0,    0,    0, 4550, 4551, 4551, 4551, 4551,
5199         0,    0, 4551, 4551, 4552, 4552, 4552, 4552,    0,    0,
5200      4552, 4552, 4553, 4553, 4553,    0,    0,    0, 4553, 4554,
5201
5202      4554, 4554, 4554,    0,    0, 4554, 4554, 4555, 4555, 4555,
5203      4555,    0,    0, 4555, 4555, 4556, 4556, 4556,    0,    0,
5204         0, 4556, 4557, 4557, 4557,    0,    0,    0, 4557, 4558,
5205      4558, 4558, 4558,    0,    0, 4558, 4558, 4559, 4559, 4559,
5206      4559,    0,    0, 4559, 4559, 4560, 4560, 4560,    0,    0,
5207         0, 4560, 4561, 4561, 4561,    0,    0,    0, 4561, 4562,
5208      4562, 4562, 4562,    0,    0, 4562, 4562, 4563, 4563, 4563,
5209      4563,    0, 4563,    0, 4563, 4564, 4564, 4564, 4564,    0,
5210         0, 4564, 4564, 4565, 4565, 4565,    0,    0,    0, 4565,
5211      4566, 4566, 4566, 4566,    0,    0, 4566, 4566, 4567, 4567,
5212
5213      4567,    0,    0,    0, 4567, 4568, 4568, 4568,    0,    0,
5214         0, 4568, 4569, 4569, 4569, 4569,    0,    0, 4569, 4569,
5215      4570, 4570, 4570, 4570,    0,    0, 4570, 4570, 4571, 4571,
5216      4571, 4571,    0,    0, 4571, 4571, 4572, 4572, 4572,    0,
5217         0,    0, 4572, 4573, 4573, 4573, 4573,    0,    0, 4573,
5218      4573, 4574, 4574, 4574,    0,    0,    0, 4574, 4575, 4575,
5219      4575, 4575,    0,    0, 4575, 4575, 4576, 4576, 4576, 4576,
5220      4576, 4576, 4576, 4576, 4576, 4577, 4577, 4577, 4577, 4577,
5221      4577, 4577, 4577, 4577, 4578, 4578, 4578,    0,    0,    0,
5222      4578, 4579, 4579, 4579, 4579,    0,    0, 4579, 4579, 4580,
5223
5224      4580, 4580, 4580,    0, 4580,    0, 4580, 4581, 4581, 4581,
5225      4581,    0,    0, 4581, 4581, 4582, 4582, 4582, 4582,    0,
5226      4582,    0, 4582, 4583, 4583, 4583, 4583,    0,    0, 4583,
5227      4583, 4584, 4584, 4584, 4584,    0,    0, 4584, 4584, 4585,
5228      4585, 4585, 4585,    0,    0, 4585, 4585, 4586, 4586, 4586,
5229      4586,    0,    0, 4586, 4586, 4587, 4587, 4587, 4587,    0,
5230         0, 4587, 4587, 4588, 4588, 4588,    0,    0,    0, 4588,
5231      4589, 4589, 4589, 4589,    0,    0, 4589, 4589, 4590, 4590,
5232      4590,    0,    0,    0, 4590, 4591, 4591, 4591, 4591,    0,
5233         0, 4591, 4591, 4592, 4592, 4592, 4592,    0,    0, 4592,
5234
5235      4592, 4593, 4593, 4593, 4593,    0, 4593,    0, 4593, 4594,
5236      4594, 4594, 4594,    0, 4594,    0, 4594, 4595, 4595, 4595,
5237      4595,    0,    0, 4595, 4595, 4596, 4596, 4596, 4596,    0,
5238         0, 4596, 4596, 4597, 4597, 4597, 4597,    0, 4597,    0,
5239      4597, 4598, 4598, 4598,    0,    0,    0, 4598, 4599, 4599,
5240      4599, 4599,    0,    0, 4599, 4599, 4600, 4600, 4600, 4600,
5241         0, 4600,    0, 4600, 4601, 4601, 4601, 4601,    0,    0,
5242      4601, 4601, 4602, 4602, 4602, 4602,    0, 4602,    0, 4602,
5243      4603, 4603, 4603,    0,    0,    0, 4603, 4604, 4604, 4604,
5244         0,    0,    0, 4604, 4605, 4605, 4605, 4605,    0,    0,
5245
5246      4605, 4605, 4606, 4606, 4606, 4606,    0,    0, 4606, 4606,
5247      4607, 4607, 4607,    0,    0,    0, 4607, 4608, 4608, 4608,
5248      4608,    0,    0, 4608, 4608, 4609, 4609, 4609,    0,    0,
5249         0, 4609, 4610, 4610, 4610, 4610,    0,    0, 4610, 4610,
5250      4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611, 4612,
5251      4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4613, 4613,
5252      4613,    0,    0,    0, 4613, 4614, 4614, 4614, 4614,    0,
5253      4614,    0, 4614, 4615, 4615, 4615, 4615,    0,    0, 4615,
5254      4615, 4616, 4616, 4616, 4616,    0,    0, 4616, 4616, 4617,
5255      4617, 4617, 4617,    0,    0, 4617, 4617, 4618, 4618, 4618,
5256
5257      4618,    0,    0, 4618, 4618, 4619, 4619, 4619, 4619,    0,
5258         0, 4619, 4619, 4620, 4620, 4620,    0,    0,    0, 4620,
5259      4621, 4621, 4621,    0,    0,    0, 4621, 4622, 4622, 4622,
5260      4622,    0,    0, 4622, 4622, 4623, 4623, 4623,    0,    0,
5261         0, 4623, 4624, 4624, 4624, 4624,    0,    0, 4624, 4624,
5262      4625, 4625, 4625, 4625,    0,    0, 4625, 4625, 4626, 4626,
5263      4626,    0,    0,    0, 4626, 4627, 4627, 4627, 4627,    0,
5264         0, 4627, 4627, 4628, 4628, 4628, 4628,    0, 4628,    0,
5265      4628, 4629, 4629, 4629,    0,    0,    0, 4629, 4630, 4630,
5266      4630,    0,    0,    0, 4630, 4631, 4631, 4631,    0,    0,
5267
5268         0, 4631, 4632, 4632, 4632, 4632, 4632, 4632, 4632, 4632,
5269      4632, 4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633,
5270      4634, 4634, 4634, 4634, 4634, 4634, 4634, 4634, 4634, 4635,
5271      4635, 4635, 4635, 4635, 4635, 4635, 4635, 4635, 4636, 4636,
5272      4636, 4636, 4636, 4636, 4636, 4636, 4636, 4637, 4637, 4637,
5273      4637, 4637, 4637, 4637, 4637, 4637, 4085, 4085, 4085, 4085,
5274      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
5275      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
5276      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
5277      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
5278
5279      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
5280      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
5281      4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085, 4085,
5282      4085, 4085
5283     } ;
5284
5285 /* Table of booleans, true if rule could match eol. */
5286 static const flex_int32_t yy_rule_can_match_eol[665] =
5287     {   0,
5288 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 
5289     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
5290     1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
5291     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
5292     1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 
5293     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
5294     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
5295     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
5296     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
5297     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
5298     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
5299     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
5300     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
5301     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
5302     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
5303     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
5304     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
5305     1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 
5306     1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 
5307     0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
5308     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
5309     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
5310     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
5311     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
5312     1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
5313     1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 
5314     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
5315     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
5316     0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
5317     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
5318     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
5319     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
5320     1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
5321     0, 0, 0, 1, 0,     };
5322
5323 static yy_state_type yy_last_accepting_state;
5324 static char *yy_last_accepting_cpos;
5325
5326 extern int yy_flex_debug;
5327 int yy_flex_debug = 0;
5328
5329 /* The intent behind this definition is that it'll catch
5330  * any uses of REJECT which flex missed.
5331  */
5332 #define REJECT reject_used_but_not_detected
5333 #define yymore() yymore_used_but_not_detected
5334 #define YY_MORE_ADJ 0
5335 #define YY_RESTORE_YY_MORE_OFFSET
5336 char *yytext;
5337 /* Validating XML processor for src/surf/xml/simgrid.dtd.
5338  *
5339  * This program was generated with the FleXML XML processor generator.
5340  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
5341  * FleXML is Copyright (C) 2003-2013 Martin Quinson.  All rights reserved.
5342  * (1.9.6).
5343  * 
5344  * There are two, intertwined parts to this program, part A and part B.
5345  *
5346  * Part A
5347  * ------
5348  * 
5349  * Some parts, here collectively called "Part A", are found in the 
5350  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
5351  * and Copyright (C) 2003-2013 Martin Quinson. All rights reserved.
5352  *
5353  * You can redistribute, use, perform, display and/or modify "Part A"
5354  * provided the following two conditions hold:
5355  *
5356  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
5357  *    FleXML; without even the implied warranty of MERCHANTABILITY or
5358  *    FITNESS FOR A PARTICULAR PURPOSE.
5359  *
5360  * 2. The program distribution conditions do not in any way affect the
5361  *    distribution conditions of the FleXML system used to generate this
5362  *    file or any version of FleXML derived from that system.
5363  *
5364  * Notice that these are explicit rights granted to you for files
5365  * generated by the FleXML system.  For your rights in connection with
5366  * the FleXML system itself please consult the GNU General Public License.
5367  * 
5368  * Part B
5369  * ------
5370  * 
5371  * The other parts, here collectively called "Part B", and which came 
5372  * from the DTD used by FleXML to generate this program, can be 
5373  * distributed (or not, as the case may be) under the terms of whoever
5374  * wrote them, provided these terms respect and obey the two conditions 
5375  * above under the heading "Part A".
5376  *
5377  * The author of and contributors to FleXML specifically disclaim
5378  * any copyright interest in "Part B", unless "Part B" was written 
5379  * by the author of or contributors to FleXML.
5380  * 
5381  */
5382
5383 /* Version strings. */
5384 const char surfxml_flexml_version[] = "1.9.6";
5385
5386 /* ANSI headers. */
5387 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
5388 #include <stdio.h>
5389 #include <string.h>
5390 #include <assert.h>
5391 #include <stdarg.h>
5392 #include <ctype.h>
5393      
5394 #if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
5395 # ifndef __STRICT_ANSI__
5396 #  include <io.h>
5397 #  include <process.h>
5398 # endif
5399 #else
5400 # include <unistd.h>
5401 #endif
5402      
5403 #ifndef FLEXML_INDEXSTACKSIZE
5404 #define FLEXML_INDEXSTACKSIZE 1000
5405 #endif
5406
5407 /* Generated definitions. */
5408 #define FLEXML_yylineno
5409 #ifndef FLEXML_BUFFERSTACKSIZE
5410 #define FLEXML_BUFFERSTACKSIZE 1000000
5411 #endif
5412 #define FLEXML_NEED_BUFFERLIT
5413
5414 /* XML processor api. */
5415 /* FleXML-provided data. */
5416 int surfxml_pcdata_ix;
5417 extern char *surfxml_bufferstack;
5418 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
5419 AT_surfxml_AS_id AX_surfxml_AS_id;
5420 #define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
5421 short int surfxml_AS_id_isset;
5422 AT_surfxml_AS_routing AX_surfxml_AS_routing;
5423 #define A_surfxml_AS_routing AX_surfxml_AS_routing
5424 short int surfxml_AS_routing_isset;
5425 AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst;
5426 #define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
5427 short int surfxml_ASroute_dst_isset;
5428 AT_surfxml_ASroute_gw___dst AX_surfxml_ASroute_gw___dst;
5429 #define A_surfxml_ASroute_gw___dst (surfxml_bufferstack + AX_surfxml_ASroute_gw___dst)
5430 short int surfxml_ASroute_gw___dst_isset;
5431 AT_surfxml_ASroute_gw___src AX_surfxml_ASroute_gw___src;
5432 #define A_surfxml_ASroute_gw___src (surfxml_bufferstack + AX_surfxml_ASroute_gw___src)
5433 short int surfxml_ASroute_gw___src_isset;
5434 AT_surfxml_ASroute_src AX_surfxml_ASroute_src;
5435 #define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
5436 short int surfxml_ASroute_src_isset;
5437 AT_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical;
5438 #define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical
5439 short int surfxml_ASroute_symmetrical_isset;
5440 AT_surfxml_actor_function AX_surfxml_actor_function;
5441 #define A_surfxml_actor_function (surfxml_bufferstack + AX_surfxml_actor_function)
5442 short int surfxml_actor_function_isset;
5443 AT_surfxml_actor_host AX_surfxml_actor_host;
5444 #define A_surfxml_actor_host (surfxml_bufferstack + AX_surfxml_actor_host)
5445 short int surfxml_actor_host_isset;
5446 AT_surfxml_actor_kill___time AX_surfxml_actor_kill___time;
5447 #define A_surfxml_actor_kill___time (surfxml_bufferstack + AX_surfxml_actor_kill___time)
5448 short int surfxml_actor_kill___time_isset;
5449 AT_surfxml_actor_on___failure AX_surfxml_actor_on___failure;
5450 #define A_surfxml_actor_on___failure AX_surfxml_actor_on___failure
5451 short int surfxml_actor_on___failure_isset;
5452 AT_surfxml_actor_start___time AX_surfxml_actor_start___time;
5453 #define A_surfxml_actor_start___time (surfxml_bufferstack + AX_surfxml_actor_start___time)
5454 short int surfxml_actor_start___time_isset;
5455 AT_surfxml_argument_value AX_surfxml_argument_value;
5456 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
5457 short int surfxml_argument_value_isset;
5458 AT_surfxml_backbone_bandwidth AX_surfxml_backbone_bandwidth;
5459 #define A_surfxml_backbone_bandwidth (surfxml_bufferstack + AX_surfxml_backbone_bandwidth)
5460 short int surfxml_backbone_bandwidth_isset;
5461 AT_surfxml_backbone_id AX_surfxml_backbone_id;
5462 #define A_surfxml_backbone_id (surfxml_bufferstack + AX_surfxml_backbone_id)
5463 short int surfxml_backbone_id_isset;
5464 AT_surfxml_backbone_latency AX_surfxml_backbone_latency;
5465 #define A_surfxml_backbone_latency (surfxml_bufferstack + AX_surfxml_backbone_latency)
5466 short int surfxml_backbone_latency_isset;
5467 AT_surfxml_bypassASroute_dst AX_surfxml_bypassASroute_dst;
5468 #define A_surfxml_bypassASroute_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_dst)
5469 short int surfxml_bypassASroute_dst_isset;
5470 AT_surfxml_bypassASroute_gw___dst AX_surfxml_bypassASroute_gw___dst;
5471 #define A_surfxml_bypassASroute_gw___dst (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___dst)
5472 short int surfxml_bypassASroute_gw___dst_isset;
5473 AT_surfxml_bypassASroute_gw___src AX_surfxml_bypassASroute_gw___src;
5474 #define A_surfxml_bypassASroute_gw___src (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___src)
5475 short int surfxml_bypassASroute_gw___src_isset;
5476 AT_surfxml_bypassASroute_src AX_surfxml_bypassASroute_src;
5477 #define A_surfxml_bypassASroute_src (surfxml_bufferstack + AX_surfxml_bypassASroute_src)
5478 short int surfxml_bypassASroute_src_isset;
5479 AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst;
5480 #define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
5481 short int surfxml_bypassRoute_dst_isset;
5482 AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src;
5483 #define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
5484 short int surfxml_bypassRoute_src_isset;
5485 AT_surfxml_bypassZoneRoute_dst AX_surfxml_bypassZoneRoute_dst;
5486 #define A_surfxml_bypassZoneRoute_dst (surfxml_bufferstack + AX_surfxml_bypassZoneRoute_dst)
5487 short int surfxml_bypassZoneRoute_dst_isset;
5488 AT_surfxml_bypassZoneRoute_gw___dst AX_surfxml_bypassZoneRoute_gw___dst;
5489 #define A_surfxml_bypassZoneRoute_gw___dst (surfxml_bufferstack + AX_surfxml_bypassZoneRoute_gw___dst)
5490 short int surfxml_bypassZoneRoute_gw___dst_isset;
5491 AT_surfxml_bypassZoneRoute_gw___src AX_surfxml_bypassZoneRoute_gw___src;
5492 #define A_surfxml_bypassZoneRoute_gw___src (surfxml_bufferstack + AX_surfxml_bypassZoneRoute_gw___src)
5493 short int surfxml_bypassZoneRoute_gw___src_isset;
5494 AT_surfxml_bypassZoneRoute_src AX_surfxml_bypassZoneRoute_src;
5495 #define A_surfxml_bypassZoneRoute_src (surfxml_bufferstack + AX_surfxml_bypassZoneRoute_src)
5496 short int surfxml_bypassZoneRoute_src_isset;
5497 AT_surfxml_cabinet_bw AX_surfxml_cabinet_bw;
5498 #define A_surfxml_cabinet_bw (surfxml_bufferstack + AX_surfxml_cabinet_bw)
5499 short int surfxml_cabinet_bw_isset;
5500 AT_surfxml_cabinet_id AX_surfxml_cabinet_id;
5501 #define A_surfxml_cabinet_id (surfxml_bufferstack + AX_surfxml_cabinet_id)
5502 short int surfxml_cabinet_id_isset;
5503 AT_surfxml_cabinet_lat AX_surfxml_cabinet_lat;
5504 #define A_surfxml_cabinet_lat (surfxml_bufferstack + AX_surfxml_cabinet_lat)
5505 short int surfxml_cabinet_lat_isset;
5506 AT_surfxml_cabinet_prefix AX_surfxml_cabinet_prefix;
5507 #define A_surfxml_cabinet_prefix (surfxml_bufferstack + AX_surfxml_cabinet_prefix)
5508 short int surfxml_cabinet_prefix_isset;
5509 AT_surfxml_cabinet_radical AX_surfxml_cabinet_radical;
5510 #define A_surfxml_cabinet_radical (surfxml_bufferstack + AX_surfxml_cabinet_radical)
5511 short int surfxml_cabinet_radical_isset;
5512 AT_surfxml_cabinet_speed AX_surfxml_cabinet_speed;
5513 #define A_surfxml_cabinet_speed (surfxml_bufferstack + AX_surfxml_cabinet_speed)
5514 short int surfxml_cabinet_speed_isset;
5515 AT_surfxml_cabinet_suffix AX_surfxml_cabinet_suffix;
5516 #define A_surfxml_cabinet_suffix (surfxml_bufferstack + AX_surfxml_cabinet_suffix)
5517 short int surfxml_cabinet_suffix_isset;
5518 AT_surfxml_cluster_bb___bw AX_surfxml_cluster_bb___bw;
5519 #define A_surfxml_cluster_bb___bw (surfxml_bufferstack + AX_surfxml_cluster_bb___bw)
5520 short int surfxml_cluster_bb___bw_isset;
5521 AT_surfxml_cluster_bb___lat AX_surfxml_cluster_bb___lat;
5522 #define A_surfxml_cluster_bb___lat (surfxml_bufferstack + AX_surfxml_cluster_bb___lat)
5523 short int surfxml_cluster_bb___lat_isset;
5524 AT_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy;
5525 #define A_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy
5526 short int surfxml_cluster_bb___sharing___policy_isset;
5527 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
5528 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
5529 short int surfxml_cluster_bw_isset;
5530 AT_surfxml_cluster_core AX_surfxml_cluster_core;
5531 #define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core)
5532 short int surfxml_cluster_core_isset;
5533 AT_surfxml_cluster_id AX_surfxml_cluster_id;
5534 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
5535 short int surfxml_cluster_id_isset;
5536 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
5537 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
5538 short int surfxml_cluster_lat_isset;
5539 AT_surfxml_cluster_limiter___link AX_surfxml_cluster_limiter___link;
5540 #define A_surfxml_cluster_limiter___link (surfxml_bufferstack + AX_surfxml_cluster_limiter___link)
5541 short int surfxml_cluster_limiter___link_isset;
5542 AT_surfxml_cluster_loopback___bw AX_surfxml_cluster_loopback___bw;
5543 #define A_surfxml_cluster_loopback___bw (surfxml_bufferstack + AX_surfxml_cluster_loopback___bw)
5544 short int surfxml_cluster_loopback___bw_isset;
5545 AT_surfxml_cluster_loopback___lat AX_surfxml_cluster_loopback___lat;
5546 #define A_surfxml_cluster_loopback___lat (surfxml_bufferstack + AX_surfxml_cluster_loopback___lat)
5547 short int surfxml_cluster_loopback___lat_isset;
5548 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
5549 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
5550 short int surfxml_cluster_prefix_isset;
5551 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
5552 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
5553 short int surfxml_cluster_radical_isset;
5554 AT_surfxml_cluster_router___id AX_surfxml_cluster_router___id;
5555 #define A_surfxml_cluster_router___id (surfxml_bufferstack + AX_surfxml_cluster_router___id)
5556 short int surfxml_cluster_router___id_isset;
5557 AT_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy;
5558 #define A_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy
5559 short int surfxml_cluster_sharing___policy_isset;
5560 AT_surfxml_cluster_speed AX_surfxml_cluster_speed;
5561 #define A_surfxml_cluster_speed (surfxml_bufferstack + AX_surfxml_cluster_speed)
5562 short int surfxml_cluster_speed_isset;
5563 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
5564 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
5565 short int surfxml_cluster_suffix_isset;
5566 AT_surfxml_cluster_topo___parameters AX_surfxml_cluster_topo___parameters;
5567 #define A_surfxml_cluster_topo___parameters (surfxml_bufferstack + AX_surfxml_cluster_topo___parameters)
5568 short int surfxml_cluster_topo___parameters_isset;
5569 AT_surfxml_cluster_topology AX_surfxml_cluster_topology;
5570 #define A_surfxml_cluster_topology AX_surfxml_cluster_topology
5571 short int surfxml_cluster_topology_isset;
5572 AT_surfxml_config_id AX_surfxml_config_id;
5573 #define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
5574 short int surfxml_config_id_isset;
5575 AT_surfxml_host_availability___file AX_surfxml_host_availability___file;
5576 #define A_surfxml_host_availability___file (surfxml_bufferstack + AX_surfxml_host_availability___file)
5577 short int surfxml_host_availability___file_isset;
5578 AT_surfxml_host_coordinates AX_surfxml_host_coordinates;
5579 #define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates)
5580 short int surfxml_host_coordinates_isset;
5581 AT_surfxml_host_core AX_surfxml_host_core;
5582 #define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core)
5583 short int surfxml_host_core_isset;
5584 AT_surfxml_host_id AX_surfxml_host_id;
5585 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
5586 short int surfxml_host_id_isset;
5587 AT_surfxml_host_pstate AX_surfxml_host_pstate;
5588 #define A_surfxml_host_pstate (surfxml_bufferstack + AX_surfxml_host_pstate)
5589 short int surfxml_host_pstate_isset;
5590 AT_surfxml_host_speed AX_surfxml_host_speed;
5591 #define A_surfxml_host_speed (surfxml_bufferstack + AX_surfxml_host_speed)
5592 short int surfxml_host_speed_isset;
5593 AT_surfxml_host_state___file AX_surfxml_host_state___file;
5594 #define A_surfxml_host_state___file (surfxml_bufferstack + AX_surfxml_host_state___file)
5595 short int surfxml_host_state___file_isset;
5596 AT_surfxml_host___link_down AX_surfxml_host___link_down;
5597 #define A_surfxml_host___link_down (surfxml_bufferstack + AX_surfxml_host___link_down)
5598 short int surfxml_host___link_down_isset;
5599 AT_surfxml_host___link_id AX_surfxml_host___link_id;
5600 #define A_surfxml_host___link_id (surfxml_bufferstack + AX_surfxml_host___link_id)
5601 short int surfxml_host___link_id_isset;
5602 AT_surfxml_host___link_up AX_surfxml_host___link_up;
5603 #define A_surfxml_host___link_up (surfxml_bufferstack + AX_surfxml_host___link_up)
5604 short int surfxml_host___link_up_isset;
5605 AT_surfxml_include_file AX_surfxml_include_file;
5606 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
5607 short int surfxml_include_file_isset;
5608 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
5609 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
5610 short int surfxml_link_bandwidth_isset;
5611 AT_surfxml_link_bandwidth___file AX_surfxml_link_bandwidth___file;
5612 #define A_surfxml_link_bandwidth___file (surfxml_bufferstack + AX_surfxml_link_bandwidth___file)
5613 short int surfxml_link_bandwidth___file_isset;
5614 AT_surfxml_link_id AX_surfxml_link_id;
5615 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
5616 short int surfxml_link_id_isset;
5617 AT_surfxml_link_latency AX_surfxml_link_latency;
5618 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
5619 short int surfxml_link_latency_isset;
5620 AT_surfxml_link_latency___file AX_surfxml_link_latency___file;
5621 #define A_surfxml_link_latency___file (surfxml_bufferstack + AX_surfxml_link_latency___file)
5622 short int surfxml_link_latency___file_isset;
5623 AT_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy;
5624 #define A_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy
5625 short int surfxml_link_sharing___policy_isset;
5626 AT_surfxml_link_state___file AX_surfxml_link_state___file;
5627 #define A_surfxml_link_state___file (surfxml_bufferstack + AX_surfxml_link_state___file)
5628 short int surfxml_link_state___file_isset;
5629 AT_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction;
5630 #define A_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction
5631 short int surfxml_link___ctn_direction_isset;
5632 AT_surfxml_link___ctn_id AX_surfxml_link___ctn_id;
5633 #define A_surfxml_link___ctn_id (surfxml_bufferstack + AX_surfxml_link___ctn_id)
5634 short int surfxml_link___ctn_id_isset;
5635 AT_surfxml_model___prop_id AX_surfxml_model___prop_id;
5636 #define A_surfxml_model___prop_id (surfxml_bufferstack + AX_surfxml_model___prop_id)
5637 short int surfxml_model___prop_id_isset;
5638 AT_surfxml_model___prop_value AX_surfxml_model___prop_value;
5639 #define A_surfxml_model___prop_value (surfxml_bufferstack + AX_surfxml_model___prop_value)
5640 short int surfxml_model___prop_value_isset;
5641 AT_surfxml_mount_name AX_surfxml_mount_name;
5642 #define A_surfxml_mount_name (surfxml_bufferstack + AX_surfxml_mount_name)
5643 short int surfxml_mount_name_isset;
5644 AT_surfxml_mount_storageId AX_surfxml_mount_storageId;
5645 #define A_surfxml_mount_storageId (surfxml_bufferstack + AX_surfxml_mount_storageId)
5646 short int surfxml_mount_storageId_isset;
5647 AT_surfxml_peer_availability___file AX_surfxml_peer_availability___file;
5648 #define A_surfxml_peer_availability___file (surfxml_bufferstack + AX_surfxml_peer_availability___file)
5649 short int surfxml_peer_availability___file_isset;
5650 AT_surfxml_peer_bw___in AX_surfxml_peer_bw___in;
5651 #define A_surfxml_peer_bw___in (surfxml_bufferstack + AX_surfxml_peer_bw___in)
5652 short int surfxml_peer_bw___in_isset;
5653 AT_surfxml_peer_bw___out AX_surfxml_peer_bw___out;
5654 #define A_surfxml_peer_bw___out (surfxml_bufferstack + AX_surfxml_peer_bw___out)
5655 short int surfxml_peer_bw___out_isset;
5656 AT_surfxml_peer_coordinates AX_surfxml_peer_coordinates;
5657 #define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates)
5658 short int surfxml_peer_coordinates_isset;
5659 AT_surfxml_peer_id AX_surfxml_peer_id;
5660 #define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id)
5661 short int surfxml_peer_id_isset;
5662 AT_surfxml_peer_lat AX_surfxml_peer_lat;
5663 #define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
5664 short int surfxml_peer_lat_isset;
5665 AT_surfxml_peer_speed AX_surfxml_peer_speed;
5666 #define A_surfxml_peer_speed (surfxml_bufferstack + AX_surfxml_peer_speed)
5667 short int surfxml_peer_speed_isset;
5668 AT_surfxml_peer_state___file AX_surfxml_peer_state___file;
5669 #define A_surfxml_peer_state___file (surfxml_bufferstack + AX_surfxml_peer_state___file)
5670 short int surfxml_peer_state___file_isset;
5671 AT_surfxml_platform_version AX_surfxml_platform_version;
5672 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
5673 short int surfxml_platform_version_isset;
5674 AT_surfxml_process_function AX_surfxml_process_function;
5675 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
5676 short int surfxml_process_function_isset;
5677 AT_surfxml_process_host AX_surfxml_process_host;
5678 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
5679 short int surfxml_process_host_isset;
5680 AT_surfxml_process_kill___time AX_surfxml_process_kill___time;
5681 #define A_surfxml_process_kill___time (surfxml_bufferstack + AX_surfxml_process_kill___time)
5682 short int surfxml_process_kill___time_isset;
5683 AT_surfxml_process_on___failure AX_surfxml_process_on___failure;
5684 #define A_surfxml_process_on___failure AX_surfxml_process_on___failure
5685 short int surfxml_process_on___failure_isset;
5686 AT_surfxml_process_start___time AX_surfxml_process_start___time;
5687 #define A_surfxml_process_start___time (surfxml_bufferstack + AX_surfxml_process_start___time)
5688 short int surfxml_process_start___time_isset;
5689 AT_surfxml_prop_id AX_surfxml_prop_id;
5690 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
5691 short int surfxml_prop_id_isset;
5692 AT_surfxml_prop_value AX_surfxml_prop_value;
5693 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
5694 short int surfxml_prop_value_isset;
5695 AT_surfxml_random_generator AX_surfxml_random_generator;
5696 #define A_surfxml_random_generator AX_surfxml_random_generator
5697 short int surfxml_random_generator_isset;
5698 AT_surfxml_random_id AX_surfxml_random_id;
5699 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
5700 short int surfxml_random_id_isset;
5701 AT_surfxml_random_max AX_surfxml_random_max;
5702 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
5703 short int surfxml_random_max_isset;
5704 AT_surfxml_random_mean AX_surfxml_random_mean;
5705 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
5706 short int surfxml_random_mean_isset;
5707 AT_surfxml_random_min AX_surfxml_random_min;
5708 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
5709 short int surfxml_random_min_isset;
5710 AT_surfxml_random_radical AX_surfxml_random_radical;
5711 #define A_surfxml_random_radical (surfxml_bufferstack + AX_surfxml_random_radical)
5712 short int surfxml_random_radical_isset;
5713 AT_surfxml_random_seed AX_surfxml_random_seed;
5714 #define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed)
5715 short int surfxml_random_seed_isset;
5716 AT_surfxml_random_std___deviation AX_surfxml_random_std___deviation;
5717 #define A_surfxml_random_std___deviation (surfxml_bufferstack + AX_surfxml_random_std___deviation)
5718 short int surfxml_random_std___deviation_isset;
5719 AT_surfxml_route_dst AX_surfxml_route_dst;
5720 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
5721 short int surfxml_route_dst_isset;
5722 AT_surfxml_route_src AX_surfxml_route_src;
5723 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
5724 short int surfxml_route_src_isset;
5725 AT_surfxml_route_symmetrical AX_surfxml_route_symmetrical;
5726 #define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical
5727 short int surfxml_route_symmetrical_isset;
5728 AT_surfxml_router_coordinates AX_surfxml_router_coordinates;
5729 #define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates)
5730 short int surfxml_router_coordinates_isset;
5731 AT_surfxml_router_id AX_surfxml_router_id;
5732 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
5733 short int surfxml_router_id_isset;
5734 AT_surfxml_storage_attach AX_surfxml_storage_attach;
5735 #define A_surfxml_storage_attach (surfxml_bufferstack + AX_surfxml_storage_attach)
5736 short int surfxml_storage_attach_isset;
5737 AT_surfxml_storage_content AX_surfxml_storage_content;
5738 #define A_surfxml_storage_content (surfxml_bufferstack + AX_surfxml_storage_content)
5739 short int surfxml_storage_content_isset;
5740 AT_surfxml_storage_id AX_surfxml_storage_id;
5741 #define A_surfxml_storage_id (surfxml_bufferstack + AX_surfxml_storage_id)
5742 short int surfxml_storage_id_isset;
5743 AT_surfxml_storage_typeId AX_surfxml_storage_typeId;
5744 #define A_surfxml_storage_typeId (surfxml_bufferstack + AX_surfxml_storage_typeId)
5745 short int surfxml_storage_typeId_isset;
5746 AT_surfxml_storage___type_content AX_surfxml_storage___type_content;
5747 #define A_surfxml_storage___type_content (surfxml_bufferstack + AX_surfxml_storage___type_content)
5748 short int surfxml_storage___type_content_isset;
5749 AT_surfxml_storage___type_id AX_surfxml_storage___type_id;
5750 #define A_surfxml_storage___type_id (surfxml_bufferstack + AX_surfxml_storage___type_id)
5751 short int surfxml_storage___type_id_isset;
5752 AT_surfxml_storage___type_model AX_surfxml_storage___type_model;
5753 #define A_surfxml_storage___type_model (surfxml_bufferstack + AX_surfxml_storage___type_model)
5754 short int surfxml_storage___type_model_isset;
5755 AT_surfxml_storage___type_size AX_surfxml_storage___type_size;
5756 #define A_surfxml_storage___type_size (surfxml_bufferstack + AX_surfxml_storage___type_size)
5757 short int surfxml_storage___type_size_isset;
5758 AT_surfxml_trace_file AX_surfxml_trace_file;
5759 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
5760 short int surfxml_trace_file_isset;
5761 AT_surfxml_trace_id AX_surfxml_trace_id;
5762 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
5763 short int surfxml_trace_id_isset;
5764 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
5765 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
5766 short int surfxml_trace_periodicity_isset;
5767 AT_surfxml_trace___connect_element AX_surfxml_trace___connect_element;
5768 #define A_surfxml_trace___connect_element (surfxml_bufferstack + AX_surfxml_trace___connect_element)
5769 short int surfxml_trace___connect_element_isset;
5770 AT_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind;
5771 #define A_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind
5772 short int surfxml_trace___connect_kind_isset;
5773 AT_surfxml_trace___connect_trace AX_surfxml_trace___connect_trace;
5774 #define A_surfxml_trace___connect_trace (surfxml_bufferstack + AX_surfxml_trace___connect_trace)
5775 short int surfxml_trace___connect_trace_isset;
5776 AT_surfxml_zone_id AX_surfxml_zone_id;
5777 #define A_surfxml_zone_id (surfxml_bufferstack + AX_surfxml_zone_id)
5778 short int surfxml_zone_id_isset;
5779 AT_surfxml_zone_routing AX_surfxml_zone_routing;
5780 #define A_surfxml_zone_routing AX_surfxml_zone_routing
5781 short int surfxml_zone_routing_isset;
5782 AT_surfxml_zoneRoute_dst AX_surfxml_zoneRoute_dst;
5783 #define A_surfxml_zoneRoute_dst (surfxml_bufferstack + AX_surfxml_zoneRoute_dst)
5784 short int surfxml_zoneRoute_dst_isset;
5785 AT_surfxml_zoneRoute_gw___dst AX_surfxml_zoneRoute_gw___dst;
5786 #define A_surfxml_zoneRoute_gw___dst (surfxml_bufferstack + AX_surfxml_zoneRoute_gw___dst)
5787 short int surfxml_zoneRoute_gw___dst_isset;
5788 AT_surfxml_zoneRoute_gw___src AX_surfxml_zoneRoute_gw___src;
5789 #define A_surfxml_zoneRoute_gw___src (surfxml_bufferstack + AX_surfxml_zoneRoute_gw___src)
5790 short int surfxml_zoneRoute_gw___src_isset;
5791 AT_surfxml_zoneRoute_src AX_surfxml_zoneRoute_src;
5792 #define A_surfxml_zoneRoute_src (surfxml_bufferstack + AX_surfxml_zoneRoute_src)
5793 short int surfxml_zoneRoute_src_isset;
5794 AT_surfxml_zoneRoute_symmetrical AX_surfxml_zoneRoute_symmetrical;
5795 #define A_surfxml_zoneRoute_symmetrical AX_surfxml_zoneRoute_symmetrical
5796 short int surfxml_zoneRoute_symmetrical_isset;
5797
5798 /* XML state. */
5799 #ifdef FLEX_DEBUG
5800 # define ENTER(state)   debug_enter(state,#state)
5801 # define LEAVE          debug_leave()
5802 # define SET(state)     debug_set(state,#state)
5803   static void debug_enter(int, const char*);
5804   static void debug_leave(void);
5805   static void debug_set(int, const char*);
5806 #else
5807 # define ENTER(state)   (yy_push_state(state))
5808 # define LEAVE          (yy_pop_state())
5809 # define SET(state)     BEGIN(state)
5810 #endif
5811
5812 /* Generic actions. */
5813 #define SKIP    /*skip*/
5814 #define SUCCEED        CLEANUP; return 0
5815
5816 #define FAIL    return fail
5817 static int fail(const char*, ...);
5818
5819 enum {flexml_max_err_msg_size = 512};
5820 static char flexml_err_msg[flexml_max_err_msg_size];
5821 const char * surfxml_parse_err_msg()
5822 {
5823     return flexml_err_msg;
5824 }
5825 static void reset_surfxml_parse_err_msg()
5826 {
5827     flexml_err_msg[0] = '\0';
5828 }
5829
5830 /* Cleanup */
5831 static void cleanup(void);
5832 #define CLEANUP  cleanup()
5833
5834 /* Text buffer stack handling. */
5835 char *surfxml_bufferstack = NULL;
5836 static int blimit = FLEXML_BUFFERSTACKSIZE;
5837 static int bnext = 1;
5838
5839 static int *indexstack = NULL;
5840 static int ilimit = FLEXML_INDEXSTACKSIZE;
5841 static int inext = 1;
5842
5843 #define BUFFERSET(P)  (P = bnext)
5844 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
5845 #define BUFFERDONE    (BUFFERPUTC('\0'))
5846
5847 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), yytext)
5848
5849 /* after this is called, there are at least 2 slots left in the stack */
5850 static int ck_blimit()
5851 {
5852      if (bnext >= blimit) {
5853          blimit += FLEXML_BUFFERSTACKSIZE + 2;
5854          {
5855              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
5856              assert(temp);
5857              surfxml_bufferstack = temp;
5858          }
5859      }
5860      return 0;
5861 }
5862
5863 /* after this is called, there are at least 2 slots left in the stack */
5864 static int ck_ilimit()
5865 {
5866      if (inext >= ilimit) {
5867          ilimit += FLEXML_INDEXSTACKSIZE + 2;
5868          {
5869              int *temp = (int *) realloc(indexstack, ilimit);
5870              assert(temp);
5871              indexstack = temp;
5872          }
5873      }
5874      return 0;
5875 }
5876
5877 #ifdef FLEXML_NEED_BUFFERLIT
5878 static void surfxml_bufferliteral(char c, int* pp, const char* text)
5879 {
5880    BUFFERSET(*pp);
5881    if (c) {
5882       const char *s = strchr(text, c), *e = strrchr(text, c);
5883       assert(s && e && s <= e);
5884       ++s;
5885       while (s < e) {
5886          if (isspace(*s)) {
5887             BUFFERPUTC(' ');
5888             do ++s; while (s < e && isspace(*s));
5889          } else
5890            BUFFERPUTC(*s++);
5891       }
5892    } else {
5893       const char *s = text;
5894       while (*s)
5895         BUFFERPUTC(*s++);
5896    }
5897    BUFFERDONE;
5898 }
5899 #endif
5900
5901 static void pushbuffer(int p)
5902 {
5903     ck_ilimit();
5904     indexstack[inext++] = p;
5905     indexstack[inext++] = bnext;    
5906 }
5907
5908 static int popbuffer(void)
5909 {
5910     assert(inext >= 2);
5911     bnext = indexstack[--inext];
5912     return indexstack[--inext];
5913 }
5914
5915 /* General internal entities are `unput' back onto the input stream... */
5916 #define ENTITYTEXT(T) \
5917   { char *s = (T), *e = s+strlen(s);\
5918     while (--e >= s) { unput(*e); }}
5919
5920 /* Flex standard options. */
5921 #define YY_NO_INPUT 1
5922 /* Flex user-requested options. */
5923 /* XML character classes (currently restricted to ASCII). */
5924 /* "Common syntactic structures." */
5925 /* "Names and Tokens." */
5926 /* Miscellaneous. */
5927 /* Parser states (flex `exclusive start conditions'):
5928  *
5929  * PROLOG       the XML prolog of the document before <?xml...>
5930  * DOCTYPE      the XML prolog of the document after <?xml...>
5931  * EPILOG       after the root element
5932  * INCOMMENT    inside an XML comment <!--....-->
5933  * INPI         inside an XML PI <?...?>
5934  * VALUE1       inside a '...'-delimited literal
5935  * VALUE2       inside a "..."-delimited literal
5936  * CDATA        inside a <![CDATA[...] ]> section.
5937  * ROOT_<tag>   expect root element <tag>
5938  * AL_<tag>     inside the attribute list for <tag>
5939  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
5940  * IMPOSSIBLE   dummy to permit disabling rules; must be last
5941  */
5942
5943 /* State names. */
5944 const char* *surfxml_statenames=NULL;
5945
5946 #define INITIAL 0
5947 #define PROLOG 1
5948 #define DOCTYPE 2
5949 #define EPILOG 3
5950 #define INCOMMENT 4
5951 #define INPI 5
5952 #define VALUE1 6
5953 #define VALUE2 7
5954 #define CDATA 8
5955 #define AL_surfxml_AS 9
5956 #define S_surfxml_AS 10
5957 #define S_surfxml_AS_1 11
5958 #define S_surfxml_AS_2 12
5959 #define S_surfxml_AS_3 13
5960 #define S_surfxml_AS_4 14
5961 #define S_surfxml_AS_5 15
5962 #define S_surfxml_AS_6 16
5963 #define S_surfxml_AS_7 17
5964 #define S_surfxml_AS_8 18
5965 #define S_surfxml_AS_9 19
5966 #define S_surfxml_AS_10 20
5967 #define S_surfxml_AS_11 21
5968 #define S_surfxml_AS_12 22
5969 #define S_surfxml_AS_13 23
5970 #define S_surfxml_AS_14 24
5971 #define S_surfxml_AS_15 25
5972 #define S_surfxml_AS_16 26
5973 #define E_surfxml_AS 27
5974 #define AL_surfxml_ASroute 28
5975 #define S_surfxml_ASroute 29
5976 #define S_surfxml_ASroute_1 30
5977 #define S_surfxml_ASroute_2 31
5978 #define E_surfxml_ASroute 32
5979 #define AL_surfxml_actor 33
5980 #define S_surfxml_actor 34
5981 #define S_surfxml_actor_1 35
5982 #define S_surfxml_actor_2 36
5983 #define E_surfxml_actor 37
5984 #define AL_surfxml_argument 38
5985 #define E_surfxml_argument 39
5986 #define AL_surfxml_backbone 40
5987 #define E_surfxml_backbone 41
5988 #define AL_surfxml_bypassASroute 42
5989 #define S_surfxml_bypassASroute 43
5990 #define S_surfxml_bypassASroute_1 44
5991 #define S_surfxml_bypassASroute_2 45
5992 #define E_surfxml_bypassASroute 46
5993 #define AL_surfxml_bypassRoute 47
5994 #define S_surfxml_bypassRoute 48
5995 #define S_surfxml_bypassRoute_1 49
5996 #define S_surfxml_bypassRoute_2 50
5997 #define E_surfxml_bypassRoute 51
5998 #define AL_surfxml_bypassZoneRoute 52
5999 #define S_surfxml_bypassZoneRoute 53
6000 #define S_surfxml_bypassZoneRoute_1 54
6001 #define S_surfxml_bypassZoneRoute_2 55
6002 #define E_surfxml_bypassZoneRoute 56
6003 #define AL_surfxml_cabinet 57
6004 #define E_surfxml_cabinet 58
6005 #define AL_surfxml_cluster 59
6006 #define S_surfxml_cluster 60
6007 #define S_surfxml_cluster_1 61
6008 #define S_surfxml_cluster_2 62
6009 #define E_surfxml_cluster 63
6010 #define AL_surfxml_config 64
6011 #define S_surfxml_config 65
6012 #define S_surfxml_config_1 66
6013 #define S_surfxml_config_2 67
6014 #define E_surfxml_config 68
6015 #define AL_surfxml_host 69
6016 #define S_surfxml_host 70
6017 #define S_surfxml_host_1 71
6018 #define S_surfxml_host_2 72
6019 #define E_surfxml_host 73
6020 #define AL_surfxml_host___link 74
6021 #define E_surfxml_host___link 75
6022 #define AL_surfxml_include 76
6023 #define S_surfxml_include 77
6024 #define S_surfxml_include_1 78
6025 #define S_surfxml_include_2 79
6026 #define E_surfxml_include 80
6027 #define AL_surfxml_link 81
6028 #define S_surfxml_link 82
6029 #define S_surfxml_link_1 83
6030 #define S_surfxml_link_2 84
6031 #define E_surfxml_link 85
6032 #define AL_surfxml_link___ctn 86
6033 #define E_surfxml_link___ctn 87
6034 #define AL_surfxml_model___prop 88
6035 #define E_surfxml_model___prop 89
6036 #define AL_surfxml_mount 90
6037 #define E_surfxml_mount 91
6038 #define AL_surfxml_peer 92
6039 #define E_surfxml_peer 93
6040 #define ROOT_surfxml_platform 94
6041 #define AL_surfxml_platform 95
6042 #define S_surfxml_platform 96
6043 #define S_surfxml_platform_1 97
6044 #define S_surfxml_platform_2 98
6045 #define S_surfxml_platform_3 99
6046 #define S_surfxml_platform_4 100
6047 #define S_surfxml_platform_5 101
6048 #define S_surfxml_platform_6 102
6049 #define S_surfxml_platform_7 103
6050 #define S_surfxml_platform_8 104
6051 #define E_surfxml_platform 105
6052 #define AL_surfxml_process 106
6053 #define S_surfxml_process 107
6054 #define S_surfxml_process_1 108
6055 #define S_surfxml_process_2 109
6056 #define E_surfxml_process 110
6057 #define AL_surfxml_prop 111
6058 #define E_surfxml_prop 112
6059 #define AL_surfxml_random 113
6060 #define E_surfxml_random 114
6061 #define AL_surfxml_route 115
6062 #define S_surfxml_route 116
6063 #define S_surfxml_route_1 117
6064 #define S_surfxml_route_2 118
6065 #define E_surfxml_route 119
6066 #define AL_surfxml_router 120
6067 #define E_surfxml_router 121
6068 #define AL_surfxml_storage 122
6069 #define S_surfxml_storage 123
6070 #define S_surfxml_storage_1 124
6071 #define S_surfxml_storage_2 125
6072 #define E_surfxml_storage 126
6073 #define AL_surfxml_storage___type 127
6074 #define S_surfxml_storage___type 128
6075 #define S_surfxml_storage___type_1 129
6076 #define S_surfxml_storage___type_2 130
6077 #define E_surfxml_storage___type 131
6078 #define AL_surfxml_trace 132
6079 #define IN_trace 133
6080 #define AL_surfxml_trace___connect 134
6081 #define E_surfxml_trace___connect 135
6082 #define AL_surfxml_zone 136
6083 #define S_surfxml_zone 137
6084 #define S_surfxml_zone_1 138
6085 #define S_surfxml_zone_2 139
6086 #define S_surfxml_zone_3 140
6087 #define S_surfxml_zone_4 141
6088 #define S_surfxml_zone_5 142
6089 #define S_surfxml_zone_6 143
6090 #define S_surfxml_zone_7 144
6091 #define S_surfxml_zone_8 145
6092 #define S_surfxml_zone_9 146
6093 #define S_surfxml_zone_10 147
6094 #define S_surfxml_zone_11 148
6095 #define S_surfxml_zone_12 149
6096 #define S_surfxml_zone_13 150
6097 #define S_surfxml_zone_14 151
6098 #define S_surfxml_zone_15 152
6099 #define S_surfxml_zone_16 153
6100 #define E_surfxml_zone 154
6101 #define AL_surfxml_zoneRoute 155
6102 #define S_surfxml_zoneRoute 156
6103 #define S_surfxml_zoneRoute_1 157
6104 #define S_surfxml_zoneRoute_2 158
6105 #define E_surfxml_zoneRoute 159
6106 #define IMPOSSIBLE 160
6107
6108 #ifndef YY_NO_UNISTD_H
6109 /* Special case for "unistd.h", since it is non-ANSI. We include it way
6110  * down here because we want the user's section 1 to have been scanned first.
6111  * The user has a chance to override it with an option.
6112  */
6113 #if defined(_WIN32)
6114 #  ifndef __STRICT_ANSI__
6115 #    include <io.h>
6116 #    include <process.h>
6117 #  endif
6118 #else
6119 #  include <unistd.h>
6120 #endif
6121 #endif
6122
6123 #ifndef YY_EXTRA_TYPE
6124 #define YY_EXTRA_TYPE void *
6125 #endif
6126
6127 static int yy_init_globals ( void );
6128
6129 /* Accessor methods to globals.
6130    These are made visible to non-reentrant scanners for convenience. */
6131
6132 int yylex_destroy ( void );
6133
6134 int yyget_debug ( void );
6135
6136 void yyset_debug ( int debug_flag  );
6137
6138 YY_EXTRA_TYPE yyget_extra ( void );
6139
6140 void yyset_extra ( YY_EXTRA_TYPE user_defined  );
6141
6142 FILE *yyget_in ( void );
6143
6144 void yyset_in  ( FILE * _in_str  );
6145
6146 FILE *yyget_out ( void );
6147
6148 void yyset_out  ( FILE * _out_str  );
6149
6150                         int yyget_leng ( void );
6151
6152 char *yyget_text ( void );
6153
6154 int yyget_lineno ( void );
6155
6156 void yyset_lineno ( int _line_number  );
6157
6158 /* Macros after this point can all be overridden by user definitions in
6159  * section 1.
6160  */
6161
6162 #ifndef YY_SKIP_YYWRAP
6163 #ifdef __cplusplus
6164 extern "C" int yywrap ( void );
6165 #else
6166 extern int yywrap ( void );
6167 #endif
6168 #endif
6169
6170 #ifndef YY_NO_UNPUT
6171     
6172 #endif
6173
6174 #ifndef yytext_ptr
6175 static void yy_flex_strncpy ( char *, const char *, int );
6176 #endif
6177
6178 #ifdef YY_NEED_STRLEN
6179 static int yy_flex_strlen ( const char * );
6180 #endif
6181
6182 #ifndef YY_NO_INPUT
6183 #ifdef __cplusplus
6184 static int yyinput ( void );
6185 #else
6186 static int input ( void );
6187 #endif
6188
6189 #endif
6190
6191         static int yy_start_stack_ptr = 0;
6192         static int yy_start_stack_depth = 0;
6193         static int *yy_start_stack = NULL;
6194     
6195     static void yy_push_state ( int _new_state );
6196     
6197     static void yy_pop_state ( void );
6198     
6199 /* Amount of stuff to slurp up with each read. */
6200 #ifndef YY_READ_BUF_SIZE
6201 #ifdef __ia64__
6202 /* On IA-64, the buffer size is 16k, not 8k */
6203 #define YY_READ_BUF_SIZE 16384
6204 #else
6205 #define YY_READ_BUF_SIZE 8192
6206 #endif /* __ia64__ */
6207 #endif
6208
6209 /* Copy whatever the last rule matched to the standard output. */
6210 #ifndef ECHO
6211 /* This used to be an fputs(), but since the string might contain NUL's,
6212  * we now use fwrite().
6213  */
6214 #define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
6215 #endif
6216
6217 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
6218  * is returned in "result".
6219  */
6220 #ifndef YY_INPUT
6221 #define YY_INPUT(buf,result,max_size) \
6222         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
6223                 { \
6224                 int c = '*'; \
6225                 int n; \
6226                 for ( n = 0; n < max_size && \
6227                              (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
6228                         buf[n] = (char) c; \
6229                 if ( c == '\n' ) \
6230                         buf[n++] = (char) c; \
6231                 if ( c == EOF && ferror( yyin ) ) \
6232                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
6233                 result = n; \
6234                 } \
6235         else \
6236                 { \
6237                 errno=0; \
6238                 while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
6239                         { \
6240                         if( errno != EINTR) \
6241                                 { \
6242                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
6243                                 break; \
6244                                 } \
6245                         errno=0; \
6246                         clearerr(yyin); \
6247                         } \
6248                 }\
6249 \
6250
6251 #endif
6252
6253 /* No semi-colon after return; correct usage is to write "yyterminate();" -
6254  * we don't want an extra ';' after the "return" because that will cause
6255  * some compilers to complain about unreachable statements.
6256  */
6257 #ifndef yyterminate
6258 #define yyterminate() return YY_NULL
6259 #endif
6260
6261 /* Number of entries by which start-condition stack grows. */
6262 #ifndef YY_START_STACK_INCR
6263 #define YY_START_STACK_INCR 25
6264 #endif
6265
6266 /* Report a fatal error. */
6267 #ifndef YY_FATAL_ERROR
6268 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
6269 #endif
6270
6271 /* end tables serialization structures and prototypes */
6272
6273 /* Default declaration of generated scanner - a define so the user can
6274  * easily add parameters.
6275  */
6276 #ifndef YY_DECL
6277 #define YY_DECL_IS_OURS 1
6278
6279 extern int yylex (void);
6280
6281 #define YY_DECL int yylex (void)
6282 #endif /* !YY_DECL */
6283
6284 /* Code executed at the beginning of each rule, after yytext and yyleng
6285  * have been set up.
6286  */
6287 #ifndef YY_USER_ACTION
6288 #define YY_USER_ACTION
6289 #endif
6290
6291 /* Code executed at the end of each rule. */
6292 #ifndef YY_BREAK
6293 #define YY_BREAK /*LINTED*/break;
6294 #endif
6295
6296 #define YY_RULE_SETUP \
6297         YY_USER_ACTION
6298
6299 /** The main scanner function which does all the work.
6300  */
6301 YY_DECL
6302 {
6303         yy_state_type yy_current_state;
6304         char *yy_cp, *yy_bp;
6305         int yy_act;
6306     
6307         if ( !(yy_init) )
6308                 {
6309                 (yy_init) = 1;
6310
6311 #ifdef YY_USER_INIT
6312                 YY_USER_INIT;
6313 #endif
6314
6315                 if ( ! (yy_start) )
6316                         (yy_start) = 1; /* first start state */
6317
6318                 if ( ! yyin )
6319                         yyin = stdin;
6320
6321                 if ( ! yyout )
6322                         yyout = stdout;
6323
6324                 if ( ! YY_CURRENT_BUFFER ) {
6325                         yyensure_buffer_stack ();
6326                         YY_CURRENT_BUFFER_LVALUE =
6327                                 yy_create_buffer( yyin, YY_BUF_SIZE );
6328                 }
6329
6330                 yy_load_buffer_state(  );
6331                 }
6332
6333         {
6334
6335  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
6336  SET(PROLOG);
6337  reset_surfxml_parse_err_msg();
6338  surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
6339  assert(surfxml_bufferstack);
6340  #ifdef FLEX_DEBUG
6341  {
6342      int i;
6343      for (i = 0; i < blimit; i++) {
6344          surfxml_bufferstack[i] = '\377';
6345      }
6346  }
6347  #endif
6348  surfxml_bufferstack[0] = '\0';
6349  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
6350  assert(indexstack);
6351  indexstack[0] = 0;
6352
6353   /* FleXML_init */
6354   bnext = inext = 1;
6355   surfxml_bufferliteral('\0', &bnext, "0.0");
6356   surfxml_bufferliteral('\0', &bnext, "2147483647");
6357   surfxml_bufferliteral('\0', &bnext, "N11");
6358   surfxml_bufferliteral('\0', &bnext, "1");
6359   surfxml_bufferliteral('\0', &bnext, "0.0");
6360   surfxml_bufferliteral('\0', &bnext, "1");
6361   surfxml_bufferliteral('\0', &bnext, "0s");
6362   surfxml_bufferliteral('\0', &bnext, "-1.0");
6363   surfxml_bufferliteral('\0', &bnext, "-1.0");
6364   surfxml_bufferliteral('\0', &bnext, "-1.0");
6365   surfxml_bufferliteral('\0', &bnext, "-1.0");
6366   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
6367   surfxml_statenames[PROLOG] = NULL;
6368   surfxml_statenames[DOCTYPE] = NULL;
6369   surfxml_statenames[EPILOG] = NULL;
6370   surfxml_statenames[INCOMMENT] = NULL;
6371   surfxml_statenames[INPI] = NULL;
6372   surfxml_statenames[VALUE1] = NULL;
6373   surfxml_statenames[VALUE2] = NULL;
6374   surfxml_statenames[CDATA] = NULL;
6375   surfxml_statenames[AL_surfxml_AS] = NULL;
6376   surfxml_statenames[S_surfxml_AS] = "AS";
6377   surfxml_statenames[S_surfxml_AS_1] = "AS";
6378   surfxml_statenames[S_surfxml_AS_2] = "AS";
6379   surfxml_statenames[S_surfxml_AS_3] = "AS";
6380   surfxml_statenames[S_surfxml_AS_4] = "AS";
6381   surfxml_statenames[S_surfxml_AS_5] = "AS";
6382   surfxml_statenames[S_surfxml_AS_6] = "AS";
6383   surfxml_statenames[S_surfxml_AS_7] = "AS";
6384   surfxml_statenames[S_surfxml_AS_8] = "AS";
6385   surfxml_statenames[S_surfxml_AS_9] = "AS";
6386   surfxml_statenames[S_surfxml_AS_10] = "AS";
6387   surfxml_statenames[S_surfxml_AS_11] = "AS";
6388   surfxml_statenames[S_surfxml_AS_12] = "AS";
6389   surfxml_statenames[S_surfxml_AS_13] = "AS";
6390   surfxml_statenames[S_surfxml_AS_14] = "AS";
6391   surfxml_statenames[S_surfxml_AS_15] = "AS";
6392   surfxml_statenames[S_surfxml_AS_16] = "AS";
6393   surfxml_statenames[E_surfxml_AS] = "AS";
6394   surfxml_statenames[AL_surfxml_ASroute] = NULL;
6395   surfxml_statenames[S_surfxml_ASroute] = "ASroute";
6396   surfxml_statenames[S_surfxml_ASroute_1] = "ASroute";
6397   surfxml_statenames[S_surfxml_ASroute_2] = "ASroute";
6398   surfxml_statenames[E_surfxml_ASroute] = "ASroute";
6399   surfxml_statenames[AL_surfxml_actor] = NULL;
6400   surfxml_statenames[S_surfxml_actor] = "actor";
6401   surfxml_statenames[S_surfxml_actor_1] = "actor";
6402   surfxml_statenames[S_surfxml_actor_2] = "actor";
6403   surfxml_statenames[E_surfxml_actor] = "actor";
6404   surfxml_statenames[AL_surfxml_argument] = NULL;
6405   surfxml_statenames[E_surfxml_argument] = "argument";
6406   surfxml_statenames[AL_surfxml_backbone] = NULL;
6407   surfxml_statenames[E_surfxml_backbone] = "backbone";
6408   surfxml_statenames[AL_surfxml_bypassASroute] = NULL;
6409   surfxml_statenames[S_surfxml_bypassASroute] = "bypassASroute";
6410   surfxml_statenames[S_surfxml_bypassASroute_1] = "bypassASroute";
6411   surfxml_statenames[S_surfxml_bypassASroute_2] = "bypassASroute";
6412   surfxml_statenames[E_surfxml_bypassASroute] = "bypassASroute";
6413   surfxml_statenames[AL_surfxml_bypassRoute] = NULL;
6414   surfxml_statenames[S_surfxml_bypassRoute] = "bypassRoute";
6415   surfxml_statenames[S_surfxml_bypassRoute_1] = "bypassRoute";
6416   surfxml_statenames[S_surfxml_bypassRoute_2] = "bypassRoute";
6417   surfxml_statenames[E_surfxml_bypassRoute] = "bypassRoute";
6418   surfxml_statenames[AL_surfxml_bypassZoneRoute] = NULL;
6419   surfxml_statenames[S_surfxml_bypassZoneRoute] = "bypassZoneRoute";
6420   surfxml_statenames[S_surfxml_bypassZoneRoute_1] = "bypassZoneRoute";
6421   surfxml_statenames[S_surfxml_bypassZoneRoute_2] = "bypassZoneRoute";
6422   surfxml_statenames[E_surfxml_bypassZoneRoute] = "bypassZoneRoute";
6423   surfxml_statenames[AL_surfxml_cabinet] = NULL;
6424   surfxml_statenames[E_surfxml_cabinet] = "cabinet";
6425   surfxml_statenames[AL_surfxml_cluster] = NULL;
6426   surfxml_statenames[S_surfxml_cluster] = "cluster";
6427   surfxml_statenames[S_surfxml_cluster_1] = "cluster";
6428   surfxml_statenames[S_surfxml_cluster_2] = "cluster";
6429   surfxml_statenames[E_surfxml_cluster] = "cluster";
6430   surfxml_statenames[AL_surfxml_config] = NULL;
6431   surfxml_statenames[S_surfxml_config] = "config";
6432   surfxml_statenames[S_surfxml_config_1] = "config";
6433   surfxml_statenames[S_surfxml_config_2] = "config";
6434   surfxml_statenames[E_surfxml_config] = "config";
6435   surfxml_statenames[AL_surfxml_host] = NULL;
6436   surfxml_statenames[S_surfxml_host] = "host";
6437   surfxml_statenames[S_surfxml_host_1] = "host";
6438   surfxml_statenames[S_surfxml_host_2] = "host";
6439   surfxml_statenames[E_surfxml_host] = "host";
6440   surfxml_statenames[AL_surfxml_host___link] = NULL;
6441   surfxml_statenames[E_surfxml_host___link] = "host_link";
6442   surfxml_statenames[AL_surfxml_include] = NULL;
6443   surfxml_statenames[S_surfxml_include] = "include";
6444   surfxml_statenames[S_surfxml_include_1] = "include";
6445   surfxml_statenames[S_surfxml_include_2] = "include";
6446   surfxml_statenames[E_surfxml_include] = "include";
6447   surfxml_statenames[AL_surfxml_link] = NULL;
6448   surfxml_statenames[S_surfxml_link] = "link";
6449   surfxml_statenames[S_surfxml_link_1] = "link";
6450   surfxml_statenames[S_surfxml_link_2] = "link";
6451   surfxml_statenames[E_surfxml_link] = "link";
6452   surfxml_statenames[AL_surfxml_link___ctn] = NULL;
6453   surfxml_statenames[E_surfxml_link___ctn] = "link_ctn";
6454   surfxml_statenames[AL_surfxml_model___prop] = NULL;
6455   surfxml_statenames[E_surfxml_model___prop] = "model_prop";
6456   surfxml_statenames[AL_surfxml_mount] = NULL;
6457   surfxml_statenames[E_surfxml_mount] = "mount";
6458   surfxml_statenames[AL_surfxml_peer] = NULL;
6459   surfxml_statenames[E_surfxml_peer] = "peer";
6460   surfxml_statenames[ROOT_surfxml_platform] = NULL;
6461   surfxml_statenames[AL_surfxml_platform] = NULL;
6462   surfxml_statenames[S_surfxml_platform] = "platform";
6463   surfxml_statenames[S_surfxml_platform_1] = "platform";
6464   surfxml_statenames[S_surfxml_platform_2] = "platform";
6465   surfxml_statenames[S_surfxml_platform_3] = "platform";
6466   surfxml_statenames[S_surfxml_platform_4] = "platform";
6467   surfxml_statenames[S_surfxml_platform_5] = "platform";
6468   surfxml_statenames[S_surfxml_platform_6] = "platform";
6469   surfxml_statenames[S_surfxml_platform_7] = "platform";
6470   surfxml_statenames[S_surfxml_platform_8] = "platform";
6471   surfxml_statenames[E_surfxml_platform] = "platform";
6472   surfxml_statenames[AL_surfxml_process] = NULL;
6473   surfxml_statenames[S_surfxml_process] = "process";
6474   surfxml_statenames[S_surfxml_process_1] = "process";
6475   surfxml_statenames[S_surfxml_process_2] = "process";
6476   surfxml_statenames[E_surfxml_process] = "process";
6477   surfxml_statenames[AL_surfxml_prop] = NULL;
6478   surfxml_statenames[E_surfxml_prop] = "prop";
6479   surfxml_statenames[AL_surfxml_random] = NULL;
6480   surfxml_statenames[E_surfxml_random] = "random";
6481   surfxml_statenames[AL_surfxml_route] = NULL;
6482   surfxml_statenames[S_surfxml_route] = "route";
6483   surfxml_statenames[S_surfxml_route_1] = "route";
6484   surfxml_statenames[S_surfxml_route_2] = "route";
6485   surfxml_statenames[E_surfxml_route] = "route";
6486   surfxml_statenames[AL_surfxml_router] = NULL;
6487   surfxml_statenames[E_surfxml_router] = "router";
6488   surfxml_statenames[AL_surfxml_storage] = NULL;
6489   surfxml_statenames[S_surfxml_storage] = "storage";
6490   surfxml_statenames[S_surfxml_storage_1] = "storage";
6491   surfxml_statenames[S_surfxml_storage_2] = "storage";
6492   surfxml_statenames[E_surfxml_storage] = "storage";
6493   surfxml_statenames[AL_surfxml_storage___type] = NULL;
6494   surfxml_statenames[S_surfxml_storage___type] = "storage_type";
6495   surfxml_statenames[S_surfxml_storage___type_1] = "storage_type";
6496   surfxml_statenames[S_surfxml_storage___type_2] = "storage_type";
6497   surfxml_statenames[E_surfxml_storage___type] = "storage_type";
6498   surfxml_statenames[AL_surfxml_trace] = NULL;
6499   surfxml_statenames[IN_trace] = "trace";
6500   surfxml_statenames[AL_surfxml_trace___connect] = NULL;
6501   surfxml_statenames[E_surfxml_trace___connect] = "trace_connect";
6502   surfxml_statenames[AL_surfxml_zone] = NULL;
6503   surfxml_statenames[S_surfxml_zone] = "zone";
6504   surfxml_statenames[S_surfxml_zone_1] = "zone";
6505   surfxml_statenames[S_surfxml_zone_2] = "zone";
6506   surfxml_statenames[S_surfxml_zone_3] = "zone";
6507   surfxml_statenames[S_surfxml_zone_4] = "zone";
6508   surfxml_statenames[S_surfxml_zone_5] = "zone";
6509   surfxml_statenames[S_surfxml_zone_6] = "zone";
6510   surfxml_statenames[S_surfxml_zone_7] = "zone";
6511   surfxml_statenames[S_surfxml_zone_8] = "zone";
6512   surfxml_statenames[S_surfxml_zone_9] = "zone";
6513   surfxml_statenames[S_surfxml_zone_10] = "zone";
6514   surfxml_statenames[S_surfxml_zone_11] = "zone";
6515   surfxml_statenames[S_surfxml_zone_12] = "zone";
6516   surfxml_statenames[S_surfxml_zone_13] = "zone";
6517   surfxml_statenames[S_surfxml_zone_14] = "zone";
6518   surfxml_statenames[S_surfxml_zone_15] = "zone";
6519   surfxml_statenames[S_surfxml_zone_16] = "zone";
6520   surfxml_statenames[E_surfxml_zone] = "zone";
6521   surfxml_statenames[AL_surfxml_zoneRoute] = NULL;
6522   surfxml_statenames[S_surfxml_zoneRoute] = "zoneRoute";
6523   surfxml_statenames[S_surfxml_zoneRoute_1] = "zoneRoute";
6524   surfxml_statenames[S_surfxml_zoneRoute_2] = "zoneRoute";
6525   surfxml_statenames[E_surfxml_zoneRoute] = "zoneRoute";
6526   }
6527
6528  /* COMMENTS and PIs: handled uniformly for efficiency. */
6529
6530         while ( /*CONSTCOND*/1 )                /* loops until end-of-file is reached */
6531                 {
6532                 yy_cp = (yy_c_buf_p);
6533
6534                 /* Support of yytext. */
6535                 *yy_cp = (yy_hold_char);
6536
6537                 /* yy_bp points to the position in yy_ch_buf of the start of
6538                  * the current run.
6539                  */
6540                 yy_bp = yy_cp;
6541
6542                 yy_current_state = (yy_start);
6543 yy_match:
6544                 do
6545                         {
6546                         YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
6547                         if ( yy_accept[yy_current_state] )
6548                                 {
6549                                 (yy_last_accepting_state) = yy_current_state;
6550                                 (yy_last_accepting_cpos) = yy_cp;
6551                                 }
6552                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
6553                                 {
6554                                 yy_current_state = (int) yy_def[yy_current_state];
6555                                 if ( yy_current_state >= 4086 )
6556                                         yy_c = yy_meta[yy_c];
6557                                 }
6558                         yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
6559                         ++yy_cp;
6560                         }
6561                 while ( yy_base[yy_current_state] != 14057 );
6562
6563 yy_find_action:
6564                 yy_act = yy_accept[yy_current_state];
6565                 if ( yy_act == 0 )
6566                         { /* have to back up */
6567                         yy_cp = (yy_last_accepting_cpos);
6568                         yy_current_state = (yy_last_accepting_state);
6569                         yy_act = yy_accept[yy_current_state];
6570                         }
6571
6572                 YY_DO_BEFORE_ACTION;
6573
6574                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
6575                         {
6576                         int yyl;
6577                         for ( yyl = 0; yyl < yyleng; ++yyl )
6578                                 if ( yytext[yyl] == '\n' )
6579                                         
6580     yylineno++;
6581 ;
6582                         }
6583
6584 do_action:      /* This label is used only to access EOF actions. */
6585
6586                 switch ( yy_act )
6587         { /* beginning of action switch */
6588                         case 0: /* must back up */
6589                         /* undo the effects of YY_DO_BEFORE_ACTION */
6590                         *yy_cp = (yy_hold_char);
6591                         yy_cp = (yy_last_accepting_cpos);
6592                         yy_current_state = (yy_last_accepting_state);
6593                         goto yy_find_action;
6594
6595 case 1:
6596 YY_RULE_SETUP
6597 ENTER(INCOMMENT);
6598         YY_BREAK
6599 case 2:
6600 YY_RULE_SETUP
6601 ENTER(INPI);
6602         YY_BREAK
6603
6604 case 3:
6605 YY_RULE_SETUP
6606 LEAVE;
6607         YY_BREAK
6608 case 4:
6609 case 5:
6610 case 6:
6611 /* rule 6 can match eol */
6612 YY_RULE_SETUP
6613 SKIP;
6614         YY_BREAK
6615 case YY_STATE_EOF(INCOMMENT):
6616 FAIL("EOF in comment.");
6617         YY_BREAK
6618
6619 case 7:
6620 YY_RULE_SETUP
6621 LEAVE;
6622         YY_BREAK
6623 case 8:
6624 case 9:
6625 /* rule 9 can match eol */
6626 YY_RULE_SETUP
6627 SKIP;
6628         YY_BREAK
6629 case YY_STATE_EOF(INPI):
6630 FAIL("EOF in PI (processing instruction).");
6631         YY_BREAK
6632
6633 /* SPACES: skipped uniformly */
6634 case 10:
6635 /* rule 10 can match eol */
6636 YY_RULE_SETUP
6637 SKIP;
6638         YY_BREAK
6639 /* PROLOG: determine root element and process it. */
6640
6641 case 11:
6642 /* rule 11 can match eol */
6643 YY_RULE_SETUP
6644 SET(DOCTYPE); 
6645         YY_BREAK
6646 case 12:
6647 /* rule 12 can match eol */
6648 YY_RULE_SETUP
6649 FAIL("Bad declaration %s.\nIf your are using a XML v3 file (check the version attribute in <platform>), please update it with tools/simgrid_update_xml.pl",yytext);
6650         YY_BREAK
6651
6652 case 13:
6653 /* rule 13 can match eol */
6654 YY_RULE_SETUP
6655 SET(ROOT_surfxml_platform);
6656         YY_BREAK
6657 case 14:
6658 /* rule 14 can match eol */
6659 YY_RULE_SETUP
6660 SET(ROOT_surfxml_platform);
6661         YY_BREAK
6662 case 15:
6663 /* rule 15 can match eol */
6664 YY_RULE_SETUP
6665 FAIL("Bad declaration %s.\nIf your are using a XML v3 file (check the version attribute in <platform>), please update it with tools/simgrid_update_xml.pl",yytext);
6666         YY_BREAK
6667 case 16:
6668 YY_RULE_SETUP
6669 FAIL("Unexpected character `%c' in prolog.", yytext[0]);
6670         YY_BREAK
6671 case YY_STATE_EOF(PROLOG):
6672 case YY_STATE_EOF(DOCTYPE):
6673 FAIL("EOF in prolog.");
6674         YY_BREAK
6675
6676 /* RULES DERIVED FROM DTD. */
6677 /* <!-- A zone is either an internal node that contains other zones, 
6678   *      or a  leaf containing hosts and other leaf-like elements -->
6679   *           (((AS|zone|include|link|backbone|cabinet|cluster|peer|trace|trace_connect)*,
6680   *         (zoneRoute|ASroute|trace|trace_connect|bypassASroute|bypassZoneRoute)*,
6681   *         (trace|trace_connect)*)
6682   *        |((include|storage_type|storage|host|cabinet|router|link|backbone|trace|trace_connect|host_link)*,
6683   *          (route|trace|trace_connect|bypassRoute)*)))>  */
6684 case 17:
6685 /* rule 17 can match eol */
6686 YY_RULE_SETUP
6687 FAIL("Starting tag <AS> is not allowed here.");
6688         YY_BREAK
6689 case 18:
6690 /* rule 18 can match eol */
6691 YY_RULE_SETUP
6692 {
6693   AX_surfxml_AS_id = 0;
6694   surfxml_AS_id_isset = 0;
6695   AX_surfxml_AS_routing = AU_surfxml_AS_routing;
6696   surfxml_AS_routing_isset = 0;
6697   ENTER(AL_surfxml_AS); pushbuffer(0);
6698   }
6699         YY_BREAK
6700
6701 case 19:
6702 /* rule 19 can match eol */
6703 YY_RULE_SETUP
6704 if (surfxml_AS_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_AS>");} surfxml_AS_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_AS_id);
6705         YY_BREAK
6706 case 20:
6707 /* rule 20 can match eol */
6708 YY_RULE_SETUP
6709 if (surfxml_AS_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_AS>");}  surfxml_AS_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_AS_id);
6710         YY_BREAK
6711 case 21:
6712 /* rule 21 can match eol */
6713 case 22:
6714 /* rule 22 can match eol */
6715 YY_RULE_SETUP
6716 A_surfxml_AS_routing = A_surfxml_AS_routing_Full;
6717         YY_BREAK
6718 case 23:
6719 /* rule 23 can match eol */
6720 case 24:
6721 /* rule 24 can match eol */
6722 YY_RULE_SETUP
6723 A_surfxml_AS_routing = A_surfxml_AS_routing_Floyd;
6724         YY_BREAK
6725 case 25:
6726 /* rule 25 can match eol */
6727 case 26:
6728 /* rule 26 can match eol */
6729 YY_RULE_SETUP
6730 A_surfxml_AS_routing = A_surfxml_AS_routing_Dijkstra;
6731         YY_BREAK
6732 case 27:
6733 /* rule 27 can match eol */
6734 case 28:
6735 /* rule 28 can match eol */
6736 YY_RULE_SETUP
6737 A_surfxml_AS_routing = A_surfxml_AS_routing_DijkstraCache;
6738         YY_BREAK
6739 case 29:
6740 /* rule 29 can match eol */
6741 case 30:
6742 /* rule 30 can match eol */
6743 YY_RULE_SETUP
6744 A_surfxml_AS_routing = A_surfxml_AS_routing_None;
6745         YY_BREAK
6746 case 31:
6747 /* rule 31 can match eol */
6748 case 32:
6749 /* rule 32 can match eol */
6750 YY_RULE_SETUP
6751 A_surfxml_AS_routing = A_surfxml_AS_routing_Vivaldi;
6752         YY_BREAK
6753 case 33:
6754 /* rule 33 can match eol */
6755 case 34:
6756 /* rule 34 can match eol */
6757 YY_RULE_SETUP
6758 A_surfxml_AS_routing = A_surfxml_AS_routing_Cluster;
6759         YY_BREAK
6760 case 35:
6761 /* rule 35 can match eol */
6762 case 36:
6763 /* rule 36 can match eol */
6764 YY_RULE_SETUP
6765 A_surfxml_AS_routing = A_surfxml_AS_routing_ClusterTorus;
6766         YY_BREAK
6767 case 37:
6768 /* rule 37 can match eol */
6769 case 38:
6770 /* rule 38 can match eol */
6771 YY_RULE_SETUP
6772 A_surfxml_AS_routing = A_surfxml_AS_routing_ClusterFatTree;
6773         YY_BREAK
6774 case 39:
6775 /* rule 39 can match eol */
6776 case 40:
6777 /* rule 40 can match eol */
6778 YY_RULE_SETUP
6779 A_surfxml_AS_routing = A_surfxml_AS_routing_ClusterDragonfly;
6780         YY_BREAK
6781 case 41:
6782 YY_RULE_SETUP
6783 {
6784   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6785   if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
6786   LEAVE; STag_surfxml_AS();surfxml_pcdata_ix = 0; ENTER(S_surfxml_AS);
6787  }
6788         YY_BREAK
6789 case 42:
6790 YY_RULE_SETUP
6791 {
6792   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6793   if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
6794   LEAVE; STag_surfxml_AS(); surfxml_pcdata_ix = 0; ETag_surfxml_AS(); popbuffer(); /* attribute */
6795   switch (YY_START) {
6796    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6797    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
6798    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
6799    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
6800   }
6801  }
6802         YY_BREAK
6803 case 43:
6804 YY_RULE_SETUP
6805 FAIL("Unexpected character `%c' in attribute list of AS element.", yytext[0]);
6806         YY_BREAK
6807 case 44:
6808 YY_RULE_SETUP
6809 FAIL("Bad attribute `%s' in `AS' element start tag.",yytext);
6810         YY_BREAK
6811 case YY_STATE_EOF(AL_surfxml_AS):
6812 FAIL("EOF in attribute list of `AS' element.");
6813         YY_BREAK
6814
6815 case 45:
6816 /* rule 45 can match eol */
6817 YY_RULE_SETUP
6818 {
6819   LEAVE;
6820   ETag_surfxml_AS();
6821   popbuffer(); /* attribute */
6822   switch (YY_START) {
6823    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6824    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
6825    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
6826    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
6827   }
6828  }
6829         YY_BREAK
6830 case 46:
6831 /* rule 46 can match eol */
6832 YY_RULE_SETUP
6833 FAIL("Unexpected end-tag `%s': `</AS>' expected.",yytext);
6834         YY_BREAK
6835 case 47:
6836 YY_RULE_SETUP
6837 FAIL("Unexpected character `%c': `</AS>' expected.",yytext[0]);
6838         YY_BREAK
6839 case YY_STATE_EOF(E_surfxml_AS):
6840 case YY_STATE_EOF(S_surfxml_AS):
6841 case YY_STATE_EOF(S_surfxml_AS_1):
6842 case YY_STATE_EOF(S_surfxml_AS_11):
6843 case YY_STATE_EOF(S_surfxml_AS_12):
6844 case YY_STATE_EOF(S_surfxml_AS_14):
6845 case YY_STATE_EOF(S_surfxml_AS_16):
6846 case YY_STATE_EOF(S_surfxml_AS_3):
6847 case YY_STATE_EOF(S_surfxml_AS_4):
6848 case YY_STATE_EOF(S_surfxml_AS_6):
6849 case YY_STATE_EOF(S_surfxml_AS_7):
6850 case YY_STATE_EOF(S_surfxml_AS_9):
6851 FAIL("Premature EOF: `</AS>' expected.");
6852         YY_BREAK
6853
6854 case 48:
6855 /* rule 48 can match eol */
6856 YY_RULE_SETUP
6857 FAIL("Starting tag <ASroute> is not allowed here.");
6858         YY_BREAK
6859 case 49:
6860 /* rule 49 can match eol */
6861 YY_RULE_SETUP
6862 {
6863   AX_surfxml_ASroute_dst = 0;
6864   surfxml_ASroute_dst_isset = 0;
6865   AX_surfxml_ASroute_gw___dst = 0;
6866   surfxml_ASroute_gw___dst_isset = 0;
6867   AX_surfxml_ASroute_gw___src = 0;
6868   surfxml_ASroute_gw___src_isset = 0;
6869   AX_surfxml_ASroute_src = 0;
6870   surfxml_ASroute_src_isset = 0;
6871   AX_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
6872   surfxml_ASroute_symmetrical_isset = 0;
6873   ENTER(AL_surfxml_ASroute); pushbuffer(0);
6874   }
6875         YY_BREAK
6876
6877 case 50:
6878 /* rule 50 can match eol */
6879 YY_RULE_SETUP
6880 if (surfxml_ASroute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_ASroute>");} surfxml_ASroute_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_dst);
6881         YY_BREAK
6882 case 51:
6883 /* rule 51 can match eol */
6884 YY_RULE_SETUP
6885 if (surfxml_ASroute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_ASroute>");}  surfxml_ASroute_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_dst);
6886         YY_BREAK
6887 case 52:
6888 /* rule 52 can match eol */
6889 YY_RULE_SETUP
6890 if (surfxml_ASroute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_ASroute>");} surfxml_ASroute_gw___dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_gw___dst);
6891         YY_BREAK
6892 case 53:
6893 /* rule 53 can match eol */
6894 YY_RULE_SETUP
6895 if (surfxml_ASroute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_ASroute>");}  surfxml_ASroute_gw___dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_gw___dst);
6896         YY_BREAK
6897 case 54:
6898 /* rule 54 can match eol */
6899 YY_RULE_SETUP
6900 if (surfxml_ASroute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_ASroute>");} surfxml_ASroute_gw___src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_gw___src);
6901         YY_BREAK
6902 case 55:
6903 /* rule 55 can match eol */
6904 YY_RULE_SETUP
6905 if (surfxml_ASroute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_ASroute>");}  surfxml_ASroute_gw___src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_gw___src);
6906         YY_BREAK
6907 case 56:
6908 /* rule 56 can match eol */
6909 YY_RULE_SETUP
6910 if (surfxml_ASroute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_ASroute>");} surfxml_ASroute_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_src);
6911         YY_BREAK
6912 case 57:
6913 /* rule 57 can match eol */
6914 YY_RULE_SETUP
6915 if (surfxml_ASroute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_ASroute>");}  surfxml_ASroute_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_src);
6916         YY_BREAK
6917 case 58:
6918 /* rule 58 can match eol */
6919 case 59:
6920 /* rule 59 can match eol */
6921 YY_RULE_SETUP
6922 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
6923         YY_BREAK
6924 case 60:
6925 /* rule 60 can match eol */
6926 case 61:
6927 /* rule 61 can match eol */
6928 YY_RULE_SETUP
6929 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_NO;
6930         YY_BREAK
6931 case 62:
6932 /* rule 62 can match eol */
6933 case 63:
6934 /* rule 63 can match eol */
6935 YY_RULE_SETUP
6936 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_yes;
6937         YY_BREAK
6938 case 64:
6939 /* rule 64 can match eol */
6940 case 65:
6941 /* rule 65 can match eol */
6942 YY_RULE_SETUP
6943 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_no;
6944         YY_BREAK
6945 case 66:
6946 YY_RULE_SETUP
6947 {
6948   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
6949   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
6950   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
6951   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
6952   LEAVE; STag_surfxml_ASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_ASroute);
6953  }
6954         YY_BREAK
6955 case 67:
6956 YY_RULE_SETUP
6957 {
6958   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
6959   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
6960   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
6961   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
6962   LEAVE; STag_surfxml_ASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_ASroute(); popbuffer(); /* attribute */
6963   switch (YY_START) {
6964    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_8: case S_surfxml_AS_9: SET(S_surfxml_AS_9); break;
6965    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_4: case S_surfxml_zone_6: case S_surfxml_zone_8: case S_surfxml_zone_9: SET(S_surfxml_zone_9); break;
6966   }
6967  }
6968         YY_BREAK
6969 case 68:
6970 YY_RULE_SETUP
6971 FAIL("Unexpected character `%c' in attribute list of ASroute element.", yytext[0]);
6972         YY_BREAK
6973 case 69:
6974 YY_RULE_SETUP
6975 FAIL("Bad attribute `%s' in `ASroute' element start tag.",yytext);
6976         YY_BREAK
6977 case YY_STATE_EOF(AL_surfxml_ASroute):
6978 FAIL("EOF in attribute list of `ASroute' element.");
6979         YY_BREAK
6980
6981 case 70:
6982 /* rule 70 can match eol */
6983 YY_RULE_SETUP
6984 {
6985   LEAVE;
6986   ETag_surfxml_ASroute();
6987   popbuffer(); /* attribute */
6988   switch (YY_START) {
6989    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_8: case S_surfxml_AS_9: SET(S_surfxml_AS_9); break;
6990    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_4: case S_surfxml_zone_6: case S_surfxml_zone_8: case S_surfxml_zone_9: SET(S_surfxml_zone_9); break;
6991   }
6992  }
6993         YY_BREAK
6994 case 71:
6995 /* rule 71 can match eol */
6996 YY_RULE_SETUP
6997 FAIL("Unexpected end-tag `%s': `</ASroute>' expected.",yytext);
6998         YY_BREAK
6999 case 72:
7000 YY_RULE_SETUP
7001 FAIL("Unexpected character `%c': `</ASroute>' expected.",yytext[0]);
7002         YY_BREAK
7003 case YY_STATE_EOF(E_surfxml_ASroute):
7004 case YY_STATE_EOF(S_surfxml_ASroute):
7005 case YY_STATE_EOF(S_surfxml_ASroute_2):
7006 FAIL("Premature EOF: `</ASroute>' expected.");
7007         YY_BREAK
7008
7009 case 73:
7010 /* rule 73 can match eol */
7011 YY_RULE_SETUP
7012 FAIL("Starting tag <actor> is not allowed here.");
7013         YY_BREAK
7014 case 74:
7015 /* rule 74 can match eol */
7016 YY_RULE_SETUP
7017 {
7018   AX_surfxml_actor_function = 0;
7019   surfxml_actor_function_isset = 0;
7020   AX_surfxml_actor_host = 0;
7021   surfxml_actor_host_isset = 0;
7022   AX_surfxml_actor_kill___time = 46;
7023   surfxml_actor_kill___time_isset = 0;
7024   AX_surfxml_actor_on___failure = A_surfxml_actor_on___failure_DIE;
7025   surfxml_actor_on___failure_isset = 0;
7026   AX_surfxml_actor_start___time = 41;
7027   surfxml_actor_start___time_isset = 0;
7028   ENTER(AL_surfxml_actor); pushbuffer(0);
7029   }
7030         YY_BREAK
7031
7032 case 75:
7033 /* rule 75 can match eol */
7034 YY_RULE_SETUP
7035 if (surfxml_actor_function_isset != 0) {FAIL("Multiple definition of attribute function in <surfxml_actor>");} surfxml_actor_function_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_actor_function);
7036         YY_BREAK
7037 case 76:
7038 /* rule 76 can match eol */
7039 YY_RULE_SETUP
7040 if (surfxml_actor_function_isset != 0) {FAIL("Multiple definition of attribute function in <surfxml_actor>");}  surfxml_actor_function_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_actor_function);
7041         YY_BREAK
7042 case 77:
7043 /* rule 77 can match eol */
7044 YY_RULE_SETUP
7045 if (surfxml_actor_host_isset != 0) {FAIL("Multiple definition of attribute host in <surfxml_actor>");} surfxml_actor_host_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_actor_host);
7046         YY_BREAK
7047 case 78:
7048 /* rule 78 can match eol */
7049 YY_RULE_SETUP
7050 if (surfxml_actor_host_isset != 0) {FAIL("Multiple definition of attribute host in <surfxml_actor>");}  surfxml_actor_host_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_actor_host);
7051         YY_BREAK
7052 case 79:
7053 /* rule 79 can match eol */
7054 YY_RULE_SETUP
7055 if (surfxml_actor_kill___time_isset != 0) {FAIL("Multiple definition of attribute kill_time in <surfxml_actor>");} surfxml_actor_kill___time_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_actor_kill___time);
7056         YY_BREAK
7057 case 80:
7058 /* rule 80 can match eol */
7059 YY_RULE_SETUP
7060 if (surfxml_actor_kill___time_isset != 0) {FAIL("Multiple definition of attribute kill_time in <surfxml_actor>");}  surfxml_actor_kill___time_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_actor_kill___time);
7061         YY_BREAK
7062 case 81:
7063 /* rule 81 can match eol */
7064 case 82:
7065 /* rule 82 can match eol */
7066 YY_RULE_SETUP
7067 A_surfxml_actor_on___failure = A_surfxml_actor_on___failure_DIE;
7068         YY_BREAK
7069 case 83:
7070 /* rule 83 can match eol */
7071 case 84:
7072 /* rule 84 can match eol */
7073 YY_RULE_SETUP
7074 A_surfxml_actor_on___failure = A_surfxml_actor_on___failure_RESTART;
7075         YY_BREAK
7076 case 85:
7077 /* rule 85 can match eol */
7078 YY_RULE_SETUP
7079 if (surfxml_actor_start___time_isset != 0) {FAIL("Multiple definition of attribute start_time in <surfxml_actor>");} surfxml_actor_start___time_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_actor_start___time);
7080         YY_BREAK
7081 case 86:
7082 /* rule 86 can match eol */
7083 YY_RULE_SETUP
7084 if (surfxml_actor_start___time_isset != 0) {FAIL("Multiple definition of attribute start_time in <surfxml_actor>");}  surfxml_actor_start___time_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_actor_start___time);
7085         YY_BREAK
7086 case 87:
7087 YY_RULE_SETUP
7088 {
7089   if (!AX_surfxml_actor_function) FAIL("Required attribute `function' not set for `actor' element.");
7090   if (!AX_surfxml_actor_host) FAIL("Required attribute `host' not set for `actor' element.");
7091   LEAVE; STag_surfxml_actor();surfxml_pcdata_ix = 0; ENTER(S_surfxml_actor);
7092  }
7093         YY_BREAK
7094 case 88:
7095 YY_RULE_SETUP
7096 {
7097   if (!AX_surfxml_actor_function) FAIL("Required attribute `function' not set for `actor' element.");
7098   if (!AX_surfxml_actor_host) FAIL("Required attribute `host' not set for `actor' element.");
7099   LEAVE; STag_surfxml_actor(); surfxml_pcdata_ix = 0; ETag_surfxml_actor(); popbuffer(); /* attribute */
7100   switch (YY_START) {
7101    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_4: case S_surfxml_platform_6: case S_surfxml_platform_7: case S_surfxml_platform_8: SET(S_surfxml_platform_8); break;
7102   }
7103  }
7104         YY_BREAK
7105 case 89:
7106 YY_RULE_SETUP
7107 FAIL("Unexpected character `%c' in attribute list of actor element.", yytext[0]);
7108         YY_BREAK
7109 case 90:
7110 YY_RULE_SETUP
7111 FAIL("Bad attribute `%s' in `actor' element start tag.",yytext);
7112         YY_BREAK
7113 case YY_STATE_EOF(AL_surfxml_actor):
7114 FAIL("EOF in attribute list of `actor' element.");
7115         YY_BREAK
7116
7117 case 91:
7118 /* rule 91 can match eol */
7119 YY_RULE_SETUP
7120 {
7121   LEAVE;
7122   ETag_surfxml_actor();
7123   popbuffer(); /* attribute */
7124   switch (YY_START) {
7125    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_4: case S_surfxml_platform_6: case S_surfxml_platform_7: case S_surfxml_platform_8: SET(S_surfxml_platform_8); break;
7126   }
7127  }
7128         YY_BREAK
7129 case 92:
7130 /* rule 92 can match eol */
7131 YY_RULE_SETUP
7132 FAIL("Unexpected end-tag `%s': `</actor>' expected.",yytext);
7133         YY_BREAK
7134 case 93:
7135 YY_RULE_SETUP
7136 FAIL("Unexpected character `%c': `</actor>' expected.",yytext[0]);
7137         YY_BREAK
7138 case YY_STATE_EOF(E_surfxml_actor):
7139 case YY_STATE_EOF(S_surfxml_actor):
7140 case YY_STATE_EOF(S_surfxml_actor_2):
7141 FAIL("Premature EOF: `</actor>' expected.");
7142         YY_BREAK
7143
7144 case 94:
7145 /* rule 94 can match eol */
7146 YY_RULE_SETUP
7147 FAIL("Starting tag <argument> is not allowed here.");
7148         YY_BREAK
7149 case 95:
7150 /* rule 95 can match eol */
7151 YY_RULE_SETUP
7152 {
7153   AX_surfxml_argument_value = 0;
7154   surfxml_argument_value_isset = 0;
7155   ENTER(AL_surfxml_argument); pushbuffer(0);
7156   }
7157         YY_BREAK
7158
7159 case 96:
7160 /* rule 96 can match eol */
7161 YY_RULE_SETUP
7162 if (surfxml_argument_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_argument>");} surfxml_argument_value_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_argument_value);
7163         YY_BREAK
7164 case 97:
7165 /* rule 97 can match eol */
7166 YY_RULE_SETUP
7167 if (surfxml_argument_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_argument>");}  surfxml_argument_value_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_argument_value);
7168         YY_BREAK
7169 case 98:
7170 YY_RULE_SETUP
7171 {
7172   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
7173   LEAVE; STag_surfxml_argument();surfxml_pcdata_ix = 0; ENTER(E_surfxml_argument);
7174  }
7175         YY_BREAK
7176 case 99:
7177 YY_RULE_SETUP
7178 {
7179   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
7180   LEAVE; STag_surfxml_argument(); surfxml_pcdata_ix = 0; ETag_surfxml_argument(); popbuffer(); /* attribute */
7181   switch (YY_START) {
7182    case S_surfxml_actor: case S_surfxml_actor_1: case S_surfxml_actor_2: SET(S_surfxml_actor_2); break;
7183    case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
7184   }
7185  }
7186         YY_BREAK
7187 case 100:
7188 YY_RULE_SETUP
7189 FAIL("Unexpected character `%c' in attribute list of argument element.", yytext[0]);
7190         YY_BREAK
7191 case 101:
7192 YY_RULE_SETUP
7193 FAIL("Bad attribute `%s' in `argument' element start tag.",yytext);
7194         YY_BREAK
7195 case YY_STATE_EOF(AL_surfxml_argument):
7196 FAIL("EOF in attribute list of `argument' element.");
7197         YY_BREAK
7198
7199 case 102:
7200 /* rule 102 can match eol */
7201 YY_RULE_SETUP
7202 {
7203   LEAVE;
7204   ETag_surfxml_argument();
7205   popbuffer(); /* attribute */
7206   switch (YY_START) {
7207    case S_surfxml_actor: case S_surfxml_actor_1: case S_surfxml_actor_2: SET(S_surfxml_actor_2); break;
7208    case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
7209   }
7210  }
7211         YY_BREAK
7212 case 103:
7213 /* rule 103 can match eol */
7214 YY_RULE_SETUP
7215 FAIL("Unexpected end-tag `%s': `</argument>' expected.",yytext);
7216         YY_BREAK
7217 case 104:
7218 YY_RULE_SETUP
7219 FAIL("Unexpected character `%c': `</argument>' expected.",yytext[0]);
7220         YY_BREAK
7221 case YY_STATE_EOF(E_surfxml_argument):
7222 FAIL("Premature EOF: `</argument>' expected.");
7223         YY_BREAK
7224
7225 case 105:
7226 /* rule 105 can match eol */
7227 YY_RULE_SETUP
7228 FAIL("Starting tag <backbone> is not allowed here.");
7229         YY_BREAK
7230 case 106:
7231 /* rule 106 can match eol */
7232 YY_RULE_SETUP
7233 {
7234   AX_surfxml_backbone_bandwidth = 0;
7235   surfxml_backbone_bandwidth_isset = 0;
7236   AX_surfxml_backbone_id = 0;
7237   surfxml_backbone_id_isset = 0;
7238   AX_surfxml_backbone_latency = 0;
7239   surfxml_backbone_latency_isset = 0;
7240   ENTER(AL_surfxml_backbone); pushbuffer(0);
7241   }
7242         YY_BREAK
7243
7244 case 107:
7245 /* rule 107 can match eol */
7246 YY_RULE_SETUP
7247 if (surfxml_backbone_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_backbone>");} surfxml_backbone_bandwidth_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_backbone_bandwidth);
7248         YY_BREAK
7249 case 108:
7250 /* rule 108 can match eol */
7251 YY_RULE_SETUP
7252 if (surfxml_backbone_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_backbone>");}  surfxml_backbone_bandwidth_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_backbone_bandwidth);
7253         YY_BREAK
7254 case 109:
7255 /* rule 109 can match eol */
7256 YY_RULE_SETUP
7257 if (surfxml_backbone_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_backbone>");} surfxml_backbone_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_backbone_id);
7258         YY_BREAK
7259 case 110:
7260 /* rule 110 can match eol */
7261 YY_RULE_SETUP
7262 if (surfxml_backbone_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_backbone>");}  surfxml_backbone_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_backbone_id);
7263         YY_BREAK
7264 case 111:
7265 /* rule 111 can match eol */
7266 YY_RULE_SETUP
7267 if (surfxml_backbone_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_backbone>");} surfxml_backbone_latency_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_backbone_latency);
7268         YY_BREAK
7269 case 112:
7270 /* rule 112 can match eol */
7271 YY_RULE_SETUP
7272 if (surfxml_backbone_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_backbone>");}  surfxml_backbone_latency_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_backbone_latency);
7273         YY_BREAK
7274 case 113:
7275 YY_RULE_SETUP
7276 {
7277   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
7278   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
7279   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
7280   LEAVE; STag_surfxml_backbone();surfxml_pcdata_ix = 0; ENTER(E_surfxml_backbone);
7281  }
7282         YY_BREAK
7283 case 114:
7284 YY_RULE_SETUP
7285 {
7286   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
7287   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
7288   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
7289   LEAVE; STag_surfxml_backbone(); surfxml_pcdata_ix = 0; ETag_surfxml_backbone(); popbuffer(); /* attribute */
7290   switch (YY_START) {
7291    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_1: SET(S_surfxml_AS_14); break;
7292    case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7293    case S_surfxml_zone_13: case S_surfxml_zone_14: case S_surfxml_zone_1: SET(S_surfxml_zone_14); break;
7294    case S_surfxml_zone: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
7295   }
7296  }
7297         YY_BREAK
7298 case 115:
7299 YY_RULE_SETUP
7300 FAIL("Unexpected character `%c' in attribute list of backbone element.", yytext[0]);
7301         YY_BREAK
7302 case 116:
7303 YY_RULE_SETUP
7304 FAIL("Bad attribute `%s' in `backbone' element start tag.",yytext);
7305         YY_BREAK
7306 case YY_STATE_EOF(AL_surfxml_backbone):
7307 FAIL("EOF in attribute list of `backbone' element.");
7308         YY_BREAK
7309
7310 case 117:
7311 /* rule 117 can match eol */
7312 YY_RULE_SETUP
7313 {
7314   LEAVE;
7315   ETag_surfxml_backbone();
7316   popbuffer(); /* attribute */
7317   switch (YY_START) {
7318    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_1: SET(S_surfxml_AS_14); break;
7319    case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7320    case S_surfxml_zone_13: case S_surfxml_zone_14: case S_surfxml_zone_1: SET(S_surfxml_zone_14); break;
7321    case S_surfxml_zone: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
7322   }
7323  }
7324         YY_BREAK
7325 case 118:
7326 /* rule 118 can match eol */
7327 YY_RULE_SETUP
7328 FAIL("Unexpected end-tag `%s': `</backbone>' expected.",yytext);
7329         YY_BREAK
7330 case 119:
7331 YY_RULE_SETUP
7332 FAIL("Unexpected character `%c': `</backbone>' expected.",yytext[0]);
7333         YY_BREAK
7334 case YY_STATE_EOF(E_surfxml_backbone):
7335 FAIL("Premature EOF: `</backbone>' expected.");
7336         YY_BREAK
7337
7338 case 120:
7339 /* rule 120 can match eol */
7340 YY_RULE_SETUP
7341 FAIL("Starting tag <bypassASroute> is not allowed here.");
7342         YY_BREAK
7343 case 121:
7344 /* rule 121 can match eol */
7345 YY_RULE_SETUP
7346 {
7347   AX_surfxml_bypassASroute_dst = 0;
7348   surfxml_bypassASroute_dst_isset = 0;
7349   AX_surfxml_bypassASroute_gw___dst = 0;
7350   surfxml_bypassASroute_gw___dst_isset = 0;
7351   AX_surfxml_bypassASroute_gw___src = 0;
7352   surfxml_bypassASroute_gw___src_isset = 0;
7353   AX_surfxml_bypassASroute_src = 0;
7354   surfxml_bypassASroute_src_isset = 0;
7355   ENTER(AL_surfxml_bypassASroute); pushbuffer(0);
7356   }
7357         YY_BREAK
7358
7359 case 122:
7360 /* rule 122 can match eol */
7361 YY_RULE_SETUP
7362 if (surfxml_bypassASroute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassASroute>");} surfxml_bypassASroute_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_dst);
7363         YY_BREAK
7364 case 123:
7365 /* rule 123 can match eol */
7366 YY_RULE_SETUP
7367 if (surfxml_bypassASroute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassASroute>");}  surfxml_bypassASroute_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_dst);
7368         YY_BREAK
7369 case 124:
7370 /* rule 124 can match eol */
7371 YY_RULE_SETUP
7372 if (surfxml_bypassASroute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_bypassASroute>");} surfxml_bypassASroute_gw___dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_gw___dst);
7373         YY_BREAK
7374 case 125:
7375 /* rule 125 can match eol */
7376 YY_RULE_SETUP
7377 if (surfxml_bypassASroute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_bypassASroute>");}  surfxml_bypassASroute_gw___dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_gw___dst);
7378         YY_BREAK
7379 case 126:
7380 /* rule 126 can match eol */
7381 YY_RULE_SETUP
7382 if (surfxml_bypassASroute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_bypassASroute>");} surfxml_bypassASroute_gw___src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_gw___src);
7383         YY_BREAK
7384 case 127:
7385 /* rule 127 can match eol */
7386 YY_RULE_SETUP
7387 if (surfxml_bypassASroute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_bypassASroute>");}  surfxml_bypassASroute_gw___src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_gw___src);
7388         YY_BREAK
7389 case 128:
7390 /* rule 128 can match eol */
7391 YY_RULE_SETUP
7392 if (surfxml_bypassASroute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassASroute>");} surfxml_bypassASroute_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_src);
7393         YY_BREAK
7394 case 129:
7395 /* rule 129 can match eol */
7396 YY_RULE_SETUP
7397 if (surfxml_bypassASroute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassASroute>");}  surfxml_bypassASroute_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_src);
7398         YY_BREAK
7399 case 130:
7400 YY_RULE_SETUP
7401 {
7402   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
7403   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
7404   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
7405   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
7406   LEAVE; STag_surfxml_bypassASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassASroute);
7407  }
7408         YY_BREAK
7409 case 131:
7410 YY_RULE_SETUP
7411 {
7412   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
7413   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
7414   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
7415   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
7416   LEAVE; STag_surfxml_bypassASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassASroute(); popbuffer(); /* attribute */
7417   switch (YY_START) {
7418    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_8: case S_surfxml_AS_9: SET(S_surfxml_AS_9); break;
7419    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_4: case S_surfxml_zone_6: case S_surfxml_zone_8: case S_surfxml_zone_9: SET(S_surfxml_zone_9); break;
7420   }
7421  }
7422         YY_BREAK
7423 case 132:
7424 YY_RULE_SETUP
7425 FAIL("Unexpected character `%c' in attribute list of bypassASroute element.", yytext[0]);
7426         YY_BREAK
7427 case 133:
7428 YY_RULE_SETUP
7429 FAIL("Bad attribute `%s' in `bypassASroute' element start tag.",yytext);
7430         YY_BREAK
7431 case YY_STATE_EOF(AL_surfxml_bypassASroute):
7432 FAIL("EOF in attribute list of `bypassASroute' element.");
7433         YY_BREAK
7434
7435 case 134:
7436 /* rule 134 can match eol */
7437 YY_RULE_SETUP
7438 {
7439   LEAVE;
7440   ETag_surfxml_bypassASroute();
7441   popbuffer(); /* attribute */
7442   switch (YY_START) {
7443    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_8: case S_surfxml_AS_9: SET(S_surfxml_AS_9); break;
7444    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_4: case S_surfxml_zone_6: case S_surfxml_zone_8: case S_surfxml_zone_9: SET(S_surfxml_zone_9); break;
7445   }
7446  }
7447         YY_BREAK
7448 case 135:
7449 /* rule 135 can match eol */
7450 YY_RULE_SETUP
7451 FAIL("Unexpected end-tag `%s': `</bypassASroute>' expected.",yytext);
7452         YY_BREAK
7453 case 136:
7454 YY_RULE_SETUP
7455 FAIL("Unexpected character `%c': `</bypassASroute>' expected.",yytext[0]);
7456         YY_BREAK
7457 case YY_STATE_EOF(E_surfxml_bypassASroute):
7458 case YY_STATE_EOF(S_surfxml_bypassASroute):
7459 case YY_STATE_EOF(S_surfxml_bypassASroute_2):
7460 FAIL("Premature EOF: `</bypassASroute>' expected.");
7461         YY_BREAK
7462
7463 case 137:
7464 /* rule 137 can match eol */
7465 YY_RULE_SETUP
7466 FAIL("Starting tag <bypassRoute> is not allowed here.");
7467         YY_BREAK
7468 case 138:
7469 /* rule 138 can match eol */
7470 YY_RULE_SETUP
7471 {
7472   AX_surfxml_bypassRoute_dst = 0;
7473   surfxml_bypassRoute_dst_isset = 0;
7474   AX_surfxml_bypassRoute_src = 0;
7475   surfxml_bypassRoute_src_isset = 0;
7476   ENTER(AL_surfxml_bypassRoute); pushbuffer(0);
7477   }
7478         YY_BREAK
7479
7480 case 139:
7481 /* rule 139 can match eol */
7482 YY_RULE_SETUP
7483 if (surfxml_bypassRoute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassRoute>");} surfxml_bypassRoute_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassRoute_dst);
7484         YY_BREAK
7485 case 140:
7486 /* rule 140 can match eol */
7487 YY_RULE_SETUP
7488 if (surfxml_bypassRoute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassRoute>");}  surfxml_bypassRoute_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassRoute_dst);
7489         YY_BREAK
7490 case 141:
7491 /* rule 141 can match eol */
7492 YY_RULE_SETUP
7493 if (surfxml_bypassRoute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassRoute>");} surfxml_bypassRoute_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassRoute_src);
7494         YY_BREAK
7495 case 142:
7496 /* rule 142 can match eol */
7497 YY_RULE_SETUP
7498 if (surfxml_bypassRoute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassRoute>");}  surfxml_bypassRoute_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassRoute_src);
7499         YY_BREAK
7500 case 143:
7501 YY_RULE_SETUP
7502 {
7503   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
7504   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
7505   LEAVE; STag_surfxml_bypassRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassRoute);
7506  }
7507         YY_BREAK
7508 case 144:
7509 YY_RULE_SETUP
7510 {
7511   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
7512   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
7513   LEAVE; STag_surfxml_bypassRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassRoute(); popbuffer(); /* attribute */
7514   switch (YY_START) {
7515    case S_surfxml_AS: case S_surfxml_AS_12: case S_surfxml_AS_14: case S_surfxml_AS_15: case S_surfxml_AS_16: case S_surfxml_AS_1: case S_surfxml_AS_3: SET(S_surfxml_AS_16); break;
7516    case S_surfxml_zone: case S_surfxml_zone_12: case S_surfxml_zone_14: case S_surfxml_zone_15: case S_surfxml_zone_16: case S_surfxml_zone_1: case S_surfxml_zone_3: SET(S_surfxml_zone_16); break;
7517   }
7518  }
7519         YY_BREAK
7520 case 145:
7521 YY_RULE_SETUP
7522 FAIL("Unexpected character `%c' in attribute list of bypassRoute element.", yytext[0]);
7523         YY_BREAK
7524 case 146:
7525 YY_RULE_SETUP
7526 FAIL("Bad attribute `%s' in `bypassRoute' element start tag.",yytext);
7527         YY_BREAK
7528 case YY_STATE_EOF(AL_surfxml_bypassRoute):
7529 FAIL("EOF in attribute list of `bypassRoute' element.");
7530         YY_BREAK
7531
7532 case 147:
7533 /* rule 147 can match eol */
7534 YY_RULE_SETUP
7535 {
7536   LEAVE;
7537   ETag_surfxml_bypassRoute();
7538   popbuffer(); /* attribute */
7539   switch (YY_START) {
7540    case S_surfxml_AS: case S_surfxml_AS_12: case S_surfxml_AS_14: case S_surfxml_AS_15: case S_surfxml_AS_16: case S_surfxml_AS_1: case S_surfxml_AS_3: SET(S_surfxml_AS_16); break;
7541    case S_surfxml_zone: case S_surfxml_zone_12: case S_surfxml_zone_14: case S_surfxml_zone_15: case S_surfxml_zone_16: case S_surfxml_zone_1: case S_surfxml_zone_3: SET(S_surfxml_zone_16); break;
7542   }
7543  }
7544         YY_BREAK
7545 case 148:
7546 /* rule 148 can match eol */
7547 YY_RULE_SETUP
7548 FAIL("Unexpected end-tag `%s': `</bypassRoute>' expected.",yytext);
7549         YY_BREAK
7550 case 149:
7551 YY_RULE_SETUP
7552 FAIL("Unexpected character `%c': `</bypassRoute>' expected.",yytext[0]);
7553         YY_BREAK
7554 case YY_STATE_EOF(E_surfxml_bypassRoute):
7555 case YY_STATE_EOF(S_surfxml_bypassRoute):
7556 case YY_STATE_EOF(S_surfxml_bypassRoute_2):
7557 FAIL("Premature EOF: `</bypassRoute>' expected.");
7558         YY_BREAK
7559
7560 case 150:
7561 /* rule 150 can match eol */
7562 YY_RULE_SETUP
7563 FAIL("Starting tag <bypassZoneRoute> is not allowed here.");
7564         YY_BREAK
7565 case 151:
7566 /* rule 151 can match eol */
7567 YY_RULE_SETUP
7568 {
7569   AX_surfxml_bypassZoneRoute_dst = 0;
7570   surfxml_bypassZoneRoute_dst_isset = 0;
7571   AX_surfxml_bypassZoneRoute_gw___dst = 0;
7572   surfxml_bypassZoneRoute_gw___dst_isset = 0;
7573   AX_surfxml_bypassZoneRoute_gw___src = 0;
7574   surfxml_bypassZoneRoute_gw___src_isset = 0;
7575   AX_surfxml_bypassZoneRoute_src = 0;
7576   surfxml_bypassZoneRoute_src_isset = 0;
7577   ENTER(AL_surfxml_bypassZoneRoute); pushbuffer(0);
7578   }
7579         YY_BREAK
7580
7581 case 152:
7582 /* rule 152 can match eol */
7583 YY_RULE_SETUP
7584 if (surfxml_bypassZoneRoute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassZoneRoute>");} surfxml_bypassZoneRoute_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassZoneRoute_dst);
7585         YY_BREAK
7586 case 153:
7587 /* rule 153 can match eol */
7588 YY_RULE_SETUP
7589 if (surfxml_bypassZoneRoute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassZoneRoute>");}  surfxml_bypassZoneRoute_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassZoneRoute_dst);
7590         YY_BREAK
7591 case 154:
7592 /* rule 154 can match eol */
7593 YY_RULE_SETUP
7594 if (surfxml_bypassZoneRoute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_bypassZoneRoute>");} surfxml_bypassZoneRoute_gw___dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassZoneRoute_gw___dst);
7595         YY_BREAK
7596 case 155:
7597 /* rule 155 can match eol */
7598 YY_RULE_SETUP
7599 if (surfxml_bypassZoneRoute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_bypassZoneRoute>");}  surfxml_bypassZoneRoute_gw___dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassZoneRoute_gw___dst);
7600         YY_BREAK
7601 case 156:
7602 /* rule 156 can match eol */
7603 YY_RULE_SETUP
7604 if (surfxml_bypassZoneRoute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_bypassZoneRoute>");} surfxml_bypassZoneRoute_gw___src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassZoneRoute_gw___src);
7605         YY_BREAK
7606 case 157:
7607 /* rule 157 can match eol */
7608 YY_RULE_SETUP
7609 if (surfxml_bypassZoneRoute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_bypassZoneRoute>");}  surfxml_bypassZoneRoute_gw___src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassZoneRoute_gw___src);
7610         YY_BREAK
7611 case 158:
7612 /* rule 158 can match eol */
7613 YY_RULE_SETUP
7614 if (surfxml_bypassZoneRoute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassZoneRoute>");} surfxml_bypassZoneRoute_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassZoneRoute_src);
7615         YY_BREAK
7616 case 159:
7617 /* rule 159 can match eol */
7618 YY_RULE_SETUP
7619 if (surfxml_bypassZoneRoute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassZoneRoute>");}  surfxml_bypassZoneRoute_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassZoneRoute_src);
7620         YY_BREAK
7621 case 160:
7622 YY_RULE_SETUP
7623 {
7624   if (!AX_surfxml_bypassZoneRoute_dst) FAIL("Required attribute `dst' not set for `bypassZoneRoute' element.");
7625   if (!AX_surfxml_bypassZoneRoute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassZoneRoute' element.");
7626   if (!AX_surfxml_bypassZoneRoute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassZoneRoute' element.");
7627   if (!AX_surfxml_bypassZoneRoute_src) FAIL("Required attribute `src' not set for `bypassZoneRoute' element.");
7628   LEAVE; STag_surfxml_bypassZoneRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassZoneRoute);
7629  }
7630         YY_BREAK
7631 case 161:
7632 YY_RULE_SETUP
7633 {
7634   if (!AX_surfxml_bypassZoneRoute_dst) FAIL("Required attribute `dst' not set for `bypassZoneRoute' element.");
7635   if (!AX_surfxml_bypassZoneRoute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassZoneRoute' element.");
7636   if (!AX_surfxml_bypassZoneRoute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassZoneRoute' element.");
7637   if (!AX_surfxml_bypassZoneRoute_src) FAIL("Required attribute `src' not set for `bypassZoneRoute' element.");
7638   LEAVE; STag_surfxml_bypassZoneRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassZoneRoute(); popbuffer(); /* attribute */
7639   switch (YY_START) {
7640    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_8: case S_surfxml_AS_9: SET(S_surfxml_AS_9); break;
7641    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_4: case S_surfxml_zone_6: case S_surfxml_zone_8: case S_surfxml_zone_9: SET(S_surfxml_zone_9); break;
7642   }
7643  }
7644         YY_BREAK
7645 case 162:
7646 YY_RULE_SETUP
7647 FAIL("Unexpected character `%c' in attribute list of bypassZoneRoute element.", yytext[0]);
7648         YY_BREAK
7649 case 163:
7650 YY_RULE_SETUP
7651 FAIL("Bad attribute `%s' in `bypassZoneRoute' element start tag.",yytext);
7652         YY_BREAK
7653 case YY_STATE_EOF(AL_surfxml_bypassZoneRoute):
7654 FAIL("EOF in attribute list of `bypassZoneRoute' element.");
7655         YY_BREAK
7656
7657 case 164:
7658 /* rule 164 can match eol */
7659 YY_RULE_SETUP
7660 {
7661   LEAVE;
7662   ETag_surfxml_bypassZoneRoute();
7663   popbuffer(); /* attribute */
7664   switch (YY_START) {
7665    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_8: case S_surfxml_AS_9: SET(S_surfxml_AS_9); break;
7666    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_4: case S_surfxml_zone_6: case S_surfxml_zone_8: case S_surfxml_zone_9: SET(S_surfxml_zone_9); break;
7667   }
7668  }
7669         YY_BREAK
7670 case 165:
7671 /* rule 165 can match eol */
7672 YY_RULE_SETUP
7673 FAIL("Unexpected end-tag `%s': `</bypassZoneRoute>' expected.",yytext);
7674         YY_BREAK
7675 case 166:
7676 YY_RULE_SETUP
7677 FAIL("Unexpected character `%c': `</bypassZoneRoute>' expected.",yytext[0]);
7678         YY_BREAK
7679 case YY_STATE_EOF(E_surfxml_bypassZoneRoute):
7680 case YY_STATE_EOF(S_surfxml_bypassZoneRoute):
7681 case YY_STATE_EOF(S_surfxml_bypassZoneRoute_2):
7682 FAIL("Premature EOF: `</bypassZoneRoute>' expected.");
7683         YY_BREAK
7684
7685 case 167:
7686 /* rule 167 can match eol */
7687 YY_RULE_SETUP
7688 FAIL("Starting tag <cabinet> is not allowed here.");
7689         YY_BREAK
7690 case 168:
7691 /* rule 168 can match eol */
7692 YY_RULE_SETUP
7693 {
7694   AX_surfxml_cabinet_bw = 0;
7695   surfxml_cabinet_bw_isset = 0;
7696   AX_surfxml_cabinet_id = 0;
7697   surfxml_cabinet_id_isset = 0;
7698   AX_surfxml_cabinet_lat = 0;
7699   surfxml_cabinet_lat_isset = 0;
7700   AX_surfxml_cabinet_prefix = 0;
7701   surfxml_cabinet_prefix_isset = 0;
7702   AX_surfxml_cabinet_radical = 0;
7703   surfxml_cabinet_radical_isset = 0;
7704   AX_surfxml_cabinet_speed = 0;
7705   surfxml_cabinet_speed_isset = 0;
7706   AX_surfxml_cabinet_suffix = 0;
7707   surfxml_cabinet_suffix_isset = 0;
7708   ENTER(AL_surfxml_cabinet); pushbuffer(0);
7709   }
7710         YY_BREAK
7711
7712 case 169:
7713 /* rule 169 can match eol */
7714 YY_RULE_SETUP
7715 if (surfxml_cabinet_bw_isset != 0) {FAIL("Multiple definition of attribute bw in <surfxml_cabinet>");} surfxml_cabinet_bw_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_bw);
7716         YY_BREAK
7717 case 170:
7718 /* rule 170 can match eol */
7719 YY_RULE_SETUP
7720 if (surfxml_cabinet_bw_isset != 0) {FAIL("Multiple definition of attribute bw in <surfxml_cabinet>");}  surfxml_cabinet_bw_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_bw);
7721         YY_BREAK
7722 case 171:
7723 /* rule 171 can match eol */
7724 YY_RULE_SETUP
7725 if (surfxml_cabinet_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_cabinet>");} surfxml_cabinet_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_id);
7726         YY_BREAK
7727 case 172:
7728 /* rule 172 can match eol */
7729 YY_RULE_SETUP
7730 if (surfxml_cabinet_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_cabinet>");}  surfxml_cabinet_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_id);
7731         YY_BREAK
7732 case 173:
7733 /* rule 173 can match eol */
7734 YY_RULE_SETUP
7735 if (surfxml_cabinet_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_cabinet>");} surfxml_cabinet_lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_lat);
7736         YY_BREAK
7737 case 174:
7738 /* rule 174 can match eol */
7739 YY_RULE_SETUP
7740 if (surfxml_cabinet_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_cabinet>");}  surfxml_cabinet_lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_lat);
7741         YY_BREAK
7742 case 175:
7743 /* rule 175 can match eol */
7744 YY_RULE_SETUP
7745 if (surfxml_cabinet_prefix_isset != 0) {FAIL("Multiple definition of attribute prefix in <surfxml_cabinet>");} surfxml_cabinet_prefix_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_prefix);
7746         YY_BREAK
7747 case 176:
7748 /* rule 176 can match eol */
7749 YY_RULE_SETUP
7750 if (surfxml_cabinet_prefix_isset != 0) {FAIL("Multiple definition of attribute prefix in <surfxml_cabinet>");}  surfxml_cabinet_prefix_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_prefix);
7751         YY_BREAK
7752 case 177:
7753 /* rule 177 can match eol */
7754 YY_RULE_SETUP
7755 if (surfxml_cabinet_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_cabinet>");} surfxml_cabinet_radical_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_radical);
7756         YY_BREAK
7757 case 178:
7758 /* rule 178 can match eol */
7759 YY_RULE_SETUP
7760 if (surfxml_cabinet_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_cabinet>");}  surfxml_cabinet_radical_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_radical);
7761         YY_BREAK
7762 case 179:
7763 /* rule 179 can match eol */
7764 YY_RULE_SETUP
7765 if (surfxml_cabinet_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_cabinet>");} surfxml_cabinet_speed_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_speed);
7766         YY_BREAK
7767 case 180:
7768 /* rule 180 can match eol */
7769 YY_RULE_SETUP
7770 if (surfxml_cabinet_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_cabinet>");}  surfxml_cabinet_speed_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_speed);
7771         YY_BREAK
7772 case 181:
7773 /* rule 181 can match eol */
7774 YY_RULE_SETUP
7775 if (surfxml_cabinet_suffix_isset != 0) {FAIL("Multiple definition of attribute suffix in <surfxml_cabinet>");} surfxml_cabinet_suffix_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_suffix);
7776         YY_BREAK
7777 case 182:
7778 /* rule 182 can match eol */
7779 YY_RULE_SETUP
7780 if (surfxml_cabinet_suffix_isset != 0) {FAIL("Multiple definition of attribute suffix in <surfxml_cabinet>");}  surfxml_cabinet_suffix_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_suffix);
7781         YY_BREAK
7782 case 183:
7783 YY_RULE_SETUP
7784 {
7785   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7786   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7787   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7788   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7789   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7790   if (!AX_surfxml_cabinet_speed) FAIL("Required attribute `speed' not set for `cabinet' element.");
7791   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7792   LEAVE; STag_surfxml_cabinet();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cabinet);
7793  }
7794         YY_BREAK
7795 case 184:
7796 YY_RULE_SETUP
7797 {
7798   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7799   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7800   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7801   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7802   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7803   if (!AX_surfxml_cabinet_speed) FAIL("Required attribute `speed' not set for `cabinet' element.");
7804   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7805   LEAVE; STag_surfxml_cabinet(); surfxml_pcdata_ix = 0; ETag_surfxml_cabinet(); popbuffer(); /* attribute */
7806   switch (YY_START) {
7807    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_1: SET(S_surfxml_AS_14); break;
7808    case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7809    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
7810    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
7811    case S_surfxml_zone_13: case S_surfxml_zone_14: case S_surfxml_zone_1: SET(S_surfxml_zone_14); break;
7812    case S_surfxml_zone: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
7813   }
7814  }
7815         YY_BREAK
7816 case 185:
7817 YY_RULE_SETUP
7818 FAIL("Unexpected character `%c' in attribute list of cabinet element.", yytext[0]);
7819         YY_BREAK
7820 case 186:
7821 YY_RULE_SETUP
7822 FAIL("Bad attribute `%s' in `cabinet' element start tag.",yytext);
7823         YY_BREAK
7824 case YY_STATE_EOF(AL_surfxml_cabinet):
7825 FAIL("EOF in attribute list of `cabinet' element.");
7826         YY_BREAK
7827
7828 case 187:
7829 /* rule 187 can match eol */
7830 YY_RULE_SETUP
7831 {
7832   LEAVE;
7833   ETag_surfxml_cabinet();
7834   popbuffer(); /* attribute */
7835   switch (YY_START) {
7836    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_1: SET(S_surfxml_AS_14); break;
7837    case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7838    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
7839    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
7840    case S_surfxml_zone_13: case S_surfxml_zone_14: case S_surfxml_zone_1: SET(S_surfxml_zone_14); break;
7841    case S_surfxml_zone: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
7842   }
7843  }
7844         YY_BREAK
7845 case 188:
7846 /* rule 188 can match eol */
7847 YY_RULE_SETUP
7848 FAIL("Unexpected end-tag `%s': `</cabinet>' expected.",yytext);
7849         YY_BREAK
7850 case 189:
7851 YY_RULE_SETUP
7852 FAIL("Unexpected character `%c': `</cabinet>' expected.",yytext[0]);
7853         YY_BREAK
7854 case YY_STATE_EOF(E_surfxml_cabinet):
7855 FAIL("Premature EOF: `</cabinet>' expected.");
7856         YY_BREAK
7857
7858 case 190:
7859 /* rule 190 can match eol */
7860 YY_RULE_SETUP
7861 FAIL("Starting tag <cluster> is not allowed here.");
7862         YY_BREAK
7863 case 191:
7864 /* rule 191 can match eol */
7865 YY_RULE_SETUP
7866 {
7867   AX_surfxml_cluster_bb___bw = 0;
7868   surfxml_cluster_bb___bw_isset = 0;
7869   AX_surfxml_cluster_bb___lat = 28;
7870   surfxml_cluster_bb___lat_isset = 0;
7871   AX_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
7872   surfxml_cluster_bb___sharing___policy_isset = 0;
7873   AX_surfxml_cluster_bw = 0;
7874   surfxml_cluster_bw_isset = 0;
7875   AX_surfxml_cluster_core = 26;
7876   surfxml_cluster_core_isset = 0;
7877   AX_surfxml_cluster_id = 0;
7878   surfxml_cluster_id_isset = 0;
7879   AX_surfxml_cluster_lat = 0;
7880   surfxml_cluster_lat_isset = 0;
7881   AX_surfxml_cluster_limiter___link = 0;
7882   surfxml_cluster_limiter___link_isset = 0;
7883   AX_surfxml_cluster_loopback___bw = 0;
7884   surfxml_cluster_loopback___bw_isset = 0;
7885   AX_surfxml_cluster_loopback___lat = 0;
7886   surfxml_cluster_loopback___lat_isset = 0;
7887   AX_surfxml_cluster_prefix = 0;
7888   surfxml_cluster_prefix_isset = 0;
7889   AX_surfxml_cluster_radical = 0;
7890   surfxml_cluster_radical_isset = 0;
7891   AX_surfxml_cluster_router___id = 0;
7892   surfxml_cluster_router___id_isset = 0;
7893   AX_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_SPLITDUPLEX;
7894   surfxml_cluster_sharing___policy_isset = 0;
7895   AX_surfxml_cluster_speed = 0;
7896   surfxml_cluster_speed_isset = 0;
7897   AX_surfxml_cluster_suffix = 0;
7898   surfxml_cluster_suffix_isset = 0;
7899   AX_surfxml_cluster_topo___parameters = 0;
7900   surfxml_cluster_topo___parameters_isset = 0;
7901   AX_surfxml_cluster_topology = A_surfxml_cluster_topology_FLAT;
7902   surfxml_cluster_topology_isset = 0;
7903   ENTER(AL_surfxml_cluster); pushbuffer(0);
7904   }
7905         YY_BREAK
7906
7907 case 192:
7908 /* rule 192 can match eol */
7909 YY_RULE_SETUP
7910 if (surfxml_cluster_bb___bw_isset != 0) {FAIL("Multiple definition of attribute bb_bw in <surfxml_cluster>");} surfxml_cluster_bb___bw_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bb___bw);
7911         YY_BREAK
7912 case 193:
7913 /* rule 193 can match eol */
7914 YY_RULE_SETUP
7915 if (surfxml_cluster_bb___bw_isset != 0) {FAIL("Multiple definition of attribute bb_bw in <surfxml_cluster>");}  surfxml_cluster_bb___bw_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bb___bw);
7916         YY_BREAK
7917 case 194:
7918 /* rule 194 can match eol */
7919 YY_RULE_SETUP
7920 if (surfxml_cluster_bb___lat_isset != 0) {FAIL("Multiple definition of attribute bb_lat in <surfxml_cluster>");} surfxml_cluster_bb___lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bb___lat);
7921         YY_BREAK
7922 case 195:
7923 /* rule 195 can match eol */
7924 YY_RULE_SETUP
7925 if (surfxml_cluster_bb___lat_isset != 0) {FAIL("Multiple definition of attribute bb_lat in <surfxml_cluster>");}  surfxml_cluster_bb___lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bb___lat);
7926         YY_BREAK
7927 case 196:
7928 /* rule 196 can match eol */
7929 case 197:
7930 /* rule 197 can match eol */
7931 YY_RULE_SETUP
7932 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
7933         YY_BREAK
7934 case 198:
7935 /* rule 198 can match eol */
7936 case 199:
7937 /* rule 199 can match eol */
7938 YY_RULE_SETUP
7939 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_FATPIPE;
7940         YY_BREAK
7941 case 200:
7942 /* rule 200 can match eol */
7943 YY_RULE_SETUP
7944 if (surfxml_cluster_bw_isset != 0) {FAIL("Multiple definition of attribute bw in <surfxml_cluster>");} surfxml_cluster_bw_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bw);
7945         YY_BREAK
7946 case 201:
7947 /* rule 201 can match eol */
7948 YY_RULE_SETUP
7949 if (surfxml_cluster_bw_isset != 0) {FAIL("Multiple definition of attribute bw in <surfxml_cluster>");}  surfxml_cluster_bw_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bw);
7950         YY_BREAK
7951 case 202:
7952 /* rule 202 can match eol */
7953 YY_RULE_SETUP
7954 if (surfxml_cluster_core_isset != 0) {FAIL("Multiple definition of attribute core in <surfxml_cluster>");} surfxml_cluster_core_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_core);
7955         YY_BREAK
7956 case 203:
7957 /* rule 203 can match eol */
7958 YY_RULE_SETUP
7959 if (surfxml_cluster_core_isset != 0) {FAIL("Multiple definition of attribute core in <surfxml_cluster>");}  surfxml_cluster_core_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_core);
7960         YY_BREAK
7961 case 204:
7962 /* rule 204 can match eol */
7963 YY_RULE_SETUP
7964 if (surfxml_cluster_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_cluster>");} surfxml_cluster_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_id);
7965         YY_BREAK
7966 case 205:
7967 /* rule 205 can match eol */
7968 YY_RULE_SETUP
7969 if (surfxml_cluster_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_cluster>");}  surfxml_cluster_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_id);
7970         YY_BREAK
7971 case 206:
7972 /* rule 206 can match eol */
7973 YY_RULE_SETUP
7974 if (surfxml_cluster_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_cluster>");} surfxml_cluster_lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_lat);
7975         YY_BREAK
7976 case 207:
7977 /* rule 207 can match eol */
7978 YY_RULE_SETUP
7979 if (surfxml_cluster_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_cluster>");}  surfxml_cluster_lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_lat);
7980         YY_BREAK
7981 case 208:
7982 /* rule 208 can match eol */
7983 YY_RULE_SETUP
7984 if (surfxml_cluster_limiter___link_isset != 0) {FAIL("Multiple definition of attribute limiter_link in <surfxml_cluster>");} surfxml_cluster_limiter___link_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_limiter___link);
7985         YY_BREAK
7986 case 209:
7987 /* rule 209 can match eol */
7988 YY_RULE_SETUP
7989 if (surfxml_cluster_limiter___link_isset != 0) {FAIL("Multiple definition of attribute limiter_link in <surfxml_cluster>");}  surfxml_cluster_limiter___link_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_limiter___link);
7990         YY_BREAK
7991 case 210:
7992 /* rule 210 can match eol */
7993 YY_RULE_SETUP
7994 if (surfxml_cluster_loopback___bw_isset != 0) {FAIL("Multiple definition of attribute loopback_bw in <surfxml_cluster>");} surfxml_cluster_loopback___bw_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_loopback___bw);
7995         YY_BREAK
7996 case 211:
7997 /* rule 211 can match eol */
7998 YY_RULE_SETUP
7999 if (surfxml_cluster_loopback___bw_isset != 0) {FAIL("Multiple definition of attribute loopback_bw in <surfxml_cluster>");}  surfxml_cluster_loopback___bw_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_loopback___bw);
8000         YY_BREAK
8001 case 212:
8002 /* rule 212 can match eol */
8003 YY_RULE_SETUP
8004 if (surfxml_cluster_loopback___lat_isset != 0) {FAIL("Multiple definition of attribute loopback_lat in <surfxml_cluster>");} surfxml_cluster_loopback___lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_loopback___lat);
8005         YY_BREAK
8006 case 213:
8007 /* rule 213 can match eol */
8008 YY_RULE_SETUP
8009 if (surfxml_cluster_loopback___lat_isset != 0) {FAIL("Multiple definition of attribute loopback_lat in <surfxml_cluster>");}  surfxml_cluster_loopback___lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_loopback___lat);
8010         YY_BREAK
8011 case 214:
8012 /* rule 214 can match eol */
8013 YY_RULE_SETUP
8014 if (surfxml_cluster_prefix_isset != 0) {FAIL("Multiple definition of attribute prefix in <surfxml_cluster>");} surfxml_cluster_prefix_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_prefix);
8015         YY_BREAK
8016 case 215:
8017 /* rule 215 can match eol */
8018 YY_RULE_SETUP
8019 if (surfxml_cluster_prefix_isset != 0) {FAIL("Multiple definition of attribute prefix in <surfxml_cluster>");}  surfxml_cluster_prefix_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_prefix);
8020         YY_BREAK
8021 case 216:
8022 /* rule 216 can match eol */
8023 YY_RULE_SETUP
8024 if (surfxml_cluster_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_cluster>");} surfxml_cluster_radical_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_radical);
8025         YY_BREAK
8026 case 217:
8027 /* rule 217 can match eol */
8028 YY_RULE_SETUP
8029 if (surfxml_cluster_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_cluster>");}  surfxml_cluster_radical_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_radical);
8030         YY_BREAK
8031 case 218:
8032 /* rule 218 can match eol */
8033 YY_RULE_SETUP
8034 if (surfxml_cluster_router___id_isset != 0) {FAIL("Multiple definition of attribute router_id in <surfxml_cluster>");} surfxml_cluster_router___id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_router___id);
8035         YY_BREAK
8036 case 219:
8037 /* rule 219 can match eol */
8038 YY_RULE_SETUP
8039 if (surfxml_cluster_router___id_isset != 0) {FAIL("Multiple definition of attribute router_id in <surfxml_cluster>");}  surfxml_cluster_router___id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_router___id);
8040         YY_BREAK
8041 case 220:
8042 /* rule 220 can match eol */
8043 case 221:
8044 /* rule 221 can match eol */
8045 YY_RULE_SETUP
8046 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_SHARED;
8047         YY_BREAK
8048 case 222:
8049 /* rule 222 can match eol */
8050 case 223:
8051 /* rule 223 can match eol */
8052 YY_RULE_SETUP
8053 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_SPLITDUPLEX;
8054         YY_BREAK
8055 case 224:
8056 /* rule 224 can match eol */
8057 case 225:
8058 /* rule 225 can match eol */
8059 YY_RULE_SETUP
8060 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FULLDUPLEX;
8061         YY_BREAK
8062 case 226:
8063 /* rule 226 can match eol */
8064 case 227:
8065 /* rule 227 can match eol */
8066 YY_RULE_SETUP
8067 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FATPIPE;
8068         YY_BREAK
8069 case 228:
8070 /* rule 228 can match eol */
8071 YY_RULE_SETUP
8072 if (surfxml_cluster_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_cluster>");} surfxml_cluster_speed_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_speed);
8073         YY_BREAK
8074 case 229:
8075 /* rule 229 can match eol */
8076 YY_RULE_SETUP
8077 if (surfxml_cluster_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_cluster>");}  surfxml_cluster_speed_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_speed);
8078         YY_BREAK
8079 case 230:
8080 /* rule 230 can match eol */
8081 YY_RULE_SETUP
8082 if (surfxml_cluster_suffix_isset != 0) {FAIL("Multiple definition of attribute suffix in <surfxml_cluster>");} surfxml_cluster_suffix_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_suffix);
8083         YY_BREAK
8084 case 231:
8085 /* rule 231 can match eol */
8086 YY_RULE_SETUP
8087 if (surfxml_cluster_suffix_isset != 0) {FAIL("Multiple definition of attribute suffix in <surfxml_cluster>");}  surfxml_cluster_suffix_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_suffix);
8088         YY_BREAK
8089 case 232:
8090 /* rule 232 can match eol */
8091 YY_RULE_SETUP
8092 if (surfxml_cluster_topo___parameters_isset != 0) {FAIL("Multiple definition of attribute topo_parameters in <surfxml_cluster>");} surfxml_cluster_topo___parameters_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_topo___parameters);
8093         YY_BREAK
8094 case 233:
8095 /* rule 233 can match eol */
8096 YY_RULE_SETUP
8097 if (surfxml_cluster_topo___parameters_isset != 0) {FAIL("Multiple definition of attribute topo_parameters in <surfxml_cluster>");}  surfxml_cluster_topo___parameters_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_topo___parameters);
8098         YY_BREAK
8099 case 234:
8100 /* rule 234 can match eol */
8101 case 235:
8102 /* rule 235 can match eol */
8103 YY_RULE_SETUP
8104 A_surfxml_cluster_topology = A_surfxml_cluster_topology_FLAT;
8105         YY_BREAK
8106 case 236:
8107 /* rule 236 can match eol */
8108 case 237:
8109 /* rule 237 can match eol */
8110 YY_RULE_SETUP
8111 A_surfxml_cluster_topology = A_surfxml_cluster_topology_TORUS;
8112         YY_BREAK
8113 case 238:
8114 /* rule 238 can match eol */
8115 case 239:
8116 /* rule 239 can match eol */
8117 YY_RULE_SETUP
8118 A_surfxml_cluster_topology = A_surfxml_cluster_topology_FAT___TREE;
8119         YY_BREAK
8120 case 240:
8121 /* rule 240 can match eol */
8122 case 241:
8123 /* rule 241 can match eol */
8124 YY_RULE_SETUP
8125 A_surfxml_cluster_topology = A_surfxml_cluster_topology_DRAGONFLY;
8126         YY_BREAK
8127 case 242:
8128 YY_RULE_SETUP
8129 {
8130   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
8131   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
8132   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
8133   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
8134   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
8135   if (!AX_surfxml_cluster_speed) FAIL("Required attribute `speed' not set for `cluster' element.");
8136   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
8137   LEAVE; STag_surfxml_cluster();surfxml_pcdata_ix = 0; ENTER(S_surfxml_cluster);
8138  }
8139         YY_BREAK
8140 case 243:
8141 YY_RULE_SETUP
8142 {
8143   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
8144   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
8145   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
8146   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
8147   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
8148   if (!AX_surfxml_cluster_speed) FAIL("Required attribute `speed' not set for `cluster' element.");
8149   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
8150   LEAVE; STag_surfxml_cluster(); surfxml_pcdata_ix = 0; ETag_surfxml_cluster(); popbuffer(); /* attribute */
8151   switch (YY_START) {
8152    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8153    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
8154    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
8155    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
8156   }
8157  }
8158         YY_BREAK
8159 case 244:
8160 YY_RULE_SETUP
8161 FAIL("Unexpected character `%c' in attribute list of cluster element.", yytext[0]);
8162         YY_BREAK
8163 case 245:
8164 YY_RULE_SETUP
8165 FAIL("Bad attribute `%s' in `cluster' element start tag.",yytext);
8166         YY_BREAK
8167 case YY_STATE_EOF(AL_surfxml_cluster):
8168 FAIL("EOF in attribute list of `cluster' element.");
8169         YY_BREAK
8170
8171 case 246:
8172 /* rule 246 can match eol */
8173 YY_RULE_SETUP
8174 {
8175   LEAVE;
8176   ETag_surfxml_cluster();
8177   popbuffer(); /* attribute */
8178   switch (YY_START) {
8179    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8180    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
8181    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
8182    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
8183   }
8184  }
8185         YY_BREAK
8186 case 247:
8187 /* rule 247 can match eol */
8188 YY_RULE_SETUP
8189 FAIL("Unexpected end-tag `%s': `</cluster>' expected.",yytext);
8190         YY_BREAK
8191 case 248:
8192 YY_RULE_SETUP
8193 FAIL("Unexpected character `%c': `</cluster>' expected.",yytext[0]);
8194         YY_BREAK
8195 case YY_STATE_EOF(E_surfxml_cluster):
8196 case YY_STATE_EOF(S_surfxml_cluster):
8197 case YY_STATE_EOF(S_surfxml_cluster_2):
8198 FAIL("Premature EOF: `</cluster>' expected.");
8199         YY_BREAK
8200
8201 case 249:
8202 /* rule 249 can match eol */
8203 YY_RULE_SETUP
8204 FAIL("Starting tag <config> is not allowed here.");
8205         YY_BREAK
8206 case 250:
8207 /* rule 250 can match eol */
8208 YY_RULE_SETUP
8209 {
8210   AX_surfxml_config_id = 0;
8211   surfxml_config_id_isset = 0;
8212   ENTER(AL_surfxml_config); pushbuffer(0);
8213   }
8214         YY_BREAK
8215
8216 case 251:
8217 /* rule 251 can match eol */
8218 YY_RULE_SETUP
8219 if (surfxml_config_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_config>");} surfxml_config_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_config_id);
8220         YY_BREAK
8221 case 252:
8222 /* rule 252 can match eol */
8223 YY_RULE_SETUP
8224 if (surfxml_config_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_config>");}  surfxml_config_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_config_id);
8225         YY_BREAK
8226 case 253:
8227 YY_RULE_SETUP
8228 {
8229   LEAVE; STag_surfxml_config();surfxml_pcdata_ix = 0; ENTER(S_surfxml_config);
8230  }
8231         YY_BREAK
8232 case 254:
8233 YY_RULE_SETUP
8234 {
8235   LEAVE; STag_surfxml_config(); surfxml_pcdata_ix = 0; ETag_surfxml_config(); popbuffer(); /* attribute */
8236   switch (YY_START) {
8237    case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
8238   }
8239  }
8240         YY_BREAK
8241 case 255:
8242 YY_RULE_SETUP
8243 FAIL("Unexpected character `%c' in attribute list of config element.", yytext[0]);
8244         YY_BREAK
8245 case 256:
8246 YY_RULE_SETUP
8247 FAIL("Bad attribute `%s' in `config' element start tag.",yytext);
8248         YY_BREAK
8249 case YY_STATE_EOF(AL_surfxml_config):
8250 FAIL("EOF in attribute list of `config' element.");
8251         YY_BREAK
8252
8253 case 257:
8254 /* rule 257 can match eol */
8255 YY_RULE_SETUP
8256 {
8257   LEAVE;
8258   ETag_surfxml_config();
8259   popbuffer(); /* attribute */
8260   switch (YY_START) {
8261    case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
8262   }
8263  }
8264         YY_BREAK
8265 case 258:
8266 /* rule 258 can match eol */
8267 YY_RULE_SETUP
8268 FAIL("Unexpected end-tag `%s': `</config>' expected.",yytext);
8269         YY_BREAK
8270 case 259:
8271 YY_RULE_SETUP
8272 FAIL("Unexpected character `%c': `</config>' expected.",yytext[0]);
8273         YY_BREAK
8274 case YY_STATE_EOF(E_surfxml_config):
8275 case YY_STATE_EOF(S_surfxml_config):
8276 case YY_STATE_EOF(S_surfxml_config_2):
8277 FAIL("Premature EOF: `</config>' expected.");
8278         YY_BREAK
8279
8280 case 260:
8281 /* rule 260 can match eol */
8282 YY_RULE_SETUP
8283 FAIL("Starting tag <host> is not allowed here.");
8284         YY_BREAK
8285 case 261:
8286 /* rule 261 can match eol */
8287 YY_RULE_SETUP
8288 {
8289   AX_surfxml_host_availability___file = 0;
8290   surfxml_host_availability___file_isset = 0;
8291   AX_surfxml_host_coordinates = 0;
8292   surfxml_host_coordinates_isset = 0;
8293   AX_surfxml_host_core = 20;
8294   surfxml_host_core_isset = 0;
8295   AX_surfxml_host_id = 0;
8296   surfxml_host_id_isset = 0;
8297   AX_surfxml_host_pstate = 22;
8298   surfxml_host_pstate_isset = 0;
8299   AX_surfxml_host_speed = 0;
8300   surfxml_host_speed_isset = 0;
8301   AX_surfxml_host_state___file = 0;
8302   surfxml_host_state___file_isset = 0;
8303   ENTER(AL_surfxml_host); pushbuffer(0);
8304   }
8305         YY_BREAK
8306
8307 case 262:
8308 /* rule 262 can match eol */
8309 YY_RULE_SETUP
8310 if (surfxml_host_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_host>");} surfxml_host_availability___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_availability___file);
8311         YY_BREAK
8312 case 263:
8313 /* rule 263 can match eol */
8314 YY_RULE_SETUP
8315 if (surfxml_host_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_host>");}  surfxml_host_availability___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_availability___file);
8316         YY_BREAK
8317 case 264:
8318 /* rule 264 can match eol */
8319 YY_RULE_SETUP
8320 if (surfxml_host_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_host>");} surfxml_host_coordinates_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_coordinates);
8321         YY_BREAK
8322 case 265:
8323 /* rule 265 can match eol */
8324 YY_RULE_SETUP
8325 if (surfxml_host_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_host>");}  surfxml_host_coordinates_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_coordinates);
8326         YY_BREAK
8327 case 266:
8328 /* rule 266 can match eol */
8329 YY_RULE_SETUP
8330 if (surfxml_host_core_isset != 0) {FAIL("Multiple definition of attribute core in <surfxml_host>");} surfxml_host_core_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_core);
8331         YY_BREAK
8332 case 267:
8333 /* rule 267 can match eol */
8334 YY_RULE_SETUP
8335 if (surfxml_host_core_isset != 0) {FAIL("Multiple definition of attribute core in <surfxml_host>");}  surfxml_host_core_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_core);
8336         YY_BREAK
8337 case 268:
8338 /* rule 268 can match eol */
8339 YY_RULE_SETUP
8340 if (surfxml_host_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_host>");} surfxml_host_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_id);
8341         YY_BREAK
8342 case 269:
8343 /* rule 269 can match eol */
8344 YY_RULE_SETUP
8345 if (surfxml_host_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_host>");}  surfxml_host_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_id);
8346         YY_BREAK
8347 case 270:
8348 /* rule 270 can match eol */
8349 YY_RULE_SETUP
8350 if (surfxml_host_pstate_isset != 0) {FAIL("Multiple definition of attribute pstate in <surfxml_host>");} surfxml_host_pstate_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_pstate);
8351         YY_BREAK
8352 case 271:
8353 /* rule 271 can match eol */
8354 YY_RULE_SETUP
8355 if (surfxml_host_pstate_isset != 0) {FAIL("Multiple definition of attribute pstate in <surfxml_host>");}  surfxml_host_pstate_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_pstate);
8356         YY_BREAK
8357 case 272:
8358 /* rule 272 can match eol */
8359 YY_RULE_SETUP
8360 if (surfxml_host_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_host>");} surfxml_host_speed_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_speed);
8361         YY_BREAK
8362 case 273:
8363 /* rule 273 can match eol */
8364 YY_RULE_SETUP
8365 if (surfxml_host_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_host>");}  surfxml_host_speed_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_speed);
8366         YY_BREAK
8367 case 274:
8368 /* rule 274 can match eol */
8369 YY_RULE_SETUP
8370 if (surfxml_host_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_host>");} surfxml_host_state___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_state___file);
8371         YY_BREAK
8372 case 275:
8373 /* rule 275 can match eol */
8374 YY_RULE_SETUP
8375 if (surfxml_host_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_host>");}  surfxml_host_state___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_state___file);
8376         YY_BREAK
8377 case 276:
8378 YY_RULE_SETUP
8379 {
8380   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
8381   if (!AX_surfxml_host_speed) FAIL("Required attribute `speed' not set for `host' element.");
8382   LEAVE; STag_surfxml_host();surfxml_pcdata_ix = 0; ENTER(S_surfxml_host);
8383  }
8384         YY_BREAK
8385 case 277:
8386 YY_RULE_SETUP
8387 {
8388   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
8389   if (!AX_surfxml_host_speed) FAIL("Required attribute `speed' not set for `host' element.");
8390   LEAVE; STag_surfxml_host(); surfxml_pcdata_ix = 0; ETag_surfxml_host(); popbuffer(); /* attribute */
8391   switch (YY_START) {
8392    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
8393    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: case S_surfxml_zone_1: case S_surfxml_zone_3: SET(S_surfxml_zone_14); break;
8394   }
8395  }
8396         YY_BREAK
8397 case 278:
8398 YY_RULE_SETUP
8399 FAIL("Unexpected character `%c' in attribute list of host element.", yytext[0]);
8400         YY_BREAK
8401 case 279:
8402 YY_RULE_SETUP
8403 FAIL("Bad attribute `%s' in `host' element start tag.",yytext);
8404         YY_BREAK
8405 case YY_STATE_EOF(AL_surfxml_host):
8406 FAIL("EOF in attribute list of `host' element.");
8407         YY_BREAK
8408
8409 case 280:
8410 /* rule 280 can match eol */
8411 YY_RULE_SETUP
8412 {
8413   LEAVE;
8414   ETag_surfxml_host();
8415   popbuffer(); /* attribute */
8416   switch (YY_START) {
8417    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
8418    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: case S_surfxml_zone_1: case S_surfxml_zone_3: SET(S_surfxml_zone_14); break;
8419   }
8420  }
8421         YY_BREAK
8422 case 281:
8423 /* rule 281 can match eol */
8424 YY_RULE_SETUP
8425 FAIL("Unexpected end-tag `%s': `</host>' expected.",yytext);
8426         YY_BREAK
8427 case 282:
8428 YY_RULE_SETUP
8429 FAIL("Unexpected character `%c': `</host>' expected.",yytext[0]);
8430         YY_BREAK
8431 case YY_STATE_EOF(E_surfxml_host):
8432 case YY_STATE_EOF(S_surfxml_host):
8433 case YY_STATE_EOF(S_surfxml_host_2):
8434 FAIL("Premature EOF: `</host>' expected.");
8435         YY_BREAK
8436
8437 case 283:
8438 /* rule 283 can match eol */
8439 YY_RULE_SETUP
8440 FAIL("Starting tag <host_link> is not allowed here.");
8441         YY_BREAK
8442 case 284:
8443 /* rule 284 can match eol */
8444 YY_RULE_SETUP
8445 {
8446   AX_surfxml_host___link_down = 0;
8447   surfxml_host___link_down_isset = 0;
8448   AX_surfxml_host___link_id = 0;
8449   surfxml_host___link_id_isset = 0;
8450   AX_surfxml_host___link_up = 0;
8451   surfxml_host___link_up_isset = 0;
8452   ENTER(AL_surfxml_host___link); pushbuffer(0);
8453   }
8454         YY_BREAK
8455
8456 case 285:
8457 /* rule 285 can match eol */
8458 YY_RULE_SETUP
8459 if (surfxml_host___link_down_isset != 0) {FAIL("Multiple definition of attribute down in <surfxml_host___link>");} surfxml_host___link_down_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host___link_down);
8460         YY_BREAK
8461 case 286:
8462 /* rule 286 can match eol */
8463 YY_RULE_SETUP
8464 if (surfxml_host___link_down_isset != 0) {FAIL("Multiple definition of attribute down in <surfxml_host___link>");}  surfxml_host___link_down_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host___link_down);
8465         YY_BREAK
8466 case 287:
8467 /* rule 287 can match eol */
8468 YY_RULE_SETUP
8469 if (surfxml_host___link_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_host___link>");} surfxml_host___link_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host___link_id);
8470         YY_BREAK
8471 case 288:
8472 /* rule 288 can match eol */
8473 YY_RULE_SETUP
8474 if (surfxml_host___link_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_host___link>");}  surfxml_host___link_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host___link_id);
8475         YY_BREAK
8476 case 289:
8477 /* rule 289 can match eol */
8478 YY_RULE_SETUP
8479 if (surfxml_host___link_up_isset != 0) {FAIL("Multiple definition of attribute up in <surfxml_host___link>");} surfxml_host___link_up_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host___link_up);
8480         YY_BREAK
8481 case 290:
8482 /* rule 290 can match eol */
8483 YY_RULE_SETUP
8484 if (surfxml_host___link_up_isset != 0) {FAIL("Multiple definition of attribute up in <surfxml_host___link>");}  surfxml_host___link_up_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host___link_up);
8485         YY_BREAK
8486 case 291:
8487 YY_RULE_SETUP
8488 {
8489   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
8490   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
8491   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
8492   LEAVE; STag_surfxml_host___link();surfxml_pcdata_ix = 0; ENTER(E_surfxml_host___link);
8493  }
8494         YY_BREAK
8495 case 292:
8496 YY_RULE_SETUP
8497 {
8498   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
8499   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
8500   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
8501   LEAVE; STag_surfxml_host___link(); surfxml_pcdata_ix = 0; ETag_surfxml_host___link(); popbuffer(); /* attribute */
8502   switch (YY_START) {
8503    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
8504    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: case S_surfxml_zone_1: case S_surfxml_zone_3: SET(S_surfxml_zone_14); break;
8505   }
8506  }
8507         YY_BREAK
8508 case 293:
8509 YY_RULE_SETUP
8510 FAIL("Unexpected character `%c' in attribute list of host_link element.", yytext[0]);
8511         YY_BREAK
8512 case 294:
8513 YY_RULE_SETUP
8514 FAIL("Bad attribute `%s' in `host_link' element start tag.",yytext);
8515         YY_BREAK
8516 case YY_STATE_EOF(AL_surfxml_host___link):
8517 FAIL("EOF in attribute list of `host_link' element.");
8518         YY_BREAK
8519
8520 case 295:
8521 /* rule 295 can match eol */
8522 YY_RULE_SETUP
8523 {
8524   LEAVE;
8525   ETag_surfxml_host___link();
8526   popbuffer(); /* attribute */
8527   switch (YY_START) {
8528    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
8529    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: case S_surfxml_zone_1: case S_surfxml_zone_3: SET(S_surfxml_zone_14); break;
8530   }
8531  }
8532         YY_BREAK
8533 case 296:
8534 /* rule 296 can match eol */
8535 YY_RULE_SETUP
8536 FAIL("Unexpected end-tag `%s': `</host_link>' expected.",yytext);
8537         YY_BREAK
8538 case 297:
8539 YY_RULE_SETUP
8540 FAIL("Unexpected character `%c': `</host_link>' expected.",yytext[0]);
8541         YY_BREAK
8542 case YY_STATE_EOF(E_surfxml_host___link):
8543 FAIL("Premature EOF: `</host_link>' expected.");
8544         YY_BREAK
8545
8546 /* <!-- tag include is deprecated. Not documented, and removed in v3.22 -->  */
8547 case 298:
8548 /* rule 298 can match eol */
8549 YY_RULE_SETUP
8550 FAIL("Starting tag <include> is not allowed here.");
8551         YY_BREAK
8552 case 299:
8553 /* rule 299 can match eol */
8554 YY_RULE_SETUP
8555 {
8556   AX_surfxml_include_file = 0;
8557   surfxml_include_file_isset = 0;
8558   ENTER(AL_surfxml_include); pushbuffer(0);
8559   }
8560         YY_BREAK
8561
8562 case 300:
8563 /* rule 300 can match eol */
8564 YY_RULE_SETUP
8565 if (surfxml_include_file_isset != 0) {FAIL("Multiple definition of attribute file in <surfxml_include>");} surfxml_include_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_include_file);
8566         YY_BREAK
8567 case 301:
8568 /* rule 301 can match eol */
8569 YY_RULE_SETUP
8570 if (surfxml_include_file_isset != 0) {FAIL("Multiple definition of attribute file in <surfxml_include>");}  surfxml_include_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_include_file);
8571         YY_BREAK
8572 case 302:
8573 YY_RULE_SETUP
8574 {
8575   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
8576   LEAVE; STag_surfxml_include();surfxml_pcdata_ix = 0; ENTER(S_surfxml_include);
8577  }
8578         YY_BREAK
8579 case 303:
8580 YY_RULE_SETUP
8581 {
8582   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
8583   LEAVE; STag_surfxml_include(); surfxml_pcdata_ix = 0; ETag_surfxml_include(); popbuffer(); /* attribute */
8584   switch (YY_START) {
8585    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_1: SET(S_surfxml_AS_14); break;
8586    case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8587    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
8588    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
8589    case S_surfxml_zone_13: case S_surfxml_zone_14: case S_surfxml_zone_1: SET(S_surfxml_zone_14); break;
8590    case S_surfxml_zone: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
8591   }
8592  }
8593         YY_BREAK
8594 case 304:
8595 YY_RULE_SETUP
8596 FAIL("Unexpected character `%c' in attribute list of include element.", yytext[0]);
8597         YY_BREAK
8598 case 305:
8599 YY_RULE_SETUP
8600 FAIL("Bad attribute `%s' in `include' element start tag.",yytext);
8601         YY_BREAK
8602 case YY_STATE_EOF(AL_surfxml_include):
8603 FAIL("EOF in attribute list of `include' element.");
8604         YY_BREAK
8605
8606 case 306:
8607 /* rule 306 can match eol */
8608 YY_RULE_SETUP
8609 {
8610   LEAVE;
8611   ETag_surfxml_include();
8612   popbuffer(); /* attribute */
8613   switch (YY_START) {
8614    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_1: SET(S_surfxml_AS_14); break;
8615    case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8616    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
8617    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
8618    case S_surfxml_zone_13: case S_surfxml_zone_14: case S_surfxml_zone_1: SET(S_surfxml_zone_14); break;
8619    case S_surfxml_zone: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
8620   }
8621  }
8622         YY_BREAK
8623 case 307:
8624 /* rule 307 can match eol */
8625 YY_RULE_SETUP
8626 FAIL("Unexpected end-tag `%s': `</include>' expected.",yytext);
8627         YY_BREAK
8628 case 308:
8629 YY_RULE_SETUP
8630 FAIL("Unexpected character `%c': `</include>' expected.",yytext[0]);
8631         YY_BREAK
8632 case YY_STATE_EOF(E_surfxml_include):
8633 case YY_STATE_EOF(S_surfxml_include):
8634 case YY_STATE_EOF(S_surfxml_include_2):
8635 FAIL("Premature EOF: `</include>' expected.");
8636         YY_BREAK
8637
8638 case 309:
8639 /* rule 309 can match eol */
8640 YY_RULE_SETUP
8641 FAIL("Starting tag <link> is not allowed here.");
8642         YY_BREAK
8643 case 310:
8644 /* rule 310 can match eol */
8645 YY_RULE_SETUP
8646 {
8647   AX_surfxml_link_bandwidth = 0;
8648   surfxml_link_bandwidth_isset = 0;
8649   AX_surfxml_link_bandwidth___file = 0;
8650   surfxml_link_bandwidth___file_isset = 0;
8651   AX_surfxml_link_id = 0;
8652   surfxml_link_id_isset = 0;
8653   AX_surfxml_link_latency = 0;
8654   surfxml_link_latency_isset = 0;
8655   AX_surfxml_link_latency___file = 0;
8656   surfxml_link_latency___file_isset = 0;
8657   AX_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
8658   surfxml_link_sharing___policy_isset = 0;
8659   AX_surfxml_link_state___file = 0;
8660   surfxml_link_state___file_isset = 0;
8661   ENTER(AL_surfxml_link); pushbuffer(0);
8662   }
8663         YY_BREAK
8664
8665 case 311:
8666 /* rule 311 can match eol */
8667 YY_RULE_SETUP
8668 if (surfxml_link_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_link>");} surfxml_link_bandwidth_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_bandwidth);
8669         YY_BREAK
8670 case 312:
8671 /* rule 312 can match eol */
8672 YY_RULE_SETUP
8673 if (surfxml_link_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_link>");}  surfxml_link_bandwidth_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_bandwidth);
8674         YY_BREAK
8675 case 313:
8676 /* rule 313 can match eol */
8677 YY_RULE_SETUP
8678 if (surfxml_link_bandwidth___file_isset != 0) {FAIL("Multiple definition of attribute bandwidth_file in <surfxml_link>");} surfxml_link_bandwidth___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_bandwidth___file);
8679         YY_BREAK
8680 case 314:
8681 /* rule 314 can match eol */
8682 YY_RULE_SETUP
8683 if (surfxml_link_bandwidth___file_isset != 0) {FAIL("Multiple definition of attribute bandwidth_file in <surfxml_link>");}  surfxml_link_bandwidth___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_bandwidth___file);
8684         YY_BREAK
8685 case 315:
8686 /* rule 315 can match eol */
8687 YY_RULE_SETUP
8688 if (surfxml_link_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_link>");} surfxml_link_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_id);
8689         YY_BREAK
8690 case 316:
8691 /* rule 316 can match eol */
8692 YY_RULE_SETUP
8693 if (surfxml_link_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_link>");}  surfxml_link_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_id);
8694         YY_BREAK
8695 case 317:
8696 /* rule 317 can match eol */
8697 YY_RULE_SETUP
8698 if (surfxml_link_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_link>");} surfxml_link_latency_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_latency);
8699         YY_BREAK
8700 case 318:
8701 /* rule 318 can match eol */
8702 YY_RULE_SETUP
8703 if (surfxml_link_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_link>");}  surfxml_link_latency_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_latency);
8704         YY_BREAK
8705 case 319:
8706 /* rule 319 can match eol */
8707 YY_RULE_SETUP
8708 if (surfxml_link_latency___file_isset != 0) {FAIL("Multiple definition of attribute latency_file in <surfxml_link>");} surfxml_link_latency___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_latency___file);
8709         YY_BREAK
8710 case 320:
8711 /* rule 320 can match eol */
8712 YY_RULE_SETUP
8713 if (surfxml_link_latency___file_isset != 0) {FAIL("Multiple definition of attribute latency_file in <surfxml_link>");}  surfxml_link_latency___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_latency___file);
8714         YY_BREAK
8715 case 321:
8716 /* rule 321 can match eol */
8717 case 322:
8718 /* rule 322 can match eol */
8719 YY_RULE_SETUP
8720 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
8721         YY_BREAK
8722 case 323:
8723 /* rule 323 can match eol */
8724 case 324:
8725 /* rule 324 can match eol */
8726 YY_RULE_SETUP
8727 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SPLITDUPLEX;
8728         YY_BREAK
8729 case 325:
8730 /* rule 325 can match eol */
8731 case 326:
8732 /* rule 326 can match eol */
8733 YY_RULE_SETUP
8734 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FULLDUPLEX;
8735         YY_BREAK
8736 case 327:
8737 /* rule 327 can match eol */
8738 case 328:
8739 /* rule 328 can match eol */
8740 YY_RULE_SETUP
8741 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FATPIPE;
8742         YY_BREAK
8743 case 329:
8744 /* rule 329 can match eol */
8745 YY_RULE_SETUP
8746 if (surfxml_link_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_link>");} surfxml_link_state___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_state___file);
8747         YY_BREAK
8748 case 330:
8749 /* rule 330 can match eol */
8750 YY_RULE_SETUP
8751 if (surfxml_link_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_link>");}  surfxml_link_state___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_state___file);
8752         YY_BREAK
8753 case 331:
8754 YY_RULE_SETUP
8755 {
8756   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
8757   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
8758   LEAVE; STag_surfxml_link();surfxml_pcdata_ix = 0; ENTER(S_surfxml_link);
8759  }
8760         YY_BREAK
8761 case 332:
8762 YY_RULE_SETUP
8763 {
8764   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
8765   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
8766   LEAVE; STag_surfxml_link(); surfxml_pcdata_ix = 0; ETag_surfxml_link(); popbuffer(); /* attribute */
8767   switch (YY_START) {
8768    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_1: SET(S_surfxml_AS_14); break;
8769    case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8770    case S_surfxml_zone_13: case S_surfxml_zone_14: case S_surfxml_zone_1: SET(S_surfxml_zone_14); break;
8771    case S_surfxml_zone: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
8772   }
8773  }
8774         YY_BREAK
8775 case 333:
8776 YY_RULE_SETUP
8777 FAIL("Unexpected character `%c' in attribute list of link element.", yytext[0]);
8778         YY_BREAK
8779 case 334:
8780 YY_RULE_SETUP
8781 FAIL("Bad attribute `%s' in `link' element start tag.",yytext);
8782         YY_BREAK
8783 case YY_STATE_EOF(AL_surfxml_link):
8784 FAIL("EOF in attribute list of `link' element.");
8785         YY_BREAK
8786
8787 case 335:
8788 /* rule 335 can match eol */
8789 YY_RULE_SETUP
8790 {
8791   LEAVE;
8792   ETag_surfxml_link();
8793   popbuffer(); /* attribute */
8794   switch (YY_START) {
8795    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_1: SET(S_surfxml_AS_14); break;
8796    case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8797    case S_surfxml_zone_13: case S_surfxml_zone_14: case S_surfxml_zone_1: SET(S_surfxml_zone_14); break;
8798    case S_surfxml_zone: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
8799   }
8800  }
8801         YY_BREAK
8802 case 336:
8803 /* rule 336 can match eol */
8804 YY_RULE_SETUP
8805 FAIL("Unexpected end-tag `%s': `</link>' expected.",yytext);
8806         YY_BREAK
8807 case 337:
8808 YY_RULE_SETUP
8809 FAIL("Unexpected character `%c': `</link>' expected.",yytext[0]);
8810         YY_BREAK
8811 case YY_STATE_EOF(E_surfxml_link):
8812 case YY_STATE_EOF(S_surfxml_link):
8813 case YY_STATE_EOF(S_surfxml_link_2):
8814 FAIL("Premature EOF: `</link>' expected.");
8815         YY_BREAK
8816
8817 case 338:
8818 /* rule 338 can match eol */
8819 YY_RULE_SETUP
8820 FAIL("Starting tag <link_ctn> is not allowed here.");
8821         YY_BREAK
8822 case 339:
8823 /* rule 339 can match eol */
8824 YY_RULE_SETUP
8825 {
8826   AX_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
8827   surfxml_link___ctn_direction_isset = 0;
8828   AX_surfxml_link___ctn_id = 0;
8829   surfxml_link___ctn_id_isset = 0;
8830   ENTER(AL_surfxml_link___ctn); pushbuffer(0);
8831   }
8832         YY_BREAK
8833
8834 case 340:
8835 /* rule 340 can match eol */
8836 case 341:
8837 /* rule 341 can match eol */
8838 YY_RULE_SETUP
8839 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_UP;
8840         YY_BREAK
8841 case 342:
8842 /* rule 342 can match eol */
8843 case 343:
8844 /* rule 343 can match eol */
8845 YY_RULE_SETUP
8846 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_DOWN;
8847         YY_BREAK
8848 case 344:
8849 /* rule 344 can match eol */
8850 case 345:
8851 /* rule 345 can match eol */
8852 YY_RULE_SETUP
8853 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
8854         YY_BREAK
8855 case 346:
8856 /* rule 346 can match eol */
8857 YY_RULE_SETUP
8858 if (surfxml_link___ctn_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_link___ctn>");} surfxml_link___ctn_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link___ctn_id);
8859         YY_BREAK
8860 case 347:
8861 /* rule 347 can match eol */
8862 YY_RULE_SETUP
8863 if (surfxml_link___ctn_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_link___ctn>");}  surfxml_link___ctn_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link___ctn_id);
8864         YY_BREAK
8865 case 348:
8866 YY_RULE_SETUP
8867 {
8868   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
8869   LEAVE; STag_surfxml_link___ctn();surfxml_pcdata_ix = 0; ENTER(E_surfxml_link___ctn);
8870  }
8871         YY_BREAK
8872 case 349:
8873 YY_RULE_SETUP
8874 {
8875   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
8876   LEAVE; STag_surfxml_link___ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link___ctn(); popbuffer(); /* attribute */
8877   switch (YY_START) {
8878    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
8879    case S_surfxml_bypassASroute: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute_2: SET(S_surfxml_bypassASroute_2); break;
8880    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_1: case S_surfxml_bypassRoute_2: SET(S_surfxml_bypassRoute_2); break;
8881    case S_surfxml_bypassZoneRoute: case S_surfxml_bypassZoneRoute_1: case S_surfxml_bypassZoneRoute_2: SET(S_surfxml_bypassZoneRoute_2); break;
8882    case S_surfxml_route: case S_surfxml_route_1: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
8883    case S_surfxml_zoneRoute: case S_surfxml_zoneRoute_1: case S_surfxml_zoneRoute_2: SET(S_surfxml_zoneRoute_2); break;
8884   }
8885  }
8886         YY_BREAK
8887 case 350:
8888 YY_RULE_SETUP
8889 FAIL("Unexpected character `%c' in attribute list of link_ctn element.", yytext[0]);
8890         YY_BREAK
8891 case 351:
8892 YY_RULE_SETUP
8893 FAIL("Bad attribute `%s' in `link_ctn' element start tag.",yytext);
8894         YY_BREAK
8895 case YY_STATE_EOF(AL_surfxml_link___ctn):
8896 FAIL("EOF in attribute list of `link_ctn' element.");
8897         YY_BREAK
8898
8899 case 352:
8900 /* rule 352 can match eol */
8901 YY_RULE_SETUP
8902 {
8903   LEAVE;
8904   ETag_surfxml_link___ctn();
8905   popbuffer(); /* attribute */
8906   switch (YY_START) {
8907    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
8908    case S_surfxml_bypassASroute: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute_2: SET(S_surfxml_bypassASroute_2); break;
8909    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_1: case S_surfxml_bypassRoute_2: SET(S_surfxml_bypassRoute_2); break;
8910    case S_surfxml_bypassZoneRoute: case S_surfxml_bypassZoneRoute_1: case S_surfxml_bypassZoneRoute_2: SET(S_surfxml_bypassZoneRoute_2); break;
8911    case S_surfxml_route: case S_surfxml_route_1: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
8912    case S_surfxml_zoneRoute: case S_surfxml_zoneRoute_1: case S_surfxml_zoneRoute_2: SET(S_surfxml_zoneRoute_2); break;
8913   }
8914  }
8915         YY_BREAK
8916 case 353:
8917 /* rule 353 can match eol */
8918 YY_RULE_SETUP
8919 FAIL("Unexpected end-tag `%s': `</link_ctn>' expected.",yytext);
8920         YY_BREAK
8921 case 354:
8922 YY_RULE_SETUP
8923 FAIL("Unexpected character `%c': `</link_ctn>' expected.",yytext[0]);
8924         YY_BREAK
8925 case YY_STATE_EOF(E_surfxml_link___ctn):
8926 FAIL("Premature EOF: `</link_ctn>' expected.");
8927         YY_BREAK
8928
8929 /* <!-- <!ATTLIST model_prop key CDATA #REQUIRED> -->
8930   * <!-- <!ATTLIST model_prop key CDATA #REQUIRED> -->  */
8931 case 355:
8932 /* rule 355 can match eol */
8933 YY_RULE_SETUP
8934 FAIL("Starting tag <model_prop> is not allowed here.");
8935         YY_BREAK
8936 case 356:
8937 /* rule 356 can match eol */
8938 YY_RULE_SETUP
8939 {
8940   AX_surfxml_model___prop_id = 0;
8941   surfxml_model___prop_id_isset = 0;
8942   AX_surfxml_model___prop_value = 0;
8943   surfxml_model___prop_value_isset = 0;
8944   ENTER(AL_surfxml_model___prop); pushbuffer(0);
8945   }
8946         YY_BREAK
8947
8948 case 357:
8949 /* rule 357 can match eol */
8950 YY_RULE_SETUP
8951 if (surfxml_model___prop_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_model___prop>");} surfxml_model___prop_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_model___prop_id);
8952         YY_BREAK
8953 case 358:
8954 /* rule 358 can match eol */
8955 YY_RULE_SETUP
8956 if (surfxml_model___prop_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_model___prop>");}  surfxml_model___prop_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_model___prop_id);
8957         YY_BREAK
8958 case 359:
8959 /* rule 359 can match eol */
8960 YY_RULE_SETUP
8961 if (surfxml_model___prop_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_model___prop>");} surfxml_model___prop_value_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_model___prop_value);
8962         YY_BREAK
8963 case 360:
8964 /* rule 360 can match eol */
8965 YY_RULE_SETUP
8966 if (surfxml_model___prop_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_model___prop>");}  surfxml_model___prop_value_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_model___prop_value);
8967         YY_BREAK
8968 case 361:
8969 YY_RULE_SETUP
8970 {
8971   if (!AX_surfxml_model___prop_id) FAIL("Required attribute `id' not set for `model_prop' element.");
8972   if (!AX_surfxml_model___prop_value) FAIL("Required attribute `value' not set for `model_prop' element.");
8973   LEAVE; STag_surfxml_model___prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_model___prop);
8974  }
8975         YY_BREAK
8976 case 362:
8977 YY_RULE_SETUP
8978 {
8979   if (!AX_surfxml_model___prop_id) FAIL("Required attribute `id' not set for `model_prop' element.");
8980   if (!AX_surfxml_model___prop_value) FAIL("Required attribute `value' not set for `model_prop' element.");
8981   LEAVE; STag_surfxml_model___prop(); surfxml_pcdata_ix = 0; ETag_surfxml_model___prop(); popbuffer(); /* attribute */
8982   switch (YY_START) {
8983    case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
8984   }
8985  }
8986         YY_BREAK
8987 case 363:
8988 YY_RULE_SETUP
8989 FAIL("Unexpected character `%c' in attribute list of model_prop element.", yytext[0]);
8990         YY_BREAK
8991 case 364:
8992 YY_RULE_SETUP
8993 FAIL("Bad attribute `%s' in `model_prop' element start tag.",yytext);
8994         YY_BREAK
8995 case YY_STATE_EOF(AL_surfxml_model___prop):
8996 FAIL("EOF in attribute list of `model_prop' element.");
8997         YY_BREAK
8998
8999 case 365:
9000 /* rule 365 can match eol */
9001 YY_RULE_SETUP
9002 {
9003   LEAVE;
9004   ETag_surfxml_model___prop();
9005   popbuffer(); /* attribute */
9006   switch (YY_START) {
9007    case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
9008   }
9009  }
9010         YY_BREAK
9011 case 366:
9012 /* rule 366 can match eol */
9013 YY_RULE_SETUP
9014 FAIL("Unexpected end-tag `%s': `</model_prop>' expected.",yytext);
9015         YY_BREAK
9016 case 367:
9017 YY_RULE_SETUP
9018 FAIL("Unexpected character `%c': `</model_prop>' expected.",yytext[0]);
9019         YY_BREAK
9020 case YY_STATE_EOF(E_surfxml_model___prop):
9021 FAIL("Premature EOF: `</model_prop>' expected.");
9022         YY_BREAK
9023
9024 case 368:
9025 /* rule 368 can match eol */
9026 YY_RULE_SETUP
9027 FAIL("Starting tag <mount> is not allowed here.");
9028         YY_BREAK
9029 case 369:
9030 /* rule 369 can match eol */
9031 YY_RULE_SETUP
9032 {
9033   AX_surfxml_mount_name = 0;
9034   surfxml_mount_name_isset = 0;
9035   AX_surfxml_mount_storageId = 0;
9036   surfxml_mount_storageId_isset = 0;
9037   ENTER(AL_surfxml_mount); pushbuffer(0);
9038   }
9039         YY_BREAK
9040
9041 case 370:
9042 /* rule 370 can match eol */
9043 YY_RULE_SETUP
9044 if (surfxml_mount_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mount>");} surfxml_mount_name_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mount_name);
9045         YY_BREAK
9046 case 371:
9047 /* rule 371 can match eol */
9048 YY_RULE_SETUP
9049 if (surfxml_mount_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mount>");}  surfxml_mount_name_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mount_name);
9050         YY_BREAK
9051 case 372:
9052 /* rule 372 can match eol */
9053 YY_RULE_SETUP
9054 if (surfxml_mount_storageId_isset != 0) {FAIL("Multiple definition of attribute storageId in <surfxml_mount>");} surfxml_mount_storageId_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mount_storageId);
9055         YY_BREAK
9056 case 373:
9057 /* rule 373 can match eol */
9058 YY_RULE_SETUP
9059 if (surfxml_mount_storageId_isset != 0) {FAIL("Multiple definition of attribute storageId in <surfxml_mount>");}  surfxml_mount_storageId_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mount_storageId);
9060         YY_BREAK
9061 case 374:
9062 YY_RULE_SETUP
9063 {
9064   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
9065   if (!AX_surfxml_mount_storageId) FAIL("Required attribute `storageId' not set for `mount' element.");
9066   LEAVE; STag_surfxml_mount();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mount);
9067  }
9068         YY_BREAK
9069 case 375:
9070 YY_RULE_SETUP
9071 {
9072   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
9073   if (!AX_surfxml_mount_storageId) FAIL("Required attribute `storageId' not set for `mount' element.");
9074   LEAVE; STag_surfxml_mount(); surfxml_pcdata_ix = 0; ETag_surfxml_mount(); popbuffer(); /* attribute */
9075   switch (YY_START) {
9076    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
9077   }
9078  }
9079         YY_BREAK
9080 case 376:
9081 YY_RULE_SETUP
9082 FAIL("Unexpected character `%c' in attribute list of mount element.", yytext[0]);
9083         YY_BREAK
9084 case 377:
9085 YY_RULE_SETUP
9086 FAIL("Bad attribute `%s' in `mount' element start tag.",yytext);
9087         YY_BREAK
9088 case YY_STATE_EOF(AL_surfxml_mount):
9089 FAIL("EOF in attribute list of `mount' element.");
9090         YY_BREAK
9091
9092 case 378:
9093 /* rule 378 can match eol */
9094 YY_RULE_SETUP
9095 {
9096   LEAVE;
9097   ETag_surfxml_mount();
9098   popbuffer(); /* attribute */
9099   switch (YY_START) {
9100    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
9101   }
9102  }
9103         YY_BREAK
9104 case 379:
9105 /* rule 379 can match eol */
9106 YY_RULE_SETUP
9107 FAIL("Unexpected end-tag `%s': `</mount>' expected.",yytext);
9108         YY_BREAK
9109 case 380:
9110 YY_RULE_SETUP
9111 FAIL("Unexpected character `%c': `</mount>' expected.",yytext[0]);
9112         YY_BREAK
9113 case YY_STATE_EOF(E_surfxml_mount):
9114 FAIL("Premature EOF: `</mount>' expected.");
9115         YY_BREAK
9116
9117 case 381:
9118 /* rule 381 can match eol */
9119 YY_RULE_SETUP
9120 FAIL("Starting tag <peer> is not allowed here.");
9121         YY_BREAK
9122 case 382:
9123 /* rule 382 can match eol */
9124 YY_RULE_SETUP
9125 {
9126   AX_surfxml_peer_availability___file = 0;
9127   surfxml_peer_availability___file_isset = 0;
9128   AX_surfxml_peer_bw___in = 0;
9129   surfxml_peer_bw___in_isset = 0;
9130   AX_surfxml_peer_bw___out = 0;
9131   surfxml_peer_bw___out_isset = 0;
9132   AX_surfxml_peer_coordinates = 0;
9133   surfxml_peer_coordinates_isset = 0;
9134   AX_surfxml_peer_id = 0;
9135   surfxml_peer_id_isset = 0;
9136   AX_surfxml_peer_lat = 0;
9137   surfxml_peer_lat_isset = 0;
9138   AX_surfxml_peer_speed = 0;
9139   surfxml_peer_speed_isset = 0;
9140   AX_surfxml_peer_state___file = 0;
9141   surfxml_peer_state___file_isset = 0;
9142   ENTER(AL_surfxml_peer); pushbuffer(0);
9143   }
9144         YY_BREAK
9145
9146 case 383:
9147 /* rule 383 can match eol */
9148 YY_RULE_SETUP
9149 if (surfxml_peer_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_peer>");} surfxml_peer_availability___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_availability___file);
9150         YY_BREAK
9151 case 384:
9152 /* rule 384 can match eol */
9153 YY_RULE_SETUP
9154 if (surfxml_peer_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_peer>");}  surfxml_peer_availability___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_availability___file);
9155         YY_BREAK
9156 case 385:
9157 /* rule 385 can match eol */
9158 YY_RULE_SETUP
9159 if (surfxml_peer_bw___in_isset != 0) {FAIL("Multiple definition of attribute bw_in in <surfxml_peer>");} surfxml_peer_bw___in_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_bw___in);
9160         YY_BREAK
9161 case 386:
9162 /* rule 386 can match eol */
9163 YY_RULE_SETUP
9164 if (surfxml_peer_bw___in_isset != 0) {FAIL("Multiple definition of attribute bw_in in <surfxml_peer>");}  surfxml_peer_bw___in_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_bw___in);
9165         YY_BREAK
9166 case 387:
9167 /* rule 387 can match eol */
9168 YY_RULE_SETUP
9169 if (surfxml_peer_bw___out_isset != 0) {FAIL("Multiple definition of attribute bw_out in <surfxml_peer>");} surfxml_peer_bw___out_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_bw___out);
9170         YY_BREAK
9171 case 388:
9172 /* rule 388 can match eol */
9173 YY_RULE_SETUP
9174 if (surfxml_peer_bw___out_isset != 0) {FAIL("Multiple definition of attribute bw_out in <surfxml_peer>");}  surfxml_peer_bw___out_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_bw___out);
9175         YY_BREAK
9176 case 389:
9177 /* rule 389 can match eol */
9178 YY_RULE_SETUP
9179 if (surfxml_peer_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_peer>");} surfxml_peer_coordinates_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_coordinates);
9180         YY_BREAK
9181 case 390:
9182 /* rule 390 can match eol */
9183 YY_RULE_SETUP
9184 if (surfxml_peer_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_peer>");}  surfxml_peer_coordinates_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_coordinates);
9185         YY_BREAK
9186 case 391:
9187 /* rule 391 can match eol */
9188 YY_RULE_SETUP
9189 if (surfxml_peer_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_peer>");} surfxml_peer_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_id);
9190         YY_BREAK
9191 case 392:
9192 /* rule 392 can match eol */
9193 YY_RULE_SETUP
9194 if (surfxml_peer_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_peer>");}  surfxml_peer_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_id);
9195         YY_BREAK
9196 case 393:
9197 /* rule 393 can match eol */
9198 YY_RULE_SETUP
9199 if (surfxml_peer_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_peer>");} surfxml_peer_lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_lat);
9200         YY_BREAK
9201 case 394:
9202 /* rule 394 can match eol */
9203 YY_RULE_SETUP
9204 if (surfxml_peer_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_peer>");}  surfxml_peer_lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_lat);
9205         YY_BREAK
9206 case 395:
9207 /* rule 395 can match eol */
9208 YY_RULE_SETUP
9209 if (surfxml_peer_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_peer>");} surfxml_peer_speed_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_speed);
9210         YY_BREAK
9211 case 396:
9212 /* rule 396 can match eol */
9213 YY_RULE_SETUP
9214 if (surfxml_peer_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_peer>");}  surfxml_peer_speed_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_speed);
9215         YY_BREAK
9216 case 397:
9217 /* rule 397 can match eol */
9218 YY_RULE_SETUP
9219 if (surfxml_peer_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_peer>");} surfxml_peer_state___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_state___file);
9220         YY_BREAK
9221 case 398:
9222 /* rule 398 can match eol */
9223 YY_RULE_SETUP
9224 if (surfxml_peer_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_peer>");}  surfxml_peer_state___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_state___file);
9225         YY_BREAK
9226 case 399:
9227 YY_RULE_SETUP
9228 {
9229   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
9230   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
9231   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
9232   if (!AX_surfxml_peer_speed) FAIL("Required attribute `speed' not set for `peer' element.");
9233   LEAVE; STag_surfxml_peer();surfxml_pcdata_ix = 0; ENTER(E_surfxml_peer);
9234  }
9235         YY_BREAK
9236 case 400:
9237 YY_RULE_SETUP
9238 {
9239   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
9240   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
9241   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
9242   if (!AX_surfxml_peer_speed) FAIL("Required attribute `speed' not set for `peer' element.");
9243   LEAVE; STag_surfxml_peer(); surfxml_pcdata_ix = 0; ETag_surfxml_peer(); popbuffer(); /* attribute */
9244   switch (YY_START) {
9245    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
9246    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
9247    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
9248    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
9249   }
9250  }
9251         YY_BREAK
9252 case 401:
9253 YY_RULE_SETUP
9254 FAIL("Unexpected character `%c' in attribute list of peer element.", yytext[0]);
9255         YY_BREAK
9256 case 402:
9257 YY_RULE_SETUP
9258 FAIL("Bad attribute `%s' in `peer' element start tag.",yytext);
9259         YY_BREAK
9260 case YY_STATE_EOF(AL_surfxml_peer):
9261 FAIL("EOF in attribute list of `peer' element.");
9262         YY_BREAK
9263
9264 case 403:
9265 /* rule 403 can match eol */
9266 YY_RULE_SETUP
9267 {
9268   LEAVE;
9269   ETag_surfxml_peer();
9270   popbuffer(); /* attribute */
9271   switch (YY_START) {
9272    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
9273    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
9274    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
9275    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
9276   }
9277  }
9278         YY_BREAK
9279 case 404:
9280 /* rule 404 can match eol */
9281 YY_RULE_SETUP
9282 FAIL("Unexpected end-tag `%s': `</peer>' expected.",yytext);
9283         YY_BREAK
9284 case 405:
9285 YY_RULE_SETUP
9286 FAIL("Unexpected character `%c': `</peer>' expected.",yytext[0]);
9287         YY_BREAK
9288 case YY_STATE_EOF(E_surfxml_peer):
9289 FAIL("Premature EOF: `</peer>' expected.");
9290         YY_BREAK
9291
9292 /* <!--
9293   *              DTD of SimGrid platform and deployment files.
9294   * More info: http://simgrid.gforge.inria.fr/simgrid/latest/doc/platform.html
9295   * To upgrade your files, use the tool simgrid_update_xml
9296   * * Things that will change in upcoming version 5 (TODO):
9297   *   - The following tags will be removed:
9298   *     - <include> spits an error since v3.18
9299   *     - <random> does nothing since a very long time
9300   *     - <as>, <asroute>, <bypassZoneRoute> and <process>, deprecated in DTD4.1
9301   *   - FULLDUPLEX sharing will be removed, deprecated in DTD4.2 (v3.19)
9302   * * New in DTD version 4.2 (in SimGrid 3.19): backward compatible change (v4 files are valid v4.2 files)
9303   *    - SPLITDUPLEX is the new spelling of the deprecated FULLDUPLEX
9304   * * New in DTD version 4.1 (in SimGrid 3.16): backward compatible change (v4 files are valid v4.1 files)
9305   *    - <zone> can be used as a synonym for the now deprecated <as>
9306   *    - <zoneRoute> can be used as a synonym for the now deprecated <asroute>
9307   *    - <bypassZoneRoute> an be used as a synonym for the now deprecated <bypassAsRoute>
9308   *    - <actor> can be used as a synonym for the now deprecated <process>
9309   * * New in DTD version 4 (in SimGrid 3.13):
9310   *    - Rename (power->speed) the attributes describing the amount of flop
9311   *      that a <host>, <peer>, <cluster> or <cabinet> can deliver per second.
9312   *    - In <trace_connect>, attribute kind="POWER" is now kind="SPEED".
9313   *    - In <host> and <link>, attributes availability and state are gone.
9314   *      It was redundent with state and availability traces, and with peak values.
9315   *    - In <cluster>, cannot set the availability nor state traces.
9316   *      This was too complex and unused.
9317   *    - The DOCTYPE points to the right URL (this file).
9318   *    - Kill <gpu>. Was not doing anything.
9319   *    - A warning is emitted for unit-less values (they are still accepted).
9320   *      The value 0 can remain unit-less, as its unit does not matter.
9321   *      - speed. Default: 'f' or 'flops'. Also defined:
9322   *         'Yf',         'Zf',         'Ef',       'Pf',        'Tf',        'Gf',        'Mf',        'kf'
9323   *         'yottaflops', 'zettaflops', 'exaflops', 'petaflops', 'teraflops', 'gigaflops', 'megaflops', 'kiloflops'
9324   *      - bandwidth. Default: 'Bps' bytes per second
9325   *        In bytes and powers of 2  (1 KiBps = 1024 Bps): 'EiBps', 'PiBps', 'TiBps', 'GiBps', 'MiBps', 'KiBps'
9326   *        In bits  and powers of 2  (1 Bps = 8 bps)     : 'Eibps', 'Pibps', 'Tibps', 'Gibps', 'Mibps', 'Kibps'
9327   *        In bytes and powers of 10 (1 KBps = 1000 Bps) : 'EBps', 'PBps', 'TBps', 'GBps', 'MBps', 'kBps', 'Bps'
9328   *        In bits  and powers of 10                     : 'Ebps', 'Pbps', 'Tbps', 'Gbps', 'Mbps', 'kbps', 'bps'
9329   *        (Exa and Peta notations were introduced in SimGrid v3.14)
9330   *      - latency. Default: 's' second. Also defined:
9331   *        'w' week, 'd' day, 'h' hour, 'm' minute, 'ms' millisecond, 'us' microsecond, 'ns' nanosecond, 'ps' picosecond
9332   * * New in DTD version 3 (in SimGrid 3.5):
9333   *    - The AS tag were introduced. Every platform should now
9334   *      contain an englobing AS tag.
9335   *    - Routes are now symmetric by default.
9336   *    - Renamed tags (for sake of XML sanity):
9337   *      - LINK:CTN -> LINK_CTN
9338   *      - TRACE:CONNECT -> TRACE_CONNECT
9339   * * New in DTD version 2 (in SimGrid 3.4):
9340   *    - Renamed tags:
9341   *      - CPU -> HOST
9342   *      - NETWORK_LINK -> LINK
9343   *      - ROUTE_ELEMENT ->  LINK:CTN (changed again in v3)
9344   *      - PLATFORM_DESCRIPTION -> PLATFORM
9345   * * New in DTD version 1 (in SimGrid 3.3):
9346   *    - DTD is now versionned with the version attribute of platform
9347   *    - Unit change:
9348   *      - Link bandwidth: from Mb/s to b/s
9349   *      - CPU speed: from MFlop/s to Flop/s
9350   * -->  */
9351 case 406:
9352 /* rule 406 can match eol */
9353 YY_RULE_SETUP
9354 FAIL("Starting tag <platform> is not allowed here.");
9355         YY_BREAK
9356 case 407:
9357 /* rule 407 can match eol */
9358 YY_RULE_SETUP
9359 {
9360   AX_surfxml_platform_version = 1;
9361   surfxml_platform_version_isset = 0;
9362   ENTER(AL_surfxml_platform); pushbuffer(0);
9363   }
9364         YY_BREAK
9365
9366 case 408:
9367 /* rule 408 can match eol */
9368 YY_RULE_SETUP
9369 if (surfxml_platform_version_isset != 0) {FAIL("Multiple definition of attribute version in <surfxml_platform>");} surfxml_platform_version_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_platform_version);
9370         YY_BREAK
9371 case 409:
9372 /* rule 409 can match eol */
9373 YY_RULE_SETUP
9374 if (surfxml_platform_version_isset != 0) {FAIL("Multiple definition of attribute version in <surfxml_platform>");}  surfxml_platform_version_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_platform_version);
9375         YY_BREAK
9376 case 410:
9377 YY_RULE_SETUP
9378 {
9379   LEAVE; STag_surfxml_platform();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform);
9380  }
9381         YY_BREAK
9382 case 411:
9383 YY_RULE_SETUP
9384 {
9385   LEAVE; STag_surfxml_platform(); surfxml_pcdata_ix = 0; ETag_surfxml_platform(); popbuffer(); /* attribute */
9386   switch (YY_START) {
9387    case ROOT_surfxml_platform: SET(EPILOG); break;
9388   }
9389  }
9390         YY_BREAK
9391 case 412:
9392 YY_RULE_SETUP
9393 FAIL("Unexpected character `%c' in attribute list of platform element.", yytext[0]);
9394         YY_BREAK
9395 case 413:
9396 YY_RULE_SETUP
9397 FAIL("Bad attribute `%s' in `platform' element start tag.",yytext);
9398         YY_BREAK
9399 case YY_STATE_EOF(AL_surfxml_platform):
9400 FAIL("EOF in attribute list of `platform' element.");
9401         YY_BREAK
9402
9403 case 414:
9404 /* rule 414 can match eol */
9405 YY_RULE_SETUP
9406 {
9407   LEAVE;
9408   ETag_surfxml_platform();
9409   popbuffer(); /* attribute */
9410   switch (YY_START) {
9411    case ROOT_surfxml_platform: SET(EPILOG); break;
9412   }
9413  }
9414         YY_BREAK
9415 case 415:
9416 /* rule 415 can match eol */
9417 YY_RULE_SETUP
9418 FAIL("Unexpected end-tag `%s': `</platform>' expected.",yytext);
9419         YY_BREAK
9420 case 416:
9421 YY_RULE_SETUP
9422 FAIL("Unexpected character `%c': `</platform>' expected.",yytext[0]);
9423         YY_BREAK
9424 case YY_STATE_EOF(E_surfxml_platform):
9425 case YY_STATE_EOF(S_surfxml_platform):
9426 case YY_STATE_EOF(S_surfxml_platform_1):
9427 case YY_STATE_EOF(S_surfxml_platform_3):
9428 case YY_STATE_EOF(S_surfxml_platform_4):
9429 case YY_STATE_EOF(S_surfxml_platform_6):
9430 case YY_STATE_EOF(S_surfxml_platform_8):
9431 FAIL("Premature EOF: `</platform>' expected.");
9432         YY_BREAK
9433
9434 case 417:
9435 /* rule 417 can match eol */
9436 YY_RULE_SETUP
9437 FAIL("Starting tag <process> is not allowed here.");
9438         YY_BREAK
9439 case 418:
9440 /* rule 418 can match eol */
9441 YY_RULE_SETUP
9442 {
9443   AX_surfxml_process_function = 0;
9444   surfxml_process_function_isset = 0;
9445   AX_surfxml_process_host = 0;
9446   surfxml_process_host_isset = 0;
9447   AX_surfxml_process_kill___time = 36;
9448   surfxml_process_kill___time_isset = 0;
9449   AX_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
9450   surfxml_process_on___failure_isset = 0;
9451   AX_surfxml_process_start___time = 31;
9452   surfxml_process_start___time_isset = 0;
9453   ENTER(AL_surfxml_process); pushbuffer(0);
9454   }
9455         YY_BREAK
9456
9457 case 419:
9458 /* rule 419 can match eol */
9459 YY_RULE_SETUP
9460 if (surfxml_process_function_isset != 0) {FAIL("Multiple definition of attribute function in <surfxml_process>");} surfxml_process_function_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_process_function);
9461         YY_BREAK
9462 case 420:
9463 /* rule 420 can match eol */
9464 YY_RULE_SETUP
9465 if (surfxml_process_function_isset != 0) {FAIL("Multiple definition of attribute function in <surfxml_process>");}  surfxml_process_function_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_process_function);
9466         YY_BREAK
9467 case 421:
9468 /* rule 421 can match eol */
9469 YY_RULE_SETUP
9470 if (surfxml_process_host_isset != 0) {FAIL("Multiple definition of attribute host in <surfxml_process>");} surfxml_process_host_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_process_host);
9471         YY_BREAK
9472 case 422:
9473 /* rule 422 can match eol */
9474 YY_RULE_SETUP
9475 if (surfxml_process_host_isset != 0) {FAIL("Multiple definition of attribute host in <surfxml_process>");}  surfxml_process_host_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_process_host);
9476         YY_BREAK
9477 case 423:
9478 /* rule 423 can match eol */
9479 YY_RULE_SETUP
9480 if (surfxml_process_kill___time_isset != 0) {FAIL("Multiple definition of attribute kill_time in <surfxml_process>");} surfxml_process_kill___time_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_process_kill___time);
9481         YY_BREAK
9482 case 424:
9483 /* rule 424 can match eol */
9484 YY_RULE_SETUP
9485 if (surfxml_process_kill___time_isset != 0) {FAIL("Multiple definition of attribute kill_time in <surfxml_process>");}  surfxml_process_kill___time_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_process_kill___time);
9486         YY_BREAK
9487 case 425:
9488 /* rule 425 can match eol */
9489 case 426:
9490 /* rule 426 can match eol */
9491 YY_RULE_SETUP
9492 A_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
9493         YY_BREAK
9494 case 427:
9495 /* rule 427 can match eol */
9496 case 428:
9497 /* rule 428 can match eol */
9498 YY_RULE_SETUP
9499 A_surfxml_process_on___failure = A_surfxml_process_on___failure_RESTART;
9500         YY_BREAK
9501 case 429:
9502 /* rule 429 can match eol */
9503 YY_RULE_SETUP
9504 if (surfxml_process_start___time_isset != 0) {FAIL("Multiple definition of attribute start_time in <surfxml_process>");} surfxml_process_start___time_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_process_start___time);
9505         YY_BREAK
9506 case 430:
9507 /* rule 430 can match eol */
9508 YY_RULE_SETUP
9509 if (surfxml_process_start___time_isset != 0) {FAIL("Multiple definition of attribute start_time in <surfxml_process>");}  surfxml_process_start___time_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_process_start___time);
9510         YY_BREAK
9511 case 431:
9512 YY_RULE_SETUP
9513 {
9514   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
9515   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
9516   LEAVE; STag_surfxml_process();surfxml_pcdata_ix = 0; ENTER(S_surfxml_process);
9517  }
9518         YY_BREAK
9519 case 432:
9520 YY_RULE_SETUP
9521 {
9522   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
9523   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
9524   LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */
9525   switch (YY_START) {
9526    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_4: case S_surfxml_platform_6: case S_surfxml_platform_7: case S_surfxml_platform_8: SET(S_surfxml_platform_8); break;
9527   }
9528  }
9529         YY_BREAK
9530 case 433:
9531 YY_RULE_SETUP
9532 FAIL("Unexpected character `%c' in attribute list of process element.", yytext[0]);
9533         YY_BREAK
9534 case 434:
9535 YY_RULE_SETUP
9536 FAIL("Bad attribute `%s' in `process' element start tag.",yytext);
9537         YY_BREAK
9538 case YY_STATE_EOF(AL_surfxml_process):
9539 FAIL("EOF in attribute list of `process' element.");
9540         YY_BREAK
9541
9542 case 435:
9543 /* rule 435 can match eol */
9544 YY_RULE_SETUP
9545 {
9546   LEAVE;
9547   ETag_surfxml_process();
9548   popbuffer(); /* attribute */
9549   switch (YY_START) {
9550    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_4: case S_surfxml_platform_6: case S_surfxml_platform_7: case S_surfxml_platform_8: SET(S_surfxml_platform_8); break;
9551   }
9552  }
9553         YY_BREAK
9554 case 436:
9555 /* rule 436 can match eol */
9556 YY_RULE_SETUP
9557 FAIL("Unexpected end-tag `%s': `</process>' expected.",yytext);
9558         YY_BREAK
9559 case 437:
9560 YY_RULE_SETUP
9561 FAIL("Unexpected character `%c': `</process>' expected.",yytext[0]);
9562         YY_BREAK
9563 case YY_STATE_EOF(E_surfxml_process):
9564 case YY_STATE_EOF(S_surfxml_process):
9565 case YY_STATE_EOF(S_surfxml_process_2):
9566 FAIL("Premature EOF: `</process>' expected.");
9567         YY_BREAK
9568
9569 /* <!-- <!ATTLIST prop key CDATA #REQUIRED> -->
9570   * <!-- <!ATTLIST prop key CDATA #REQUIRED> -->  */
9571 case 438:
9572 /* rule 438 can match eol */
9573 YY_RULE_SETUP
9574 FAIL("Starting tag <prop> is not allowed here.");
9575         YY_BREAK
9576 case 439:
9577 /* rule 439 can match eol */
9578 YY_RULE_SETUP
9579 {
9580   AX_surfxml_prop_id = 0;
9581   surfxml_prop_id_isset = 0;
9582   AX_surfxml_prop_value = 0;
9583   surfxml_prop_value_isset = 0;
9584   ENTER(AL_surfxml_prop); pushbuffer(0);
9585   }
9586         YY_BREAK
9587
9588 case 440:
9589 /* rule 440 can match eol */
9590 YY_RULE_SETUP
9591 if (surfxml_prop_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_prop>");} surfxml_prop_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_prop_id);
9592         YY_BREAK
9593 case 441:
9594 /* rule 441 can match eol */
9595 YY_RULE_SETUP
9596 if (surfxml_prop_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_prop>");}  surfxml_prop_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_prop_id);
9597         YY_BREAK
9598 case 442:
9599 /* rule 442 can match eol */
9600 YY_RULE_SETUP
9601 if (surfxml_prop_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_prop>");} surfxml_prop_value_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_prop_value);
9602         YY_BREAK
9603 case 443:
9604 /* rule 443 can match eol */
9605 YY_RULE_SETUP
9606 if (surfxml_prop_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_prop>");}  surfxml_prop_value_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_prop_value);
9607         YY_BREAK
9608 case 444:
9609 YY_RULE_SETUP
9610 {
9611   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
9612   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
9613   LEAVE; STag_surfxml_prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_prop);
9614  }
9615         YY_BREAK
9616 case 445:
9617 YY_RULE_SETUP
9618 {
9619   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
9620   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
9621   LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */
9622   switch (YY_START) {
9623    case S_surfxml_AS: case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
9624    case S_surfxml_actor: case S_surfxml_actor_1: case S_surfxml_actor_2: SET(S_surfxml_actor_2); break;
9625    case S_surfxml_cluster: case S_surfxml_cluster_1: case S_surfxml_cluster_2: SET(S_surfxml_cluster_2); break;
9626    case S_surfxml_config: case S_surfxml_config_1: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
9627    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
9628    case S_surfxml_link: case S_surfxml_link_1: case S_surfxml_link_2: SET(S_surfxml_link_2); break;
9629    case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
9630    case S_surfxml_storage: case S_surfxml_storage_1: case S_surfxml_storage_2: SET(S_surfxml_storage_2); break;
9631    case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
9632    case S_surfxml_zone: case S_surfxml_zone_2: case S_surfxml_zone_3: SET(S_surfxml_zone_3); break;
9633   }
9634  }
9635         YY_BREAK
9636 case 446:
9637 YY_RULE_SETUP
9638 FAIL("Unexpected character `%c' in attribute list of prop element.", yytext[0]);
9639         YY_BREAK
9640 case 447:
9641 YY_RULE_SETUP
9642 FAIL("Bad attribute `%s' in `prop' element start tag.",yytext);
9643         YY_BREAK
9644 case YY_STATE_EOF(AL_surfxml_prop):
9645 FAIL("EOF in attribute list of `prop' element.");
9646         YY_BREAK
9647
9648 case 448:
9649 /* rule 448 can match eol */
9650 YY_RULE_SETUP
9651 {
9652   LEAVE;
9653   ETag_surfxml_prop();
9654   popbuffer(); /* attribute */
9655   switch (YY_START) {
9656    case S_surfxml_AS: case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
9657    case S_surfxml_actor: case S_surfxml_actor_1: case S_surfxml_actor_2: SET(S_surfxml_actor_2); break;
9658    case S_surfxml_cluster: case S_surfxml_cluster_1: case S_surfxml_cluster_2: SET(S_surfxml_cluster_2); break;
9659    case S_surfxml_config: case S_surfxml_config_1: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
9660    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
9661    case S_surfxml_link: case S_surfxml_link_1: case S_surfxml_link_2: SET(S_surfxml_link_2); break;
9662    case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
9663    case S_surfxml_storage: case S_surfxml_storage_1: case S_surfxml_storage_2: SET(S_surfxml_storage_2); break;
9664    case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
9665    case S_surfxml_zone: case S_surfxml_zone_2: case S_surfxml_zone_3: SET(S_surfxml_zone_3); break;
9666   }
9667  }
9668         YY_BREAK
9669 case 449:
9670 /* rule 449 can match eol */
9671 YY_RULE_SETUP
9672 FAIL("Unexpected end-tag `%s': `</prop>' expected.",yytext);
9673         YY_BREAK
9674 case 450:
9675 YY_RULE_SETUP
9676 FAIL("Unexpected character `%c': `</prop>' expected.",yytext[0]);
9677         YY_BREAK
9678 case YY_STATE_EOF(E_surfxml_prop):
9679 FAIL("Premature EOF: `</prop>' expected.");
9680         YY_BREAK
9681
9682 case 451:
9683 /* rule 451 can match eol */
9684 YY_RULE_SETUP
9685 FAIL("Starting tag <random> is not allowed here.");
9686         YY_BREAK
9687 case 452:
9688 /* rule 452 can match eol */
9689 YY_RULE_SETUP
9690 {
9691   AX_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
9692   surfxml_random_generator_isset = 0;
9693   AX_surfxml_random_id = 0;
9694   surfxml_random_id_isset = 0;
9695   AX_surfxml_random_max = 0;
9696   surfxml_random_max_isset = 0;
9697   AX_surfxml_random_mean = 0;
9698   surfxml_random_mean_isset = 0;
9699   AX_surfxml_random_min = 0;
9700   surfxml_random_min_isset = 0;
9701   AX_surfxml_random_radical = 0;
9702   surfxml_random_radical_isset = 0;
9703   AX_surfxml_random_seed = 5;
9704   surfxml_random_seed_isset = 0;
9705   AX_surfxml_random_std___deviation = 0;
9706   surfxml_random_std___deviation_isset = 0;
9707   ENTER(AL_surfxml_random); pushbuffer(0);
9708   }
9709         YY_BREAK
9710
9711 case 453:
9712 /* rule 453 can match eol */
9713 case 454:
9714 /* rule 454 can match eol */
9715 YY_RULE_SETUP
9716 A_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
9717         YY_BREAK
9718 case 455:
9719 /* rule 455 can match eol */
9720 case 456:
9721 /* rule 456 can match eol */
9722 YY_RULE_SETUP
9723 A_surfxml_random_generator = A_surfxml_random_generator_RAND;
9724         YY_BREAK
9725 case 457:
9726 /* rule 457 can match eol */
9727 case 458:
9728 /* rule 458 can match eol */
9729 YY_RULE_SETUP
9730 A_surfxml_random_generator = A_surfxml_random_generator_RNGSTREAM;
9731         YY_BREAK
9732 case 459:
9733 /* rule 459 can match eol */
9734 case 460:
9735 /* rule 460 can match eol */
9736 YY_RULE_SETUP
9737 A_surfxml_random_generator = A_surfxml_random_generator_NONE;
9738         YY_BREAK
9739 case 461:
9740 /* rule 461 can match eol */
9741 YY_RULE_SETUP
9742 if (surfxml_random_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_random>");} surfxml_random_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_id);
9743         YY_BREAK
9744 case 462:
9745 /* rule 462 can match eol */
9746 YY_RULE_SETUP
9747 if (surfxml_random_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_random>");}  surfxml_random_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_id);
9748         YY_BREAK
9749 case 463:
9750 /* rule 463 can match eol */
9751 YY_RULE_SETUP
9752 if (surfxml_random_max_isset != 0) {FAIL("Multiple definition of attribute max in <surfxml_random>");} surfxml_random_max_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_max);
9753         YY_BREAK
9754 case 464:
9755 /* rule 464 can match eol */
9756 YY_RULE_SETUP
9757 if (surfxml_random_max_isset != 0) {FAIL("Multiple definition of attribute max in <surfxml_random>");}  surfxml_random_max_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_max);
9758         YY_BREAK
9759 case 465:
9760 /* rule 465 can match eol */
9761 YY_RULE_SETUP
9762 if (surfxml_random_mean_isset != 0) {FAIL("Multiple definition of attribute mean in <surfxml_random>");} surfxml_random_mean_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_mean);
9763         YY_BREAK
9764 case 466:
9765 /* rule 466 can match eol */
9766 YY_RULE_SETUP
9767 if (surfxml_random_mean_isset != 0) {FAIL("Multiple definition of attribute mean in <surfxml_random>");}  surfxml_random_mean_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_mean);
9768         YY_BREAK
9769 case 467:
9770 /* rule 467 can match eol */
9771 YY_RULE_SETUP
9772 if (surfxml_random_min_isset != 0) {FAIL("Multiple definition of attribute min in <surfxml_random>");} surfxml_random_min_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_min);
9773         YY_BREAK
9774 case 468:
9775 /* rule 468 can match eol */
9776 YY_RULE_SETUP
9777 if (surfxml_random_min_isset != 0) {FAIL("Multiple definition of attribute min in <surfxml_random>");}  surfxml_random_min_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_min);
9778         YY_BREAK
9779 case 469:
9780 /* rule 469 can match eol */
9781 YY_RULE_SETUP
9782 if (surfxml_random_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_random>");} surfxml_random_radical_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_radical);
9783         YY_BREAK
9784 case 470:
9785 /* rule 470 can match eol */
9786 YY_RULE_SETUP
9787 if (surfxml_random_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_random>");}  surfxml_random_radical_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_radical);
9788         YY_BREAK
9789 case 471:
9790 /* rule 471 can match eol */
9791 YY_RULE_SETUP
9792 if (surfxml_random_seed_isset != 0) {FAIL("Multiple definition of attribute seed in <surfxml_random>");} surfxml_random_seed_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_seed);
9793         YY_BREAK
9794 case 472:
9795 /* rule 472 can match eol */
9796 YY_RULE_SETUP
9797 if (surfxml_random_seed_isset != 0) {FAIL("Multiple definition of attribute seed in <surfxml_random>");}  surfxml_random_seed_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_seed);
9798         YY_BREAK
9799 case 473:
9800 /* rule 473 can match eol */
9801 YY_RULE_SETUP
9802 if (surfxml_random_std___deviation_isset != 0) {FAIL("Multiple definition of attribute std_deviation in <surfxml_random>");} surfxml_random_std___deviation_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_std___deviation);
9803         YY_BREAK
9804 case 474:
9805 /* rule 474 can match eol */
9806 YY_RULE_SETUP
9807 if (surfxml_random_std___deviation_isset != 0) {FAIL("Multiple definition of attribute std_deviation in <surfxml_random>");}  surfxml_random_std___deviation_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_std___deviation);
9808         YY_BREAK
9809 case 475:
9810 YY_RULE_SETUP
9811 {
9812   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
9813   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
9814   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
9815   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
9816   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
9817   LEAVE; STag_surfxml_random();surfxml_pcdata_ix = 0; ENTER(E_surfxml_random);
9818  }
9819         YY_BREAK
9820 case 476:
9821 YY_RULE_SETUP
9822 {
9823   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
9824   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
9825   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
9826   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
9827   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
9828   LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */
9829   switch (YY_START) {
9830    case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
9831   }
9832  }
9833         YY_BREAK
9834 case 477:
9835 YY_RULE_SETUP
9836 FAIL("Unexpected character `%c' in attribute list of random element.", yytext[0]);
9837         YY_BREAK
9838 case 478:
9839 YY_RULE_SETUP
9840 FAIL("Bad attribute `%s' in `random' element start tag.",yytext);
9841         YY_BREAK
9842 case YY_STATE_EOF(AL_surfxml_random):
9843 FAIL("EOF in attribute list of `random' element.");
9844         YY_BREAK
9845
9846 case 479:
9847 /* rule 479 can match eol */
9848 YY_RULE_SETUP
9849 {
9850   LEAVE;
9851   ETag_surfxml_random();
9852   popbuffer(); /* attribute */
9853   switch (YY_START) {
9854    case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
9855   }
9856  }
9857         YY_BREAK
9858 case 480:
9859 /* rule 480 can match eol */
9860 YY_RULE_SETUP
9861 FAIL("Unexpected end-tag `%s': `</random>' expected.",yytext);
9862         YY_BREAK
9863 case 481:
9864 YY_RULE_SETUP
9865 FAIL("Unexpected character `%c': `</random>' expected.",yytext[0]);
9866         YY_BREAK
9867 case YY_STATE_EOF(E_surfxml_random):
9868 FAIL("Premature EOF: `</random>' expected.");
9869         YY_BREAK
9870
9871 case 482:
9872 /* rule 482 can match eol */
9873 YY_RULE_SETUP
9874 FAIL("Starting tag <route> is not allowed here.");
9875         YY_BREAK
9876 case 483:
9877 /* rule 483 can match eol */
9878 YY_RULE_SETUP
9879 {
9880   AX_surfxml_route_dst = 0;
9881   surfxml_route_dst_isset = 0;
9882   AX_surfxml_route_src = 0;
9883   surfxml_route_src_isset = 0;
9884   AX_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
9885   surfxml_route_symmetrical_isset = 0;
9886   ENTER(AL_surfxml_route); pushbuffer(0);
9887   }
9888         YY_BREAK
9889
9890 case 484:
9891 /* rule 484 can match eol */
9892 YY_RULE_SETUP
9893 if (surfxml_route_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_route>");} surfxml_route_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_route_dst);
9894         YY_BREAK
9895 case 485:
9896 /* rule 485 can match eol */
9897 YY_RULE_SETUP
9898 if (surfxml_route_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_route>");}  surfxml_route_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_route_dst);
9899         YY_BREAK
9900 case 486:
9901 /* rule 486 can match eol */
9902 YY_RULE_SETUP
9903 if (surfxml_route_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_route>");} surfxml_route_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_route_src);
9904         YY_BREAK
9905 case 487:
9906 /* rule 487 can match eol */
9907 YY_RULE_SETUP
9908 if (surfxml_route_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_route>");}  surfxml_route_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_route_src);
9909         YY_BREAK
9910 case 488:
9911 /* rule 488 can match eol */
9912 case 489:
9913 /* rule 489 can match eol */
9914 YY_RULE_SETUP
9915 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
9916         YY_BREAK
9917 case 490:
9918 /* rule 490 can match eol */
9919 case 491:
9920 /* rule 491 can match eol */
9921 YY_RULE_SETUP
9922 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_NO;
9923         YY_BREAK
9924 case 492:
9925 /* rule 492 can match eol */
9926 case 493:
9927 /* rule 493 can match eol */
9928 YY_RULE_SETUP
9929 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_yes;
9930         YY_BREAK
9931 case 494:
9932 /* rule 494 can match eol */
9933 case 495:
9934 /* rule 495 can match eol */
9935 YY_RULE_SETUP
9936 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_no;
9937         YY_BREAK
9938 case 496:
9939 YY_RULE_SETUP
9940 {
9941   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
9942   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
9943   LEAVE; STag_surfxml_route();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route);
9944  }
9945         YY_BREAK
9946 case 497:
9947 YY_RULE_SETUP
9948 {
9949   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
9950   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
9951   LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */
9952   switch (YY_START) {
9953    case S_surfxml_AS: case S_surfxml_AS_12: case S_surfxml_AS_14: case S_surfxml_AS_15: case S_surfxml_AS_16: case S_surfxml_AS_1: case S_surfxml_AS_3: SET(S_surfxml_AS_16); break;
9954    case S_surfxml_zone: case S_surfxml_zone_12: case S_surfxml_zone_14: case S_surfxml_zone_15: case S_surfxml_zone_16: case S_surfxml_zone_1: case S_surfxml_zone_3: SET(S_surfxml_zone_16); break;
9955   }
9956  }
9957         YY_BREAK
9958 case 498:
9959 YY_RULE_SETUP
9960 FAIL("Unexpected character `%c' in attribute list of route element.", yytext[0]);
9961         YY_BREAK
9962 case 499:
9963 YY_RULE_SETUP
9964 FAIL("Bad attribute `%s' in `route' element start tag.",yytext);
9965         YY_BREAK
9966 case YY_STATE_EOF(AL_surfxml_route):
9967 FAIL("EOF in attribute list of `route' element.");
9968         YY_BREAK
9969
9970 case 500:
9971 /* rule 500 can match eol */
9972 YY_RULE_SETUP
9973 {
9974   LEAVE;
9975   ETag_surfxml_route();
9976   popbuffer(); /* attribute */
9977   switch (YY_START) {
9978    case S_surfxml_AS: case S_surfxml_AS_12: case S_surfxml_AS_14: case S_surfxml_AS_15: case S_surfxml_AS_16: case S_surfxml_AS_1: case S_surfxml_AS_3: SET(S_surfxml_AS_16); break;
9979    case S_surfxml_zone: case S_surfxml_zone_12: case S_surfxml_zone_14: case S_surfxml_zone_15: case S_surfxml_zone_16: case S_surfxml_zone_1: case S_surfxml_zone_3: SET(S_surfxml_zone_16); break;
9980   }
9981  }
9982         YY_BREAK
9983 case 501:
9984 /* rule 501 can match eol */
9985 YY_RULE_SETUP
9986 FAIL("Unexpected end-tag `%s': `</route>' expected.",yytext);
9987         YY_BREAK
9988 case 502:
9989 YY_RULE_SETUP
9990 FAIL("Unexpected character `%c': `</route>' expected.",yytext[0]);
9991         YY_BREAK
9992 case YY_STATE_EOF(E_surfxml_route):
9993 case YY_STATE_EOF(S_surfxml_route):
9994 case YY_STATE_EOF(S_surfxml_route_2):
9995 FAIL("Premature EOF: `</route>' expected.");
9996         YY_BREAK
9997
9998 case 503:
9999 /* rule 503 can match eol */
10000 YY_RULE_SETUP
10001 FAIL("Starting tag <router> is not allowed here.");
10002         YY_BREAK
10003 case 504:
10004 /* rule 504 can match eol */
10005 YY_RULE_SETUP
10006 {
10007   AX_surfxml_router_coordinates = 0;
10008   surfxml_router_coordinates_isset = 0;
10009   AX_surfxml_router_id = 0;
10010   surfxml_router_id_isset = 0;
10011   ENTER(AL_surfxml_router); pushbuffer(0);
10012   }
10013         YY_BREAK
10014
10015 case 505:
10016 /* rule 505 can match eol */
10017 YY_RULE_SETUP
10018 if (surfxml_router_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_router>");} surfxml_router_coordinates_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_router_coordinates);
10019         YY_BREAK
10020 case 506:
10021 /* rule 506 can match eol */
10022 YY_RULE_SETUP
10023 if (surfxml_router_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_router>");}  surfxml_router_coordinates_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_router_coordinates);
10024         YY_BREAK
10025 case 507:
10026 /* rule 507 can match eol */
10027 YY_RULE_SETUP
10028 if (surfxml_router_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_router>");} surfxml_router_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_router_id);
10029         YY_BREAK
10030 case 508:
10031 /* rule 508 can match eol */
10032 YY_RULE_SETUP
10033 if (surfxml_router_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_router>");}  surfxml_router_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_router_id);
10034         YY_BREAK
10035 case 509:
10036 YY_RULE_SETUP
10037 {
10038   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
10039   LEAVE; STag_surfxml_router();surfxml_pcdata_ix = 0; ENTER(E_surfxml_router);
10040  }
10041         YY_BREAK
10042 case 510:
10043 YY_RULE_SETUP
10044 {
10045   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
10046   LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */
10047   switch (YY_START) {
10048    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
10049    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: case S_surfxml_zone_1: case S_surfxml_zone_3: SET(S_surfxml_zone_14); break;
10050   }
10051  }
10052         YY_BREAK
10053 case 511:
10054 YY_RULE_SETUP
10055 FAIL("Unexpected character `%c' in attribute list of router element.", yytext[0]);
10056         YY_BREAK
10057 case 512:
10058 YY_RULE_SETUP
10059 FAIL("Bad attribute `%s' in `router' element start tag.",yytext);
10060         YY_BREAK
10061 case YY_STATE_EOF(AL_surfxml_router):
10062 FAIL("EOF in attribute list of `router' element.");
10063         YY_BREAK
10064
10065 case 513:
10066 /* rule 513 can match eol */
10067 YY_RULE_SETUP
10068 {
10069   LEAVE;
10070   ETag_surfxml_router();
10071   popbuffer(); /* attribute */
10072   switch (YY_START) {
10073    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
10074    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: case S_surfxml_zone_1: case S_surfxml_zone_3: SET(S_surfxml_zone_14); break;
10075   }
10076  }
10077         YY_BREAK
10078 case 514:
10079 /* rule 514 can match eol */
10080 YY_RULE_SETUP
10081 FAIL("Unexpected end-tag `%s': `</router>' expected.",yytext);
10082         YY_BREAK
10083 case 515:
10084 YY_RULE_SETUP
10085 FAIL("Unexpected character `%c': `</router>' expected.",yytext[0]);
10086         YY_BREAK
10087 case YY_STATE_EOF(E_surfxml_router):
10088 FAIL("Premature EOF: `</router>' expected.");
10089         YY_BREAK
10090
10091 case 516:
10092 /* rule 516 can match eol */
10093 YY_RULE_SETUP
10094 FAIL("Starting tag <storage> is not allowed here.");
10095         YY_BREAK
10096 case 517:
10097 /* rule 517 can match eol */
10098 YY_RULE_SETUP
10099 {
10100   AX_surfxml_storage_attach = 0;
10101   surfxml_storage_attach_isset = 0;
10102   AX_surfxml_storage_content = 0;
10103   surfxml_storage_content_isset = 0;
10104   AX_surfxml_storage_id = 0;
10105   surfxml_storage_id_isset = 0;
10106   AX_surfxml_storage_typeId = 0;
10107   surfxml_storage_typeId_isset = 0;
10108   ENTER(AL_surfxml_storage); pushbuffer(0);
10109   }
10110         YY_BREAK
10111
10112 case 518:
10113 /* rule 518 can match eol */
10114 YY_RULE_SETUP
10115 if (surfxml_storage_attach_isset != 0) {FAIL("Multiple definition of attribute attach in <surfxml_storage>");} surfxml_storage_attach_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_attach);
10116         YY_BREAK
10117 case 519:
10118 /* rule 519 can match eol */
10119 YY_RULE_SETUP
10120 if (surfxml_storage_attach_isset != 0) {FAIL("Multiple definition of attribute attach in <surfxml_storage>");}  surfxml_storage_attach_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_attach);
10121         YY_BREAK
10122 case 520:
10123 /* rule 520 can match eol */
10124 YY_RULE_SETUP
10125 if (surfxml_storage_content_isset != 0) {FAIL("Multiple definition of attribute content in <surfxml_storage>");} surfxml_storage_content_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_content);
10126         YY_BREAK
10127 case 521:
10128 /* rule 521 can match eol */
10129 YY_RULE_SETUP
10130 if (surfxml_storage_content_isset != 0) {FAIL("Multiple definition of attribute content in <surfxml_storage>");}  surfxml_storage_content_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_content);
10131         YY_BREAK
10132 case 522:
10133 /* rule 522 can match eol */
10134 YY_RULE_SETUP
10135 if (surfxml_storage_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_storage>");} surfxml_storage_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_id);
10136         YY_BREAK
10137 case 523:
10138 /* rule 523 can match eol */
10139 YY_RULE_SETUP
10140 if (surfxml_storage_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_storage>");}  surfxml_storage_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_id);
10141         YY_BREAK
10142 case 524:
10143 /* rule 524 can match eol */
10144 YY_RULE_SETUP
10145 if (surfxml_storage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_storage>");} surfxml_storage_typeId_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_typeId);
10146         YY_BREAK
10147 case 525:
10148 /* rule 525 can match eol */
10149 YY_RULE_SETUP
10150 if (surfxml_storage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_storage>");}  surfxml_storage_typeId_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_typeId);
10151         YY_BREAK
10152 case 526:
10153 YY_RULE_SETUP
10154 {
10155   if (!AX_surfxml_storage_attach) FAIL("Required attribute `attach' not set for `storage' element.");
10156   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
10157   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
10158   LEAVE; STag_surfxml_storage();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage);
10159  }
10160         YY_BREAK
10161 case 527:
10162 YY_RULE_SETUP
10163 {
10164   if (!AX_surfxml_storage_attach) FAIL("Required attribute `attach' not set for `storage' element.");
10165   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
10166   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
10167   LEAVE; STag_surfxml_storage(); surfxml_pcdata_ix = 0; ETag_surfxml_storage(); popbuffer(); /* attribute */
10168   switch (YY_START) {
10169    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
10170    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: case S_surfxml_zone_1: case S_surfxml_zone_3: SET(S_surfxml_zone_14); break;
10171   }
10172  }
10173         YY_BREAK
10174 case 528:
10175 YY_RULE_SETUP
10176 FAIL("Unexpected character `%c' in attribute list of storage element.", yytext[0]);
10177         YY_BREAK
10178 case 529:
10179 YY_RULE_SETUP
10180 FAIL("Bad attribute `%s' in `storage' element start tag.",yytext);
10181         YY_BREAK
10182 case YY_STATE_EOF(AL_surfxml_storage):
10183 FAIL("EOF in attribute list of `storage' element.");
10184         YY_BREAK
10185
10186 case 530:
10187 /* rule 530 can match eol */
10188 YY_RULE_SETUP
10189 {
10190   LEAVE;
10191   ETag_surfxml_storage();
10192   popbuffer(); /* attribute */
10193   switch (YY_START) {
10194    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
10195    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: case S_surfxml_zone_1: case S_surfxml_zone_3: SET(S_surfxml_zone_14); break;
10196   }
10197  }
10198         YY_BREAK
10199 case 531:
10200 /* rule 531 can match eol */
10201 YY_RULE_SETUP
10202 FAIL("Unexpected end-tag `%s': `</storage>' expected.",yytext);
10203         YY_BREAK
10204 case 532:
10205 YY_RULE_SETUP
10206 FAIL("Unexpected character `%c': `</storage>' expected.",yytext[0]);
10207         YY_BREAK
10208 case YY_STATE_EOF(E_surfxml_storage):
10209 case YY_STATE_EOF(S_surfxml_storage):
10210 case YY_STATE_EOF(S_surfxml_storage_2):
10211 FAIL("Premature EOF: `</storage>' expected.");
10212         YY_BREAK
10213
10214 case 533:
10215 /* rule 533 can match eol */
10216 YY_RULE_SETUP
10217 FAIL("Starting tag <storage_type> is not allowed here.");
10218         YY_BREAK
10219 case 534:
10220 /* rule 534 can match eol */
10221 YY_RULE_SETUP
10222 {
10223   AX_surfxml_storage___type_content = 0;
10224   surfxml_storage___type_content_isset = 0;
10225   AX_surfxml_storage___type_id = 0;
10226   surfxml_storage___type_id_isset = 0;
10227   AX_surfxml_storage___type_model = 16;
10228   surfxml_storage___type_model_isset = 0;
10229   AX_surfxml_storage___type_size = 0;
10230   surfxml_storage___type_size_isset = 0;
10231   ENTER(AL_surfxml_storage___type); pushbuffer(0);
10232   }
10233         YY_BREAK
10234
10235 case 535:
10236 /* rule 535 can match eol */
10237 YY_RULE_SETUP
10238 if (surfxml_storage___type_content_isset != 0) {FAIL("Multiple definition of attribute content in <surfxml_storage___type>");} surfxml_storage___type_content_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage___type_content);
10239         YY_BREAK
10240 case 536:
10241 /* rule 536 can match eol */
10242 YY_RULE_SETUP
10243 if (surfxml_storage___type_content_isset != 0) {FAIL("Multiple definition of attribute content in <surfxml_storage___type>");}  surfxml_storage___type_content_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage___type_content);
10244         YY_BREAK
10245 case 537:
10246 /* rule 537 can match eol */
10247 YY_RULE_SETUP
10248 if (surfxml_storage___type_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_storage___type>");} surfxml_storage___type_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage___type_id);
10249         YY_BREAK
10250 case 538:
10251 /* rule 538 can match eol */
10252 YY_RULE_SETUP
10253 if (surfxml_storage___type_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_storage___type>");}  surfxml_storage___type_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage___type_id);
10254         YY_BREAK
10255 case 539:
10256 /* rule 539 can match eol */
10257 YY_RULE_SETUP
10258 if (surfxml_storage___type_model_isset != 0) {FAIL("Multiple definition of attribute model in <surfxml_storage___type>");} surfxml_storage___type_model_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage___type_model);
10259         YY_BREAK
10260 case 540:
10261 /* rule 540 can match eol */
10262 YY_RULE_SETUP
10263 if (surfxml_storage___type_model_isset != 0) {FAIL("Multiple definition of attribute model in <surfxml_storage___type>");}  surfxml_storage___type_model_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage___type_model);
10264         YY_BREAK
10265 case 541:
10266 /* rule 541 can match eol */
10267 YY_RULE_SETUP
10268 if (surfxml_storage___type_size_isset != 0) {FAIL("Multiple definition of attribute size in <surfxml_storage___type>");} surfxml_storage___type_size_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage___type_size);
10269         YY_BREAK
10270 case 542:
10271 /* rule 542 can match eol */
10272 YY_RULE_SETUP
10273 if (surfxml_storage___type_size_isset != 0) {FAIL("Multiple definition of attribute size in <surfxml_storage___type>");}  surfxml_storage___type_size_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage___type_size);
10274         YY_BREAK
10275 case 543:
10276 YY_RULE_SETUP
10277 {
10278   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
10279   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
10280   LEAVE; STag_surfxml_storage___type();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage___type);
10281  }
10282         YY_BREAK
10283 case 544:
10284 YY_RULE_SETUP
10285 {
10286   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
10287   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
10288   LEAVE; STag_surfxml_storage___type(); surfxml_pcdata_ix = 0; ETag_surfxml_storage___type(); popbuffer(); /* attribute */
10289   switch (YY_START) {
10290    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
10291    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: case S_surfxml_zone_1: case S_surfxml_zone_3: SET(S_surfxml_zone_14); break;
10292   }
10293  }
10294         YY_BREAK
10295 case 545:
10296 YY_RULE_SETUP
10297 FAIL("Unexpected character `%c' in attribute list of storage_type element.", yytext[0]);
10298         YY_BREAK
10299 case 546:
10300 YY_RULE_SETUP
10301 FAIL("Bad attribute `%s' in `storage_type' element start tag.",yytext);
10302         YY_BREAK
10303 case YY_STATE_EOF(AL_surfxml_storage___type):
10304 FAIL("EOF in attribute list of `storage_type' element.");
10305         YY_BREAK
10306
10307 case 547:
10308 /* rule 547 can match eol */
10309 YY_RULE_SETUP
10310 {
10311   LEAVE;
10312   ETag_surfxml_storage___type();
10313   popbuffer(); /* attribute */
10314   switch (YY_START) {
10315    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
10316    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: case S_surfxml_zone_1: case S_surfxml_zone_3: SET(S_surfxml_zone_14); break;
10317   }
10318  }
10319         YY_BREAK
10320 case 548:
10321 /* rule 548 can match eol */
10322 YY_RULE_SETUP
10323 FAIL("Unexpected end-tag `%s': `</storage_type>' expected.",yytext);
10324         YY_BREAK
10325 case 549:
10326 YY_RULE_SETUP
10327 FAIL("Unexpected character `%c': `</storage_type>' expected.",yytext[0]);
10328         YY_BREAK
10329 case YY_STATE_EOF(E_surfxml_storage___type):
10330 case YY_STATE_EOF(S_surfxml_storage___type):
10331 case YY_STATE_EOF(S_surfxml_storage___type_2):
10332 FAIL("Premature EOF: `</storage_type>' expected.");
10333         YY_BREAK
10334
10335 case 550:
10336 /* rule 550 can match eol */
10337 YY_RULE_SETUP
10338 FAIL("Starting tag <trace> is not allowed here.");
10339         YY_BREAK
10340 case 551:
10341 /* rule 551 can match eol */
10342 YY_RULE_SETUP
10343 {
10344   AX_surfxml_trace_file = 0;
10345   surfxml_trace_file_isset = 0;
10346   AX_surfxml_trace_id = 0;
10347   surfxml_trace_id_isset = 0;
10348   AX_surfxml_trace_periodicity = 0;
10349   surfxml_trace_periodicity_isset = 0;
10350   ENTER(AL_surfxml_trace); pushbuffer(0);
10351   }
10352         YY_BREAK
10353
10354 case 552:
10355 /* rule 552 can match eol */
10356 YY_RULE_SETUP
10357 if (surfxml_trace_file_isset != 0) {FAIL("Multiple definition of attribute file in <surfxml_trace>");} surfxml_trace_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_file);
10358         YY_BREAK
10359 case 553:
10360 /* rule 553 can match eol */
10361 YY_RULE_SETUP
10362 if (surfxml_trace_file_isset != 0) {FAIL("Multiple definition of attribute file in <surfxml_trace>");}  surfxml_trace_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_file);
10363         YY_BREAK
10364 case 554:
10365 /* rule 554 can match eol */
10366 YY_RULE_SETUP
10367 if (surfxml_trace_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_trace>");} surfxml_trace_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_id);
10368         YY_BREAK
10369 case 555:
10370 /* rule 555 can match eol */
10371 YY_RULE_SETUP
10372 if (surfxml_trace_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_trace>");}  surfxml_trace_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_id);
10373         YY_BREAK
10374 case 556:
10375 /* rule 556 can match eol */
10376 YY_RULE_SETUP
10377 if (surfxml_trace_periodicity_isset != 0) {FAIL("Multiple definition of attribute periodicity in <surfxml_trace>");} surfxml_trace_periodicity_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_periodicity);
10378         YY_BREAK
10379 case 557:
10380 /* rule 557 can match eol */
10381 YY_RULE_SETUP
10382 if (surfxml_trace_periodicity_isset != 0) {FAIL("Multiple definition of attribute periodicity in <surfxml_trace>");}  surfxml_trace_periodicity_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_periodicity);
10383         YY_BREAK
10384 case 558:
10385 YY_RULE_SETUP
10386 {
10387   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
10388   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
10389   LEAVE; STag_surfxml_trace();pushbuffer(surfxml_pcdata_ix); BUFFERSET(surfxml_pcdata_ix);; ENTER(IN_trace);
10390  }
10391         YY_BREAK
10392 case 559:
10393 YY_RULE_SETUP
10394 {
10395   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
10396   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
10397   LEAVE; STag_surfxml_trace(); surfxml_pcdata_ix = 0; ETag_surfxml_trace(); popbuffer(); /* attribute */
10398   switch (YY_START) {
10399    case S_surfxml_AS_10: case S_surfxml_AS_11: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
10400    case S_surfxml_AS_13: case S_surfxml_AS_1: SET(S_surfxml_AS_14); break;
10401    case S_surfxml_AS: case S_surfxml_AS_12: case S_surfxml_AS_14: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
10402    case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
10403    case S_surfxml_AS_4: case S_surfxml_AS_8: case S_surfxml_AS_9: SET(S_surfxml_AS_9); break;
10404    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
10405    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
10406    case S_surfxml_zone: case S_surfxml_zone_10: case S_surfxml_zone_11: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_4: case S_surfxml_zone_7: SET(S_surfxml_zone_11); break;
10407    case S_surfxml_zone_13: case S_surfxml_zone_14: SET(S_surfxml_zone_14); break;
10408    case S_surfxml_zone_12: case S_surfxml_zone_15: case S_surfxml_zone_16: SET(S_surfxml_zone_16); break;
10409    case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
10410    case S_surfxml_zone_8: case S_surfxml_zone_9: SET(S_surfxml_zone_9); break;
10411   }
10412  }
10413         YY_BREAK
10414 case 560:
10415 YY_RULE_SETUP
10416 FAIL("Unexpected character `%c' in attribute list of trace element.", yytext[0]);
10417         YY_BREAK
10418 case 561:
10419 YY_RULE_SETUP
10420 FAIL("Bad attribute `%s' in `trace' element start tag.",yytext);
10421         YY_BREAK
10422 case YY_STATE_EOF(AL_surfxml_trace):
10423 FAIL("EOF in attribute list of `trace' element.");
10424         YY_BREAK
10425
10426 case 562:
10427 /* rule 562 can match eol */
10428 YY_RULE_SETUP
10429 {
10430   LEAVE;
10431   BUFFERDONE;
10432   ETag_surfxml_trace();
10433   surfxml_pcdata_ix = popbuffer();
10434   popbuffer(); /* attribute */
10435   switch (YY_START) {
10436    case S_surfxml_AS_10: case S_surfxml_AS_11: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
10437    case S_surfxml_AS_13: case S_surfxml_AS_1: SET(S_surfxml_AS_14); break;
10438    case S_surfxml_AS: case S_surfxml_AS_12: case S_surfxml_AS_14: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
10439    case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
10440    case S_surfxml_AS_4: case S_surfxml_AS_8: case S_surfxml_AS_9: SET(S_surfxml_AS_9); break;
10441    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
10442    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
10443    case S_surfxml_zone: case S_surfxml_zone_10: case S_surfxml_zone_11: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_4: case S_surfxml_zone_7: SET(S_surfxml_zone_11); break;
10444    case S_surfxml_zone_13: case S_surfxml_zone_14: SET(S_surfxml_zone_14); break;
10445    case S_surfxml_zone_12: case S_surfxml_zone_15: case S_surfxml_zone_16: SET(S_surfxml_zone_16); break;
10446    case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
10447    case S_surfxml_zone_8: case S_surfxml_zone_9: SET(S_surfxml_zone_9); break;
10448   }
10449  }
10450         YY_BREAK
10451 case 563:
10452 /* rule 563 can match eol */
10453 YY_RULE_SETUP
10454 FAIL("Unexpected end-tag `%s': `</trace>' expected.",yytext);
10455         YY_BREAK
10456 case YY_STATE_EOF(IN_trace):
10457 FAIL("Premature EOF: `</trace>' expected.");
10458         YY_BREAK
10459
10460 case 564:
10461 /* rule 564 can match eol */
10462 YY_RULE_SETUP
10463 FAIL("Starting tag <trace_connect> is not allowed here.");
10464         YY_BREAK
10465 case 565:
10466 /* rule 565 can match eol */
10467 YY_RULE_SETUP
10468 {
10469   AX_surfxml_trace___connect_element = 0;
10470   surfxml_trace___connect_element_isset = 0;
10471   AX_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
10472   surfxml_trace___connect_kind_isset = 0;
10473   AX_surfxml_trace___connect_trace = 0;
10474   surfxml_trace___connect_trace_isset = 0;
10475   ENTER(AL_surfxml_trace___connect); pushbuffer(0);
10476   }
10477         YY_BREAK
10478
10479 case 566:
10480 /* rule 566 can match eol */
10481 YY_RULE_SETUP
10482 if (surfxml_trace___connect_element_isset != 0) {FAIL("Multiple definition of attribute element in <surfxml_trace___connect>");} surfxml_trace___connect_element_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace___connect_element);
10483         YY_BREAK
10484 case 567:
10485 /* rule 567 can match eol */
10486 YY_RULE_SETUP
10487 if (surfxml_trace___connect_element_isset != 0) {FAIL("Multiple definition of attribute element in <surfxml_trace___connect>");}  surfxml_trace___connect_element_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace___connect_element);
10488         YY_BREAK
10489 case 568:
10490 /* rule 568 can match eol */
10491 case 569:
10492 /* rule 569 can match eol */
10493 YY_RULE_SETUP
10494 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
10495         YY_BREAK
10496 case 570:
10497 /* rule 570 can match eol */
10498 case 571:
10499 /* rule 571 can match eol */
10500 YY_RULE_SETUP
10501 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_SPEED;
10502         YY_BREAK
10503 case 572:
10504 /* rule 572 can match eol */
10505 case 573:
10506 /* rule 573 can match eol */
10507 YY_RULE_SETUP
10508 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LINK___AVAIL;
10509         YY_BREAK
10510 case 574:
10511 /* rule 574 can match eol */
10512 case 575:
10513 /* rule 575 can match eol */
10514 YY_RULE_SETUP
10515 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_BANDWIDTH;
10516         YY_BREAK
10517 case 576:
10518 /* rule 576 can match eol */
10519 case 577:
10520 /* rule 577 can match eol */
10521 YY_RULE_SETUP
10522 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LATENCY;
10523         YY_BREAK
10524 case 578:
10525 /* rule 578 can match eol */
10526 YY_RULE_SETUP
10527 if (surfxml_trace___connect_trace_isset != 0) {FAIL("Multiple definition of attribute trace in <surfxml_trace___connect>");} surfxml_trace___connect_trace_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace___connect_trace);
10528         YY_BREAK
10529 case 579:
10530 /* rule 579 can match eol */
10531 YY_RULE_SETUP
10532 if (surfxml_trace___connect_trace_isset != 0) {FAIL("Multiple definition of attribute trace in <surfxml_trace___connect>");}  surfxml_trace___connect_trace_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace___connect_trace);
10533         YY_BREAK
10534 case 580:
10535 YY_RULE_SETUP
10536 {
10537   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
10538   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
10539   LEAVE; STag_surfxml_trace___connect();surfxml_pcdata_ix = 0; ENTER(E_surfxml_trace___connect);
10540  }
10541         YY_BREAK
10542 case 581:
10543 YY_RULE_SETUP
10544 {
10545   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
10546   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
10547   LEAVE; STag_surfxml_trace___connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace___connect(); popbuffer(); /* attribute */
10548   switch (YY_START) {
10549    case S_surfxml_AS_10: case S_surfxml_AS_11: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
10550    case S_surfxml_AS_13: case S_surfxml_AS_1: SET(S_surfxml_AS_14); break;
10551    case S_surfxml_AS: case S_surfxml_AS_12: case S_surfxml_AS_14: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
10552    case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
10553    case S_surfxml_AS_4: case S_surfxml_AS_8: case S_surfxml_AS_9: SET(S_surfxml_AS_9); break;
10554    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
10555    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
10556    case S_surfxml_zone: case S_surfxml_zone_10: case S_surfxml_zone_11: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_4: case S_surfxml_zone_7: SET(S_surfxml_zone_11); break;
10557    case S_surfxml_zone_13: case S_surfxml_zone_14: SET(S_surfxml_zone_14); break;
10558    case S_surfxml_zone_12: case S_surfxml_zone_15: case S_surfxml_zone_16: SET(S_surfxml_zone_16); break;
10559    case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
10560    case S_surfxml_zone_8: case S_surfxml_zone_9: SET(S_surfxml_zone_9); break;
10561   }
10562  }
10563         YY_BREAK
10564 case 582:
10565 YY_RULE_SETUP
10566 FAIL("Unexpected character `%c' in attribute list of trace_connect element.", yytext[0]);
10567         YY_BREAK
10568 case 583:
10569 YY_RULE_SETUP
10570 FAIL("Bad attribute `%s' in `trace_connect' element start tag.",yytext);
10571         YY_BREAK
10572 case YY_STATE_EOF(AL_surfxml_trace___connect):
10573 FAIL("EOF in attribute list of `trace_connect' element.");
10574         YY_BREAK
10575
10576 case 584:
10577 /* rule 584 can match eol */
10578 YY_RULE_SETUP
10579 {
10580   LEAVE;
10581   ETag_surfxml_trace___connect();
10582   popbuffer(); /* attribute */
10583   switch (YY_START) {
10584    case S_surfxml_AS_10: case S_surfxml_AS_11: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
10585    case S_surfxml_AS_13: case S_surfxml_AS_1: SET(S_surfxml_AS_14); break;
10586    case S_surfxml_AS: case S_surfxml_AS_12: case S_surfxml_AS_14: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
10587    case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
10588    case S_surfxml_AS_4: case S_surfxml_AS_8: case S_surfxml_AS_9: SET(S_surfxml_AS_9); break;
10589    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
10590    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
10591    case S_surfxml_zone: case S_surfxml_zone_10: case S_surfxml_zone_11: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_4: case S_surfxml_zone_7: SET(S_surfxml_zone_11); break;
10592    case S_surfxml_zone_13: case S_surfxml_zone_14: SET(S_surfxml_zone_14); break;
10593    case S_surfxml_zone_12: case S_surfxml_zone_15: case S_surfxml_zone_16: SET(S_surfxml_zone_16); break;
10594    case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
10595    case S_surfxml_zone_8: case S_surfxml_zone_9: SET(S_surfxml_zone_9); break;
10596   }
10597  }
10598         YY_BREAK
10599 case 585:
10600 /* rule 585 can match eol */
10601 YY_RULE_SETUP
10602 FAIL("Unexpected end-tag `%s': `</trace_connect>' expected.",yytext);
10603         YY_BREAK
10604 case 586:
10605 YY_RULE_SETUP
10606 FAIL("Unexpected character `%c': `</trace_connect>' expected.",yytext[0]);
10607         YY_BREAK
10608 case YY_STATE_EOF(E_surfxml_trace___connect):
10609 FAIL("Premature EOF: `</trace_connect>' expected.");
10610         YY_BREAK
10611
10612 /* <!-- A zone is either an internal node that contains other zones, 
10613   *      or a  leaf containing hosts and other leaf-like elements -->
10614   *           (((AS|zone|include|link|backbone|cabinet|cluster|peer|trace|trace_connect)*,
10615   *             (zoneRoute|ASroute|trace|trace_connect|bypassASroute|bypassZoneRoute)*,
10616   *         (trace|trace_connect)*)
10617   *        |((include|storage_type|storage|host|cabinet|router|link|backbone|trace|trace_connect|host_link)*,
10618   *          (route|trace|trace_connect|bypassRoute)*)))>  */
10619 case 587:
10620 /* rule 587 can match eol */
10621 YY_RULE_SETUP
10622 FAIL("Starting tag <zone> is not allowed here.");
10623         YY_BREAK
10624 case 588:
10625 /* rule 588 can match eol */
10626 YY_RULE_SETUP
10627 {
10628   AX_surfxml_zone_id = 0;
10629   surfxml_zone_id_isset = 0;
10630   AX_surfxml_zone_routing = AU_surfxml_zone_routing;
10631   surfxml_zone_routing_isset = 0;
10632   ENTER(AL_surfxml_zone); pushbuffer(0);
10633   }
10634         YY_BREAK
10635
10636 case 589:
10637 /* rule 589 can match eol */
10638 YY_RULE_SETUP
10639 if (surfxml_zone_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_zone>");} surfxml_zone_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_zone_id);
10640         YY_BREAK
10641 case 590:
10642 /* rule 590 can match eol */
10643 YY_RULE_SETUP
10644 if (surfxml_zone_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_zone>");}  surfxml_zone_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_zone_id);
10645         YY_BREAK
10646 case 591:
10647 /* rule 591 can match eol */
10648 case 592:
10649 /* rule 592 can match eol */
10650 YY_RULE_SETUP
10651 A_surfxml_zone_routing = A_surfxml_zone_routing_Full;
10652         YY_BREAK
10653 case 593:
10654 /* rule 593 can match eol */
10655 case 594:
10656 /* rule 594 can match eol */
10657 YY_RULE_SETUP
10658 A_surfxml_zone_routing = A_surfxml_zone_routing_Floyd;
10659         YY_BREAK
10660 case 595:
10661 /* rule 595 can match eol */
10662 case 596:
10663 /* rule 596 can match eol */
10664 YY_RULE_SETUP
10665 A_surfxml_zone_routing = A_surfxml_zone_routing_Dijkstra;
10666         YY_BREAK
10667 case 597:
10668 /* rule 597 can match eol */
10669 case 598:
10670 /* rule 598 can match eol */
10671 YY_RULE_SETUP
10672 A_surfxml_zone_routing = A_surfxml_zone_routing_DijkstraCache;
10673         YY_BREAK
10674 case 599:
10675 /* rule 599 can match eol */
10676 case 600:
10677 /* rule 600 can match eol */
10678 YY_RULE_SETUP
10679 A_surfxml_zone_routing = A_surfxml_zone_routing_None;
10680         YY_BREAK
10681 case 601:
10682 /* rule 601 can match eol */
10683 case 602:
10684 /* rule 602 can match eol */
10685 YY_RULE_SETUP
10686 A_surfxml_zone_routing = A_surfxml_zone_routing_Vivaldi;
10687         YY_BREAK
10688 case 603:
10689 /* rule 603 can match eol */
10690 case 604:
10691 /* rule 604 can match eol */
10692 YY_RULE_SETUP
10693 A_surfxml_zone_routing = A_surfxml_zone_routing_Cluster;
10694         YY_BREAK
10695 case 605:
10696 /* rule 605 can match eol */
10697 case 606:
10698 /* rule 606 can match eol */
10699 YY_RULE_SETUP
10700 A_surfxml_zone_routing = A_surfxml_zone_routing_ClusterTorus;
10701         YY_BREAK
10702 case 607:
10703 /* rule 607 can match eol */
10704 case 608:
10705 /* rule 608 can match eol */
10706 YY_RULE_SETUP
10707 A_surfxml_zone_routing = A_surfxml_zone_routing_ClusterFatTree;
10708         YY_BREAK
10709 case 609:
10710 /* rule 609 can match eol */
10711 case 610:
10712 /* rule 610 can match eol */
10713 YY_RULE_SETUP
10714 A_surfxml_zone_routing = A_surfxml_zone_routing_ClusterDragonfly;
10715         YY_BREAK
10716 case 611:
10717 YY_RULE_SETUP
10718 {
10719   if (!AX_surfxml_zone_id) FAIL("Required attribute `id' not set for `zone' element.");
10720   if (!AX_surfxml_zone_routing) FAIL("Required attribute `routing' not set for `zone' element.");
10721   LEAVE; STag_surfxml_zone();surfxml_pcdata_ix = 0; ENTER(S_surfxml_zone);
10722  }
10723         YY_BREAK
10724 case 612:
10725 YY_RULE_SETUP
10726 {
10727   if (!AX_surfxml_zone_id) FAIL("Required attribute `id' not set for `zone' element.");
10728   if (!AX_surfxml_zone_routing) FAIL("Required attribute `routing' not set for `zone' element.");
10729   LEAVE; STag_surfxml_zone(); surfxml_pcdata_ix = 0; ETag_surfxml_zone(); popbuffer(); /* attribute */
10730   switch (YY_START) {
10731    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
10732    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
10733    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
10734    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
10735   }
10736  }
10737         YY_BREAK
10738 case 613:
10739 YY_RULE_SETUP
10740 FAIL("Unexpected character `%c' in attribute list of zone element.", yytext[0]);
10741         YY_BREAK
10742 case 614:
10743 YY_RULE_SETUP
10744 FAIL("Bad attribute `%s' in `zone' element start tag.",yytext);
10745         YY_BREAK
10746 case YY_STATE_EOF(AL_surfxml_zone):
10747 FAIL("EOF in attribute list of `zone' element.");
10748         YY_BREAK
10749
10750 case 615:
10751 /* rule 615 can match eol */
10752 YY_RULE_SETUP
10753 {
10754   LEAVE;
10755   ETag_surfxml_zone();
10756   popbuffer(); /* attribute */
10757   switch (YY_START) {
10758    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
10759    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
10760    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
10761    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
10762   }
10763  }
10764         YY_BREAK
10765 case 616:
10766 /* rule 616 can match eol */
10767 YY_RULE_SETUP
10768 FAIL("Unexpected end-tag `%s': `</zone>' expected.",yytext);
10769         YY_BREAK
10770 case 617:
10771 YY_RULE_SETUP
10772 FAIL("Unexpected character `%c': `</zone>' expected.",yytext[0]);
10773         YY_BREAK
10774 case YY_STATE_EOF(E_surfxml_zone):
10775 case YY_STATE_EOF(S_surfxml_zone):
10776 case YY_STATE_EOF(S_surfxml_zone_1):
10777 case YY_STATE_EOF(S_surfxml_zone_11):
10778 case YY_STATE_EOF(S_surfxml_zone_12):
10779 case YY_STATE_EOF(S_surfxml_zone_14):
10780 case YY_STATE_EOF(S_surfxml_zone_16):
10781 case YY_STATE_EOF(S_surfxml_zone_3):
10782 case YY_STATE_EOF(S_surfxml_zone_4):
10783 case YY_STATE_EOF(S_surfxml_zone_6):
10784 case YY_STATE_EOF(S_surfxml_zone_7):
10785 case YY_STATE_EOF(S_surfxml_zone_9):
10786 FAIL("Premature EOF: `</zone>' expected.");
10787         YY_BREAK
10788
10789 case 618:
10790 /* rule 618 can match eol */
10791 YY_RULE_SETUP
10792 FAIL("Starting tag <zoneRoute> is not allowed here.");
10793         YY_BREAK
10794 case 619:
10795 /* rule 619 can match eol */
10796 YY_RULE_SETUP
10797 {
10798   AX_surfxml_zoneRoute_dst = 0;
10799   surfxml_zoneRoute_dst_isset = 0;
10800   AX_surfxml_zoneRoute_gw___dst = 0;
10801   surfxml_zoneRoute_gw___dst_isset = 0;
10802   AX_surfxml_zoneRoute_gw___src = 0;
10803   surfxml_zoneRoute_gw___src_isset = 0;
10804   AX_surfxml_zoneRoute_src = 0;
10805   surfxml_zoneRoute_src_isset = 0;
10806   AX_surfxml_zoneRoute_symmetrical = A_surfxml_zoneRoute_symmetrical_YES;
10807   surfxml_zoneRoute_symmetrical_isset = 0;
10808   ENTER(AL_surfxml_zoneRoute); pushbuffer(0);
10809   }
10810         YY_BREAK
10811
10812 case 620:
10813 /* rule 620 can match eol */
10814 YY_RULE_SETUP
10815 if (surfxml_zoneRoute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_zoneRoute>");} surfxml_zoneRoute_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_zoneRoute_dst);
10816         YY_BREAK
10817 case 621:
10818 /* rule 621 can match eol */
10819 YY_RULE_SETUP
10820 if (surfxml_zoneRoute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_zoneRoute>");}  surfxml_zoneRoute_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_zoneRoute_dst);
10821         YY_BREAK
10822 case 622:
10823 /* rule 622 can match eol */
10824 YY_RULE_SETUP
10825 if (surfxml_zoneRoute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_zoneRoute>");} surfxml_zoneRoute_gw___dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_zoneRoute_gw___dst);
10826         YY_BREAK
10827 case 623:
10828 /* rule 623 can match eol */
10829 YY_RULE_SETUP
10830 if (surfxml_zoneRoute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_zoneRoute>");}  surfxml_zoneRoute_gw___dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_zoneRoute_gw___dst);
10831         YY_BREAK
10832 case 624:
10833 /* rule 624 can match eol */
10834 YY_RULE_SETUP
10835 if (surfxml_zoneRoute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_zoneRoute>");} surfxml_zoneRoute_gw___src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_zoneRoute_gw___src);
10836         YY_BREAK
10837 case 625:
10838 /* rule 625 can match eol */
10839 YY_RULE_SETUP
10840 if (surfxml_zoneRoute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_zoneRoute>");}  surfxml_zoneRoute_gw___src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_zoneRoute_gw___src);
10841         YY_BREAK
10842 case 626:
10843 /* rule 626 can match eol */
10844 YY_RULE_SETUP
10845 if (surfxml_zoneRoute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_zoneRoute>");} surfxml_zoneRoute_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_zoneRoute_src);
10846         YY_BREAK
10847 case 627:
10848 /* rule 627 can match eol */
10849 YY_RULE_SETUP
10850 if (surfxml_zoneRoute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_zoneRoute>");}  surfxml_zoneRoute_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_zoneRoute_src);
10851         YY_BREAK
10852 case 628:
10853 /* rule 628 can match eol */
10854 case 629:
10855 /* rule 629 can match eol */
10856 YY_RULE_SETUP
10857 A_surfxml_zoneRoute_symmetrical = A_surfxml_zoneRoute_symmetrical_YES;
10858         YY_BREAK
10859 case 630:
10860 /* rule 630 can match eol */
10861 case 631:
10862 /* rule 631 can match eol */
10863 YY_RULE_SETUP
10864 A_surfxml_zoneRoute_symmetrical = A_surfxml_zoneRoute_symmetrical_NO;
10865         YY_BREAK
10866 case 632:
10867 /* rule 632 can match eol */
10868 case 633:
10869 /* rule 633 can match eol */
10870 YY_RULE_SETUP
10871 A_surfxml_zoneRoute_symmetrical = A_surfxml_zoneRoute_symmetrical_yes;
10872         YY_BREAK
10873 case 634:
10874 /* rule 634 can match eol */
10875 case 635:
10876 /* rule 635 can match eol */
10877 YY_RULE_SETUP
10878 A_surfxml_zoneRoute_symmetrical = A_surfxml_zoneRoute_symmetrical_no;
10879         YY_BREAK
10880 case 636:
10881 YY_RULE_SETUP
10882 {
10883   if (!AX_surfxml_zoneRoute_dst) FAIL("Required attribute `dst' not set for `zoneRoute' element.");
10884   if (!AX_surfxml_zoneRoute_gw___dst) FAIL("Required attribute `gw_dst' not set for `zoneRoute' element.");
10885   if (!AX_surfxml_zoneRoute_gw___src) FAIL("Required attribute `gw_src' not set for `zoneRoute' element.");
10886   if (!AX_surfxml_zoneRoute_src) FAIL("Required attribute `src' not set for `zoneRoute' element.");
10887   LEAVE; STag_surfxml_zoneRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_zoneRoute);
10888  }
10889         YY_BREAK
10890 case 637:
10891 YY_RULE_SETUP
10892 {
10893   if (!AX_surfxml_zoneRoute_dst) FAIL("Required attribute `dst' not set for `zoneRoute' element.");
10894   if (!AX_surfxml_zoneRoute_gw___dst) FAIL("Required attribute `gw_dst' not set for `zoneRoute' element.");
10895   if (!AX_surfxml_zoneRoute_gw___src) FAIL("Required attribute `gw_src' not set for `zoneRoute' element.");
10896   if (!AX_surfxml_zoneRoute_src) FAIL("Required attribute `src' not set for `zoneRoute' element.");
10897   LEAVE; STag_surfxml_zoneRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_zoneRoute(); popbuffer(); /* attribute */
10898   switch (YY_START) {
10899    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_8: case S_surfxml_AS_9: SET(S_surfxml_AS_9); break;
10900    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_4: case S_surfxml_zone_6: case S_surfxml_zone_8: case S_surfxml_zone_9: SET(S_surfxml_zone_9); break;
10901   }
10902  }
10903         YY_BREAK
10904 case 638:
10905 YY_RULE_SETUP
10906 FAIL("Unexpected character `%c' in attribute list of zoneRoute element.", yytext[0]);
10907         YY_BREAK
10908 case 639:
10909 YY_RULE_SETUP
10910 FAIL("Bad attribute `%s' in `zoneRoute' element start tag.",yytext);
10911         YY_BREAK
10912 case YY_STATE_EOF(AL_surfxml_zoneRoute):
10913 FAIL("EOF in attribute list of `zoneRoute' element.");
10914         YY_BREAK
10915
10916 case 640:
10917 /* rule 640 can match eol */
10918 YY_RULE_SETUP
10919 {
10920   LEAVE;
10921   ETag_surfxml_zoneRoute();
10922   popbuffer(); /* attribute */
10923   switch (YY_START) {
10924    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_8: case S_surfxml_AS_9: SET(S_surfxml_AS_9); break;
10925    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_4: case S_surfxml_zone_6: case S_surfxml_zone_8: case S_surfxml_zone_9: SET(S_surfxml_zone_9); break;
10926   }
10927  }
10928         YY_BREAK
10929 case 641:
10930 /* rule 641 can match eol */
10931 YY_RULE_SETUP
10932 FAIL("Unexpected end-tag `%s': `</zoneRoute>' expected.",yytext);
10933         YY_BREAK
10934 case 642:
10935 YY_RULE_SETUP
10936 FAIL("Unexpected character `%c': `</zoneRoute>' expected.",yytext[0]);
10937         YY_BREAK
10938 case YY_STATE_EOF(E_surfxml_zoneRoute):
10939 case YY_STATE_EOF(S_surfxml_zoneRoute):
10940 case YY_STATE_EOF(S_surfxml_zoneRoute_2):
10941 FAIL("Premature EOF: `</zoneRoute>' expected.");
10942         YY_BREAK
10943
10944 /* EPILOG: after the root element. */
10945
10946 case 643:
10947 YY_RULE_SETUP
10948 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
10949         YY_BREAK
10950 case YY_STATE_EOF(EPILOG):
10951 SUCCEED;
10952         YY_BREAK
10953
10954 /* CHARACTER DATA. */
10955
10956 /* Non-defined standard entities... */
10957 case 644:
10958 YY_RULE_SETUP
10959 BUFFERPUTC('&');
10960         YY_BREAK
10961 case 645:
10962 YY_RULE_SETUP
10963 BUFFERPUTC('<');
10964         YY_BREAK
10965 case 646:
10966 YY_RULE_SETUP
10967 BUFFERPUTC('>');
10968         YY_BREAK
10969 case 647:
10970 YY_RULE_SETUP
10971 BUFFERPUTC('\'');
10972         YY_BREAK
10973 case 648:
10974 YY_RULE_SETUP
10975 BUFFERPUTC('"');
10976         YY_BREAK
10977 /* Character entities. */
10978 case 649:
10979 YY_RULE_SETUP
10980 BUFFERPUTC((unsigned char)atoi(yytext+2));
10981         YY_BREAK
10982 case 650:
10983 YY_RULE_SETUP
10984 BUFFERPUTC((unsigned char)strtol(yytext+3,NULL,16));
10985         YY_BREAK
10986
10987 case 651:
10988 /* rule 651 can match eol */
10989 case 652:
10990 /* rule 652 can match eol */
10991 case 653:
10992 /* rule 653 can match eol */
10993 case 654:
10994 /* rule 654 can match eol */
10995 YY_RULE_SETUP
10996 BUFFERPUTC('\n');
10997         YY_BREAK
10998
10999 case 655:
11000 YY_RULE_SETUP
11001 ENTER(CDATA);
11002         YY_BREAK
11003 case 656:
11004 YY_RULE_SETUP
11005 FAIL("Unexpected `]""]>' in character data.");
11006         YY_BREAK
11007
11008 case 657:
11009 YY_RULE_SETUP
11010 BUFFERDONE; LEAVE;
11011         YY_BREAK
11012 case YY_STATE_EOF(VALUE1):
11013 FAIL("EOF in literal (\"'\" expected).");
11014         YY_BREAK
11015
11016 case 658:
11017 YY_RULE_SETUP
11018 BUFFERDONE; LEAVE;
11019         YY_BREAK
11020 case YY_STATE_EOF(VALUE2):
11021 FAIL("EOF in literal (`\"' expected).");
11022         YY_BREAK
11023
11024 case 659:
11025 /* rule 659 can match eol */
11026 YY_RULE_SETUP
11027 BUFFERPUTC(yytext[0]);
11028         YY_BREAK
11029 case 660:
11030 YY_RULE_SETUP
11031 FAIL("Spurious `%c' in character data.",yytext[0]);
11032         YY_BREAK
11033
11034 case 661:
11035 YY_RULE_SETUP
11036 LEAVE;
11037         YY_BREAK
11038 /* "]""]"               BUFFERPUTC(yytext[0]); BUFFERPUTC(yytext[1]); */
11039 case 662:
11040 YY_RULE_SETUP
11041 BUFFERPUTC(yytext[0]);
11042         YY_BREAK
11043 case YY_STATE_EOF(CDATA):
11044 FAIL("EOF in CDATA section.");
11045         YY_BREAK
11046
11047 /* Impossible rules to avoid warnings from flex(1). */
11048 /* Ideally, this should be replaced by code in flexml.pl that
11049     generates just the states not covered by other rules. */
11050
11051 case 663:
11052 /* rule 663 can match eol */
11053 YY_RULE_SETUP
11054 FAIL("Syntax error on character `%c'.", yytext[0]);
11055         YY_BREAK
11056
11057 case 664:
11058 YY_RULE_SETUP
11059 ECHO;
11060         YY_BREAK
11061 case YY_STATE_EOF(INITIAL):
11062 case YY_STATE_EOF(S_surfxml_AS_2):
11063 case YY_STATE_EOF(S_surfxml_AS_5):
11064 case YY_STATE_EOF(S_surfxml_AS_8):
11065 case YY_STATE_EOF(S_surfxml_AS_10):
11066 case YY_STATE_EOF(S_surfxml_AS_13):
11067 case YY_STATE_EOF(S_surfxml_AS_15):
11068 case YY_STATE_EOF(S_surfxml_ASroute_1):
11069 case YY_STATE_EOF(S_surfxml_actor_1):
11070 case YY_STATE_EOF(S_surfxml_bypassASroute_1):
11071 case YY_STATE_EOF(S_surfxml_bypassRoute_1):
11072 case YY_STATE_EOF(S_surfxml_bypassZoneRoute_1):
11073 case YY_STATE_EOF(S_surfxml_cluster_1):
11074 case YY_STATE_EOF(S_surfxml_config_1):
11075 case YY_STATE_EOF(S_surfxml_host_1):
11076 case YY_STATE_EOF(S_surfxml_include_1):
11077 case YY_STATE_EOF(S_surfxml_link_1):
11078 case YY_STATE_EOF(ROOT_surfxml_platform):
11079 case YY_STATE_EOF(S_surfxml_platform_2):
11080 case YY_STATE_EOF(S_surfxml_platform_5):
11081 case YY_STATE_EOF(S_surfxml_platform_7):
11082 case YY_STATE_EOF(S_surfxml_process_1):
11083 case YY_STATE_EOF(S_surfxml_route_1):
11084 case YY_STATE_EOF(S_surfxml_storage_1):
11085 case YY_STATE_EOF(S_surfxml_storage___type_1):
11086 case YY_STATE_EOF(S_surfxml_zone_2):
11087 case YY_STATE_EOF(S_surfxml_zone_5):
11088 case YY_STATE_EOF(S_surfxml_zone_8):
11089 case YY_STATE_EOF(S_surfxml_zone_10):
11090 case YY_STATE_EOF(S_surfxml_zone_13):
11091 case YY_STATE_EOF(S_surfxml_zone_15):
11092 case YY_STATE_EOF(S_surfxml_zoneRoute_1):
11093 case YY_STATE_EOF(IMPOSSIBLE):
11094         yyterminate();
11095
11096         case YY_END_OF_BUFFER:
11097                 {
11098                 /* Amount of text matched not including the EOB char. */
11099                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
11100
11101                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
11102                 *yy_cp = (yy_hold_char);
11103                 YY_RESTORE_YY_MORE_OFFSET
11104
11105                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
11106                         {
11107                         /* We're scanning a new file or input source.  It's
11108                          * possible that this happened because the user
11109                          * just pointed yyin at a new source and called
11110                          * yylex().  If so, then we have to assure
11111                          * consistency between YY_CURRENT_BUFFER and our
11112                          * globals.  Here is the right place to do so, because
11113                          * this is the first action (other than possibly a
11114                          * back-up) that will match for the new input source.
11115                          */
11116                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
11117                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
11118                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
11119                         }
11120
11121                 /* Note that here we test for yy_c_buf_p "<=" to the position
11122                  * of the first EOB in the buffer, since yy_c_buf_p will
11123                  * already have been incremented past the NUL character
11124                  * (since all states make transitions on EOB to the
11125                  * end-of-buffer state).  Contrast this with the test
11126                  * in input().
11127                  */
11128                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
11129                         { /* This was really a NUL. */
11130                         yy_state_type yy_next_state;
11131
11132                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
11133
11134                         yy_current_state = yy_get_previous_state(  );
11135
11136                         /* Okay, we're now positioned to make the NUL
11137                          * transition.  We couldn't have
11138                          * yy_get_previous_state() go ahead and do it
11139                          * for us because it doesn't know how to deal
11140                          * with the possibility of jamming (and we don't
11141                          * want to build jamming into it because then it
11142                          * will run more slowly).
11143                          */
11144
11145                         yy_next_state = yy_try_NUL_trans( yy_current_state );
11146
11147                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
11148
11149                         if ( yy_next_state )
11150                                 {
11151                                 /* Consume the NUL. */
11152                                 yy_cp = ++(yy_c_buf_p);
11153                                 yy_current_state = yy_next_state;
11154                                 goto yy_match;
11155                                 }
11156
11157                         else
11158                                 {
11159                                 yy_cp = (yy_c_buf_p);
11160                                 goto yy_find_action;
11161                                 }
11162                         }
11163
11164                 else switch ( yy_get_next_buffer(  ) )
11165                         {
11166                         case EOB_ACT_END_OF_FILE:
11167                                 {
11168                                 (yy_did_buffer_switch_on_eof) = 0;
11169
11170                                 if ( yywrap(  ) )
11171                                         {
11172                                         /* Note: because we've taken care in
11173                                          * yy_get_next_buffer() to have set up
11174                                          * yytext, we can now set up
11175                                          * yy_c_buf_p so that if some total
11176                                          * hoser (like flex itself) wants to
11177                                          * call the scanner after we return the
11178                                          * YY_NULL, it'll still work - another
11179                                          * YY_NULL will get returned.
11180                                          */
11181                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
11182
11183                                         yy_act = YY_STATE_EOF(YY_START);
11184                                         goto do_action;
11185                                         }
11186
11187                                 else
11188                                         {
11189                                         if ( ! (yy_did_buffer_switch_on_eof) )
11190                                                 YY_NEW_FILE;
11191                                         }
11192                                 break;
11193                                 }
11194
11195                         case EOB_ACT_CONTINUE_SCAN:
11196                                 (yy_c_buf_p) =
11197                                         (yytext_ptr) + yy_amount_of_matched_text;
11198
11199                                 yy_current_state = yy_get_previous_state(  );
11200
11201                                 yy_cp = (yy_c_buf_p);
11202                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
11203                                 goto yy_match;
11204
11205                         case EOB_ACT_LAST_MATCH:
11206                                 (yy_c_buf_p) =
11207                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
11208
11209                                 yy_current_state = yy_get_previous_state(  );
11210
11211                                 yy_cp = (yy_c_buf_p);
11212                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
11213                                 goto yy_find_action;
11214                         }
11215                 break;
11216                 }
11217
11218         default:
11219                 YY_FATAL_ERROR(
11220                         "fatal flex scanner internal error--no action found" );
11221         } /* end of action switch */
11222                 } /* end of scanning one token */
11223         } /* end of user's declarations */
11224 } /* end of yylex */
11225
11226 /* yy_get_next_buffer - try to read in a new buffer
11227  *
11228  * Returns a code representing an action:
11229  *      EOB_ACT_LAST_MATCH -
11230  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
11231  *      EOB_ACT_END_OF_FILE - end of file
11232  */
11233 static int yy_get_next_buffer (void)
11234 {
11235         char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
11236         char *source = (yytext_ptr);
11237         int number_to_move, i;
11238         int ret_val;
11239
11240         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
11241                 YY_FATAL_ERROR(
11242                 "fatal flex scanner internal error--end of buffer missed" );
11243
11244         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
11245                 { /* Don't try to fill the buffer, so this is an EOF. */
11246                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
11247                         {
11248                         /* We matched a single character, the EOB, so
11249                          * treat this as a final EOF.
11250                          */
11251                         return EOB_ACT_END_OF_FILE;
11252                         }
11253
11254                 else
11255                         {
11256                         /* We matched some text prior to the EOB, first
11257                          * process it.
11258                          */
11259                         return EOB_ACT_LAST_MATCH;
11260                         }
11261                 }
11262
11263         /* Try to read more data. */
11264
11265         /* First move last chars to start of buffer. */
11266         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1);
11267
11268         for ( i = 0; i < number_to_move; ++i )
11269                 *(dest++) = *(source++);
11270
11271         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
11272                 /* don't do the read, it's not guaranteed to return an EOF,
11273                  * just force an EOF
11274                  */
11275                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
11276
11277         else
11278                 {
11279                         int num_to_read =
11280                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
11281
11282                 while ( num_to_read <= 0 )
11283                         { /* Not enough room in the buffer - grow it. */
11284
11285                         /* just a shorter name for the current buffer */
11286                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
11287
11288                         int yy_c_buf_p_offset =
11289                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
11290
11291                         if ( b->yy_is_our_buffer )
11292                                 {
11293                                 int new_size = b->yy_buf_size * 2;
11294
11295                                 if ( new_size <= 0 )
11296                                         b->yy_buf_size += b->yy_buf_size / 8;
11297                                 else
11298                                         b->yy_buf_size *= 2;
11299
11300                                 b->yy_ch_buf = (char *)
11301                                         /* Include room in for 2 EOB chars. */
11302                                         yyrealloc( (void *) b->yy_ch_buf,
11303                                                          (yy_size_t) (b->yy_buf_size + 2)  );
11304                                 }
11305                         else
11306                                 /* Can't grow it, we don't own it. */
11307                                 b->yy_ch_buf = NULL;
11308
11309                         if ( ! b->yy_ch_buf )
11310                                 YY_FATAL_ERROR(
11311                                 "fatal error - scanner input buffer overflow" );
11312
11313                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
11314
11315                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
11316                                                 number_to_move - 1;
11317
11318                         }
11319
11320                 if ( num_to_read > YY_READ_BUF_SIZE )
11321                         num_to_read = YY_READ_BUF_SIZE;
11322
11323                 /* Read in more data. */
11324                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
11325                         (yy_n_chars), num_to_read );
11326
11327                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
11328                 }
11329
11330         if ( (yy_n_chars) == 0 )
11331                 {
11332                 if ( number_to_move == YY_MORE_ADJ )
11333                         {
11334                         ret_val = EOB_ACT_END_OF_FILE;
11335                         yyrestart( yyin  );
11336                         }
11337
11338                 else
11339                         {
11340                         ret_val = EOB_ACT_LAST_MATCH;
11341                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
11342                                 YY_BUFFER_EOF_PENDING;
11343                         }
11344                 }
11345
11346         else
11347                 ret_val = EOB_ACT_CONTINUE_SCAN;
11348
11349         if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
11350                 /* Extend the array by 50%, plus the number we really need. */
11351                 int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
11352                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
11353                         (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size  );
11354                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
11355                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
11356                 /* "- 2" to take care of EOB's */
11357                 YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
11358         }
11359
11360         (yy_n_chars) += number_to_move;
11361         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
11362         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
11363
11364         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
11365
11366         return ret_val;
11367 }
11368
11369 /* yy_get_previous_state - get the state just before the EOB char was reached */
11370
11371     static yy_state_type yy_get_previous_state (void)
11372 {
11373         yy_state_type yy_current_state;
11374         char *yy_cp;
11375     
11376         yy_current_state = (yy_start);
11377
11378         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
11379                 {
11380                 YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
11381                 if ( yy_accept[yy_current_state] )
11382                         {
11383                         (yy_last_accepting_state) = yy_current_state;
11384                         (yy_last_accepting_cpos) = yy_cp;
11385                         }
11386                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
11387                         {
11388                         yy_current_state = (int) yy_def[yy_current_state];
11389                         if ( yy_current_state >= 4086 )
11390                                 yy_c = yy_meta[yy_c];
11391                         }
11392                 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
11393                 }
11394
11395         return yy_current_state;
11396 }
11397
11398 /* yy_try_NUL_trans - try to make a transition on the NUL character
11399  *
11400  * synopsis
11401  *      next_state = yy_try_NUL_trans( current_state );
11402  */
11403     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
11404 {
11405         int yy_is_jam;
11406         char *yy_cp = (yy_c_buf_p);
11407
11408         YY_CHAR yy_c = 1;
11409         if ( yy_accept[yy_current_state] )
11410                 {
11411                 (yy_last_accepting_state) = yy_current_state;
11412                 (yy_last_accepting_cpos) = yy_cp;
11413                 }
11414         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
11415                 {
11416                 yy_current_state = (int) yy_def[yy_current_state];
11417                 if ( yy_current_state >= 4086 )
11418                         yy_c = yy_meta[yy_c];
11419                 }
11420         yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
11421         yy_is_jam = (yy_current_state == 4085);
11422
11423                 return yy_is_jam ? 0 : yy_current_state;
11424 }
11425
11426 #ifndef YY_NO_UNPUT
11427
11428 #endif
11429
11430 #ifndef YY_NO_INPUT
11431 #ifdef __cplusplus
11432     static int yyinput (void)
11433 #else
11434     static int input  (void)
11435 #endif
11436
11437 {
11438         int c;
11439     
11440         *(yy_c_buf_p) = (yy_hold_char);
11441
11442         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
11443                 {
11444                 /* yy_c_buf_p now points to the character we want to return.
11445                  * If this occurs *before* the EOB characters, then it's a
11446                  * valid NUL; if not, then we've hit the end of the buffer.
11447                  */
11448                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
11449                         /* This was really a NUL. */
11450                         *(yy_c_buf_p) = '\0';
11451
11452                 else
11453                         { /* need more input */
11454                         int offset = (int) ((yy_c_buf_p) - (yytext_ptr));
11455                         ++(yy_c_buf_p);
11456
11457                         switch ( yy_get_next_buffer(  ) )
11458                                 {
11459                                 case EOB_ACT_LAST_MATCH:
11460                                         /* This happens because yy_g_n_b()
11461                                          * sees that we've accumulated a
11462                                          * token and flags that we need to
11463                                          * try matching the token before
11464                                          * proceeding.  But for input(),
11465                                          * there's no matching to consider.
11466                                          * So convert the EOB_ACT_LAST_MATCH
11467                                          * to EOB_ACT_END_OF_FILE.
11468                                          */
11469
11470                                         /* Reset buffer status. */
11471                                         yyrestart( yyin );
11472
11473                                         /*FALLTHROUGH*/
11474
11475                                 case EOB_ACT_END_OF_FILE:
11476                                         {
11477                                         if ( yywrap(  ) )
11478                                                 return 0;
11479
11480                                         if ( ! (yy_did_buffer_switch_on_eof) )
11481                                                 YY_NEW_FILE;
11482 #ifdef __cplusplus
11483                                         return yyinput();
11484 #else
11485                                         return input();
11486 #endif
11487                                         }
11488
11489                                 case EOB_ACT_CONTINUE_SCAN:
11490                                         (yy_c_buf_p) = (yytext_ptr) + offset;
11491                                         break;
11492                                 }
11493                         }
11494                 }
11495
11496         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
11497         *(yy_c_buf_p) = '\0';   /* preserve yytext */
11498         (yy_hold_char) = *++(yy_c_buf_p);
11499
11500         if ( c == '\n' )
11501                 
11502     yylineno++;
11503 ;
11504
11505         return c;
11506 }
11507 #endif  /* ifndef YY_NO_INPUT */
11508
11509 /** Immediately switch to a different input stream.
11510  * @param input_file A readable stream.
11511  * 
11512  * @note This function does not reset the start condition to @c INITIAL .
11513  */
11514     void yyrestart  (FILE * input_file )
11515 {
11516     
11517         if ( ! YY_CURRENT_BUFFER ){
11518         yyensure_buffer_stack ();
11519                 YY_CURRENT_BUFFER_LVALUE =
11520             yy_create_buffer( yyin, YY_BUF_SIZE );
11521         }
11522
11523         yy_init_buffer( YY_CURRENT_BUFFER, input_file );
11524         yy_load_buffer_state(  );
11525 }
11526
11527 /** Switch to a different input buffer.
11528  * @param new_buffer The new input buffer.
11529  * 
11530  */
11531     void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
11532 {
11533     
11534         /* TODO. We should be able to replace this entire function body
11535          * with
11536          *              yypop_buffer_state();
11537          *              yypush_buffer_state(new_buffer);
11538      */
11539         yyensure_buffer_stack ();
11540         if ( YY_CURRENT_BUFFER == new_buffer )
11541                 return;
11542
11543         if ( YY_CURRENT_BUFFER )
11544                 {
11545                 /* Flush out information for old buffer. */
11546                 *(yy_c_buf_p) = (yy_hold_char);
11547                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
11548                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
11549                 }
11550
11551         YY_CURRENT_BUFFER_LVALUE = new_buffer;
11552         yy_load_buffer_state(  );
11553
11554         /* We don't actually know whether we did this switch during
11555          * EOF (yywrap()) processing, but the only time this flag
11556          * is looked at is after yywrap() is called, so it's safe
11557          * to go ahead and always set it.
11558          */
11559         (yy_did_buffer_switch_on_eof) = 1;
11560 }
11561
11562 static void yy_load_buffer_state  (void)
11563 {
11564         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
11565         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
11566         yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
11567         (yy_hold_char) = *(yy_c_buf_p);
11568 }
11569
11570 /** Allocate and initialize an input buffer state.
11571  * @param file A readable stream.
11572  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
11573  * 
11574  * @return the allocated buffer state.
11575  */
11576     YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
11577 {
11578         YY_BUFFER_STATE b;
11579     
11580         b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state )  );
11581         if ( ! b )
11582                 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
11583
11584         b->yy_buf_size = size;
11585
11586         /* yy_ch_buf has to be 2 characters longer than the size given because
11587          * we need to put in 2 end-of-buffer characters.
11588          */
11589         b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2)  );
11590         if ( ! b->yy_ch_buf )
11591                 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
11592
11593         b->yy_is_our_buffer = 1;
11594
11595         yy_init_buffer( b, file );
11596
11597         return b;
11598 }
11599
11600 /** Destroy the buffer.
11601  * @param b a buffer created with yy_create_buffer()
11602  * 
11603  */
11604     void yy_delete_buffer (YY_BUFFER_STATE  b )
11605 {
11606     
11607         if ( ! b )
11608                 return;
11609
11610         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
11611                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
11612
11613         if ( b->yy_is_our_buffer )
11614                 yyfree( (void *) b->yy_ch_buf  );
11615
11616         yyfree( (void *) b  );
11617 }
11618
11619 /* Initializes or reinitializes a buffer.
11620  * This function is sometimes called more than once on the same buffer,
11621  * such as during a yyrestart() or at EOF.
11622  */
11623     static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
11624
11625 {
11626         int oerrno = errno;
11627     
11628         yy_flush_buffer( b );
11629
11630         b->yy_input_file = file;
11631         b->yy_fill_buffer = 1;
11632
11633     /* If b is the current buffer, then yy_init_buffer was _probably_
11634      * called from yyrestart() or through yy_get_next_buffer.
11635      * In that case, we don't want to reset the lineno or column.
11636      */
11637     if (b != YY_CURRENT_BUFFER){
11638         b->yy_bs_lineno = 1;
11639         b->yy_bs_column = 0;
11640     }
11641
11642         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
11643     
11644         errno = oerrno;
11645 }
11646
11647 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
11648  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
11649  * 
11650  */
11651     void yy_flush_buffer (YY_BUFFER_STATE  b )
11652 {
11653         if ( ! b )
11654                 return;
11655
11656         b->yy_n_chars = 0;
11657
11658         /* We always need two end-of-buffer characters.  The first causes
11659          * a transition to the end-of-buffer state.  The second causes
11660          * a jam in that state.
11661          */
11662         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
11663         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
11664
11665         b->yy_buf_pos = &b->yy_ch_buf[0];
11666
11667         b->yy_at_bol = 1;
11668         b->yy_buffer_status = YY_BUFFER_NEW;
11669
11670         if ( b == YY_CURRENT_BUFFER )
11671                 yy_load_buffer_state(  );
11672 }
11673
11674 /** Pushes the new state onto the stack. The new state becomes
11675  *  the current state. This function will allocate the stack
11676  *  if necessary.
11677  *  @param new_buffer The new state.
11678  *  
11679  */
11680 void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
11681 {
11682         if (new_buffer == NULL)
11683                 return;
11684
11685         yyensure_buffer_stack();
11686
11687         /* This block is copied from yy_switch_to_buffer. */
11688         if ( YY_CURRENT_BUFFER )
11689                 {
11690                 /* Flush out information for old buffer. */
11691                 *(yy_c_buf_p) = (yy_hold_char);
11692                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
11693                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
11694                 }
11695
11696         /* Only push if top exists. Otherwise, replace top. */
11697         if (YY_CURRENT_BUFFER)
11698                 (yy_buffer_stack_top)++;
11699         YY_CURRENT_BUFFER_LVALUE = new_buffer;
11700
11701         /* copied from yy_switch_to_buffer. */
11702         yy_load_buffer_state(  );
11703         (yy_did_buffer_switch_on_eof) = 1;
11704 }
11705
11706 /** Removes and deletes the top of the stack, if present.
11707  *  The next element becomes the new top.
11708  *  
11709  */
11710 void yypop_buffer_state (void)
11711 {
11712         if (!YY_CURRENT_BUFFER)
11713                 return;
11714
11715         yy_delete_buffer(YY_CURRENT_BUFFER );
11716         YY_CURRENT_BUFFER_LVALUE = NULL;
11717         if ((yy_buffer_stack_top) > 0)
11718                 --(yy_buffer_stack_top);
11719
11720         if (YY_CURRENT_BUFFER) {
11721                 yy_load_buffer_state(  );
11722                 (yy_did_buffer_switch_on_eof) = 1;
11723         }
11724 }
11725
11726 /* Allocates the stack if it does not exist.
11727  *  Guarantees space for at least one push.
11728  */
11729 static void yyensure_buffer_stack (void)
11730 {
11731         yy_size_t num_to_alloc;
11732     
11733         if (!(yy_buffer_stack)) {
11734
11735                 /* First allocation is just for 2 elements, since we don't know if this
11736                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
11737                  * immediate realloc on the next call.
11738          */
11739       num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
11740                 (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
11741                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
11742                                                                 );
11743                 if ( ! (yy_buffer_stack) )
11744                         YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
11745
11746                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
11747
11748                 (yy_buffer_stack_max) = num_to_alloc;
11749                 (yy_buffer_stack_top) = 0;
11750                 return;
11751         }
11752
11753         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
11754
11755                 /* Increase the buffer to prepare for a possible push. */
11756                 yy_size_t grow_size = 8 /* arbitrary grow size */;
11757
11758                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
11759                 (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
11760                                                                 ((yy_buffer_stack),
11761                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
11762                                                                 );
11763                 if ( ! (yy_buffer_stack) )
11764                         YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
11765
11766                 /* zero only the new slots.*/
11767                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
11768                 (yy_buffer_stack_max) = num_to_alloc;
11769         }
11770 }
11771
11772 /** Setup the input buffer state to scan directly from a user-specified character buffer.
11773  * @param base the character buffer
11774  * @param size the size in bytes of the character buffer
11775  * 
11776  * @return the newly allocated buffer state object.
11777  */
11778 YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
11779 {
11780         YY_BUFFER_STATE b;
11781     
11782         if ( size < 2 ||
11783              base[size-2] != YY_END_OF_BUFFER_CHAR ||
11784              base[size-1] != YY_END_OF_BUFFER_CHAR )
11785                 /* They forgot to leave room for the EOB's. */
11786                 return NULL;
11787
11788         b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state )  );
11789         if ( ! b )
11790                 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
11791
11792         b->yy_buf_size = (int) (size - 2);      /* "- 2" to take care of EOB's */
11793         b->yy_buf_pos = b->yy_ch_buf = base;
11794         b->yy_is_our_buffer = 0;
11795         b->yy_input_file = NULL;
11796         b->yy_n_chars = b->yy_buf_size;
11797         b->yy_is_interactive = 0;
11798         b->yy_at_bol = 1;
11799         b->yy_fill_buffer = 0;
11800         b->yy_buffer_status = YY_BUFFER_NEW;
11801
11802         yy_switch_to_buffer( b  );
11803
11804         return b;
11805 }
11806
11807 /** Setup the input buffer state to scan a string. The next call to yylex() will
11808  * scan from a @e copy of @a str.
11809  * @param yystr a NUL-terminated string to scan
11810  * 
11811  * @return the newly allocated buffer state object.
11812  * @note If you want to scan bytes that may contain NUL values, then use
11813  *       yy_scan_bytes() instead.
11814  */
11815 YY_BUFFER_STATE yy_scan_string (const char * yystr )
11816 {
11817     
11818         return yy_scan_bytes( yystr, (int) strlen(yystr) );
11819 }
11820
11821 /** Setup the input buffer state to scan the given bytes. The next call to yylex() will
11822  * scan from a @e copy of @a bytes.
11823  * @param yybytes the byte buffer to scan
11824  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
11825  * 
11826  * @return the newly allocated buffer state object.
11827  */
11828 YY_BUFFER_STATE yy_scan_bytes  (const char * yybytes, int  _yybytes_len )
11829 {
11830         YY_BUFFER_STATE b;
11831         char *buf;
11832         yy_size_t n;
11833         int i;
11834     
11835         /* Get memory for full buffer, including space for trailing EOB's. */
11836         n = (yy_size_t) (_yybytes_len + 2);
11837         buf = (char *) yyalloc( n  );
11838         if ( ! buf )
11839                 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
11840
11841         for ( i = 0; i < _yybytes_len; ++i )
11842                 buf[i] = yybytes[i];
11843
11844         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
11845
11846         b = yy_scan_buffer( buf, n );
11847         if ( ! b )
11848                 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
11849
11850         /* It's okay to grow etc. this buffer, and we should throw it
11851          * away when we're done.
11852          */
11853         b->yy_is_our_buffer = 1;
11854
11855         return b;
11856 }
11857
11858     static void yy_push_state (int  _new_state )
11859 {
11860         if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
11861                 {
11862                 yy_size_t new_size;
11863
11864                 (yy_start_stack_depth) += YY_START_STACK_INCR;
11865                 new_size = (yy_size_t) (yy_start_stack_depth) * sizeof( int );
11866
11867                 if ( ! (yy_start_stack) )
11868                         (yy_start_stack) = (int *) yyalloc( new_size  );
11869
11870                 else
11871                         (yy_start_stack) = (int *) yyrealloc(
11872                                         (void *) (yy_start_stack), new_size  );
11873
11874                 if ( ! (yy_start_stack) )
11875                         YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
11876                 }
11877
11878         (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
11879
11880         BEGIN(_new_state);
11881 }
11882
11883     static void yy_pop_state  (void)
11884 {
11885         if ( --(yy_start_stack_ptr) < 0 )
11886                 YY_FATAL_ERROR( "start-condition stack underflow" );
11887
11888         BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
11889 }
11890
11891 #ifndef YY_EXIT_FAILURE
11892 #define YY_EXIT_FAILURE 2
11893 #endif
11894
11895 static void yynoreturn yy_fatal_error (const char* msg )
11896 {
11897                         fprintf( stderr, "%s\n", msg );
11898         exit( YY_EXIT_FAILURE );
11899 }
11900
11901 /* Redefine yyless() so it works in section 3 code. */
11902
11903 #undef yyless
11904 #define yyless(n) \
11905         do \
11906                 { \
11907                 /* Undo effects of setting up yytext. */ \
11908         int yyless_macro_arg = (n); \
11909         YY_LESS_LINENO(yyless_macro_arg);\
11910                 yytext[yyleng] = (yy_hold_char); \
11911                 (yy_c_buf_p) = yytext + yyless_macro_arg; \
11912                 (yy_hold_char) = *(yy_c_buf_p); \
11913                 *(yy_c_buf_p) = '\0'; \
11914                 yyleng = yyless_macro_arg; \
11915                 } \
11916         while ( 0 )
11917
11918 /* Accessor  methods (get/set functions) to struct members. */
11919
11920 /** Get the current line number.
11921  * 
11922  */
11923 int yyget_lineno  (void)
11924 {
11925     
11926     return yylineno;
11927 }
11928
11929 /** Get the input stream.
11930  * 
11931  */
11932 FILE *yyget_in  (void)
11933 {
11934         return yyin;
11935 }
11936
11937 /** Get the output stream.
11938  * 
11939  */
11940 FILE *yyget_out  (void)
11941 {
11942         return yyout;
11943 }
11944
11945 /** Get the length of the current token.
11946  * 
11947  */
11948 int yyget_leng  (void)
11949 {
11950         return yyleng;
11951 }
11952
11953 /** Get the current token.
11954  * 
11955  */
11956
11957 char *yyget_text  (void)
11958 {
11959         return yytext;
11960 }
11961
11962 /** Set the current line number.
11963  * @param _line_number line number
11964  * 
11965  */
11966 void yyset_lineno (int  _line_number )
11967 {
11968     
11969     yylineno = _line_number;
11970 }
11971
11972 /** Set the input stream. This does not discard the current
11973  * input buffer.
11974  * @param _in_str A readable stream.
11975  * 
11976  * @see yy_switch_to_buffer
11977  */
11978 void yyset_in (FILE *  _in_str )
11979 {
11980         yyin = _in_str ;
11981 }
11982
11983 void yyset_out (FILE *  _out_str )
11984 {
11985         yyout = _out_str ;
11986 }
11987
11988 int yyget_debug  (void)
11989 {
11990         return yy_flex_debug;
11991 }
11992
11993 void yyset_debug (int  _bdebug )
11994 {
11995         yy_flex_debug = _bdebug ;
11996 }
11997
11998 static int yy_init_globals (void)
11999 {
12000         /* Initialization is the same as for the non-reentrant scanner.
12001      * This function is called from yylex_destroy(), so don't allocate here.
12002      */
12003
12004     /* We do not touch yylineno unless the option is enabled. */
12005     yylineno =  1;
12006     
12007     (yy_buffer_stack) = NULL;
12008     (yy_buffer_stack_top) = 0;
12009     (yy_buffer_stack_max) = 0;
12010     (yy_c_buf_p) = NULL;
12011     (yy_init) = 0;
12012     (yy_start) = 0;
12013
12014     (yy_start_stack_ptr) = 0;
12015     (yy_start_stack_depth) = 0;
12016     (yy_start_stack) =  NULL;
12017
12018 /* Defined in main.c */
12019 #ifdef YY_STDINIT
12020     yyin = stdin;
12021     yyout = stdout;
12022 #else
12023     yyin = NULL;
12024     yyout = NULL;
12025 #endif
12026
12027     /* For future reference: Set errno on error, since we are called by
12028      * yylex_init()
12029      */
12030     return 0;
12031 }
12032
12033 /* yylex_destroy is for both reentrant and non-reentrant scanners. */
12034 int yylex_destroy  (void)
12035 {
12036     
12037     /* Pop the buffer stack, destroying each element. */
12038         while(YY_CURRENT_BUFFER){
12039                 yy_delete_buffer( YY_CURRENT_BUFFER  );
12040                 YY_CURRENT_BUFFER_LVALUE = NULL;
12041                 yypop_buffer_state();
12042         }
12043
12044         /* Destroy the stack itself. */
12045         yyfree((yy_buffer_stack) );
12046         (yy_buffer_stack) = NULL;
12047
12048     /* Destroy the start condition stack. */
12049         yyfree( (yy_start_stack)  );
12050         (yy_start_stack) = NULL;
12051
12052     /* Reset the globals. This is important in a non-reentrant scanner so the next time
12053      * yylex() is called, initialization will occur. */
12054     yy_init_globals( );
12055
12056     return 0;
12057 }
12058
12059 /*
12060  * Internal utility routines.
12061  */
12062
12063 #ifndef yytext_ptr
12064 static void yy_flex_strncpy (char* s1, const char * s2, int n )
12065 {
12066                 
12067         int i;
12068         for ( i = 0; i < n; ++i )
12069                 s1[i] = s2[i];
12070 }
12071 #endif
12072
12073 #ifdef YY_NEED_STRLEN
12074 static int yy_flex_strlen (const char * s )
12075 {
12076         int n;
12077         for ( n = 0; s[n]; ++n )
12078                 ;
12079
12080         return n;
12081 }
12082 #endif
12083
12084 void *yyalloc (yy_size_t  size )
12085 {
12086                         return malloc(size);
12087 }
12088
12089 void *yyrealloc  (void * ptr, yy_size_t  size )
12090 {
12091                 
12092         /* The cast to (char *) in the following accommodates both
12093          * implementations that use char* generic pointers, and those
12094          * that use void* generic pointers.  It works with the latter
12095          * because both ANSI C and C++ allow castless assignment from
12096          * any pointer type to void*, and deal with argument conversions
12097          * as though doing an assignment.
12098          */
12099         return realloc(ptr, size);
12100 }
12101
12102 void yyfree (void * ptr )
12103 {
12104                         free( (char *) ptr );   /* see yyrealloc() for (char *) cast */
12105 }
12106
12107 #define YYTABLES_NAME "yytables"
12108
12109 /* Element context stack lookup. */
12110 int surfxml_element_context(int i)
12111 {
12112   return (0<i && i<yy_start_stack_depth
12113           ? yy_start_stack[yy_start_stack_ptr - i]
12114           : 0);
12115 }
12116
12117 #ifdef FLEX_DEBUG
12118 void print_yy_stack(char* fmt, ...)
12119 {
12120   int i = 0; va_list ap; va_start(ap, fmt);
12121   vfprintf(stderr, fmt, ap);
12122   if (surfxml_statenames) {
12123       for (i=1; i<yy_start_stack_ptr; i++) {
12124           fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
12125       }
12126       fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
12127   }
12128   va_end(ap);
12129 }
12130
12131 void print_surfxml_bufferstack()
12132 {
12133     int i;
12134     fputs("Buffer: ", stderr);
12135     for (i = 0; i < blimit; i++) {
12136        if ( surfxml_bufferstack[i] == '\377' ) break;
12137          putc(surfxml_bufferstack[i], stderr);
12138     }
12139     putc('\n', stderr);
12140 }
12141
12142 static void debug_enter(int state, const char* statename) {
12143   yy_push_state(state);
12144   if (yy_flex_debug) {
12145        print_yy_stack("--ENTER(%s) : ",statename);
12146        print_surfxml_bufferstack();
12147   }
12148 }
12149
12150 static void debug_leave(void) {
12151     if (yy_flex_debug) {
12152         print_yy_stack("--LEAVE : ");
12153         print_surfxml_bufferstack();
12154     }
12155   yy_pop_state();
12156 }
12157
12158 static void debug_set(int state, const char* statename) {
12159   BEGIN(state);
12160   if (yy_flex_debug) print_yy_stack("--SET(%s) : ",statename);
12161 }
12162 #endif
12163
12164 static void cleanup(void)
12165 {
12166     if (surfxml_statenames) {
12167         free(surfxml_statenames);
12168         surfxml_statenames = NULL;
12169     }
12170     free(surfxml_bufferstack);
12171     surfxml_bufferstack = NULL;
12172
12173     free(indexstack);
12174     indexstack = NULL;
12175 }
12176
12177 static int fail(const char* fmt, ...)
12178 {
12179     int chars_left, used;
12180     va_list ap; va_start(ap, fmt);
12181 #ifdef FLEXML_yylineno
12182     used = snprintf(flexml_err_msg,flexml_max_err_msg_size,
12183                    "Invalid XML (XML input line %d, state %d): ",
12184                    yylineno, YY_START);
12185 #else
12186     used = snprintf(flexml_err_msg,flexml_max_err_msg_size,
12187                    "Invalid XML (state %d): ",
12188                    YY_START);
12189 #endif
12190     chars_left = flexml_max_err_msg_size - used - 1;
12191     vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
12192     va_end(ap);
12193
12194 #ifndef FLEXML_quiet_parser
12195     /* print directly to sdterr */
12196     fprintf(stderr, "%s\n", flexml_err_msg);
12197     flexml_err_msg[0] = '\0';
12198 #endif
12199
12200     cleanup();
12201
12202     return 1;
12203 }
12204